在软件的开发过程中每个版本都会经历四次测试任务,分别为:单元测试、集成测试、系统测试、验收测试,在这四次测试任务中,每次测试都有不同的测试方向和重点。
1. 单元测试
单元测试是软件开发过程中要进行的最基本的测试,属于白盒测试范围,一般情况下是在开发人员完成了某个单独模块的编码之后做的测试。它的目的是检查软件编码的正确性以及一些规范性测试,站在开发人员的角度上来查找软件所存在的BUG并记录下产生BUG的原因,以便开发人员进行修改。这样可以在很大程度上减少集成以后而出现的BUG。
一旦编码完成,开发人员总是会迫切希望进行软件的集成工作,这样他们就能够看到实际的系统开始启动工作了。 这在外表上看来是一项明显的进步,而象单元测试会推迟对整个系统进行合并这种真正有意思的工作启动的时间。
这种开发步骤中,真实意义上的进步被软件合并后的外表上的进步取代了。系统能够正常工作的可能性是很小的,更多的情况是充满了各式各样的Bug。现实的开发中,没有单元测试的软件常常会导致这样的结果,软件甚至无法运行。更进一步的结果是大量的时间将被花费在本应该在单元测试里就完成的简单Bug上面,在个别情况下,这些Bug也许是琐碎和微不足道的,但是总的来说,他们会延长软件集成为一个系统的时间,而且当这个系统投入使用时也无法确保它能够可靠运行。
单元测试不仅仅是作为无错编码一种辅助手段在一次性的开发过程中使用,单元测试应该是可重复的,无论是在软件修改,或是移植到新的运行环境的过程中。因此,所有的测试都必须在整个软件系统的生命周期中进行,也就是说每个版本的开发都需要经过单元测试,这样可以在以后的开发阶段减少很多不必要的麻烦。
单元测试的重点测试内容包括:源代码测试、命名规范测试、需求完整性测试、页面完整性测试、提示文本测试、页面脚本测试等。
2. 集成测试
集成测试也属于白盒测试范围,是在单元测试的基础上将软件的多个模块或者系统前后台合并之后进行的测试,也可以算是对单元测试修改进行的复审测试。在集成测试中可以弥补单元测试中没有测试到的BUG,也可以检查出单元测试没法测试的功能,比如前后台的集成之后的关联功能,对于这些有关联性功能的测试,单元测试中是无能为力的,必须依靠集成测试来保证功能的完整性和正确性。和系统测试相比较集成测试从程序结构出发,目的性、针对性更强,发现问题的效率高,较容易测试特殊的处理流程中存在的BUG。
集成测试的重点测试内容包括:链接完整性测试、页面完整性测试、数据和数据库完整性测试、功能测试、压力测试、安全性测试、页面脚本测试、提示文本测试等。
3. 系统测试
系统测试属于黑盒测试范围,是在系统集成测试修改完BUG之后进行的测试。从软件工程和测试的分类来看:集成测试在系统测试之前就必须要进行完毕,只有集成测试完成了,才能保证相应的系统测试进行。也就是说,集成测试是系统测试的基础。
系统测试是针对整个产品的全面测试,既包含各模块的验证性测试和功能合理性测试,又包括对整个产品的可靠性、健壮性、安全性、UI合理性及各种性能参数的测试。
系统测试的重点测试内容包括:链接完整性测试、UI合理性测试、命名规范测试、功能测试、压力测试、页面完整性测试、安装测试、提示文本测试、游览器测试等。
4. 验收测试
验收测试属于黑盒测试范围,是对系统测试修改后的复审,这方面和集成测试有些类似,首先确认系统测试中的BUG已经按要求修改完成,然后检测一下功能是否符合用户的需求、文档是否完整、有没有前面测试中遗漏没有测试出来的BUG。要说明的一点是,此处的验收测试并非客户验收测试,这里没有客户参与测试,只有测试人员参与测试。验收测试是开发结束或进入下一版本的标志性测试。
验收测试的重点测试内容包括:链接完整性测试、UI合理性测试、功能测试、压力测试、页面完整性测试、提示文本测试、浏览器测试、安装测试。