共计 1350 个字符,预计需要花费 4 分钟才能阅读完成。
自动化测试和麻利软件开发经常是成对呈现,但麻利中的自动化往往说起来容易做起来难。大多数开发人员都曾经意识到测试自动化的益处:它放慢了测试速度、升高了老本、减少了覆盖率等。然而,许多人从未超过开始所需的初始投资。就像这幅漫画中的穴居人一样,许多团队陷入了窘境,他们采纳着低效率的形式,因为自认为基本没有工夫去做出扭转。而实际上,他们本人受到侵害。不要养成这个坏习惯!
明天,与你分享麻利团队的最佳测试实际之一。
要如何开始?如何晓得要关注哪些畛域?哪些测试计划应该采纳自动化?在非麻利软件开发中,很多人不经意地陷入了“冰淇淋蛋筒反模式”的测试中,因为该模式更加强调 UI 层面的自动化。Abstracta 团队更喜爱将冰淇淋蛋筒倒过去的模式——由 Mike Cohn 推广风行的办法,即麻利测试自动化金字塔。它能够给自动化老本带来最大收益,进步自动化的投资回报率,保障你将从自动化中取得最大收益。
当咱们的大部分工作都集中在 UI 级别的自动化上时,重点是发现错误;而对于麻利金字塔,其重点为防止谬误。
在下图中,你能够看到两种办法的不同之处。
根底层:单元测试
显然,在金字塔中(作为麻利团队最佳测试实际的一部分),大部分测试应该在开发阶段进行,在每次构建后进行单元测试。这些测试是最容易、最低老本及最快实现的,并且是测试驱动开发的一个重要方面。在较低的级别运行更多的测试能够让咱们在运行过程中即可查看相应的工作,立刻取得反馈,并让团队在谬误难以暗藏的时候精确地晓得谬误呈现在哪里。在这里,这些谬误的寿命也会更短,可能在不到一分钟的工夫内就被产生、被革除了。而在 UI 测试过程中,谬误会存活更长时间,并产生更强烈的矛盾,因为它们曾经舒服地存在了绝对更长的工夫。
中间层:API/ 集成 / 组件测试
运行所有单元测试并通过之后,就能够进入 API/ 集成 / 组件测试阶段。运行集成测试是为了确保所有组件失常配合工作。这里无需通过 UI 即可测试大部分逻辑和业务流程,在此处最好尽可能地采纳自动化。如果纠结于在此处自动化还是 UI 级别自动化,抉择这里问题将变少、保护会更容易、测试执行会更快(意味着能更快发现错误,缩短它们的寿命),而且能够测试零碎的逻辑。这些测试比单元测试更慢、更简单,但它们依然比 UI 测试更快、且不那么软弱。
顶层:UI 测试
最初讲的,也是运行起码的是 UI 测试。最好尽可能少地进行 UI 测试,因为它们老本高、难筹备、难保护,并且须要很长时间。在这一步,只是要确保用户界面自身失常工作,零碎的所有其余方面都曾经过测试。只测试端到端最重要的局部,流程从用户登录开始,以如交易胜利音讯这样的最终操作完结。关注与浏览器或 UI 相干的事件也很有帮忙。运行 UI 测试后,能够进行手动和探索性测试(如金字塔上方的球体形态所示)。
如上所述,与把重点放在自动化 GUI 测试上,并且无心中遵循“冰淇淋蛋筒反模式”比起来,金字塔办法是实现测试自动化的更弱小、更无益和更具老本效益的办法。金字塔在单元测试阶段提供了一个弱小的根底,能够在集成和 UI 阶段进行进一步的测试,而冰淇淋蛋筒办法更头重脚轻且稳定性较差。
为了在麻利开发世界中怀才不遇,就须遵循自动化金字塔测试,以尽可能生产出品质最好的软件。但不须要只遵循一家之言,可多方参考资料并一直实际以取得最适宜团队的测试方法。