Agile testing

Last updated

Agile testing is a software testing practice that follows the principles of agile software development. Agile testing involves all members of a cross-functional agile team, with special expertise contributed by testers, to ensure delivering the business value desired by the customer at frequent intervals, working at a sustainable pace. Specification by example is used to capture examples of desired and undesired behavior and guide coding.

Contents

Overview

Agile development recognizes that testing is not a separate phase, but an integral part of software development, along with coding. Agile teams use a "whole-team" approach to "baking quality in" to the software product. Testers on agile teams lend their expertise in eliciting examples of desired behavior from customers, collaborating with the development team to turn those into executable specifications that guide coding. Testing and coding are done incrementally and interactively, building up each feature until it provides enough value to release to production. Agile testing covers all types of testing. The Agile Testing Quadrants provide a helpful taxonomy to help teams identify and plan the testing needed. The model of the Agile Testing Quadrants was originally described by Brian Marick, [1] and was popularized by Lisa Crispin and Janet Gregory in their book Agile Testing: A Practical Guide for Testers and Agile Teams. [2] [3] It places different test types on two axis: Technology Facing vs Business Facing, and Support Programming vs Critique Product. [1]

Traditional testing methodologies (often employed in the Waterfall model of software development) usually involve a two-team, two-phase process in which the development team builds the product to as near perfection as possible. The software product is delivered late in the software development life cycle at which point the test team strives to find as many bugs/errors as possible. In contrast with these traditional methodologies, Agile testing focuses on repairing faults immediately, rather than waiting for the end of the project. When testing occurs at the tail end of a project, it can sometimes be sacrificed in terms of duration and quality to meet critical schedules and budget restrictions. [4] Costs are expected to go down as the time between development and testing feedback decreases. [4] [5] With shorter feedback loops, bugs fixes and reworks require less time as developers spend much less time reengaging the code's context as they move on to new problems and projects. [4]

In the "Worldwide Software Testing Practices Report 2015 - 2016", [6] ISTQB found that the popularity of Agile methodologies are significantly increasing, which shows the need for Agile testing processes and techniques. They are providing an Agile Tester extension to their certification. [7]

Tools

As companies grow, agile testing teams often rely on software testing tools to solve challenges that can ultimately speed-up the release of feedback making sure. [8] Most teams look for collaboration features, automated or customized reporting and finding ways to avoid repeated efforts. Choosing the right tool will depend on the requirements of each team. Pairing up with other Agile Lifecycle Development Tools, Agile testing tools can deliver effective results by coexisting in integrated environments. Such is the case for Atlassian Marketplace and Microsoft Visual Studio. [9]

Some test management tools support Agile testing by getting teams involved earlier in the SDLC to continuously build test scenarios as stories evolve. [10] Teams often look for a solution that can deliver a combination of automated and manual testing. [11]

Further reading

Related Research Articles

<span class="mw-page-title-main">Kent Beck</span> American software engineer

Kent Beck is an American software engineer and the creator of extreme programming, a software development methodology that eschews rigid formal specification for a collaborative and iterative design process. Beck was one of the 17 original signatories of the Agile Manifesto, the founding document for agile software development. Extreme and Agile methods are closely associated with Test-Driven Development (TDD), of which Beck is perhaps the leading proponent.

Software testing is the act of examining the artifacts and the behavior of the software under test by validation and verification. Software testing can also provide an objective, independent view of the software to allow the business to appreciate and understand the risks of software implementation. Test techniques include, but are not necessarily limited to:

A software company is an organisation — owned either by the state or private — established for profit whose primary products are various forms of software, software technology, distribution, and software product development. They make up the software industry.

Rapid application development (RAD), also called rapid application building (RAB), is both a general term for adaptive software development approaches, and the name for James Martin's method of rapid development. In general, RAD approaches to software development put less emphasis on planning and more emphasis on an adaptive process. Prototypes are often used in addition to or sometimes even instead of design specifications.

In software development, agile practices include requirements, discovery and solutions improvement through the collaborative effort of self-organizing and cross-functional teams with their customer(s)/end user(s). Popularized in the 2001 Manifesto for Agile Software Development, these values and principles were derived from, and underpin, a broad range of software development frameworks, including Scrum and Kanban.

In agile principles, timeboxing allocates a maximum unit of time to an activity, called a timebox, within which a planned activity takes place. It is used by agile principles-based project management approaches and for personal time management.

Lean software development is a translation of lean manufacturing principles and practices to the software development domain. Adapted from the Toyota Production System, it is emerging with the support of a pro-lean subculture within the agile community. Lean offers a solid conceptual framework, values and principles, as well as good practices, derived from experience, that support agile organizations.

In software engineering, behavior-driven development (BDD) is a software development process that encourages collaboration among developers, quality assurance experts, and customer representatives in a software project. It encourages teams to use conversation and concrete examples to formalize a shared understanding of how the application should behave. It emerged from test-driven development (TDD) and can work alongside an agile software development process. Behavior-driven development combines the general techniques and principles of TDD with ideas from domain-driven design and object-oriented analysis and design to provide software development and management teams with shared tools and a shared process to collaborate on software development.

<span class="mw-page-title-main">Watir</span>

Watir, is an open-source family of Ruby libraries for automating web browsers. It drives Internet Explorer, Firefox, Chrome, Opera and Safari, and is available as a RubyGems gem. Watir was primarily developed by Bret Pettichord and Paul Rogers.

<span class="mw-page-title-main">Ron Jeffries</span> American computer scientist

Ron Jeffries is one of the three founders of the Extreme Programming (XP) software development methodology circa 1996, along with Kent Beck and Ward Cunningham. He was from 1996, an XP coach on the Chrysler Comprehensive Compensation System project, which was where XP was invented. He is an author of Extreme Programming Installed, the second book published about XP. He has also written Extreme Programming Adventures in C#. He is one of the 17 original signatories of the Agile Manifesto.

There is considerable variety among software testing writers and consultants about what constitutes responsible software testing. Proponents of a context-driven approach consider much of the writing about software testing to be doctrine, while others believe this contradicts the IEEE 829 documentation standard.

AnthillPro is a software tool originally developed and released as one of the first continuous integration servers. AnthillPro automates the process of building code into software projects and testing it to verify that project quality has been maintained. Software developers are able to identify bugs and errors earlier by using AnthillPro to track, collate, and test changes in real time to a collectively maintained body of computer code.

DevOps is a methodology in the software development and IT industry. Used as a set of practices and tools, DevOps integrates and automates the work of software development (Dev) and IT operations (Ops) as a means for improving and shortening the systems development life cycle.

Continuous testing is the process of executing automated tests as part of the software delivery pipeline to obtain immediate feedback on the business risks associated with a software release candidate. Continuous testing was originally proposed as a way of reducing waiting time for feedback to developers by introducing development environment-triggered tests as well as more traditional developer/tester-triggered tests.

Scenario testing is a software testing activity that uses scenarios: hypothetical stories to help the tester work through a complex problem or test system. The ideal scenario test is a credible, complex, compelling or motivating story; the outcome of which is easy to evaluate. These tests are usually different from test cases in that test cases are single steps whereas scenarios cover a number of steps.

Continuous delivery (CD) is a software engineering approach in which teams produce software in short cycles, ensuring that the software can be reliably released at any time and, following a pipeline through a "production-like environment", without doing so manually. It aims at building, testing, and releasing software with greater speed and frequency. The approach helps reduce the cost, time, and risk of delivering changes by allowing for more incremental updates to applications in production. A straightforward and repeatable deployment process is important for continuous delivery.

Specification by example (SBE) is a collaborative approach to defining requirements and business-oriented functional tests for software products based on capturing and illustrating requirements using realistic examples instead of abstract statements. It is applied in the context of agile software development methods, in particular behavior-driven development. This approach is particularly successful for managing requirements and functional tests on large-scale projects of significant domain and organisational complexity.

<span class="mw-page-title-main">Extreme programming</span> Software development methodology

Extreme programming (XP) is a software development methodology intended to improve software quality and responsiveness to changing customer requirements. As a type of agile software development, it advocates frequent releases in short development cycles, intended to improve productivity and introduce checkpoints at which new customer requirements can be adopted.

Acceptance test–driven development (ATDD) is a development methodology based on communication between the business customers, the developers, and the testers. ATDD encompasses many of the same practices as specification by example (SBE), behavior-driven development (BDD), example-driven development (EDD), and support-driven development also called story test–driven development (SDD). All these processes aid developers and testers in understanding the customer's needs prior to implementation and allow customers to be able to converse in their own domain language.

<i>Better Software Magazine</i> Digital magazine

Better Software magazine was a quarterly digital magazine published by TechWell Corporation. It covered topics of interest to software testers, developers, project managers, and business analysts. Better Software was originally published in 1996 as Software QA magazine, focusing primarily on software QA and testing. Software QA was renamed Better Software magazine in 2004.

References

  1. 1 2 "Agile testing directions: tests and examples". 22 Aug 2003. Retrieved 21 Jan 2018.
  2. Crispin, Lisa; Gregory, Janet (2009). Agile Testing: A Practical Guide for Testers and Agile Teams. Addison-Wesley.
  3. Alexander Tarlinder (2017). Developer Testing: Building Quality into Software. Addison-Wesley.
  4. 1 2 3 Mohanty, Hrushikesha; Mohanty, J. R.; Balakrishnan, Arunkumar (2017). Trends in Software Testing | SpringerLink. doi:10.1007/978-981-10-1415-4. ISBN   978-981-10-1414-7.
  5. BUILDING AND TESTING. (2014). BUILDING AND TESTING. In Agile Governance and Audit: An overview for auditors and agile teams (pp. 79–87). IT Governance Publishing. Retrieved from https://www.jstor.org/stable/j.ctt7zsx7z.14 Export Citation
  6. "Worldwide Software Testing Practices Report 2015 - 2016". 2015–2016.
  7. "Agile Tester Extension".
  8. "Agile-Friendly Test Automation Tools/Frameworks - Test Obsessed" . Retrieved 2016-06-29.
  9. "Gartner and Software Advice examine Agile Lifecycle Management Tools" . Retrieved 2016-06-29.
  10. Global, IndraStra. "B&E | How Testing is Challenging in Agile Methodology". IndraStra. ISSN   2381-3652.
  11. "Agile Testing Tools - Testing in Agile, Scrum and XP Projects" . Retrieved 2016-06-29.