对软件内部结构的深入程度
- 黑盒测试:又叫功能测试、数据驱动测试或基于需求规格说明书的功能测试。
- 白盒测试:又称结构测试、逻辑驱动测试或基于程序代码内部构成的测试。
- 灰盒测试:包含性能测试、自动化测试。
是否执行被测对象的程序代码
- 静态测试:静态的、不执行被测对象程序代码而寻找缺陷的过程。
- 动态测试:三种主要方法(黑盒测试、白盒测试和灰盒测试)
是否使用自动化测试工具
- 手动测试
- 自动化测试
黑盒测试
又叫功能测试、数据驱动测试或基于需求规格说明书的功能测试。该测试类别注重于测试软件的功能性需求。
测试工程师无需了解程序代码的内部构造,完全模拟软件产品的最终端用户使用该软件,检查软件产品是否达到了用户的需求。
黑盒测试能更好的从用户角度来考察被测系统的功能性需求实现情况。
白盒测试
又称结构测试、逻辑驱动测试或基于程序代码内部构成的测试。
白盒测试需要测试工程师深入考查程序代码的内部结构、逻辑设计等。
对于白盒测试工程师来说,软件产品的内部结构是敞开的。
灰盒测试
介于白盒和黑盒测试之间。
灰盒测试一方面考虑程序代码的功能性表现,另一方面,又需要考虑程序代码的内部结构。
通俗地讲,灰盒测试就是白加黑。
静态测试
定义:静态的、不执行被测对象程序代码而寻找缺陷的过程。
在进行静态测试时可采用一些代码走查工具,如QAC++、C++Test等。
动态测试
实际的执行被测对象的程序代码,输入实现设计好的测试用例,检查程序代码运行得到的结果与测试用力中设计的预期结果之间是否有差异,判定实际结果与预测结果是否一致。
动态测试有四部分组成:设计测试用例、执行测试用例、分析比较输出结果、输出测试报告。
动态测试有三种主要方法:黑盒测试、白盒测试和灰盒测试
手动测试
它是测试人员设计测试用例并执行测试用例,然后根据实际的结果去和预期的结果相比较并记录测试结果,最终输出测试报告的测试活动。
可充分发挥测试工程师的主观能动性,将其智力体现在测试工作中,能发现许多的缺陷,但同时又有一定的局限性和单调枯燥性。
自动化测试
利用测试工具,模拟用户业务使用流程,让他们自动运行来查找缺陷。
- 优点:快、广泛、可重复性工作
- 缺点:只可检查比较主要的问题,如崩溃、死机,无法发现一般的日常错误。编写脚本工作量 也很大,有时会超过手动测试时间。