在这个竞争激烈的IT时代,一直存在持续不断的改进需求。即使自动化是当今的一个重点关键词,报告也指出,只有30% 的组织已采用自动化测试。尽管这些公司花费大量时间和金钱来改变他们的开发流程(敏捷开发),但是仅仅通过选择一些自动化工具,写一些自动化项目,根本无法实现PPT上描述的的没好愿景。
在软件开发生命周期中,变化是不可避免的,为了与不断变化的动态需求并驾齐驱并生产高质量的软件,重要的是依靠实施有效的持续测试策略。开发和测试团队必须专注于优化交付周期并提供不间断的业务能力测试。
何为连续测试
连续测试是一种常见软件测试类型,其中涉及经常在连续交付过程的多个阶段进行不同类型的测试以评估软件质量,以及早发现BUG
,最终提供高质量的软件和增强业务连续性。它涉及多个开发和质量保证阶段的测试,以实现持续的质量和改进。连续测试在DevOps中使用自动化工具起着关键作用,自动化工具可帮助开发人员快速获取有关缺陷的反馈并做出相应的更改,相关内容请参考如何在DevOps中实施连续测试。
高质量连续测试的挑战
大多数敏捷团队都希望进行频繁的部署,但是由于缺乏有效的连续测试交付策略,大多数组织甚至无法缩短其软件开发周期。在整个软件交付过程中,同时进行了手动测试和自动测试的混合,这是走向成功的必经之路。实现测试设计、测试流程、执行等方面的每个步骤的自动化是非常重要的。
优化连续测试策略的技巧
测试自动化策略是企业交付最终产品的质量保障的基础。它应该足够健壮和灵活,以承受测试过程的任何更改和每个变量的影响。
全面的自动化测试计划
大多数组织主要关注一部分特定形式的测试。例如,很少有企业专注于API集成测试或者UI测试,还有一部分而很少企业专注于两者。但是他们缺乏的是一种涉及多种测试类型的面向细节的自动化连续测试策略。在某些业务场景中,选择特定的测试类型是正确的,但是公司应始终需要可容纳各种类型的测试的规划,该规划可以在需要时使用不同的工具和方法。持续测试与自动化测试需要考虑的因素中最重要的始终是业务规模和需求。
调研和试用
在流程中引入不可靠且冗长的测试用例会导致大量时间和精力的浪费,从而使QA团队陷入于对每个代码提交的无效分析的泥塘。相反,QA团队可以通过添加名义测试套件来进行一些测试,从而避免大的风险并一路检查其影响。测试人员需要逐渐添加稳定的测试用例。重要的是要有稳定的测试用例,而不是计算执行了多少,尤其是在DevOps
中。
选择测试自动化工具
建立全面的连续测试策略是一项长期任务,但是选择正确的测试自动化工具对于实现完全稳定性至关重要。包括由于自动化工具无法在被测试的应用程序上对分配的UI控件执行操作而导致的失败也无关紧要。测试失败的可接受原因可能是BUG
或设计变更未及时跟进,但不是自动化工具引起的。一个好的自动化工具将通过激活连续的发布和部署、减少时间和维护成本,增加代码的可重用性以及提供更高的投资回报来始终为组织增加价值。
可参考:
模块化测试
为了处理复杂的集成应用程序,引入模块化测试是细分应用程序功能的最佳方法。将应用程序功能分解为模块可提供路线图,并使将功能重新排列成代表不同工作流程的测试变得更加容易。通过引入模块化测试和解耦测试数据,测试流程和元素定位器映射,可以轻松地纠正自动化中存在的问题。
自动截图
在分析测试结果以找出测试失败的原因时,测试执行期间的屏幕截图是最好的参考,以便深入探究问题的原因。一个可靠的自动化工具会自动生成测试运行期间发生的所有重要交互的屏幕截图。并非所有自动化工具都支持屏幕快照录制。在这种情况下,应该重新考虑选择另一种测试自动化解决方案,以充分利用此功能。
自动化测试的回报率
持续测试、自动化和DevOps等主要趋势以及对更快持续交付的需求提高了高质量软件的标准,以至于每个人都在努力通过优化持续测试和开发策略来保持竞争力,同时也保持较低成本。在这种情况下,平衡测试执行成本是不容忽视的因素。在某个时间点,需要扩大测试范围,团队必须选择昂贵的云设备,这是主要的成本负担。最好的想法是将高级别和低级别的测试需求分开,即在云设备上执行更高级的集成和兼容性测试,并在内部执行低级别的测试以保持成本平衡并获得最佳的自动化ROI(回报率)。
日志和监控
当开发团队、测试团队一起工作时,他们将面临许多新的挑战。开发人员专注于推动新功能实现和就功能的维护更新,而测试人员则专注于维护服务交付的可靠性。将这两点联系起来具有挑战性,并且通过引入连续测试
和DevOps
可以克服这些挑战。从长远来看,团队应始终投资于系统监视工具,该工具将有助于发现遗漏BUG
的原因并更有效地进行改进升级。
总结
持续测试和交付已不再是奢侈品,而是当今时代的必需品。精心设计的持续测试策略是持续测试和提供优质服务的基础。
公众号FunTester首发,原创分享爱好者,腾讯云、开源中国和掘金社区首页推荐,知乎准八级强者,欢迎关注、交流,禁止第三方擅自转载。