产品不同测试阶段的测试分析

2020-11-03 10:08:02 浏览数 (1)

来源:http://www.51testing.com

摘要

软件测试应该贯穿软件产品的整个研发周期,在不同的研发阶段,会有不同的测试方法和手段跟进。进行不同的测试来保障产品的质量。软件测试的分类有很多种,本文章就以一个产品开发的流程为时间线,分析在产品不同的研发阶段采用的不同的对应的测试方法和手段。本文只罗列出测试手段和方法,每种测试方法详细的测试过程由于篇幅受限,不详细探讨。

1、规格说明书审查

  审查需求分析规格说明书是否完整、正确和清晰。这一步是最容易忽略却是很关键的一步。软件设计是基于用户需求的,充分理解用户的需求才能研发出与用户需求一致的产品。测试人员需要审查客户需求,为以后的测试计划和设计测试用例做准备。

2、系统和程序设计审查

  按照需求规格说明书对系统结构的合理性、处理过程的正确性进行评价,也就是代码会审,需要研发与测试人员一起参加,通过阅读讨论来审查程序结构、代码风格、算法等。

3、单元测试

  单元测试的对象是程序系统中的最小单元,模块或者组件。主要使用的测试方法为白盒测试,并在测试过程中尽可能地提高语句覆盖率、判断覆盖率、条件覆盖率。在测试过程中有时需要辅以黑盒测试。单元测试通常采取的手段有代码走读、静态分析和动态分析等。

4、集成测试

  在单元测试的基础上,将模块按照设计要求组装起来同时进行测试。集成测试采用的手段与单元测试类似。不同的是其主要的目的是发现与模块之间的接口有关的问题。将各个模块之间集成起来的方法有多种,如自顶向下法、自底向上法、混合策略、大棒与三明治集成方法等。以下是各种集成方法的性能比较。

5、功能测试

  功能测试多采用黑盒测试的方法,主要是根据产品规格说明书,来检测被测系统是否满足各方面功能的使用需求。在功能测试中,使用黑盒测试的方法时测试用例的设计很重要,通常需要用等价类划分法、边界值划分法、决策表、因果图等方法来设计高质量的测试用例。

6、系统测试

  系统测试是将软件作为计算机系统的一部分,与计算机硬件、计算机的某些支持软件、数据、人员等系统元素结合起来,在实际运行环境下对计算机系统进行测试来发现软件潜在的问题。主要包括了以下测试:

6.1压力测试

  长时间或者超大负荷地运行被测软件,来测试被测系统的性能、可靠性、稳定性等。了解被测系统的性能瓶颈。

6.2容量测试

  分析被测系统的某项指标的极限值,如某个Web站点可以支持的并发用户的的访问量极限等。如果不能满足需求则需要进行改进。

6.3性能测试

性能测试又包含如下测试等:

  基准测试

  比较被测对象与已知的参照对象的负载和系统的性能。

  竞争测试

  测试被测对象对于多个用户对相同资源的请求的处理是否可以接受。

  负载测试

  测试和评估被测系统在不同负荷条件下操作极限的可接受性,包括负载和响应时间的特征。如果是分布式系统或者采用了负载均衡等技术,还需要测试负载平衡方法能否正常工作。

  强度测试

  测试系统遇到异常条件时按预期运行,如不充足的内存、不可用的服务或者硬件、过低的共享资源等。

6.4安全测试

  测试系统对风法入侵的防范能力

6.5容错测试

  测试被测系统出错时能否在指定时间内修正错误并重新启动系统、恢复数据等。对于需要人工干预的系统,还需要评估系统恢复时间是否在可接受范围以内。

6.6可靠性测试

  测试系统在规定条件下的规定时间内完成规定功能的能力

6.7安装测试

  检测被测系统是否能正确地安装,安装过程是否有明显和合理的提示信息、升级安装后原有程序是否能正常运行等。卸载后占用的系统资源是否全部释放、卸载后是否会影响其它软件的使用等。

7、验收测试

  验收测试包含了以下测试

7.1用户界面和可用性测试

  这便是我们常说的UI测试,主要检测用户界面是否符合标准和规范,是否满足直观性、一致性、灵活性、舒适性、正确性、实用性等。

7.2兼容性测试

  验证软件之间是否能正确地交互和共享信息。包括对不同版本之间的兼容性测试。

7.3文档测试

  对软件文档的正确性、完备性、可理解性进行检查。若有驱动文档则需要对驱动文档进行测试。

7.4α测试和β测试

  α测试

  公司内部人员模拟用户对软件产品进行测试。需要尽最大可能地涵盖所有的用户可能的操作。

  β测试

  公司组织各方面典型用户在日常工作中实际使用β版本,并要求用户报告异常情况,提出批评和意见等。然后再对β版本进行改进和完善。

  8、其它测试

  在软件研发过程中,纠正或修改缺陷后需要进行回归测试,即测试修改的部分是否会对原来的功能带来影响,是否会引入新的BUG。在集成测试后可能还需要进行确认测试,确认软件的功能和性能达到用户的合理期待。并再次审查用户需求。除此之外,由于平台不同,还有接口测试等其它未列出的测试。

  结尾

  以上是根据典型的研发过程进行的不同阶段的测试分析,目的是为了尽可能地涵盖大部分的测试方法手段。在实际的操作过程中,可能因平台等方面的不同而使用不同的测试策略和手段。实际上单元测试目前可能更多的需要研发人员来进行测试,或者在开发过程中以接口测试替代,较少进行单元测试。根据需求,实际研发时也可能会省去一些不必要的测试。本文的重点是尽可能地了解测试的过程和方法。这些方法和手段要么借助工具,编写脚本,要么使用自己开发的测试框架来实现,本文中不可能一一深入探讨。旨在对测试过程和方法手段有一个全面的了解。

0 人点赞