目录
1.根据源代码可见度划分
1.1黑盒测试
也称功能测试、数据驱动测试,它将被测软件看作一个打不开的黑盒,主要根据功能需求设计测试用例,进行测试。
概念:黑盒测试是从一种从软件外部对软件实施的测试,也称功能测试或基于规格说明的测试。这种观点将被测程序看作一个打不开的黑盒,黑盒里面的内容(实现)是完全不知道的,只知道软件要做什么。因无法看到盒子中的内容,所以不知道软件是如何实现的,也不关心黑盒里面的结构,只关心软件的输入数据和输出结果。
检测软件功能能否按照需求规格说明书的规定正常工作,是否有功能遗漏;
检测是否有人机交互错误,是否有数据结构和外部数据库访问错误,是否能恰当地接收数据并保持外部信息(如数据库或文件)等的完整性;
检测行为、性能等特性是否满足要求等; 检测程序初始化和终止方面的错误等。
黑盒测试的优点:不需要了解程序内部的代码以及实现,不关注软件内部的实现。从用户角度出发设计测试用例,很容易的知道用户会用到哪些功能,会遇到哪些问题,锻炼测试人员的产品思维,测试用例是基于软件需求开发文档,不容易遗漏软件需求文档中需要测试的功能。
黑盒测试的缺点:不可能覆盖所有代码
黑盒测试用到的测试方法有,等价类,边界值,因果图,场景法,错误猜测法等
1.2白盒测试
与侧重于功能的黑盒测试相反,白盒测试方法的目标是对软件的内部结构及其背后的逻辑进行分析。因此,白盒测试有时称为结构测试或逻辑测试。这种方法非常耗时,并且要求测试人员具有强大的编码技能,对他们正在测试的软件的全面了解,并且可以访问所有源代码和体系结构文档,否则,测试人员将无法设计适当的测试用例。
因此,白盒测试通常是由专业开发人员执行的,他们使用他们的专业知识来获得结构的内部观点,弄清楚源代码中到底发生了什么,并修复了无法正常工作的问题。除了深入的知识外,该方法还需要用于源代码分析和调试的专用工具。
白盒测试的优点:代码覆盖率比较高
白盒测试的缺点:业务功能覆盖不高
白盒测试主要包含六种测试方法: 语句覆盖、判定覆盖、条件覆盖、判定条件覆盖、条件组合覆盖、路径覆盖。
1.3灰盒测试
灰盒测试介于白盒测试与黑合测试之间。灰盒测试关注输出对于输入的正确性,同时也关注内部表现,但这种关注不象白盒那样详细、完整,只是通过一些表征性的现象、事件、标志来判断内部的运行状态,有时候输出是正确的,但内部其实已经错误了,这种情况非常多,如果每次都通过白盒测试来操作,效率会很低,因此需要采取这样的一种灰盒测试的方法。
2.根据开发阶段划分
2.1单元测试
单元测试是测试过程中的最小粒度,是对程序中的单个子程序或具有独立功能的代码段进行测试,包含入口和出口的参数,输入和输出信息,错误处理信息,部分边界数值测试。
2.2集成测试
集成测试是单元测试的基础上,将通过单元模块组装成系统或子系统,再进行测试,重点是检查模块之间的接口是否正确。
2.3系统测试
系统测试是测试发现问题的主要阶段,针对整个产品系统的进行测试,验证系统是否满足需求规格说明书的定义,以及软件系统的正确性和性能等是否满足要求。
其中系统测试中也涵盖了回归测试和冒烟测试
回归测试:回归测试是指修改了旧代码后,重新进行测试以确认修改后没有引入新的错误或导致其他代码产生错误。回归测试一般是在进行软件的第二轮测试开始的,验证第一轮中发现的问题是否得到修复。当然,回归也是一个循环的过程,如果回归的问题通不过,则需要开发人员修改后再次进行回归,直到通过为止。
冒烟测试:是指在对一个新版本进行系统大规模的测试之前,先验证一下软件的基本功能是否实现,是否具备可测性。引入到软件测试中,就是指测试小组在正规测试一个新版本之前,先投入较少的人力和时间验证一个软件的主要功能,如果主要功能都没有实现,则打回开发组重新开发。避免由于打包失误、功能严重缺失、硬件部件损坏导致软件运行失败等严重问题而引起大量测试人员从事没有意义的测试劳动,从而节省大量的时间成本和人力、物力成本。
2.4验收测试
验收测试是部署软件之前的最后一个测试操作。验收测试的目的是确保软件