第一章 引论
1.1 什么是软件测试
定义:是由“验证(Verification)”和“确认(Validation)”活动构成的整体:
- “验证”:检验软件是否已正确的实现了产品规格书所定义的系统功能和特性。
- “有效性确认”:确认软件是否满足用户真正的活动需求。
功能和特性的区别(the difference between functionality and features):
Functionality refers to how well something works. Features refer to what something can do. A Feature is a sub-system or facility that in included within a larger system. A Function is the action that can be performed within the system. Much Functionality is enabled through a Feature.
For instance, User Administration is a feature offered in Windows. Add User, Grant Privilege to User, Delete User, List Users, etc. are Functions enabled by the User Administration feature.
1.2 软件测试与软件开发的关系
图1 V模型呈现测试和开发
第二章 软件测试基本概念
2.1 软件缺陷
1.缺陷(bug):所谓软件缺陷,即为计算机或 程序中存在的某种破坏正常运行能力问题、错误所谓软件缺陷,其结果会导致软件产品在某种程度上不满足用户需要。
2.软件缺陷是如何产生的?
- 技术问题:如算法错误、语法错误、计算和精读错误、接口参数传递不匹配。
- 软件本身:如开发标准或流程不完善、文档错误
- 团队工作:误解,沟通不充分。
3.软件缺陷的构成
图2 软件缺陷构成示意图
2.3 软件测试的分类
图3 软件测试三维空间
补充,按测试过程中软件是否被执行:分为静态测试、动态测试
表1 软件测试技术分类表
常见测试
2.4 测试阶段
图4 测试阶段示意图
2.5 软件测试的工作范畴
图5 测试工作流程图
第三章 软件测试方法
黑盒测试
边界值测试
大量测试实践表明,许多故障往往发生在输入定义域或者输出值域的边界上,而不是在其内部。
边界值分析法基本思想:选取正好等于、刚刚大于和刚刚小于边界值的数据最为测试数据
例子:假设有两个变量x1和x2的函数F,a<=x1<=b, c<=x2<=d.
边界值分析法局限性:变量独立且为物理量。
等价测试
等价类测试动机:希望进行完备的测试,又避免冗余。
报表日期
三角形
基于决策表的测试
NextDate函数
白盒测试
语句覆盖
判定覆盖
条件覆盖
判定条件覆盖
条件组合覆盖
路径覆盖
基本路径测试
关于循环的基本路径测试