测试种类

来源:互联网 发布:matlab迭代阈值算法 编辑:程序博客网 时间:2024/04/28 14:19

参考虫师博客:http://www.cnblogs.com/fnng/archive/2012/10/24/2737972.html

一 按照项目流程阶段划分:单元测试  集成测试 系统测试 验收测试

单元测试(Unit Testing)

由开发人员进行。单元测试时针对软件测试的最小单位----程序模块进行正确性检验的测试工作,其目的在与发现每个程序模块内部可能存在的缺陷。单元测试基本不需要编写测试用例,开发人员自己调试通过、符合设计要求就可以了。为测试时隔离模块,经常使用stubs、mock或fake等测试马甲程序。

包含模块功能测试、部分接口测试、路径测试。

集成测试(Integration Testing)

大部分企业由开发人员完成集成测试。集成测试时将模块按照设计要求组装起来进行测试,主要目标是发现与接口有关的问题,主要测试模块之间数据传输是否正确、模块集成后功能是否实现、模块接口功能也设计需求是否一致。集成测试是最关键的一步,如果问题较多就把产品送到测试部,会造成反复测试,浪费人力物力。

包含接口测试、路径测试、部分功能测试。

系统测试(System Testing)

主要由测试部门进行,是测试部门最大最重要的一个测试。系统测试主要目的是充分运行系统,验证各子系统是否都能正常工作并完成设计的要求。这个测试需要编写大量的测试用例,投入大量的资源来完成。

包含功能测试、健壮性测试、性能测试、用户界面测试、安全性测试、压力测试、可靠性测试、安装/反安装测试。

验收测试(Acceptance Testing)

主要由测试和客户共同进行。验收测试需要根据需求阶段的《需求规格说明书》为验收标准,测试时要求模拟实际运行环境。测试内容为对功能模块的全面测试,尤其要进行文档测试。

包含的测试基本同“系统测试”,并包含文档测试。

二 按照代码可见度划分:白盒测试 灰盒测试 黑盒测试

白盒测试(White-Box Testing)

白盒测试也称结构测试或逻辑驱动测试,它是知道产品内部工作过程,可通过测试来检测产品内部动作是否按照规格说明书的规定正常进行,按照程序内部的结构测试程序,检验程序中的每条通路是否都有能按预定要求正确工作,而不顾它的功能。白盒测试的主要方法有逻辑驱动、基路测试等,主要用于软件验证。

黑盒测试(Black-Box Testing)

黑盒测试也称功能测试或数据驱动测试,它是在已知产品所应具有的功能,通过测试来检测每个功能是否都能正常使用,在测试时,把程序看作一个不能打开的黑盆子,在完全不考虑程序内部结构和内部特性的情况下,测试者在程序接口进行测试,它只检查程序功能是否按照需求规格说明书的规定正常使用,程序是否能适当地接收输入数锯而产生正确的输出信息,并且保持外部信息(如数据库或文件)的完整性。

灰盒测试(Grey-Box Testing)

灰盒测试结合了白盒测试盒黑盒测试的要素。它考虑了用户端、特定的系统知识和操作环境。它在系统组件的协同性环境中评价应用软件的设计。

三 按照测试关注点:功能测试 性能测试

功能测试(Function Testing)

功能测试检查实际的功能是否符合用户的需求。测试的大部分工作也是围绕软件的功能进行,设计软件的目的也就是满足客户对其功能的需求。如果偏离的这个目的任何测试工作都是没有意义的。

功能测试又可可以细分为很多种:逻辑功能测试、界面测试、易用性测试、安装测试、兼容性测试等。

性能测试(Performance Testing)

性能测试是通过自动化的测试工具模拟多种正常、峰值以及异常负载条件来对系统的各项性能指标进行测试。

软件的性能包括很多方面,主要有时间性能和空间性能两种。

  • 时间性能:主要是指软件的一个具体的响应时间。比如一个登录所需要的时间,一个交易所需要的时间等。当然,抛开具体的测试环境,来分析一次事务的响应时间是没有任何意义的。需要搭建一个具体且独立的测试环境。
  • 空间性能:主要指软件运行时所消耗的系统资源,比如硬件资源,CPU、内存,网络带宽消耗等。

四 按照测试实现方式划分:手动测试 自动测试

手动测试(Manual Testing)

由测试人员一步一步执行完成的测试。目前仍然是主流。

自动化测试(Automation Testing)

有测试人员编写测试脚本,然后让机器自动化执行的测试。

五 其他测试

回归测试(Regression Testing)

回归测试是指修改了旧代码后,重新实行测试以确认修改后没有引入新的错误或导致其他代码产生错误。

回归测试一般是在进行软件的第二轮测试开始的,验证第一轮中发现的问题是否得到修复。当然,回归也是一个循环的过程,如果回归的问题通不过,则需要开发人员修改后再次进行回归,直到通过为止。

冒烟测试(Smoking Testing)

是指在对一个新版本进行系统大规模的测试之前,先验证一下软件的基本功能是否实现,是否具备可测性。

引入到软件测试中,就是指测试小组在正规测试一个新版本之前,先投入较少的人力和时间验证一个软件 的主要功能,如果主要功能都没有实现,则打回开发组重新开发。这样做的好处是可以节省大量的时间成本和人力成本。



0 0
原创粉丝点击