THE AGILE WAY: a Complete Guide to Understanding Agile Testing Methodologies
Total Page:16
File Type:pdf, Size:1020Kb
The Agile way | 0 THE AGILE WAY: A complete guide to understanding Agile testing methodologies Tricentis www.tricentis.com The Agile way | 1 Navigating an agile world The testing world has undergone a significant Agile transformation over the last decade. According to VersionOne’s 13th annual State of Agile survey, 97% of respondents report their organizations practice Agile development, and nearly half of respondents say that 50% or more of their organization’s teams are Agile. Compare that to 10 years ago, when most organizations only had a few Agile projects, and it’s clear the practice has ramped up significantly. But transformation is still in flight: In this year’s survey, most respondents (78%) said not all of their company’s teams have adopted Agile practices. A vast majority (83%) said their organizations were below a high level of competency with Agile practices. Further complicating the transition is the increasing importance of DevOps implementation, with most organizations reporting they now have a DevOps initiative either planned or underway. As more and more companies embark on Agile and DevOps transformations, there is an increasing need for the two to be connected to help organizations move forward, transform the culture between development and operations, and address delivery speed challenges. It’s clear that continuous integration and delivery, paired with increasing test automation, can transform culture and accelerate delivery, but many organizations struggle to understand where to start, or how to scale. That means that testing teams face a tremendous opportunity to catalyze the transition by adopting modern testing practices that support Agile and DevOps. They also face a tremendous challenge: to ensure high quality amid accelerated release timelines, and to convince leadership to invest in testing, which is often the last priority in an Agile transformation. But in order to be successful, testers must be enabled to work more collaboratively with the larger development team. In order to survive and thrive in this new testing world, it’s critical to have a comprehensive understanding of what agile testing really means and the different methodologies that are part of Agile development. That’s not an easy job. Agile is constantly evolving. Agile encompasses a wide range of methodologies, from SAFe to Scrum to BDD, TDD, ATDD, Kanban, and many more. For even the most mature Agile teams, it’s hard to keep up. We developed this ebook to help testers, QA leaders, heads of DevOps, CTOs — and anyone else who manages application development and testing, or is interested in accelerating their organization’s transformation — better understand what’s required to succeed in the complex world of Agile development and testing. The Agile Method promotes adaptive planning, early delivery and continuous improvement, and encourages rapid and flexible response to change. It’s quickly become the gold standard for software development. And as the Agile world has heated up, so has the pressure on testers to produce timely releases without sacrificing quality. Tricentis www.tricentis.com www.tricentis.com v The Agile way | 2 But what type of Agile testing is right for your organization? In this guide, you’ll learn: ✓ What Agile testing is and why it’s critical to the success of any agile or DevOps transformation ✓ The different types of Agile testing methodologies and how to choose which ones are right for your organization ✓ Our predictions on where the Agile & DevOps movement is headed and what you need to know to stay ahead What is Agile testing? It’s a collaborative, flexible and adaptive approach that requires early participation from testers to deliver working code faster. In Agile environments, testing has to be integrated throughout the entire lifecycle, beginning at the requirements phase. With the fast pace of Agile, there is rarely time to test everything so requirements must be prioritized, test cases must be written earlier, and test automation must be deployed and scaled where possible. Adaptability is key, as features and requirements can change significantly from sprint to sprint. Exploratory testing can be used to quickly dive deep into a new requirement or feature and assess its Tricentis www.tricentis.com The Agile way | 3 quality, providing the development team with rapid feedback — and the goal is not documentation, but to create code that actually works. This adaptability is why an Agile team needs broader, cross-functional skill sets, compared to a traditional manual tester. Testing needs to be collaborative, where communication is regular and fluid, and developers and testers work together to define how the approach to testing will move forward. During Agile testing, it’s helpful to keep the four central tenets of the Agile Manifesto in mind to help guide the decision-making process: 02 01 — — Customer Individuals and collaboration over interactions over contract negotiation processes and tools 02 04 — — Responding to Working software change over over comprehensive following a plan documentation Tricentis www.tricentis.com v The Agile way | 4 Scrum Best Practices Scrum is one of the most popular Agile development methodologies and ✓ A user story is received from a one of the easiest transitions from the waterfall approach, since it’s product owner, based on typically requirements-driven like waterfall but involves shorter iterations feedback from users or the with higher degrees of collaboration. business, and converted into acceptance criteria to minimize potential miscommunication. Overview ✓ Based on the acceptance criteria, code is created and tests are Similar to waterfall, scrum is driven by a requirement or user story that written, then code is approved by defines how features should perform and be tested — but with one the team and tested in one or significant difference: Scrum testing is a very iterative process, designed many sandbox-like environments. to deliver value in the shorter term. ✓ Upon sprint completion, code is tested in a production-like In scrum, questions are answered up front to avoid the trap of building a environment, staged into a build product loaded with features, only to realize later that the priorities or and deployed out into production. requirements may have shifted. Plus, teams are better able to hit the moving targets of evolving customer demands in a complex marketplace, thanks to the flexibility scrum brings. Overall, scrum is much more collaborative and iterative than waterfall, which typically requires many cycles of testing and bug fixing before a Key Team Members product can be released. Product Owner Waterfall vs. Scrum Scrum relies on more frequent touchpoints between developers, Project Manager testers, product owners, and the business to make sure any changes are properly communicated. Developers Scrum demands regular touch points across the scrum team, such as daily stand-ups and sprint retrospectives, to keep activities aligned, Automation Engineers and remove obstacles. Strong project management is a key requirement in scrum, and the Testers role of the Scrum Master is to constantly refine the schedule and direction and keep the team on track. Tricentis www.tricentis.com The Agile way | 5 Kanban Best Practices Kanban is similar to waterfall in the creation of key stages with gates that are sequential, but specific phases are tracked on a feature level rather ✓ A user story is received from a than a release level. product owner, based on feedback from users or the business, and converted into acceptance criteria to minimize Overview potential miscommunication. If you’re trying to make a seamless transition from waterfall to Agile in ✓ Based on the acceptance criteria, your organization, Kanban may be the best choice, thanks to its ability to code is created and tests are written, then code is approved by incorporate agility into your process without turning it upside down. It the team and tested in one or can be a good starting point for further transition into more collaborative many sandbox-like environments. methodologies like Scrum and a bridge to create the close ✓ Upon sprint completion, code is developer/tester interactions needed for TDD, ATDD, and BDD tested in a production-like methodologies. environment, staged into a build and deployed out into production. Kanban drives visibility into production and helps to identify bottlenecks in the process since it creates and opens up each phase of the process. This visibility enables you to quickly identify which steps in your process are hurting efficiency, giving you the tools to drive greater agility and Key team members throughout. Product Owner Waterfall vs. Kanban Kanban requires planning on a feature level, meaning that team Project Manager members must be ready to perform their duty at any given time (i.e. plan tests in the morning, write them at lunch, run them in the Developers afternoon). Kanban requires many frequent handoffs between team members with Automation Engineers the goal of minimizing the time these handoffs take, so it is critical to keep status up to date and provide visibility to the rest of the team into Testers progress. Tricentis www.tricentis.com v The Agile way | 6 Test Driven Development (TDD) Best Practices With Test Driven Development — the quintessential Agile testing style — ✓ Automated unit tests are designed code is developed against automated unit tests rather than time- and written in advance. consuming and often misunderstood requirements. ✓ Once a test is complete, the developer is tasked with writing code against it until it passes, and when it passes only refactor Overview code. With this method of While some organizations may struggle with the concept of this leading with the test in mind, documentation is approximately “backwards” methodology, this approach delivers one of the most a third of what it would be in a collaborative and efficient product development processes possible. waterfall approach, and developer scope creepis In TDD, code is written to make the automated unit test pass, and the test minimized.