基于模型的测试策略

时间:2020-03-05 18:42:49  来源:igfitidea点击:

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

  • 我们是专门将其用于集成测试,还是将其扩展到其他领域(单元/功能/系统/规格验证)?
  • 我们是建立集中的"密封"模型还是随着时间的推移发展复杂的Onibus模型?
  • 在产品周期中,我们何时投资于创建MBT?
  • 我们专门为MBT创建什么样的基础测试库?
  • 为了更好地支持MBT,我们对功能基础测试库有什么区别? ---------------------------------

解决方案

回答

我们还没有做过任何/太多的I&T并几乎完全使用了单元测试,并且对系统进行了一些测试。但是,我们的重点显然是单元测试。我对我们构建/提供的API相当严格,因此假设是,如果它可以单独工作,它将可以协同工作,而且还没有太大错误。

我们的模型专注于单一目的/模块,并且依赖关系尽可能少。

重点始终是尽早开始(TDD-kinda),但是不幸的是,我们并不总是尽早开始。问题是,我们总是必须将其出售给管理层,这很难,因为尽管测试提高了稳定性(总体质量保证),但外部(技术之外)的人员在发生不好的事情之前才真正意识到这意味着什么。

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

回答

[有几篇文章值得一读。 Stack Overflow不允许我发表多个文章,因此我将它们汇总到了一个博客文章中,并在此答案的结尾链接。

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

这里有实际的成本:建立有用的模型,创建用于探索模型的算法,允许人们除掉有趣的故障的日志系统等。成本是否合理与我们要解决的问题有很大关系。回答?通常,从我想知道什么开始?我如何最好地了解它呢?而不是寻找一种有趣的技术。

综上所述,一些优秀的测试人员已经从基于模型的自动化测试中获得了很多收获。有时,我们对被测应用程序有一些重要的问题,最好通过自动化的,大容量的半随机测试来探讨。 Harry Robinson(基于模型的测试的领先理论家和支持者之一)描述了一个非常丰富多彩的示例,其中他使用基于模型的测试(由rubys Watir库编写)在Google的行车路线中发现了许多有趣的错误。 1个

罗宾逊(Robinson)在包括贝尔实验室(Bell Labs),微软和Google在内的公司中成功使用了MBT,并发表了许多有用的文章。[2]

Ben Simo(另一位出色的测试思想家和作家)也就基于模型的测试撰写了很多值得阅读的文章。[3]

最后,请注意以下几点:要充分利用一项策略,就必须探索其优势和劣势。为此,James Bach就基于模型的测试的局限性和挑战进行了精彩的演讲。巴赫斯(Bachs)的这篇博客文章链接到他长达一个小时的演讲(以及相关的幻灯片)。[4]

病态末尾有关于鲍里斯·贝泽尔(Beris Beizer)所谓的农药悖论的注释:我们用来预防或者发现错误的每种方法都会留下一些微妙的错误,这些错误对于这些方法是无效的。脚本测试(无论是由计算机还是由人执行)特别容易受到农药悖论的影响,每次执行同一脚本时,往往会发现有用的信息越来越少。人们有时会转向基于模型的测试,以为它可以解决农药问题。在某些情况下,基于模型的测试可能会发现比一组给定的脚本化测试大得多的错误集,但应该记住,它仍然受到农药悖论的根本限制。记住它的局限性并从问题开始,MBT可以很好地解决它,它有可能成为一种非常强大的测试策略。

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

回答

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

我建议我们使用All4Tec的" MaTeLo"工具(www.all4tec.net)

" MaTeLo是用于黑盒功能和系统测试的测试用例生成器。根据基于模型的测试方法,MaTeLo使用马尔可夫链对测试进行建模。该统计插件允许系统地验证产品。 MaTeLo是独立且用户友好的,可提供从验证脚本到实际测试的验证活动,从而减少了所需的人力资源,增加了模型重用性并提高了测试策略的相关性(由于可靠性目标)。工程并专注于测试的真正添加值:测试计划"

我们可以索取评估许可证,然后自己尝试。

我们可以在此处找到一些示例:http://www.all4tec.net/wiki/index.php?title=Tutorials

回答

MBT书籍的作者哈里·罗宾逊(Harry Robinson)从事过很多工作,例如在Google和Microsoft上,该站点提供了一些不错的信息和白皮书。

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