软件测试-测试手段分类

1. 按测试手段来分类:

黑盒测试、白盒测试、灰盒测试
  静态测试、动态测试
  手工测试、自动化测试

1.1 白盒测试

在这里插入图片描述定义: 
白盒测试又称结构测试、透明盒测试、逻辑驱动测试或基于代码的测试。 白盒测试是一种测试用例方法,盒子指的是被测试的软件,白盒指的是盒子是可视的,你清楚盒子内部的东西以及里面是如何运作的。"白盒"法全面了解程序内部逻辑结构、对所有逻辑路径进行测试。"白盒"法是穷举路径测试。在使用这一方案时,测试者必须检查程序的内部结构,从检查程序的逻辑着手,得出测试数据。贯穿程序的独立路径数是天文数字。
逻辑覆盖测试:
通过检查内部的结构来判断功能有没有问题, 对应软件上就是 不去运行代码,去看代码,直接去看代码写的对不对
插桩测试:
如果后面流程没做完, 进行模拟化,不用真的有接口,做一个假的接口。
(比如现在有一个APP,前期的操作都做好了,现在需要有给app充钱的操作,但是还没做好,并且不同银行接口不同报文不同,所以做一个系统能模拟不同银行给app充钱的操作。)

图示:
在这里插入图片描述
优点:
  1.迫使测试人员去仔细思考软件的实现,理解原理
  2.可以检测代码中的每一条分支和路径
  3.揭示隐藏在代码中的错误
  4.对代码的测试比较彻底
缺点:
  1.昂贵
  2.无法检测代码中遗落的路径和数据敏感性错误 (代码本身就少写了些数据的话是没法检测到的)
  3.不能直接验证需求的正确性(白盒测试是针对代码来的而不是针对需求)
主要测试方法:
在这里插入图片描述

1.2 黑盒测试

在这里插入图片描述 
定义:
把程序看作一个不能打开的黑盒子,在完全不考虑程序内部结构和内部特性的情况下,在程序接口进行测试,它只检查程序功能是否按照需求规格说明书的规定正常使用,程序是否能适当地接收输入数据而产生正确的输出信息。主要针对软件界面和软件功能进行测试。
(看不到内部的东西,只根据外部来判断测试,只在乎输入和输出,看输入与输出是否能对应上)
(看不到内部的东西,只根据外部来判断测试,只在乎输入和输出,看输入与输出是否能对应上,一般来说是对软件的界面或者可见的功能)
比如:
QQ 在乎是否能发送消息 A发送消息 大家可以收到,但是对于消息如何发送出去的技术并不关心
图例:
在这里插入图片描述
优点: 
  1.容易实施,不需要关注内部的实现
  2.更贴近用户的使用角度
缺点:
  1.测试覆盖率角度,一般只能覆盖到代码量的不到40%;(因为不了解内部实现,所以很多内部分支我们是不知道的)
  2.针对黑盒测试的自动化测试,复用率较低,维护成本较高;(针对功能来做的自动化测试,因为把功能变更很快,所以复用率较低)
关注点:
  1.是否有不正确或者遗漏的功能?
  2.在接口上,输入是否能正确的接受?能否输出正确的结果?
  3.是否有数据结构错误或者外部信息(例如数据文件)访问错误?
  4.性能上是否能够满足要求? (系统测试阶段用黑盒测试比较多)
黑盒测试的主要设计方法
在这里插入图片描述

1.3 灰盒测试

灰盒测试介于两种之间,既可以通过外部也可以通过观察结构
灰盒测试,是介于白盒测试与黑盒测试之间的,可以这样理解,灰盒测试关注输出对于输入的正确性,同时也关注内部表现,但这种关注不象白盒那样详细、完整,只是通过一些表征性的现象、事件、标志来判断内部的运行状态,有时候输出是正确的,但内部其实已经错误了,这种情况非常多,如果每次都通过白盒测试来操作,效率会很低,因此需要采取这样的一种灰盒的方法。

灰盒测试的特点:
灰盒测试结合了白盒测试盒黑盒测试的要素。它考虑了用户端、特定的系统知识和操作环境。它在系统组件的协同性环境中评价应用软件的设计。
灰盒测试由方法和工具组成,这些方法和工具取材于应用程序的内部知识盒与之交互的环境,能够用于黑盒测试以增强测试效率、错误发现和错误分析的效率。
灰盒测试涉及输入和输出,但使用关于代码和程序操作等通常在测试人员视野之外的信息设计测试。

执行灰盒测试有什么好处呢?
1、 能够进行基于需求的覆盖测试和基于程序路径覆盖的测试;
2、 测试结果可以对应到程序内部路径,便于bug的定位、分析和解决;
3、 能够保证设计的黑盒测试用例的完整性,防止遗漏软件的一些不常用的功能或功能组合;
4、 能够需求或设计不详细或不完整对测试造成的影响。

进行灰盒测试有什么缺点呢?
1、 投入的时间比黑盒测试大概多20-40%的时间;
2、 对测试人员的技术要求更高;

1.4 静态测试

静态测试(static testing)就是不实际运行被测软件,而只是静态地检查程序代码、界面或文档中可能存在的错误的过程。
方式有:
互审 走查 会议

1.5 动态测试

动态测试(dynamic testing),指的是实际运行被测程序,输入相应的测试数据,检查实际输出结果和预期结果是否相符的过程,所以判断一个测试属于动态测试还是静态的,唯一的标准就是看是否运行程序。
黑盒测试有可能是动态测试(运行程序,看输入输出),也有可能是静态测试(不运行,只看界面)

白盒测试有可能是动态测试(运行程序并分析代码结构),也有可能是静态测试(不运行程序,只静态察看代码)

动态测试有可能是黑盒测试(运行,只看输入输出),也有可能是白盒测试 (运行并分析代码结构)

静态测试有可能是黑盒测试(不运行,只察看界面),也有可能是白盒测试(不运行,只察看代码)

1.6 手工测试

手工测试是一种软件测试,手工测试人员执行测试用例不使用任何自动化工具,俗称点点点。
手工测试是最原始的测试类型,帮助发现软件系统的缺陷。更适合针对于强调主观判断的测试

1.7 自动化测试

单元测试、接口测试、性能测试等
自动化和手工的区别:
在这里插入图片描述

发布了82 篇原创文章 · 获赞 7 · 访问量 4191

猜你喜欢

转载自blog.csdn.net/sunshine612/article/details/105102497
今日推荐