软件测试基础必知必会
Posted 经理,天台风好大
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了软件测试基础必知必会相关的知识,希望对你有一定的参考价值。
文章目录
软件测试介绍
1、目标
- 理解软件测试的定义
- 为什么需要软件测试? (减少损失)
- 为什么选择软件测试? (薪资.市场需求)
- 为什么不让开发自已做测试? (思维定式/测试力度/关注度)
- 掌握软件测试的核心内容?
- 清楚学习软件测试需要具备的基础知识
2、定义
- 软件测试:在规定的条件下对程序进行操作,以发现程序错误,衡量软件质量,并对其是否能满足设计要求进 行评估的过程.
- 简单地说,软件测试是一种实际输出与预期输出之间的审核或者比较过程。
3、核心内容
- 功能测试
- 自动化测试
- 接口测试
- 性能测试
- …
4、需要掌握的基础铺垫
- 计算机基础
- 计算机的定义和基本特点
- 计算机硬件系统和软件系统组成
- 二进制的相关概念
- 十进制和二进制如何相互转换
- 计算机编码和计量单位
- 浏览器和图片类型
- 掌握网站的访问过程
- 掌握常用的DOS命令
- 前端知识
- 掌握常见的html标签
- CSS的作用和语法规则
- CSS选择器的语法规则
- JS的定义和作用
- 掌握JS的基本用法
- 后端知识
- 掌握C/S和B/S架构的特点
- 知道什么是服务器及常见的软件服务器
- 了解编程语言的时代发展
- 了解Java语言的特点和应用领域
- 掌握Python语言的特点和应用领域
- 掌握XML的语法
- 掌握JSON的特点和语法规则
- 知道如何使用SVN管理文件
- 软件测试理论
- 掌握软件测试的目的和原则
- 掌握瀑布模型
- 了解快速原型模型和螺旋模型
- 掌握V模型
- 掌握W(双V)模型
- 能掌握软件质量模型的分类
- 掌握软件测试分类
- 掌握软件缺陷的定义与判定标准
- 掌握测试用例定义和8要素
软件测试理论
目标
见上文
(一)软件测试的目的和原则
1、软件测试目的
用最少的人力、物力、财力,找到软件中的问题并修复,从而降低商业风险
2、软件测试原则
- 只能证明软件存在问题,不能证明不存在问题
- 不能进行穷尽(穷举)测试,应该分类别测试
- 测试工作要尽早的介入,降低修复成本(需求文档–ui、程序、测试)
- 缺陷存在集群现象,二八原则:20%的模块中存在80%的缺陷
- 测试依赖环境(系统、浏览器)
- 杀虫剂现象
- 不存在缺陷谬论
(二)软件开发模型
1、开发模型的介绍
- 在软件开发的几十年实践中,人们总结了很多软件开发模型用来描述和表示一个复杂的开发过程,如:
- 软件测试与软件的开发模式有着紧密的联系,作为一名测试人员,应该充分理解软件的开发模式,以便找准自 己在其中的位置,从而发挥自身的价值。
2、瀑布模型
2.1 瀑布模型的特点
(1) 是线性模型的一种,每一个阶段只执行一次。
(2) 文档驱动。
2.2 瀑布模型的优缺点
- 优点:
(1) 开发的各个阶段比较清晰,当前阶段完成后,只需关注后续阶段。 - 缺点:
(1) 不适应需求的变化。
(2) 风险往往延至后期才显露,失去及早纠正的机会。
3、快速原型模型(了解)
在开发真实系统之前,构造一个原型,在该原型的基础上,逐渐完成整个系统的开发工作。
3.1 快速原型模型的特点
(1) 快速得构建软件的原型
(2) 支持用户参与
3.2 快速原型模型的优缺点
- 优点:
(1) 克服瀑布模型的缺点,减少由于软件需求不明确带来的项目开发风险。 - 缺点:
(1) 不适合大型系统的开发 (适合开发小型的、灵活性高的系统)
4、螺旋模型(了解)
4.1 螺旋模型的特点
(1)引进了风险分析活动
4.2 螺旋模型的优缺点
- 优点:
(1) 螺旋模型很大程度上是一种风险驱动的方法体系。 - 缺点:
(1) 采用螺旋模型需要具有相当丰富的风险评估经验和专门知识。
(三)软件测试模型(重点)
1、V模型
- V模型是最具有代表意义的测试模型,最早是由Paul Rook在20世纪80年代后期提出,由英国国家计算机中心文献中发布,旨在改进软件开发的效率和效果;
- V模型本身是软件开发中瀑布模型的变种,它反映了测试活动与分析和设计的关系。
- V模型标明了测试过程中本身存在的不同阶段,从左到右,描述了开发过程和测试过程间的阶段对应关系。
V模型示意图:
V模型的优缺点
- 优点:
(1)测试V模型即包含了底层测试又包含了高层测试; - 缺点:
(1)当需求变更时将会导致返工量非常大,模型灵活性比较低。
2、W模型
测试伴随着整个软件开发周期,并且测试的对象不仅仅是程序,需求和设计同样要测试。
W模型示意图:
2.1 W模型的优缺点
- 优点:
(1) 强调测试伴随着整个软件开发周期,而且测试的对象不仅仅是程序,还包括需求和设计。
(2) 更早地介入测试,能尽早得发现缺陷进行修复。 - 缺点:
(1) 对于测试技术要求高,实践起来困难。
(四)软件质量模型
1、软件质量模型
- 软件质量,就是软件与明确地和隐含地定义的需求相一致的程度。
- ISO 9126软件质量模型是评价软件质量的国际标准,这个模型是软件质量标准的核心,对于大部分的软件, 都可以考虑从这这6个特性和27个子特性去测试、评价一个软件。
(五)软件测试分类
1、软件测试分类
2、按测试阶段划分
2.1 单元测试
- 又称模块测试,针对软件设计中的最小单位-程序模块,进行正确性检查的测试工作。单元测试需要从程序内 部结构出发设计测试用例。多个模块可以平行地独立进行单元测试。
- 单元定义:C中指一个函数,Java中指一个类。
2.2 集成测试
- 又叫组装测试,通常在单元测试的基础上,将所有程序模块进行有序的、递增的测试。
2.3 系统测试
- 指的是将整个软件系统看为一个整体进行测试,测试的依据是软件需求说明书
2.4 验收测试
检验软件是否符合用户需求的测试
- α测试
- Alpha 是内测版本
- 通常只在软件开发者内部交流
- 一般而言, 该版本软件的bug较多,普通用户最好不要安装
- β测试
- Beta是公测版本,是对所有用户开放的测试版本
- 这一版本通常由软件公司免费发布, 用户可从相关的站点下载
- 通过一些专业爱好者的测试, 将结果反馈给开发者, 开发者们再进行有针对性的修改
- γ测试
- Gamma版本,指的是软件版本正式发行的候选版。
- 该版本已经相当成熟了, 与即将发行的正式版相差无几, 成为正式发布的候选版本
3、按是否查看源代码
3.1 黑盒测试
又称数据驱动测试,完全不考虑程序内部结构和内部特性,注重于测试软件的功能需求,只关心软件的输入数据和输出数据。
3.2 白盒测试
指的是把盒子打开,去研究里面的源代码和程序结构。
3.3 灰盒测试
灰盒测试,是介于白盒测试与黑盒测试之间的一种测试,不仅关注输出、输入的正确性,同时也关注程序内部 的情况。
4、按是否运行分类
- 静态测试:
- 指不实际运行被测软件,而只是静态地检查程序代码、界面或文档中可能存在的错误过程。
- 动态测试:
- 是指实际运行被测程序,输入相应的测试数据,检查实际输出结果和预期结果是否相符的过程。
5、按照是否自动化
- 人工测试
- 也叫做手工测试,测试人员手动去进行的测试
- 自动化测试
- 利用代码或者工具帮助人工进行测试
6、软件测试的更多分类
- 冒烟测试
- 冒烟测试就是对系统进行最基本功能的测试,保证基本的功能和流程能走通
- 回归测试
- 当修复一个BUG后,把之前的测试用例在新的代码下进行再次测试
- 随机测试
- 随机测试主要是对被测软件的一些重要功能进行复测,也包括测试那些当前的测试用例没有覆盖到的部分
- 探索性测试
- 探索性测试意味着同时设计测试和执行测试。测试人员通过测试来不断学习被测系统。
(六)软件缺陷
1、软件缺陷
软件缺陷:是指软件或程序中存在的各种问题及错误
软件缺陷的存在会导致软件产品在某种程度上不能满足用户的需求
1.1 软件缺陷的判定标准
- 软件未达到需求规格说明书中标明的功能
- 软件出现了需求规格说明书指明不会出现错误的地方
- 软件的功能超出了需求规格说明书指明的范围
- 软件未达到需求规格说明书虽未指明但应该达到的目标
- 软件测试人员认为软件难以理解,不易使用,运行速度慢,或者最终用户体验不好。
1.2 软件缺陷产生的原因
软件缺陷产生是不可避免的,造成软件缺陷产生的原因主要归纳如下:
- 需求解释、记录或者定义错误
- 设计文档说明存在错误或者拼写错误
- 编码说明、程序代码有误
- 硬件或者软件系统上存在错误
1.3 软件缺陷产生的根源
- 需求的变更
- 交流不充分
- 软件的复杂性
- 进度压力
1.4 软件缺陷的类型
- 功能错误
- 界面错误
- 兼容性缺陷
- 易用性问题
- 改进建议
(七)测试用例
1、测试用例
测试用例:(Test Case)是为特定的目的而设计的一组测试输入、执行条件和预期结果的文档。测什么?怎么测?
1.1 认识生活中的测试用例
买手机、买电脑,要试用一下:开机、屏幕、运行速度、内存大小;这就是生活中的测试用例!
举例说明
买手机:按开机键,相当于输入了一组数据来测试,执行条件指的是开机的前提条件,比如是否有电;预期结 果就是能顺利打开手机,那么测试完毕后,是否达到了想要的需求(顺利开机)
2、测试用例八大要素
软件测试用例的基本要素包括:
- 用例编号
- 用例标题
- 测试项目
- 用例级别
- 预置条件
- 测试输入
- 执行步骤
- 预期结果
以上是关于软件测试基础必知必会的主要内容,如果未能解决你的问题,请参考以下文章