高效持续测试策略的4个要素
通常,当组织计划并实施有效的测试自动化策略时,他们认为他们正在实施连续测试。他们错了。
测试自动化无疑是连续测试的最关键组成部分之一。但是, 实施连续测试始于多层测试策略,其中包括所需的所有类型和级别的测试-包括单元,集成,功能,探索性和自动化。连续测试还必须具有在整个连续集成流程中合并测试的策略。
组织寻求DevOps通过在不牺牲质量的前提下最大化交付速度来增加价值并改善客户体验。DevOps通过实施持续交付管道进行交付,这需要持续的测试。
但是,什么是连续测试?这种实践不仅限于在整个软件交付管道中执行自动化测试,而且还可以提供与潜在发行版相关的风险的即时反馈。
持续测试需要持续的业务和技术风险分析,以及整个持续集成过程中的流程改进和自动化。同样重要的是要发展一种文化,在这种文化中,质量是每个团队成员的共同责任。它基于一种管理风险的方法,该方法通过提高有效性和提高测试过程的效率来消除测试瓶颈。
这是有效的连续测试策略的四个关键步骤 ,以及你需要了解的每个步骤。
它包括三个部分:关注业务风险,识别和缓解瓶颈以及优化测试。
DevOps的最终目标(即持续测试的目标)是减轻业务风险,该风险由客户风险和组织风险组成。
客户风险包括了解哪些应用程序工作流程对客户最重要,并据此计划基于风险的测试范围。
组织风险涉及了解业务环境以及产品本身的复杂性。例如,首先进入市场是否很关键,或者产品的健康或安全性更重要?一旦准确评估了整体业务风险,就应该将需求,应用程序组件和测试映射到这些风险。
识别和缓解瓶颈至关重要;它们阻碍了质量和速度。从需求到生产后的检验,始终可以发现对测试过程的约束。一些示例包括测试人员未包含在积压的细化工作中,因此他们没有机会帮助建立验收标准,缺陷无法及时得到解决,自动化测试套件运行时间过长以及生产后检验手动进行。
优化测试
测试优化是进行连续测试的有效自动化策略的基础,它是选择正确的测试的实践,可以以最少的测试用例提供所需的测试覆盖率。
从基于风险的完整回归套件测试选择到针对目标测试和新功能回归的测试选择,此实践有许多应用。这是一个动态的,持续的过程,尤其是在作为连续测试框架的一部分应用时。测试优化应该在自动化之前进行,并且必须在整个连续测试过程中继续进行。
第一步是通过了解关键用户工作流程中涉及的所有集成(包括那些应用程序(Web,移动,消息/ API层等)中使用的技术)来优化测试范围。
一旦对测试范围有了清楚的了解,下一步就是优化测试用例。这不仅包括分析测试用例的质量和详细程度,还包括选择提供最大测试覆盖率的测试。你的 测试套件应设计为以最少的测试用例数量提供最大的覆盖范围,以提高质量和速度。
测试优化是一个动态过程。评估有效性是维护优化测试套件的关键部分。应该对套件进行持续评估,以淘汰不再需要的测试,解决不稳定的测试,并基于新功能添加新测试。
连续测试需要在整个交付流程中实现测试自动化。测试自动化可提高部署速度,并降低连续交付所固有的风险。
但是,连续测试框架内的自动化不仅仅是开发和维护自动化回归套件。实际上,自动回归套件,特别是那些通宵运行的套件,会在持续部署过程中造成瓶颈。连续测试需要一种测试自动化策略,该策略可以增强而不是阻碍连续交付过程。
实施优化的回归测试套件还不够。自动化测试策略必须在构建过程的每个步骤中都包括自动检查点。这从验证单个代码段的单元测试和验证关键功能的组件测试开始。基于风险的回归测试套件应根据你当前正在实现的功能进行定制。
自动化测试将继续进行生产,并进行部署后的运行状况检查,以确保应用程序已启动并正在运行。作为最后一步,生产监控应在客户找到功能和性能问题之前先找到它们。
在连续测试策略中,必须将测试自动化设计为有效运行,同时提供可靠,一致,可重复的结果。你的自动化策略必须精心制定,并包括测试维护计划和时间表,其中自动化测试应在交付管道的特定位置运行。
为了实施成功的连续测试策略,至关重要的是,团队必须接受质量工程的左移原则,即提倡在开发过程中尽早进行测试。质量工程是在整个过程中提高质量的实践。它从开发开始,并着重于预防缺陷,而不是发现缺陷。向左移动测试可进行质量工程和连续测试。
测试驱动开发(TDD),行为驱动开发(BDD)和验收测试驱动开发(ATDD)都是“左移”的技术。
在TDD中,开发人员和测试人员首先共同设计测试,然后开发代码以使测试通过。BDD是TDD,其设计侧重于客户行为。ATDD专注于以客户为中心的设计,其中“三个朋友”(开发人员,测试人员和产品所有者)共同承担设计工作中的责任并共同努力。
对于非功能测试也必须采用左移方法。由于可以在设计中找到许多性能和安全缺陷的根本原因,因此在完成设计之前及早发现缺陷至关重要。在过程后期才发现这些缺陷时,它们将变得更加复杂且修复成本很高。
此步骤是连续测试策略的基础。除非所有团队成员都接受他们在质量保证中的职责,否则将无法成功实施其他要素。
承担质量责任需要转变思维方式,必须从上至下领导。教育至关重要,因为团队中的每个成员都必须了解其在质量工程中的角色性质。