QA Best Practices in Rapid Iterative Development

Introduction and Background

Although rapid iterative development has become a popular approach to software development, many development teams are unsure of the implementation of QA through this model. Traditional QA practices, such as manual tests and regression tests, cannot adapt to the iterative rhythm, which requires multiple online launches in a day. Development teams often face a dilemma: sacrificing quality for speed, or regularly fixing the release while compromising business agility.

What are some QA best practices to minimize risks while keeping up with the pace of rapid iterative development? Let us explore the successful QA practices of the RippleTek wireless technology team from 2014 to 2016.

QA in Development

The introduction of specialized testing personnel brings about additional communication costs and creates bottlenecks when multiple systems are headed for parallel release. Therefore, RippleTek did not designate specialized testing personnel but conducted functional tests with developers. The pre-launch validation process is described below:
1. Test our personalized development environment.
2. Test in the pre-release environment. Ask the product functional designers to assist in the test if necessary. This step mainly aims to check whether the understanding of the business features is correct.
3. Propose a merge request to merge changes to the branch for release.
4. Read the changes line by line with another developer, and explain the reason for every change. In case of any problems discovered in functional implementation, suggest and make changes before launching the product. If there is only a problem in style, launch the product first, and then restructure and relaunch the product.

Benefits of Pre-Release Environment

  • Convenient for integration and testing.
  • Convenient for communications between developers and product personnel.
  • Facilitates communications with developers during code review.

QA in O&M

When the merge request passes the code review and is eligible for launch, developers can launch the feature online by themselves. To reduce risks while improving efficiency and comfort, the entire launch action only requires a single click by the developer in the CI system. This will launch the feature online fully automatically. In addition to the one-click deployment, the O&M infrastructure should provide the following basic functions:

One-Click Rollback

In principle, it is best to avoid rollbacks unless a severe problem that impacts availability occurs and no other options are available. Despite the rarity of rollbacks, your design should support rollback and any changes made should be as retractable as possible. If developers discover an unexpected problem following the launch of a new product version, they can revert the product to the previous version with only one click.

Error Monitoring and Push Alarms

RippleTek uses O&M bots for collecting and analyzing system logs, and monitoring the trends of the number of error logs. When the number of error logs of a service increases sharply, the system sends an alarm to the service developers and O&M personnel. In this manner, developers will receive alarms if there are problems with the new code. Within a few minutes after the launch, the developers can decide whether to fix the product or to perform a version rollback.

Gray Release

If the change released in a basic function module affects the global function, you can adopt a gray release to minimize risks. In gray release, developers initially use the new code with a small amount of traffic. The running status of the code is observed for a specified period. After confirming that the new code does not experience exceptions, you can then apply it to the entire network.

Data-driven QA

Data-driven QA is a testing method that constantly monitors the current system status to detect for anomalies. In data-driven QA, the implementation effects of new and old versions of the code are compared through observation, analysis, and statistics.

Based on this definition, the Error Monitoring and Push Alarms function can be categorized as a data-driven QA method. Other commonly used data-driven QA methods include:

  • Using the O&M bot to periodically check whether the invariant constraint between key business data is still valid. For example, you must always ensure that the accounts in an accounting system are balanced. If the system detects any imbalance, it should promptly issue an alarm and identify the cause.
  • Checking whether key business indicators are stable. For example, the number of successful orders in the previous hour should not have a large deviation from the average value. A sharp decrease may indicate a decline in system availability while a sharp increase may indicate malicious click farming.
  • Using statistics and comparing between key performance indicators of different product versions to determine which version is better in quality.

Conclusion

In rapid iterative development, QA should not be an independent process before business changes or releases. The ideal QA process must permeate development, O&M, and data analysis processes. With adaptive QA practices, your online production environment can support dozens of releases a day while mitigating risks.

时间: 2024-09-11 09:58:36

QA Best Practices in Rapid Iterative Development的相关文章

SWF自适应布局技巧 (Rapid Flash Development)快速Flash开发_Flash As

铺满浏览器屏幕的Flash可以通过设置引用Flash参数中的width和height为100%来实现.但是,光做这点是不够的,原因是Flash的内部的界面部局,尚没有如此智能(指的是非FLEX PROJECT,如ActionScript Project或用Flash IDE编译的项目等). 今天,用户的浏览器分辨率主要为1024*768和1280*1024,还有一些老外用那种非常宽大的浏览器: 开发_Flash As-rapid development"> 想让你的Flash应用在诸多用户

SAP Enables Fast and Efficient Development with New IoT

SAP Enables Fast and Efficient Development with New IoT Application Services http://news.sap.com/sap-enables-fast-and-efficient-development-with-new-iot-application-services/   Enriched Digital Twin Data Provides New Level ofActionable Intelligence S

《敏捷迭代开发:管理者指南》—参考文献

参考文献 敏捷迭代开发:管理者指南 Ambler00 Ambler, S. 2000. The Unified Process-Elaboration Phase. R&D Books. Ambler02 Ambler, S. 2002. Agile Modeling, John Wiley & Sons. AM02 Auer, K., and Miller, R. 2002. Extreme Programming Applied: Playing to Win. Addison-Wes

《SAFe 4.0参考指南:精益软件与系统工程的规模化敏捷框架》SAFe团队层

本节书摘来自华章出版社<SAFe 4.0参考指南:精益软件与系统工程的规模化敏捷框架>一书中的第1章,第节,作者 迪恩·莱芬韦尔(Dean Leffingwell)更多章节内容可以访问"华章计算机"公众号查看. SAFe?团队层   3.1 团队层介绍 我们.工作.知识是一个整体. --本书作者 摘要 SAFe团队层是项目群层的组成部分,但有时会分开讨论.所有的SAFe团队都是敏捷发布火车(ART)的一部分--ART是项目群层的核心组成部分.团队层为敏捷团队的活动提供了组织

Changing the Way of Continuous Delivery with Docker (Part 1)

Introduction This post is the first part of the series "Changing the Way of Continuous Delivery with Docker" and discusses the background, challenges, and processes involving Docker. Docker is a service for reformed continuous delivery. In the s

精益创业-用户体验设计的新包装

[编者按]本文译自Smashing Magazine,译者@C7210.<精益创业>一书中曾为我们介绍到,小型的创业公司应先向市场推出极简的原型产品,然后在不断地试验和学习中,以最小的成本和有效的方式验证产品是否符合用户需求,并迭代优化产品,灵活调整方向. 而与之相同的精益用户体验也同样提倡把注意力从交付工作上移开.同样的理念,只是处于不同的领域而已. 精益创业(Lean Startup)的基本思路及实践方式,从某种程度上讲,其实就是用户体验设计圈子中的行家们多年来所讲述和提倡的东西.与过去不

SAP S/4 HANA On-Premise implementation

SAP S/4 HANA On-Premise implementation   http://www.linkedin.com/pulse/sap-s4-hana-on-premise-implementation-hannes-mostert?trkInfo=VSRPsearchId%3A4691742691473051625444%2CVSRPtargetId%3A6122914438279421952%2CVSRPcmpt%3Aprimary&trk=vsrp_influencer_co

敏捷图书排行 (2011年修订)【转】

转自: http://www.noop.nl/2011/08/top-100-agile-books-edition-2011.html  One year ago, at the Agile 2010 conference, I came up with the idea to publish a Top 100 Agile Books. Like many of my other top 100 lists it was a great success (in terms of blog t

微服务的框架选择

从微服务说起 微服务架构(MSA)是一种架构概念,旨在通过将功能分解到各个离散的服务中以实现对解决方案的解耦.你可以将其看作是在架构层次而非获取服务的类上应用很多SOLID原则. 用通俗的话来讲,就是为了高度解耦软件之间的依赖性,使每个独立的模块都能够单独测试,单独运维,最大限度的提高软件的开发流程.从下图可以看一下微服务的软件生命周期. 软件从需求分析就可以适配模块,也就是说需求分析的过程就可以加入设计,从新的角度来说就是在哪个模块中进行升级开发,开发人员在开发完成后,通过持续集成,将开发的结