一.软件测试分类介绍
1.按照开发阶段分类
.单元测试
又称模块测试,针对软件设计中的最小单位--程序模块,进行正确性检查的测试工作。单元测试需要从程序的内部结构出发设计测试例。多个模块可以平行地独立进行单元测试。(单元定义:C中指一个函数,java中指一个类,在图形化的软件中,单元一般指1个窗口,1个菜单)
.集成测试
又叫组装测试,通常在单元测试的基础上,将所有程序模块进行有序的、递增的测试。重点测试不同模块的接口部分。
.系统测试
指的是将整个软件系统看为一个整体进行测试,包括对功能、性能、以及软件所运行的软硬件环境进行测试。 系统测试在系统集成完毕后进行测试,前期主要测试系统的功能是否满足需求,后期主要测试系统运行的性能是否满足需求,以及系统在不同的软硬件环境中的兼容性等。
2.按照是否查看源代码
.黑盒测试(black-box testing)
又称数据驱动测试,完全不考虑程序内部结构和内部特性,注重于测试软件的功能需求,只关心软件的输入数据和输出数据。
.白盒测试(white-box testing)
指的是把盒子打开,去研究里面的源代码和程序结构。
在软件公司,往往采用黑盒测试&白盒测试相结合的方式。
---软件的整体功能和性能进行黑盒测试
---软件的源代码采用白盒测试
.灰盒测试
灰盒测试是介于白盒测试与黑盒测试之间的一种测试,既可保证黑盒的关注点又可掌控白盒的内部结构,但不会去对内部程序功能和运作做详细了解,灰盒测试结合了白盒测试和黑盒测试的要素。
3.按照是否运行分类
.静态测试(static testing)
指不实际运行被测软件,而只是静态地检查程序代码、界面或文档中可能存在的错误过程。
.动态测试(dynamic testing)
指实际运行被测程序,输入相应的测试数据,检查实际输出结果和预期结果是否相符的过程。
.验收测试
软件正式版本推出之前的几个版本,需要有人测试一下,看看是不是有问题。在开发该软件的公司内部由该公司内部人员测试的称为:Alpha测试,Alpha测试主要看有没有功能确实或系统错误,Alpha测试完后一般不会有大问题了。然后把软件拿给用户测试,称为:beta测试,主要是看用户对软件外观、使用方便等的反应。这么多的测试版一方面为了最终产品尽可能地满足用户的需要,另一方面也尽量减少了软件中的bug。然后做过一些修改,成为正式发布的候选版本时,叫做gamma(又叫做RC --Release Candidate)。
简单来说,阿尔法测试主要是测试人员在开发环境下的测试,贝塔测试是在实际环境中的测试,或者公司内部人员在模拟真实环境中的测试。
.α测试(Alpha testing)是内测版本,即现在所说的CB,此版本表示该软件仅仅是一个初步完成品,通常只是在软件开发内部交流,也有很少一部分发布给专业测试人员。一般而言,该版本软件的bug较多,最好不要安装。
.β测试(Beta testing)是公测版本,是对所有用户开放的测试版本。该版本相对于α版已有了很大的改进,消除了严重的错误,但还是存在着一些缺陷,需要经过大规模的发布测试来进一步消除。这一版本通常由软件公司免费发布,用户可从相关的站点下载。通过一些专业爱好者的测试,将结果反馈给开发者,开发者们再进行有针对性的修改。该版本也不适合一般用户安装。
.γ测试(Gamma testing)是软件正式发行的候选版。与即将发行的正式版相差无几,成为正式发布的候选版本。