测试策略——软件测试工程师面试秘笈(08)

发表于:2021-12-21 09:15

字体: | 上一篇 | 下一篇 | 我要投稿

 作者:杨定佳 陈辑    来源:51Testing软件测试网原创

#
面试
#
求职
分享:
  13.2.7  测试策略
  软件测试策略是在测试质量和测试效率之间的一种平衡艺术,是为了以消耗最小的资源和时间而最大程度地降低产品的质量风险,尽早地完成测试所制订的最合适的方式、方法、过程等。选择合适的测试策略可以使投入的资源最小,发现更多潜在问题,完成质量保障任务,以提升测试交付质量、提升企业产品的质量、提升企业的竞争力。

  示例1:谈谈你对集成测试中自顶向下集成和自底向上集成两个策略的理解。
  对集成测试的测试策略进行考察,回答此问题不但需要对两种测试策略进行优缺点的解析,还要通过优缺点说出自己的理解,各自适合怎样结构的产品。
  解答:自顶向下的集成测试就是按照系统层次结构图,以主程序模块为中心,自上而下按照深度优先或者广度优先策略对各个模块一边组装一边进行测试。使用这种测试策略可以较早地验证主要的控制和判断点;按深度优先可以首先实现和验证一个完整的软件功能;只有在个别情况下才需要驱动程序,减少了测试驱动程序开发和维护的费用;容易进行故障隔离和错误定位。缺点是柱的开发量大;底层验证被推迟;底层组件测试不充分。综上特点,这种测试策略适应于产品控制结构比较清晰和稳定;高层接口变化较小;底层接口未定义或经常可能被修改;产品控制组件具有较大的技术风险,需要尽早被验证;希望尽早能看到产品的系统功能行为。
  自底向上集成是从系统层次结构图的最底层模块开始进行组装和集成测试的方式。使用此测试策略可以尽早验证底层模块的行为;工作最初可以并行集成,比自顶向下效率高;减少了桩模块的工作量;容易对错误进行定位。缺点是驱动模块的设计工作量大,高层设计上的错误不能被及时发现,只有到测试过程的后期才能发现时序问题和资源竞争问题。综上特点,这种测试策略适应于底层接口比较稳定、高层接口变化比较频繁、底层模块开发和单元测试工作完成较早的产品。

  示例2:单元测试的策略有哪些?
  解答:单元测试策略有自顶向下、自底向上和孤立的单元测试三种。
  (1)自顶向下的单元测试策略
  方法:先对最顶层的基本单元进行测试,把所有调用的单元做成桩模块。然后对第二层的基本单元进行测试,使用上面已测试的单元做驱动模块。依此类推,直到测试完所有基本单元。
  优点:在集成测试前提供早期的集成途径,在执行上和详细设计的顺序一致,不需要开发驱动模块。
  缺点:随着测试的进行,测试过程越来越复杂,开发和维护成本增加。
  (2)自底向上的单元测试策略
  方法:先对最底层的基本单元进行测试,模拟调用该单元的单元做驱动模块。然后对上面一层进行测试,用下面已被测试过的单元做桩模块。依此类推,直到测试完所有单元。
  优点:在集成测试前提供系统早期的集成途径,不需要开发桩模块。
  缺点:随着测试的进行,测试过程越来越复杂。
  (3)孤立的单元测试策略
  方法:不考虑每个单元与其他单元之间的关系,为每个单元设计桩模块或驱动模块。每个模块进行独立的单元测试。
  优点:简单、容易操作,可达到高的结构覆盖率。
  缺点:不提供一种系统早期的集成途径。
  示例3:集成测试的几种策略各有哪些优缺点?
  解答:集成测试策略有大爆炸集成、自顶向下集成、自底向上集成、三明治集成、基干集成、分层集成、基于功能的集成、基于消息的集成、基于风险的集成和基于进度的集成。
  (1)大爆炸集成
  优点:可以迅速完成集成测试;并且只要极少数的驱动和桩模块;用例也是最少的;简单;资源利用率高。
  缺点:一次试运行成功的可能性不大;问题定位和修改比较困难;许多接口错误很容易躲过测试。
  适用:适应于一个维护型项目或被测试系统较小。
  (2)自顶向下集成
  详见13.2.7中示例1的解答。
  (3)自底向上集成
  详见13.2.7中示例1的解答。
  (4)三明治集成
  优点:集合了自顶向下和自底向上两种策略的优点。
  缺点:中间层测试不充分。
  适用:适应于大部分软件开发项目。
  (5)基干集成
  优点:具有三明治集成的优点,更适合于大型复杂项目的集成。
  缺点:必须对系统的结构和相互依存性进行仔细的分析;驱动和桩开发量大;局部采用了大爆炸的策略,有些接口可能测试不充分。
  适用:嵌入式系统中常用。
  (6)分层集成
  适用:适应于有明显层次关系的系统。
  (7)基于功能的集成
  优点:优先验证关键功能的正确性,减少驱动的开发,进度要快。
  缺点:对接口测试不充分,有较大的冗余测试。
  (8)基于消息的集成
  优点:优先验证关键消息的正确性,减少驱动的开发,进度要快。
  缺点:对接口测试不充分,有较大的冗余测试。
  (9)基于风险的集成
  优点:最具有风险的组件最早进行验证,有助于系统的快速稳定。
  缺点:需要对各组件的风险有一个清晰的分析。
  (10)基于进度的集成
  优点:具有较高的并行度,能够有效缩短项目的开发进度。
  缺点:桩和驱动工作量较大,有些接口测试不充分,有些测试重复和浪费。

查看《软件测试工程师面试秘笈》全部连载章节
版权声明:51Testing软件测试网获得作者授权连载本书部分章节。
任何个人或单位未获得明确的书面许可,不得对本文内容复制、转载或进行镜像,否则将追究法律责任。
《2023软件测试行业现状调查报告》独家发布~

关注51Testing

联系我们

快捷面板 站点地图 联系我们 广告服务 关于我们 站长统计 发展历程

法律顾问:上海兰迪律师事务所 项棋律师
版权所有 上海博为峰软件技术股份有限公司 Copyright©51testing.com 2003-2024
投诉及意见反馈:webmaster@51testing.com; 业务联系:service@51testing.com 021-64471599-8017

沪ICP备05003035号

沪公网安备 31010102002173号