软件测试可以分为很多的方面,一些常见的分类,如下图:
(一)按技术分类
1.白盒测试
白盒测试技术关心软件内部设计和程序实现,对内部实现逻辑进行测试的过程。如果已知产品内部的活动方式,就可以采用白盒测试技术来测试它的内部活动是否都符合设计要求。
2.黑盒测试
黑盒测试技术不关心软件内部设计和程序实现,一般是对功能进行测试。这是在已知产品需求的情况下,通过测试来检验是否都能被满足的测试方法。对于软件测试而言,黑盒测试技术把程序看成一个黑盒子,完全不考虑程序的内部结构和处理过程。
(二)按测试方法分类
1.静态测试
静态测试(static testing)就是不实际运行被测软件,而只是静态地检查程序代码、界面或文档中可能存在的错误的过程。
包括对代码测试、界面测试和文档测试三个方面
2. 动态测试
动态测试(dynamic testing),指的是实际运行被测程序,输入相应的测试数据,检查实际输出结果和预期结果是否相符的过程,所以判断一个测试属于动态测试还是静态的,唯一的标准就是看是否运行程序。
(三)按测试阶段分类
1.单元测试
单元测试是针对软件设计的最小程序单位——模块或组件的内部代码进行正确性检查的测试工作。单元测试又称为模块测试,其目的在于发现各模块内部可能存在的各种差错。