今天是日更的 33/365 天
大家好,我是阿常。上一篇给大家介绍了软件测试的目的,今天阿常和大家说说软件测试的方法。
● 从是否执行程序的角度来划分
● 从是否关心软件内部结构和具体实现的角度来划分
● 根据不同阶段来划分
● 根据是否需要手工执行来划分
一、从是否执行程序的角度来划分
1、静态测试
静态测试包括代码检查法、静态结构分析法、代码质量度量法。
2、动态测试
动态测试由三部分构成:构造测试实例、执行程序、分析程序的输出结果。
二、从是否关心软件内部结构和具体实现的角度来划分
1、白盒测试
白盒测试主要方法:代码检查法、静态结构分析法、代码质量度量法、逻辑覆盖法、基本路径测试法、域测试、符号测试、路径覆盖、程序变异等。
2、黑盒测试
黑盒测试主要方法:等价类划分法、边界值分析法、错误推测法、因果图法、判定表驱动法、正交实验设计法、功能图法、场景法等。
3、灰盒测试
灰盒测试是通过类似白盒测试的方法进行的,是通过编写代码、调用函数或者封装好的接口进行,但无需关心程序内部的实现细节,依然可把它当成一个黑盒。
三、根据不同阶段来划分
1、单元测试
单元测试是对软件基本组成单元进行的测试,如函数或是一个类的方法,属于白盒测试的范畴。(基准:逻辑覆盖率)
2、集成测试
在单元测试的基础上,将所有模块组装成子系统或系统,主要测试模块之间的接口,属于灰盒测试的范畴。(基准:接口覆盖率)
3、系统测试
主要测试系统相对于需求的符合度,属于黑盒测试的范畴。(基准:测试用例对需求规格的覆盖率)
4、验收测试
以用户为主的测试,对核心业务主流程进行验证。
5、回归测试
修改了旧代码之后,重新进行测试以确认修改没有引入新的错误或导致其他代码产生错误。
四、根据是否需要手工执行来划分
1、手工测试
手工测试能通过人为的逻辑判断校验当前的步骤是否正确,同时用例的执行具有一定步骤跳跃性,能够清楚知道逻辑,细致定位问题。
2、自动化测试
自动化更多是取决于产品的生命有多长,理论上所有的手工测试都可以自动化,但应考虑使用自动化工具带来的效率上的增益能不能抵消设计编写自动化工具的消耗。
思维碰撞