您在基于模型的测试中使用了哪些策略?

  • 您是专门用于集成测试,还是将其分支到其他区域(单元/功能/系统/规范验证)?
  • 您是否构建了专注的“密封”模型,或者您是否随着时间推移开发复杂的onibus模型?
  • 在产品周期中,您是否投资创建MBT?
  • 您为MBT专门创建了哪种基础测试库?
  • 您在功能基础测试库中有什么区别可以更好地支持MBT?

===============>>#1 票数:14

[有几篇文章值得一读。 Stack Overflow不会让我发布多个,所以我在博客文章中汇总了它们,在这个答案的最后链接。]

首先,快速说明条款。 我倾向于使用James Bach对测试的定义为“质疑产品以进行评估”。 所有测试都依赖于被测应用程序的/ mental / models。 术语“基于模型的测试”通常用于描述可以通过自动化进行探索的模型编程。 例如,可以指定应用程序可以处于的状态数,这些状态之间的各种路径,以及关于这些状态之间的转换应该发生什么的某些断言。 然后,可以让脚本在状态模型中执行转换的半随机排列,记录可能有趣的结果。

这里有实际的成本:构建一个有用的模型,创建用于探索它的算法,记录系统,允许人们通过有趣的故障来解决等等。成本是否合理与你想要的问题有很大关系回答? 一般来说,从“我想知道什么? 我怎样才能最好地了解它呢?“而不是寻找有趣技术的用途。

总而言之,一些优秀的测试人员已经从基于模型的自动化测试中获得了很多好处。 有时,我们对被测应用程序有重要问题,这些问题最好通过自动化,大批量半随机化测试进行探索。 Harry Robinson(基于模型的测试的主要理论家和支持者之一)描述了一个非常丰富多彩的例子,他使用基于模型的测试(使用ruby的Watir库编写)在Google驾驶方向上发现了许多有趣的错误。 1

Robinson在贝尔实验室,微软和谷歌等公司成功使用了MBT,并且有许多有用的论文。[2]

Ben Simo(另一位伟大的测试思想家和作家)也在基于模型的测试中写了相当多的阅读材料。[3]

最后,一些警告:要充分利用战略,需要探索其优势和劣势。 为此,James Bach就基于模型的测试的极限和挑战进行了精彩的讨论。 这篇关于巴赫的博客文章链接到他长达一小时的谈话(以及相关的幻灯片)。[4]

最后我将结束一篇关于鲍里斯·贝泽尔所谓的杀虫剂悖论的说明:“你用来防止或发现漏洞的每一种方法都留下了一些残留的微妙错误,这些方法无效。”脚本测试(无论是由计算机还是由计算机执行)人)特别容易受到农药悖论的影响,每次执行相同的脚本时,往往会发现越来越少的有用信息。 人们有时会转向基于模型的测试,认为它可以解决农药问题。 在某些情况下,基于模型的测试可能会发现比一组给定的脚本测试更大的错误集......但是应该记住它仍然受到农药悖论的根本限制。 记住它的局限 - 从问题MBT开始很好地解决 - 它有可能成为一个非常强大的测试策略。

可以在此处找到上述所有论文的链接: http//testingjeff.wordpress.com/2009/06/03/question-about-model-based-testing/

===============>>#2 票数:1

哈里罗宾逊,MBT书籍的作者,并在谷歌和微软等公司工作了很多,这个网站有一些很棒的信息和白皮书。

http://www.geocities.com/model_based_testing/

===============>>#3 票数:1

我们没有做过任何/很多I&T并且几乎完全使用单元测试,经过一些系统测试。 但我们的重点显然是单元测试。 我对我们构建/提供的API非常严格,所以假设,如果它自己工作,它将协同工作,并且它还没有太大的错误。

我们的模型专注于具有尽可能少的依赖性的单个目的/模块。

重点始终是尽早开始(TDD-kinda),但不幸的是我们并不总是这样做。 问题是,你总是要把它卖给管理层,然后很难,因为虽然测试可以提高稳定性(整体质量保证),但是外部人员(技术人员之外)在发生不良事件之前无法真正与之相关。

由于我们使用PHP,因此我们使用PHPUnit进行单元测试。 总而言之,我们使用各种不同的工具进行CI。 :)

===============>>#4 票数:0

最好的方法是自己尝试基于模型的测试工具。 这是了解基于模型的测试是否适合您的上下文的最佳方式。 什么样的策略是好的策略。

我建议你使用All4Tec的“MaTeLo”工具(www.all4tec.net)

“MaTeLo是用于黑匣子功能和系统测试的测试用例生成器。符合基于模型的测试方法,MaTeLo使用马尔可夫链进行测试建模。这个统计插件允许以系统方式进行产品验证。效率通过减少来实现所需的人力资源,模型重用的增加以及测试策略相关性的增强(由于可靠性目标).MaTeLo是独立且用户友好的,提供验证活动从测试脚本到实际测试工程和专注于测试的真正附加值:测试计划“

您可以询问评估许可证并亲自尝试。

你可以在这里找到一些例子: http//www.all4tec.net/wiki/index.php? title = Tutorials

  ask by Ari Pernick translate from so

未解决问题?本站智能推荐: