软件测试
概述
目的
- 检验系统是否满足规定需求
- 弄清实际情况与期望结果之间的差距
意义
-
解放研发人员和售后服务人员。
- 程序员更专注于算法和程序效率,测试后的完整产品减轻售后的工作量
基础
定义
- 使用人工和自动手段来运行或测试某个系统的过程
原则
- 暂留
软件缺陷
- 错误在软件中体现出来的结果
错误、缺陷、故障的关系
- 错误是软件潜伏的问题,缺陷是错误在软件中体现的结果。不执行不会出现缺陷。故障是缺陷引发造成的。
bug来源
- 开发人员经验不足
- 程序员的疏忽大意
- 开发人员的不良心理
- 程序员有意设置的彩蛋
缺陷等级
-
紧急
- 系统易奔溃,功能与设计需求严重不符,内存泄漏,无法登陆退出
-
严重:
- 主要功能存在严重缺陷,不会影响系统的稳定性
- 如:功能未实现,报错
-
一般
- 如:界面性能缺失,边界条件下的错误
-
轻微
- 建议性问题,如:文字排列不整齐。
提前测试的好处
- 预防缺陷的后期爆发
- 后期测试成本大,错误也是致命的
v模型
- 暂留
软件测试阶段
- 测试计划、测试用例设计、规格说明书审查、系统设计和代码审查、单元测试、集成测试、系统测试、验收测试、安装测试、测试总结
软件质量保证
概念
- 满足或超出认定的一组需求,并使用经过认可的评测方法和标准来评估,还使用认定的流程来生产
特性
- 功能性,可靠性,易用性,效率性,维护性,可移植性
CMM
-
软件能力成熟度模型
-
初始级
- 软件过程特点:无定义、无秩序、偶尔混乱
-
可重复级
- 基本的项目管理过程,去跟踪成本、进度和功能性,过程纪律就位,类似项目能重复以前成功
-
已定义级
- 管理活动和工程活动两方面的软件过程均已文档化、标准化、并集成到组织的标准软件过程。
-
已管理级
- 己采集详细的有关软件过程和产品质量的度量。无论软件过程还是产品均得到定量了解和控制。
-
优化级
- 利用来自过程和来自新思想、新技术先导性试验的定量反馈信息,使持续过程改进成为可能。
-
软件测试类型方法
测试阶段划分
-
单元测试:
- 对软件基本组成单元进行的测试。测试的对象是够独立完成具体功能的最小单位。
-
集成测试
- 将已分别通过测试的单元,按设计要求组合起来再进行的测试,验证集成后的系统是否达到了既定的设计目标。
-
系统测试
- 集成系统是否满足指定性能需求和整体性的功能,是系统级别的测试。
-
验收测试
- 测试的最后一个阶段,发现的错误基本修正,集成系统之后进行
测试内容划分
-
功能测试
-
产品的各功能进行验证,根据功能测试用例,逐项测试,检查产品是否达到用户要求的功能。
- 常以黑盒测试方法为主
-
-
性能测试
-
通过自动化的测试工具模拟多种正常、峰值以及异常负载条件来对系统的各项性能指标进行测试
- 包含压力测试、容量测试、效率性测试、容错性测试等。
-
-
测试方法
-
手工测试
- 不借助工具,亲力亲为
-
自动化测试
- 使用软件测试工具
-
静态测试
- 软件的功能在不被执行的时候,测试。对象包括文档、代码、界面等
-
动态测试
- 察代码运行时的动作,来获取执行结果,并得到时间效率、系统可靠性等方面的信息。
-
白盒测试
- 指的是把被测软件看作一个盒子,在测试时,不仅要关心软件的输入数据和输出结果,还要把盒子打开,研究里面的源代码和程序结构。
-
黑盒测试
- 指的是把被测软件看作一个盒子,我们不去关心盒子里面是什么样子,只关心软件的输入数据和输出结果。
-
回归测试
- 指的是把被测软件看作一个盒子,我们不去关心盒子里面是什么样子,只关心软件的输入数据和输出结果。
-
冒烟测试
- 指对一个新版本系统进行大规模的测试之前,先验证一下软件的基本功能是否实现,是否具备可测性。
-
随机测试
- 是指测试中所有的输入数据都是随机生成的,其目的是模拟用户的真实操作,并发现一些边缘性的错误。
-
XMind - Trial Version