软件测试之测试分类
一.按是否查看程序内部结构
1.黑盒测试(包含性能测试和功能测试):
只关心输出输入结果
1)功能测试:是黑盒测试的一方面,它检查实际软件的功能是否符合用户的需求,包括:
(1)逻辑功能测试(logic function testing);
(2)界面测试(UItesting)UI=User Interface;
(3)易用性测试(usability testing):是指从软件使用的合理性和方便性等角度对软件系统进行检查,来发现软件中不方便用户使用的地方;
(4)兼容性测试(compatibility testing):包括硬件兼容性测试和软件兼容性测试
2)性能测试(包含一般性能测试,稳定性测试,负载测试和压力测试):
(1)一般性能测试:指在正常的软硬件环境下,不向被测系统施加任何压力的性能测试
(2)稳定性测试(可靠性测试 - reliability testing):指连续运行被测系统,检查系统运行时的稳定程度
(3)负载测试-load testing:指让被测系统在其能承受的压力的极限范围内连续运行,检查系统运行时的稳定程度
(4)压力测试:是指持续不断的给被测系统增加压力,直到将被测系统压垮为止,用来测试系统所能承受的最大压力。(Validate the system or software can allowed the biggest stress.)
2.白盒测试:
研究程序里面的源代码和程序结构
二.按是否运行程序
1.静态测试:
指不实际运行被测程序,只是静态地检查程序的代码,界面以及文档可能存在的错误的过程。
静态测试包括:
1)代码测试:检查代码是否符合相应的规范或标准
2)界面测试:检查被测软件的实际界面和需求中的要求是否相符
3)文档测试:检查用户手册和需求说明是否符合用户的实际需求
2.动态测试:
指实际运行被测程序,输入测试数据,查看相应的输出结果和预期结果是否相符的过程
三.按阶段划分
(1)单元测试:对软件中最小的可测试单元或模块进行检查和验证
桩模块(stud):模拟被测模块所调用的模块;
驱动模块(driver):指模拟被测模块的上级模块,驱动模块用来接收测试数据,启动被测模块并输出结果
(2)集成测试:
是单元测试的下一阶段,将通过测试的单元模块组装成系统或子系统,再进行测试,重点是测试不同模块之间的接口部门,集成测试主要检查各个单元模块组合到一起能否协同配合,正常运行
(3)系统测试:
是指将整个软件系统看作一个整体进行测试,包括对功能,性能,软件运行的软硬件环境进行测试,系统测试的依据是《系统需求规格说明书》
(4)验收测试:
指的是在系统测试的后期,以用户测试为主,或有测试人员等质量保障人员共同参与的测试,它是软件交给用户的最后一道工序。验收测试包含α测试(内测)和β测试(公测)
1)α测试(内测):
指由用户,测试人员,开发人员等共同参与的内部测试
2)β测试(公测):
指内测后的测试,即完全交给最终用户的测试
四.其他类型的测试
(1)回归测试(regression testing):是指对软件的新的版本测试时,重复执行上一个版本测试时的用例。(When a new build or release is deployed, repeat all the test cases which has executed in the last build or release.)
(2)冒烟测试(smoke testing):是指在对一个新版本进行大规模的测试之前,先验证一下软件的基本功能是否实现,是否具备可测性。(validate the major function is deployed or not in software of system when a new build or release is implement.)
(3)随机测试(random testing):是指测试中所有的输入数据都是随机生成的,其目的是模拟用户的真实操作,并发现一些边缘性的错误。(means or all the test data is random, to validate the some edge bugs.)