选择连续测试解决方案的权威指南
作为在该行业拥有20多年经验的软件开发人员和测试专家,我已经看到工具和解决方案在市场中日渐消失。 没关系,那就是创新的生命周期和“价格”。 不幸的是,在选择此类工具时,尤其是在测试领域,我也看到了一些错误的做法。
在本文中,我想对管理者和从业者进行一些整理,以便他们尝试更改和现有解决方案或选择新的解决方案。
专注于过程
我无法充分强调正在评估新工具的组织中正在遵循的现有流程的重要性。 流程手段, 发布 节奏 ,测试人员,开发人员以及业务如何进行协作? 流程还意味着敏捷vs.瀑布vs.其他方法,例如ATDD / BDD 。 过程也指完成的质量和定义。
如果团队希望每周发布一次,并且他们的测试自动化套件不够稳定,则实验室将无法应对测试和平台的规模,或者分析回归测试报告所花费的时间为时间太长,这需要影响决策过程以及评估标准过程。
在我见过的大多数组织中,这些团队分布很广,在开发和测试方面共享不同的技能 。 这也是测试开发和执行处理方式的驱动因素。
考虑总体组织目标
团队需要问问自己什么样子好? 他们是否旨在实现80%以上的“ 正确 ”测试自动化覆盖率? 他们在每次迭代或冲刺中必须测试的最长时间是多少? 在询问有关该工具可以为我做什么的问题之前,团队需要对他们的目标以及他们计划在哪里发展团队感到扎实。
仅检查工具功能清单并不重要,并且由于领域不断变化,工具有时会过时并且您自己的目标也可能会改变,因此不能随时间抵抗。
底线 :“ 不要让工具功能决定您的选择标准,而要让您自己的目标和适合的过程来做到这一点 ”
此外,团队应将其作为持续改进议程的一部分,重点放在衡量,度量和可视性上,以了解其随着时间的推移如何运行。 为此,组织需要设置客观指标,以匹配团队在6个月,12个月,2年等时间内的目标。
有各种市场报告,例如最近的Google DORA DevOps报告 ,该报告显示了Elite DevOps组织与成熟度较低的组织之间的差异。 这些市场目标指标可以用作设定总体目标的基准。
着手开展业务–该工具可以为我做什么?
只有确保全面检查了上述问题,并且您对自己想成为的人,团队要取得成功并实现其目标所需的知识有了很好的了解,才可以创建正确的选择标准列表您的测试工具。
根据我的经验,这样的清单应该包括以下6个方面,并且能够涵盖测试创建,测试分析和测试环境 (实验室)的功能,以进行适当的覆盖和执行。
有些工具具有AI和ML功能,有些具有记录和回放功能,有些则需要高级编码技能。 在许多情况下,您应该考虑所有因素,可能很少结合使用一些工具来实现您设定的1个目标。
对于上述每个类别,无论您是在评估开放源代码还是商业广告,您都应专注于每个类别的测试创建和分析。 并非所有框架和工具都是平等创建的。
如果仅专注于使用Java Script进行Web测试自动化,则可以观察Vitali Zaidman在Medium上列出的过多测试框架,以了解每种类别的解决方案的情况。
有各种Java脚本工具可以…
- 提供测试结构(BDD / ATDD)( 摩卡 , 茉莉 , 笑话 , 黄瓜 )
- 提供断言功能( Chai , Jasmine , Jest , Unexpected )
- 生成,显示和查看测试结果( 摩卡 , 茉莉花 , 笑话 , 业力 )
- 生成 代码覆盖率报告( Istanbul , Jest , Blanket )
- 提供一个 浏览器或类似浏览器的环境,可控制方案执行,UI测试等( Protractor , Nightwatch , Phantom , Casper , Selenium , WebDriver.IO , TestCafe )
- 提供模拟,间谍和存根( Sinon , Jasmine , 酶 , Jest , testdouble )
顺便说一句,以上随着市场的成熟不断变化和变化
底线
如本文中突出显示的,它与您有关,而不与您正在评估的工具有关。 尝试着眼于流程的外观,查看业务和管理对项目的目标,然后查看工具如何适应流程。 不要遵循列出了工具功能和功能并使其成为决策标准的其他错误,而要与您一起准备并查看工具如何帮助您实现目标。 不要误会我的意思,功能对于成功至关重要,并且能够自动完成测试自动化,但是并非每种工具都适合从创建测试到分析和维护的整个过程。
快乐的转换和测试!
翻译自: https://www.javacodegeeks.com/2019/09/definitive-guide-selecting-continuous-testing-solution.html