目前,软件测试已经形成一个完整的、体系庞大的学科,不同的测试领域都有不同的测试方法、技术与名称,我们可能也听过类似的黑盒测试、白盒测试、冒烟测试、单元测试等,其实它们是按照不同的分类方法而产生的测试名称。按照不同的分类标准,可以将软件测试分为很多不同的种类,下面我们详细介绍这些软件测试行业的专业名词。
按照测试阶段分类
按照测试阶段可以将软件测试分为单元测试、集成测试、系统测试与验收测试。这种分类方式与软件开发过程相契合,是为了检验软件开发各个阶段是否符合要求。
1.单元测试
单元测试是软件开发的第一步测试,目的是为了验证软件单元是否符合软件需求与设计。单元测试大多是开发人员进行的自测 。
2.集成测试
集成测试是冒烟测试之后进行的测试,它是将已经测试过的软件单元组合在一起测试它们之间的接口,用于验证软件是否满足设计需求。
3.系统测试
系统测试是将经过测试的软件在实际环境中运行,并与其他系统的成分(如数据库、硬件和操作人员等)组合在一起进行的测试。
4.验收测试
验收测试主要是对软件产品说明进行验证,逐行逐字地按照说明书的描述对软件产品进行测试,确保其符合客户的各项要求。
按照测试技术分类
按照使用的测试技术可以将软件测试分为黑盒测试与白盒测试。
1.黑盒测试
黑盒测试就是把软件(程序)当作一个有输入与输出的黑匣子,它把程序当作一个输入域到输出域的映射,只要输入的数据能输出预期的结果即可,不必关心程序内部是怎么样实现的。
2.白盒测试
白盒测试又叫透明盒测试,它是指测试人员了解软件程序的逻辑结构、路径与运行过程,在测试时,按照程序的执行路径得出结果。白盒测试就是把软件(程序)当作一个透明的盒子,测试人员清楚地知道从输入到输出的每一步过程。
相对于黑盒测试来说,白盒测试对测试人员的要求会更高一点,他要求测试人员具有一定的编程能力,而且要熟悉各种脚本语言。但是在软件公司里,黑盒测试与白盒测试并不是界限分明的,在测试一款软件时往往是黑盒测试与白盒测试相结合对软件进行完整全面的测试。
按照软件质量特性分类
按照软件质量特性可以将软件测试分为功能测试与性能测试。
1.功能测试
功能测试就是测试软件的功能是否满足客户的需求,包括准确性、易用性、适合性、互操作性等。
2.性能测试
性能测试就是测试软件的性能是否满足客户的需求,性能测试包括负载测试、压力测试、兼容性测试、可移植性测试和健壮性测试。
按照自动化程度分类
按照自动化程度可以将软件测试分为手工测试与自动化测试。
1.手工测试
手工测试是测试人员一条一条地执行代码完成测试工作。手工测试比较耗时费力,而且测试人员如果是在疲惫状态下,则很难保证测试的效果。
2.自动化测试
自动化测试是借助脚本、自动化测试工具等完成相应的测试工作,它也需要人工的参与,但是它可以将要执行的测试代码或流程写成脚本,执行脚本完成整个测试工作。
按照测试类型分类
软件测试类型有多种,包括界面类测试、功能测试、性能测试、安全性测试、文档测试等,其中功能测试与性能测试前面已经介绍,下面主要介绍其他几种测试。
1.界面类测试
界面类测试是验证软件界面是否符合客户需求,包括界面布局是否美观、按钮是否齐全等。
2.安全性测试
安全性测试是测试软件在没有授权的内部或外部用户的攻击或恶意破坏时如何进行处理,是否能保证软件与数据的安全。
3.文档测试
文档测试以需求分析、软件设计、用户手册、安装手册为主,主要验证文档说明与实际软件之间是否存在差异。
其他分类
还有一些软件测试无法具体归到哪一类,但在测试行业中也会经常进行这些测试,如α测试、β测试、回归测试等,具体介绍如下。
1.α测试
α测试是指对软件最初版本进行测试。软件最初版本一般不对外发布,在上线之前,由开发人员和测试人员或者用户协助进行测试。测试人员记录使用过程中出现的错误与问题,整个测试过程是可控的。
2.β测试
β测试是指对上线之后的软件版本进行测试,此时软件已上线发布,但发布的版本中可能会存在较轻微的Bug,由用户在使用过程中发现错误与问题并进行记录,然后反馈给开发人员进行修复。
3.回归测试
当测试人员发现缺陷以后,会将缺陷提交给开发人员,开发人员对程序进行修改,修改之后,测试人员会对修改后的程序重新进行测试,确认原有的缺陷已经消除并且没有引入新的缺陷,这个重新测试的过程就叫作回归测试。回归测试是软件测试工作中非常重要的一部分,软件开发的各个阶段都会进行多次回归测试。
4.随机测试
随机测试是没有测试用例、检查列表、脚本或指令的测试,它主要是根据测试人员的经验对软件进行功能和性能抽查。随机测试是根据测试用例说明书执行测试用例的重要补充手段,是保证测试覆盖完整性的有效方式和过程。