软件测试分类
- 按开发阶段分类
1.单元测试:
又称模块测试,针对软件设计中的最小单位——程序模块,进行正确性检查的测试工作。单元测试需要从程序的内部结构出发设计测试用例。多个模块可以平行地独立进行单元测试。
单元定义:C中指一个函数,Java中指一个类,在图形化的软件中,单元一般指1个窗口,1个菜单。
2. 集成测试:
又叫组装测试,通常在单元测试的基础上,将所有程序模块进行有序的、递增的测试。重点测试不同模块的接口部分。
3.系统测试(system testing):
指的是将整个软件系统看为一个整体进行测试,包括对功能、性能、以及软件所运行的软硬件环境进行测试。
系统测试在系统集成完毕后进行测试,前期主要测试系统的功能是否满足需求,后期主要测试系统运行的性能是否满足需求,以及系统在不同的软硬件环境中的兼容性等。
- 按是否查看源代码
1.黑盒测试(black-box testing)
又称数据驱动测试,完全不考虑程序内部结构和内部特性,注重于测试软件的功能需求,只关心软件的输入数据和输出数据。
2.白盒测试(white-box testing)
指的是把盒子打开,去研究里面的源代码和程序结构。
在软件公司,往往采用黑盒测试&白盒测试相结合的方式。
软件的整体功能和性能进行黑盒测试
软件的源代码采用白盒测试
3.灰盒测试
灰盒测试,是介于白盒测试与黑盒测试之间的一种测试,既可保证黑盒的关注点又可掌控白盒的内部结构,但不会去对内部程序功能和运作做详细了解,灰盒测试结合了白盒测试和黑盒测试的要素。
黑盒测试能发现以下几类错误:
-
功能不对或功能遗漏。
-
界面错误。
-
数据库访问或者处理错误。
-
性能问题。
u黑盒测试的缺点
1、不能测试程序内部特定部位;
2、如果程序未执行的代码无法发现;
3、不可能做到穷举测试
u黑盒测试的优点:
1、测试人员不需要了解实现得细节,包括特定的编程语言(没有编程经验的人也可以设计测试用例);
2、测试人员和编程人员是相互独立的(黑盒测试用例设计与程序如何实现无关);
3、从用户的角度进行测试,很容易被接受和理解;
4、有助于暴露任何与规格不一致或者歧异的地方;
黑盒测试的分类:
1、功能测试(functiontesting)
功能测试是黑盒测试的一方面,它检查实际软件的功能是否符合用户的需求。主要分为:
-
逻辑功能测试(functiontesting)
-
界面测试(UItesting)
-
易用性测试(usability testing)
-
安装测试(installationtesting)
-
兼容性测试(compatibilitytesting)
2、性能测试(performance testing)
性能测试是软件测试的高端领域,性能测试工程师的待遇和白盒测试工程师不相上下,通常我们所说的高级软件测试工程师一般就是指性能测试或是白盒测试工程师。按照测试内容主要分为:
-
时间性能(事务响应时间等)
-
空间性能(系统资源消耗)
-
一般性能测试
-
稳定性测试
-
负载测试:通过负载测试来确定在各种工作负载下,系统各项性能指标的变化情况。
6.压力测试:通过确定一个系统的瓶颈或者刚好不能接受的性能点,来获得系统能够提供的最大服务级别。
- 按是否运行分类
-
静态测试(static testing),指不实际运行被测软件,而只是静态地检查程序代码、界面或文档中可能存在的错误过程。
-
动态测试(dynamic testing),是指实际运行被测程序,输入相应的测试数据,检查实际输出结果和预期结果是否相符的过程。
- 验收测试
α测试
Alpha 是内测版本,即现在所说的CB,此版本表示该软件仅仅是一个初步完成品, 通常只在软件开发者内部交流, 也有很少一部分发布给专业测试人员。一般而言, 该版本软件的bug 较多,普通用户最好不要安装。
β测试
Beta是公测版本,是对所有用户开放的测试版本。该版本相对于α 版已有了很大的改进,消除了严重的错误, 但还是存在着一些缺陷,需要经过大规模的发布测试来进一步消除。这一版本通常由软件公司免费发布, 用户可从相关的站点下载。通过一些专业爱好者的测试, 将结果反馈给开发者, 开发者们再进行有针对性的修改。该版本也不适合一般用户安装。
γ测试
Gamma版本,指的是软件版本正式发行的候选版。该版本已经相当成熟了, 与即将发行的正式版相差无几, 成为正式发布的候选版本。
软件正式版本推出之前的几个版本, 需要有人测试一下, 看看是不是有问题。在开发该软件的公司内部的由该公司内部人员测试的称为: Alpha 测试, Alpha 测试主要看有没有功能缺失或系统错误, Alpha 测试完后一般不会有大问题了。然后把软件拿给用户测试,称为:beta 测试, 主要是看用户对软件外观、使用方便等的反应。这么多的测试版一方面为了最终产品尽可能地满足用户的需要, 另一方面也尽量减少了软件中的bug。然后做过一些修改, 成为正式发布的候选版本时, 叫做gamma( 现在叫做RC - Release Candidate) 。简单来说,阿尔法测试主要是测试人员在开发环境下的测试,贝塔测试是在实际环境中的测试,或者公司内部人员在模拟真实环境中的测试。
- 随机测试(探索测试)
随机测试主要是对被测软件的一些重要功能进行复测,也包括测试那些当前的测试用例没有覆盖到的部分。另外,对于软件更新和新增加的功能要重点测试。重点对一些特殊点情况点、特殊的使用环境、并发性、进行检查。尤其对以前测试发现的重大Bug,进行再次测试,可以结合回归测试(Regressivetesting)一起进行。
- 冒烟测试
冒烟测试是对软件基本功能进行测试,看有没有什么大问题。
- 回归测试
回归测试时指修改了旧代码后,重新进行测试确定修改没有引入新的错误或导致其他代码产生错误。
测试分类图
声明:本文部分内容可能来源或整理自网络,如有侵权,请联系删除。
关注公众号,更多干货等你: