软件测试是指使用人工或者自动的手段来运行或测定某个软件产品系统的过程,其目的是在于检验是否满足规定的需求或者弄清预期的结果与实际结果的区别。本文主要描述软件测试的一些常见分类。

 

一、按项目流程阶段划分

    按软件项目流程可划分为单元测试、集成测试、系统测试和验收测试四类测试。

(1)单元测试 Unit Testing

  是指对软件中的最小可测试单元进行检查和验证。其中单元测试又可分为模块接口测试、局部数据结构测试、路径测试、错误处理测试和边界条件测试等,

(2)集成测试

  也叫组装测试或联合测试。在单元测试的基础上,将所有模块按照设计要求组装成为子系统或系统,进行集成测试。

(3)系统测试 System Testing

  是对整个系统的测试,将硬件、软件、操作人员看作一个整体,检验它是否有不符合系统说明书的地方。而系统测试又可分为功能测试、性能测试、安全测试  和兼容测试。

  • 功能测试

      是对产品的各功能进行验证,根据功能测试用例,逐项测试,检查产品是否达到用户要求的功能。

  • 性能测试

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

  • 安全测试

      是在IT软件产品的生命周期中,特别是产品开发基本完成到发布阶段,对产品进行检验以验证产品符合安全需求定义和产品质量标准的过程。

  • 兼容测试

      指对所设计程序与硬件、软件之间的兼容性的测试。

(4)验收测试

  是部署软件之前的到最后一个测试操作,也称交付测试。目的是确保软件准备就绪,并且可以让最终用户将其用于执行软件的既定功能和任务。而验收测试又可分为功能确认测试、安全可靠性测试、易用性测试、可扩充性测试、兼容性测试、资源占有率测试和用户文档资料验收。

二、按代码可见程度划分

    按代码可见程度划分为白盒测试、灰盒测试和黑盒测试三类。

(1)白盒测试

     又称结构测试、透明盒测试、逻辑驱动测试或基于代码的测试。它是一种测试用例设计的方法,盒子是指被测试的软件,白盒指的是盒子的可视的,即清楚盒子内部的东西以及里面是如何运作的。

(2)灰盒测试

     是介于白盒测试与黑盒测试之间的一种测试,它多用于集成测试阶段,不仅关注输出、输入的正确性,同时也关注程序内部的情况。

(3)黑盒测试

     它是通过测试来检测每个功能是否都能正常使用。在测试中,把程序看作一个不能打开的黑盒子,在完全不考虑程序内部结构和内部特性的情况下,在程序接口进行测试,它只检查程序功能是否按照需求规格说明书的规定正常使用,程序是否能适当地接受输入数据而产生正确的输出信息。

三、按测试执行方式划分

    按测试执行方式划分为静态测试和动态测试两类。

(1)静态测试

     指不运行被测程序本身,仅通过分析或检查源程序的语法、结构、过程、接口等来检查程序的正确性。

(2)动态测试

     指通过运行被测程序,检查运行结果与预期结果的差异,并分析运行效率、正确性和健壮性等性能。

四、按自动化程度划分

    按自动化程度可划分为手工测试和自动化测试两类。

(1)手工测试

     是由人去一个一个的输入用例,然后观察结果,和机器测试相对应,属于较原始但必须的一个步骤。

(2)自动化测试

     是把以人为驱动的测试行为转化为机器执行的一种过程。通常,在设计了测试用例并通过评审之后,由测试人员根据测试用例中描述的规程一步步执行测试,得到实际结果与期望结果的比较。在此过程中,为了节省人力、时间或者硬件资源,提高测试效率,便引入了自动化测试的概念。

五、其他

    除了以上一些测试类别外,还有几种常见的测试分类,如冒烟测试、敏捷测试和探索性测试等。

(1)冒烟测试

      将代码更改嵌入到产品的源树中之前对这些更改进行验证的过程。

(2)敏捷测试

      是不断修正质量指标,正确建立测试策略,确认客户的有效需求能得以圆满实现和确保整个生产的过程安全的、及时的发布最终产品。

(3)探索性测试

      是一种测试思维技术。探索性强调测试人员的主观能动性,抛弃繁杂的测试计划和测试用例设计过程,强调在碰到问题时及时改变测试策略。

 本文主要是对常见的软件测试分类做一个简要的基本概述,让读者对软件测试类别有一个基本的认识。

内容来源于网络如有侵权请私信删除