目录
翻译内容
What Is Agile Testing and an Agile Test Plan? 什么是敏捷测试和敏捷测试计划?
Agile Testing Metrics 敏捷测试指标
Burn-Down Chart 燃尽图
Running Tested Features 运行经过测试的功能
Cumulative Flow 累积流量
Defect Cycle Time 缺陷周期时间
Defect Spill-Over 缺陷溢出
Velocity 速度
Common Agile Testing Issues 常见的敏捷测试问题
Agile Testing: How to Shift Left to Get It Right 敏捷测试:如何向左移动
Overcome Agile Challenges With a Testing Plan 通过测试计划克服敏捷挑战
关于作者
原链接
The idea behind the Agile approach to project management is to encourage collaboration, transparency, and responsiveness to feedback among an integrated team. Agile software development means using the set of principles outlined in the Agile manifesto to develop high-quality working software, frequently.
敏捷的项目管理方法背后的想法是鼓励整个团队之间的协作,透明度和反馈响应。 敏捷软件开发意味着使用敏捷宣言中概述的一套原则来频繁地开发出高质量的工作软件。
The Agile methodology emphasizes fast-paced software development, meaning software testing must also be performed at speed while remaining thorough enough to ensure high quality.
敏捷方法强调快节奏的软件开发,这意味着软件测试也必须快速执行,同时保持足够全面以确保高质量。
It is vital for Agile teams to find a way to evaluate and improve their testing efforts. Test metrics are useful for providing basic measurements of the effectiveness of any software testing effort in Agile teams.
敏捷团队必须找到评估和改进测试工作的方法。 测试指标,对于提供敏捷团队中任何软件测试工作有效性的基本测量,非常有用。
This post outlines what exactly testing is in Agile development by comparing it to traditional testing in the old waterfall framework for software development. You'll also find out about Agile test plans and get the low-down on some useful Agile test metrics.
本文通过将其与旧瀑布框架中的传统测试进行比较,概述了敏捷开发中真正测试的内容。 您还将了解敏捷测试计划,并了解一些有用的敏捷测试指标。
We focus on six key metrics that are relevant to testing in an Agile team. See SeaLights' agile testing metrics learning section for a wider list of recommended metrics.
我们专注于与敏捷团队中的测试相关的六个关键指标。 更广泛的推荐指标,请参阅SeaLights的敏捷测试指标学习部分。
After reading this post, you will better understand how to measure the testing efforts of your software development teams and improve on them, leading to higher-quality software and more productive development. In other words, you’ll be better placed to achieve the goals of Agile development.
阅读本文后,您将更好地了解如何衡量软件开发团队的测试工作并改进它们,从而实现更高质量的软件和更高效的开发。 换句话说,您将更好地实现敏捷开发的目标。
Before the Agile framework became popular, QA was a separate activity performed by independent testing teams. Today, Agile testing means testing your software for defects as done in an Agile development team.
在敏捷框架开始流行之前,QA是由独立测试团队执行的单独活动。 今天,敏捷测试意味着在敏捷开发团队中测试您的软件是否存在缺陷。
With Agile testing, developers take part in improving the tests themselves as they work, and with the help of increased automation and rapid feedback, Agile teams can deliver higher-quality software and ship to production faster.
通过敏捷测试,开发人员可以在工作时参与改进测试,并且借助增强的自动化和快速反馈,敏捷团队可以提供更高质量的软件,并更快地投入生产。
The test plan is an important document formally outlining software testing scope and activities. An Agile test plan differs from a traditional test plan used in the old waterfall approach.
测试计划是一份正式概述软件测试范围和活动的重要文件。 敏捷测试计划与旧瀑布方法中使用的传统测试计划不同。
Waterfall is a non-iterative, sequential software development approach in which development is divided into pre-defined phases. Test plans in waterfall are static because detailed requirements are defined before the software design phase. Such plans don't need much modification over the life of a project.
瀑布是一种非迭代的顺序软件开发方法,其中开发被划分为预定义的阶段。 瀑布中的测试计划是静态的,因为在软件设计阶段之前定义了详细的需求。 这些计划在项目的生命周期中不需要进行太多修改。
In contrast to the waterfall approach, an Agile approach calls for a dynamic test plan, which has the adaptability to meet changing requirements. A test strategy is vital because it helps teams to:
与瀑布式方法相比,敏捷方法需要动态测试计划,该计划具有满足不断变化的需求的适应性。 测试策略至关重要,因为它可以帮助团队:
A dynamic test plan can, therefore, improve the productivity of Agile teams by ensuring thorough preparation for software testing and improved efficiency due to transparency in the testing strategy and processes. This type of test plan helps Agile teams to plan ahead while allowing the team to accommodate changing requirements.
因此,动态测试计划可以提高敏捷团队的生产力,这是通过确保软件测试的全面准备,以及由于测试策略和流程的透明性而提高效率来实现的。 此类测试计划可帮助敏捷团队提前计划,同时允许团队适应不断变化的需求。
After creating a test plan and beginning software testing, it’s important to assess how effective the software tests are by looking at data in the form of relevant metrics. The following metrics are examples of the types of measurements that can help an Agile team better achieve its goals.
在创建测试计划并开始软件测试之后,通过以相关指标的形式查看数据,来评估软件测试的有效性非常重要。 以下指标是度量的示例,可以帮助敏捷团队更好地实现其目标。
A burn-down chart is useful because of its simplicity as a metric. A burn-down chart plots outstanding work against time. Units of time can be days, iterations, or sprints. You can measure outstanding work in story points, features, and functions.
由于其作为度量标准的简单性,因此燃尽图非常有用。 燃尽图表显示了与时间相关的里程碑式的工作。 时间单位可以是天,迭代或冲刺。 您可以衡量故事点,功能和功能方面的里程碑工作。
The ideal line is plotted from the beginning of the iteration or project, and it connects in a straight line to the end point of the project. You can create a burn-down chart using Microsoft Excel or any one of several project management tools, such as Team Foundation Server.
从迭代或项目的开始绘制期望线,并且它以直线连接到项目的终点。 您可以使用Microsoft Excel或多个项目管理工具(如Team Foundation Server)中的任何一个创建燃尽图。
实际线应尽可能地跟踪估计值。 在燃尽图表中实际与期望之间的差异可以快速衡量团队的生产力。 假设团队根据期望的生产线准确估算其生产率,那么当实际工作量远远超过估计的任务时,燃尽图提供了一个简单的视觉辅助工具,可以快速解决任何问题。
In Agile, a task is considered complete when both the development and the tests are complete. A common term used to define completion is “Done is Done,” meaning the completed tasks that appear on the burn-down chart have been tested and there are no additional related activities.
在Agile中,当开发和测试都完成时,任务被认为完成了。 用于定义完成的常用术语是“已完成”,这意味着已在燃尽图表上显示的已完成任务已经过测试,并且没有其他相关活动。
Running tested features (RTF) is an Agile metric that measures the amount of customer-defined software features verified as functioning by software tests. This metric is helpful because it essentially makes teams more agile by:
运行测试功能(RTF)是一种敏捷度量标准,用于衡量通过软件测试验证的客户定义软件功能的数量。 此指标很有用,因为它实际上使团队更灵活:
通过测量给定项目的RTF增长,团队可以轻松分析软件编码是否存在问题,或者用于验证功能的测试是否正常。 数据在视觉上表示为基于运行测试特征计数的折线图,可以轻松验证运行测试特征的数量是否随着每次迭代而增长(如预期的那样)。
A cumulative flow diagram maps an entire project's workflow, including tasks the team still needs to complete and tasks already completed. Since testing is part of the team's workflow, it is typically included on a cumulative flow diagram.
累积流程图映射整个项目的工作流程,包括团队仍需完成的任务和已完成的任务。 由于测试是团队工作流程的一部分,因此通常将其包含在累积流程图中。
通过映射整个项目工作流程,敏捷团队可以获得最终成为瓶颈的有价值的测量结果,正在进行的非生产性工作显示为在项目过程中扩展的垂直带。 例如,在上图中,由红色区域表示的在制品在项目过程中变宽,表明项目存在瓶颈。 可以使用此指标识别和解决此类关注领域。 您可以在Excel中创建CFD。
Agile teams should strive to fix bugs as quickly as possible. In fact, one of the main aims of the collaborative Agile approach is to fix bugs quicker so that software is released sooner. Such quick fixing can only arise when good tests are written and when testers effectively communicate with developers about defects. Cycle time measures the total time it takes to complete a task from the moment work begins on that task. Therefore, defect cycle time is a useful Agile metric because it conveys how well the Agile team works as a unit in fixing defects.
敏捷团队应该尽快修复缺陷。 事实上,协作敏捷方法的主要目标之一是更快地修复缺陷,以便更快地发布软件。 这种快速修复只有在编写好的测试和测试人员有效地与开发人员沟通缺陷时才会出现。 周期时间衡量从该任务开始工作的那一刻起完成任务所需的总时间。 因此,缺陷周期时间是一个有用的敏捷度量标准,因为它传达了敏捷团队在修复缺陷方面作为一个单元的工作情况。
可以使用Office应用程序将缺陷循环时间绘制为图形,显示修复y轴上的缺陷与x轴上的迭代(或其他间隔)所花费的时间。 最终目标是通过精心设计的测试,测试团队的快速和全面反馈以及开发人员的快速修复,缩短周期时间。 上图中的迭代6,7和8具有较短的缺陷循环时间与阈值的关系。
Agile teams aim to produce working software with each iteration. Defect spillover measures the defects that don't get fixed during a given iteration or sprint by simply counting the defects remaining at the start of each sprint or iteration.
敏捷团队的目标是在每次迭代时生成工作软件。 缺陷溢出衡量了每个冲刺或迭代中未被修复的缺陷量,即简单地统计每个冲刺或迭代开始遗留的缺陷量。
Such defects can accumulate over time when a team ignores them, leading to technical debt, which decreases productivity. Measuring this metric gives the Agile team an idea of how efficiently they are dealing with issues that arise. A simple bar graph provides a visual aid showing remaining defects per sprint or iteration. Ideally, few if any defects should spill over between intervals.
当团队忽视这些缺陷时,这些缺陷会随着时间的推移而累积,从而导致技术债务,从而降低生产率。 通过衡量这一指标,敏捷团队可以了解他们如何有效地处理出现的问题。 简单的条形图提供了一个视觉辅助,显示每个sprint或迭代的剩余缺陷。 理想情况下,如果有任何缺陷在间隔之间溢出,则很少。
Velocity is a useful metric within the context of an individual team. This metric simply compares the units of work completed during a sprint of a given length against the estimated work units it would take to deliver that sprint.
Velocity是单个团队环境中的有用指标。 该指标简单地将给定长度的冲刺期间完成的工作单元,与该冲刺所需的估计工作单位进行比较。
Velocity是衡量敏捷团队随着时间的推移成熟程度的好方法。 理想情况下,每次冲刺时速度应该会提高,然后在团队达到最佳生产率时达到峰值。 您可以在项目管理软件中查看速度图表,例如Atlassian。
Even with the many different metrics to measure, testing is, in itself, a problem for Agile teams. It is clearly essential to test software thoroughly before releasing it, but testing tends to slow down the time to market for software. Therefore, the main Agile testing issues revolve around implementing solutions for improved efficiency and productivity. Some of the main Agile testing challenges are:
即使要测量许多不同的指标,测试本身也是敏捷团队的一个问题。 在发布之前彻底测试软件显然是必不可少的,但测试往往会减慢软件的上市时间。 因此,主要的敏捷测试问题围绕提高效率和生产力的解决方案。 一些主要的敏捷测试挑战是:
There are also a number of problems associated with tracking certain test metrics. Such metrics create problems because they can either cause confusion, go against Agile principles, or otherwise provide little value. For example:
跟踪某些测试指标还存在许多问题。 这些指标会产生问题,因为它们可能导致混淆,违背敏捷原则,或者提供很少的价值。 例如:
The only way to overcome the potential for using problematic test metrics or using test metrics incorrectly is to promote increased awareness of what constitutes a useful test metric in an Agile team among both team members and project managers.
克服使用有问题的测试指标或错误地使用测试指标的可能性的唯一方法,是在团队成员和项目经理之间提高对敏捷团队中有用测试指标构成的认识。
Shifting left means moving towards testing software at the development stage instead of afterward. Testing conducted at the development stage is preventative rather than diagnostic; by proactively dealing with issues before the build moves forward, less time is wasted trying to find these issues later on.
向左移动意味着在开发阶段而不是之后转向测试软件。 在开发阶段进行的测试是预防性的而不是诊断性的; 通过在构建之前主动处理问题,可以减少时间浪费,避免在以后找到这些问题。
Shifting left can solve some of the main challenges in Agile, including catching defects as early as possible and improving code coverage.
向左移动可以解决敏捷中的一些主要挑战,包括尽早发现缺陷并改善代码覆盖率。
Some ways to get started with shift left testing are(开始左移测试的一些方法是):
It’s important to remember that metrics are still very relevant in the shift-left testing approach. You still need to evaluate tests to improve them, and test metrics provide the evidence required to make intelligent decisions about future software tests. Always gather data from the moment the testing effort begins.
重要的是要记住,在左移测试方法中,指标仍然非常相关。 您仍然需要评估测试以改进它们,测试指标提供了对未来软件测试做出明智决策所需的证据。 始终从测试工作开始的那一刻开始收集数据。
Agile teams require an approach to testing that reflects the cross-functional environment that Agile encourages.
敏捷团队需要一种反映敏捷鼓励的跨功能环境的测试方法。
Before any testing begins, it's important to outline a test plan. An Agile test plan is dynamic, incorporating emerging and changing requirements over time.
在任何测试开始之前,概述测试计划很重要。 敏捷测试计划是动态的,随着时间的推移包含新兴和不断变化的需求。
Test metrics in an Agile context are very relevant, but it's important to understand and use the appropriate metrics. Agile managers should be dissuaded from tracking metrics that are individually oriented.
敏捷上下文中的测试指标非常相关,但了解和使用适当的指标非常重要。 应该阻止敏捷管理员跟踪单独定向的指标。
The “shift left” concept aims to overcome the challenges associated with testing in Agile teams.
“左移”概念旨在克服与敏捷团队测试相关的挑战。
Gilad Maayan
Gilad is the CEO and Founder of Agile SEO, a digital marketing agency focused on SaaS and technology clients. He has done strategic consulting, content marketing, and SEO/SEM for over 150 technology companies including Zend, Oracle, Electric Cloud, JFrog and Check Point. Together with his team, he's helped numerous tech startups move from zero to tens of thousands of users, and driven double to triple digit growth in conversion and revenue for established software businesses.
Gilad是Agile SEO的首席执行官和创始人,Agile SEO是一家专注于SaaS和技术客户的数字营销机构。 他为包括Zend,Oracle,Electric Cloud,JFrog和Check Point在内的150多家技术公司提供战略咨询,内容营销和SEO / SEM。 与他的团队一起,他帮助众多科技创业公司从零到数万用户,并推动已建立的软件业务的转换和收入增长了两位到三位数。
https://simpleprogrammer.com/testing-metrics-agile-environment/