一、软件的定义
-
软件S = 程序P + 数据(库)DB + 文档D + 服务S
二、软件测试的定义
- 软件测试是使用人工和自动手段来运行或测试某个系统的过程,其目的在于检测被测软件系统是否满足规定的需求,或是能清楚被测系统的预期结果与实际结果之间的差别。
三、软件测试核心和本质
- 软件测试的根本目的是确保软件满足用户需求
- 软件测试的目的是要衡量软件产品是否符合预期
- 软件测试是一个持续进行的过程
- 测试既需要动态执行也需要静态检查
- 测试不仅需要手动执行也需要自动执行
四、软件测试的误区
- 如果有良好的设计和高水平的程序员,不需要测试。
- 软件测试并不创造任何代码和产品,可以不需要测试
- 测试等于调试(测试发现缺陷,调试修复缺陷)
- 软件需求规则说明应详细的包含所有用户需求
- 软件测试可以提高软件质量(不修复不会提高)
- 测试是没有技术含量的
五、软件缺陷
- 软件测试员认为软件难以理解,不宜使用,运行速度慢,或者最终用户认为不好
- 软件未达到需求规格说明书中指明的功能
- 软件出现了需求规格说明书中指明不会出现的错误
- 软件功能超出需求说明规格书中指明的范围
- 软件未达到需求规格说明书虽未指出但应达标的目标
软件缺陷的来源和代价
- 软件及系统本身复杂性不断增长,是测试的范围和难度随之增大
- 与用户沟通不畅导致无法及时获取最真实的用户需求
- 需求不断变化,特别是敏捷开发模式下,测试开发和执行更难以跟上需求变化的步伐
- 开发人员的个人因素(自大劳累等),导致不断植入各种缺陷
- 进度压力导致测试被压缩,无法进行充分的测试
- 对文档的轻视导致对测试缺乏依据,带来测试的漏洞
测试用例
- 测试用例是一组测试输入、执行条件和预期结果,目的是要满足一个特定目标,如执行一个特定的程序路径或检验是否符合一个特定的需求用例
-
测试用例 = 输入 + 输出 + 测试环境
- 测试用例具体是由输入数据,操作步骤,预期执行结果和测试环境组成。
测试用例的设计
- 测试用例越少越好。测试用例越少,用力记录、执行、结果检查、管理所对应的工作量越少
- 测试用例的典型性越高越好。测试用例具有典型性体现在每个测试用例代表被测对象对某一类数据的处理方式
- 测试用例对缺陷的定位性越强越好。当一组测试用例执行后发现不通行的时候,应能快速推测缺陷原因,利于程序员快速定位缺陷
黑盒测试
基本原理和特点
- 基本原理
- 仅需要知道被测对象的输入和预期输出,不需要理解其细节
- 特点
- 对测试人员的技术要求相对较低
- 黑盒测试不要了解程序实现的细节,因此,测试团队与开发团队可以并行完成完成各自的任务,提高团队开发进度
- 缺点
- 测试结果覆盖度不易度量
- 测试的潜在风险较高
黑盒测试方法
-
测试方法的评价
- 测试用例对被测对象的覆盖率:越高潜在风险越低
- 测试用例的冗余:越低测试成本越低
- 测试用例的数量&#x