测试建模:功能列表(Function List)

发表于:2015-9-17 09:51

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

 作者:Memory626    来源:51Testing软件测试网采编

  功能列表(Function List)是一种功能测试(Function Testing)的建模方法,在启发式测试策略模型(Heuristic Test Strategy Model)中位于 HTSM -> Product Elements –> Function 分支中。虽然它只覆盖了很小的测试领域,不适合作为主要的测试方法,但是仍不失为一种有启发、有帮助的测试建模技术。本文将简介功能列表及其应用。
  什么是功能列表?
  Cem Kaner在Black Box Software Testing 中将功能列表定义为:程序功能的大纲( an outline of the program's capabilities)。对于PowerPoint的图片功能,测试人员可以建立如下功能列表:
  限于篇幅,该功能列表只列出了PowerPoint图片的部分功能(真实的测试需要更详细的功能列表),但是它很好的体现了功能列表的特点。第一,它列出了图片的主要功能:输入、操作、应用、输出、打印和文件读写,使得测试人员能够在整体上把握被测领域。第二,它的层次结构提供了可扩展的框架,测试人员可以持续地补充细节:具体的功能和针对该功能的测试想法。第三,它为功能覆盖提供了覆盖目标,为制定测试计划提供了有益的信息。第四,功能列表可以包含一些助记符(如标签)和链接。作为大纲,它可以指向更多的资料;作为测试触发器(trigger),它可以启发测试思路。
  功能列表的形式
  我习惯用符号列表(bulleted list)制作功能列表,因为符号列表被大量的文档编辑器和文档格式所支持,能够快速地编辑、修改和发布。
  此外,许多测试人员喜欢用思维导图(Mind Map)记录功能列表、测试设计和测试计划,也获得了很好的效果。下图是思维导图形式的功能列表。
  功能列表与漫游测试
  漫游测试(Tour Testing)是一组以漫游隐喻为核心的测试方法。在应用漫游测试时,测试人员常常会游历被测产品的结构、功能或数据,在此期间运用他的技能和经验去发掘产品的缺陷。
  功能列表为功能漫游(Feature Tour)提供了有益的信息。它像一幅地图,既描绘了产品的概况,又提供了必要的细节,为探索者提供了指南与参考。测试人员可以漫游功能列表上的所有元素,以实施全面探索;也可以选择遍历某个功能子集,以实施专项测试。
  在测试之初,测试人员对被测产品尚不了解,他可以通过功能漫游来建立功能列表。从这个角度,漫游的过程就是测试建模的过程,功能列表就是漫游测试的产出。Cem Kaner建议,在软件尚不成熟时,测试人员应该同情地测试(test sympathetically)。此时,测试的目的不是发现所有缺陷,而是提交重大问题,发现风险区域,建立测试模型,为今后的测试奠定基础。对此,测试专家Michael Bolton有一番精彩的论述:
  同情的测试非常重要,虽然一些测试人员会发现它的反面(全力寻找缺陷)难以拒绝。Jon Bach(测试专家,其兄弟James Bach也是测试专家)指出在探索式测试的早期,他通过测试来发现产品的优点(benefits)。我觉得这很奇怪,直到他指出寻找并记录缺陷使得他不能专注地漫游产品并构建产品的模型。
  测试人员需要建立产品的大局观,同时掌握产品的优点、缺点、概念模型和实现逻辑。漫游测试是很好的学习过程,功能列表是一个有益的学习成果。
  用功能列表启发测试设计
  在测试设计时,测试人员可以将功能列表视作覆盖率指南。他逐个检查每个功能,阅读相关的测试想法,从而设计测试策略。在此过程,他可以自问:
  · 该功能与当前测试任务相关吗?
  · 该功能存在什么风险?可能会有什么缺陷?
  · 通过什么测试可以发现这些缺陷?
  · 在上次测试中,该功能表现如何?已有的测试想法,哪些值得再次尝试?哪些不必再测?
  · 依据当前的进度和资源,如何实施这些测试?
  · 功能列表是否充分?有没有漏掉一些功能?
  另一种更有威力的方法是综合功能列表中的多个元素,开发测试策略,以测试它们的交互和影响。随着产品逐渐成熟,隐蔽的缺陷往往存在于功能的组合,暴露于复杂的流程。这要求测试人员综合多方面的信息,来更深入、更多样地测试系统。当测试人员考虑功能的组合时,他可以自问:
  · 该功能与哪些功能相关?
  · 功能的组合有没有揭示出新的风险?可能会有什么缺陷?
  · 哪些功能访问同一批数据?哪些是生产者?哪些是消费者?
  · 如何设计测试,以同时测试这些功能?
  · 如何构造一个(有意义的)业务流程,它能够访问尽可能多的功能与数据?
  · 对于相互依赖的功能,某个功能的失败是否对其他功能造成恶劣影响?
21/212>
《2023软件测试行业现状调查报告》独家发布~

关注51Testing

联系我们

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

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

沪ICP备05003035号

沪公网安备 31010102002173号