1、软件测试的分类
1.1 按测试手段分类
根据可见度:黑盒测试、白盒测试
根据状态:静态测试、动态测试
根据测试执行方式:手动测试、自动化测试
1.2 黑盒测试
1.2.1定义
将被测系统看成一个不能打开的盒子,只检查功能是否符合设计规定,着眼于外部结构,不考虑内部逻辑。通常针对软件界面、软件功能,通常是站在普通用户的角度进行测试。
通常在测试整体阶段的系统测试阶段。
1.2.2优点
1、容易实施,不需要关注内部实现
2、更贴近用户的使用角度
1.2.3缺点
1、测试覆盖率较低,一般只能覆盖到代码量的不到40%。
2、针对黑盒的自动化测试,复用率较低,维护成本较高。
1.2.4 测试什么?
1、是否有不正确或遗漏的功能?
2、接口上,输入能否正确接受?能否输出正确的结果?
3、是否有数据结构错误或外部信息(例如数据文件)访问错误。
4、性能是否能够满足要求?
1.2.5 主要设计方法
1、等价类划分法:将所有输入等价归成一类,形成典型输入,编写测试用例。
2、边界值分析法:关注数值边界条件,例如区间等。大于边界/等于边界/小于边界
3、错误推测法:根据经验,推测错误位置,进行测试。
4、因果图法:针对软件需求说明书,将输入与输出做成判定表,编写测试用例。
5、正交试验分析法:通过正交性,通过一组数据筛选出典型的,代表性的,正交性的数据的设计方法,主要用于筛选数据。
6、状态迁移图法:梳理功能点钟的状态迁移关系设计测试用例。例如软件审批功能中各节点状态。
7、流程分析法:分析程序逻辑执行,来测试用例。
1.3 白盒测试
1.3.1 定义
测试人员需了解程序内部结构,又称为结构化测试。针对程序逻辑结构,设计测试用例。用逻辑覆盖率衡量测试完整性。
1.3.2 逻辑单位
语句、条件、条件组合、分支、路径。
不同逻辑单位有不同的覆盖方法,例如:语句覆盖、判定覆盖、路径覆盖等。
1.3.3 优点
1、迫使测试人员仔细思考软件实现,理解原理
2、白盒测试检测代码中每条分支和路径
3、揭示隐藏在代码中的错误
4、对代码测试比较彻底
1.3.4 缺点
1、昂贵,工作量巨大,覆盖量大
2、无法检测代码中遗漏的路径和数据敏感性错误。比如:少些了一下逻辑
3、不能直接验证需求的正确性
1.3.5主要测试方法
1、代码检测法:检查代码与设计的一致性
2、静态结构分析法:使用测试工具分析代码结构、数据结构、内部逻辑
3、静态质量度量法:根据标准质量模型,比如IOS等。
4、逻辑覆盖法:语句覆盖、分支覆盖、判定覆盖、路径覆盖、条件和判定组合覆盖等。
5、基本路劲测试法:在程序控制流图的基础上,通过分析控制构造路劲复杂度,导入基本路劲组合,进行测试设计。
1.4 灰盒测试
1.4.1定义
结余黑、白盒测试之间
1.5静态测试
1.5.1定义
无需执行被测程序,通过评审软件文档或代码,度量程序静态复杂度,检查软件是否符合编程标准,借以发现编程中的问题
1.5.2 方法
1、互审
2、走查
3、会议
1.6 动态测试
1.6.1定义
运行被测程序,检查运行结构与预期结果的差异,并分析运行效率、正确性和健壮性。
1.7 手动测试
由专门测试人员从用户视角来验证软件是否满足设计要求的行为。
1.8自动化测试
使用单独测试工具软件控制测试的自动化执行以及对预期和结果进行自动检查。
例如:单元测试、接口测试、性能测试等
1.9 手工测试VS自动化测试