测试分类 --- 根据项目流程阶段和代码可见度划分

1、根据项目流程阶段划分: 单元测试、集成测试、系统测试、验收测试
单元测试:单元测试是对软件中的基本组成单位进行的测试。目的是检验软件基本组成单位的正确性。
集成测试:集成测试是在软件系统集成过程当中所进行的测试。目的是检查软件单位之间的接口是否正确。
系统测试:系统测试是对已经集成好的软件系统进行完全的测试,以验证软件系统的正确性和性能等是否知足其规约所指定的要求。
验收测试:验收测试是部署软件以前的最后一个测试操做。验收测试的目的是确保软件准备就绪,向软件购买都展现该软件系统知足其用户的需求。安全

==>单元测试阶段
模块接口测试
  经过所测模块的数据流进行测试。调用所测模块时的输入参数与模块的形式参数的个数、属性和顺序是否匹配。
局部数据结构测试   局部数据结构是为了保证临时存储在模块内的数据在程序执行过程当中完整、正确、模块的局部数据结构每每是错误的根源。
路径测试
  对模块中重要的执行路径进行测试。
错误处理测试
  比较完善的模块设计要求能碰见出错的条件,并设置适当的出错处理,以便在一旦程序出错时,能对出错程序重作安排,保证其逻辑上的正确性。
边界条件测试
  软件常常在便捷上失效,边界条件测试是一项基础测试,也是后面系统测试中的功能测试的重点。

==>集成测试阶段
在集成测试中,咱们主要关注如下内容:
1. 把各个模块链接起来时,穿越模块接口的数据据是否会丢失。
2. 各个了模块组合起来,可否达到预期要求的功能。
3. 一个模块的功能是否会对另外一个模块的功能产生不利影响。
4. 全局数据据结构是否有问题。
5. 单个模块的偏差积累起来是否会被放大,从而达到不可接受的程序。

==>系统测试阶段
  通常系统的主要测试工做都集中系统测试阶段。根据不一样的系统,所进行的测试种类也不少。
功能测试:
  功能测试是对产品的各功能进行验证,以检查是否知足需求的要求。
性能测试:
  性能测试是经过自动化测试工具模拟多种正常、峰值以及异常负载条件来对系统的各项性能指标进行测试。
安全测试:
  安全测试检查系统对非法入侵的防范能力。
兼容测试:
  兼容性测试主要是测试系统在不一样的软硬件环境下是否可以正常的运行。

==>验收测试阶段:
功能确认测试
安全可靠性测试
易用性测试
可扩充性测试
兼容性测试
资源占用率测试
用户文档资料验收 网络

 


2、根据代码的可见程度划分: 白盒测试、黑盒测试、灰盒测试
上面是根据项目流程按照测试的各个阶段对测试工具的划分。白盒测试与黑盒测试,主要是测试工做对软件代码的的可见程度的划分。这也是我软件测试中领域中最基本的两个概念。
==>黑盒测试:
  黑盒测试,指的是把被测的软件看做是一个黑盒子,咱们不去关心盒子里面的结构是什么样子的,只关心软件的输入数据和输出结果
它只检查程序功能是否按照需求规格说明书的规定正常使用,程序是否能适当地接收输入数据而产生正确的输出信息。黑盒测试着眼于程序外部结构,不考虑内部逻辑结构,主要针对软件界面和软件功能进行测试。
==>白盒测试:
  白盒测试,指的是把盒子盖子打开,去研究里面的源代码和程序结果。
  它是按照程序内部的结构测试程序,经过测试来检测产品内部动做是否按照设计规格说明书的规定正常进行,检验程序中的每条通路是否都能按预约要求正确工做
==>灰盒测试:
  灰盒测试介于黑盒测试与白盒测试之间。
  能够这样理解,灰盒测试关注输出对于输入的正确性,同时也关注内部表现,但这种关注不象白盒那样详细、完整,只是经过一些表征性的现象、事件、标志来判断内部的运行状态,有时候输出是正确的,但内部其实已经错误了,这种状况很是多,若是每次都经过白盒测试来操做,效率会很低,所以须要采起这样的一种灰盒的方法。 数据结构

 


功能测试、性能测试
==>功能测试
  功能测试检查实际的功能是否符合用户的需求。测试的大部分工做也是围绕软件的功能进行,设计软件的目的也就是知足客户对其功能的需求。若是偏离的这个目的任何测试工做都是没有意义的。
  功能测试又可能够细分为不少种:逻辑功能测试、界面测试、易用性测试、安装测试、兼容性测试等。
==>性能测试
  性能测试是经过自动化的测试工具模拟多种正常、峰值以及异常负载条件来对系统的各项性能指标进行测试。
  软件的性能包括不少方面,主要有时间性能和空间性能两种。
  时间性能:主要是指软件的一个具体的响应时间。好比一个登陆所须要的时间,一个交易所须要的时间等。固然,抛开具体的测试环境,来分析一次事务的响应时间是没有任何意义的。须要搭建一个具体且独立的测试环境。
  空间性能:主要指软件运行时所消耗的系统资源,好比硬件资源,CPU、内存,网络带宽消耗等。
并发

 


手工测试与自动化测试
==>手工测试:
  手工测试就是由人去一个一个的去执行测试用例,经过键盘鼠标等输入一些参数,查看返回结果是否符合预期结果。
(其实,不太喜欢别人把通常的功能测试工做叫手工测试,就像一个雕塑家不喜欢别人叫他刻石头的同样。手工测试一样须要业务熟悉、基本测试方法的理解。看似简单的工做却可以发现别人不能发现的软件问题。在目前的测试领域,手工测试仍然是没法替代的一种测试方法)
==>自动化测试
  自动化测试是把以人为驱动的测试行为转化为机器执行的一种过程。一般,在设计了测试用例并经过评审以后,由测试人员根据测试用例中描述的规程一步步执行测试,获得实际结果与指望结果的比较。在此过程当中,为了节省人力、时间或硬件资源,提升测试效率,便引入了自动化测试的概念。
  自动化测试:又可分为功能自动化测试与性能自动化测试。
  咱们通常所说的自动化测试就是指功能自动化测试,经过相关的测试技术,经过编码的方式用一段程序来测试一个软件的功能,这样就能够重复执行程序来进行重复的测试。若是一个软件一小部分发生改变,咱们只要修改一部分代码,就能够重复的对整个软件进行功能测试。这样就大大的提升了测试效率。
  性能自动化测试,固然,除了早期阶段,如今的性能测试工做都是经过性能测试工具辅助完成的。能过工具能够模拟成千上万的用户向系统发送请求,用来验证系统的处理能力。 工具

 

 

冒烟测试、回归测试、随机测试、探索性测试、安全测试
这三种测试在软件功能测试过程当中,既不算具体明确的测试阶段也不算是具体的测试方法。
==>冒烟测试:
  是指在对一个新版本进行系统大规模的测试以前,先验证一下软件的基本功能是否实现,是否具有可测性。
  引入到软件测试中,就是指测试小组在正规测试一个新版本以前,先投入较少的人力和时间验证一个软件 的主要功能,若是主要功能都没有实现,则打回开发组从新开发。这样作的好处是能够节省大量的时间成本和人力成本。
==>回归测试:
  回归测试是指修改了旧代码后,从新时行测试以确认修改后没有引入新的错误或致使其余代码产生错误。
  回归测试通常是在进行软件的第二轮测试开始的,验证第一轮中发现的问题是否获得修复。固然,回归也是一个循环的过程,若是回归的问题通不过,则须要开发人员修改后再次进行回归,直到经过为止。
==>随机测试:
  是指测试中的全部输入数据都是随机生成的,其目的是模拟用户的真实操做,并发现一些边缘性的错误。
  随机测试能够发现一些隐蔽的错误,可是也有不少缺点,好比测试不系统,没法统计代码覆盖率和需求覆盖率,发现的问题难以重现。通常是放在测试的最后执行。其实随机测试更专业的升级版叫 探索性测试
==>探索性测试
  探索性测试能够说是一种测试思惟技术。它没有不少实际的测试方法、技术和工具,可是倒是全部测试人员都应该掌握的一种测试思惟方式。探索性强调测试人员的主观能动性,抛弃繁杂的测试计划和测试用例设计过程,强调在碰到问题时及时改变测试策略。
  探索性测试应该是将来测试领域的一个方向。
==>安全测试
安全测试是在IT软件产品的生命周期中,特别是产品开发基本完成到发布阶段,对产品进行检验以验证产品符合安全需求定义和产品质量标准的过程。
安全测试也在愈来愈受到企业的关注和重视,由于因为安全性问题形成的后果是不可估量的。尤为对于互联网产品最容易遭受各类安全攻击。性能

相关文章
相关标签/搜索