The question is what puts the agile in agile QA testing? This isn’t just about Drupal Software QA, but software quality assurance as a whole. Want the short answer? Here it is:
Agile QA testing is a dynamic way to ensure software is good to go.
Well, that’s it. Hope you learned something!
You're thinking: "Oh, come on. There’s more to it than that!"
There always is with these buzzwords. Welcome aboard. Our industry is full of this "bizarro" jargon, all tied together and associated: Continuous Integration, Lean Agile, Waterfall, Nimble (6σ) WhirlpooI... yea, I made that last one up. But you get the idea. Around and around we go. We’re all in the same boat and we’re all seasick.Let’s drop anchor here, and get to the bottom of this agile business. We’ll cover the other stuff later on.
What makes agile QA testing different?
Traditional testing is rigid and despite all intents and purposes, it’s slow.
But let’s get more technical.
If you compare a traditional development methodology with any of the agile development techniques (like Scrum, Kanban or Extreme Programming), you’ll see differences. The way successful testing activities are integrated, the naming convention, entry and exit criteria, the use of tools—all different and for good reasons.
Agile QA testing enables quick corrections due to early feedback.
Agile testers are active members of the whole development team from the first day or Sprint Zero. Unlike the traditional approach, where testing comes into play somewhere in between—as a spike on the execution timeline. With traditional methods, testers aren’t given a chance to participate in any of the planning. When they are given that chance, feedback and turnaround times are faster, stronger, and safer.
Development lifecycles are done differently.
The biggest difference between traditional development lifecycles and agile lifecycles is the concept of ‘very short iterations.’ In fact, when I first worked on a product that followed Scrum, I was given a rough draft of just one feature. Just a small part of the product being developed and that’s it. Each iteration results in working software that delivers functioning features—value to stakeholders. Within these cycles, the role of an agile tester starts from release planning followed by iteration planning, until the end product is delivered to the client.
So, the tester plays an important part in the entire planning process. During the Release planning phase, agile testers can add value by:
- Defining testable user stories, including acceptance criteria
- Participating in project and quality risk analysis
- Estimating testing effort associated with the user stories
- Determining necessary test levels
- Planning the testing for release
One of the projects that I am currently working on consists of 140 User stories, 83 Change requests, 51 Support and 115 tasks in all. All of this had to be managed with just 2 testers on the team. It did not take more than two sprints to realize the need for automating this project simultaneously, as it was being developed and tested in parallel.
Automation testing plays a central role.
This not only makes the manual job easier and faster, but it ensures new code doesn’t cause regressions immediately after the code is merged. This testing happens on a daily basis. Due to these shorter sprints, which result in faster release cycles, it’s mandatory that an automation tester is included on the agile team.
This emphasis on preemptive, automated action helps define agile.
Agile encourages writing tests before development starts. This helps achieve early defect prevention, detection, and removal. There are few techniques that have been introduced to agile projects, and testers play a major role guiding key processes practicesTest-Driven Development, Acceptance Test-Driven Development, and Behavior-Driven Development.
Test automation is a core agile practice and agile projects depend on it. This frees up developers so they can deliver high-quality code frequently. It provides a framework that lets the team maximize its velocity while maintaining high standards. Agile teams focus on having working software, always. This mindset enables teams like ours to release production-ready software as needed, and it requires constant, flawless, and quick testing.
There are key, unique agile success factors. Here are seven:
1. Adopting the perfect agile QA testing mindset
This means working with regularity and rhythm, with early and efficient communication taking precedence. Testers essentially need to be proactively agile, self-consciously applying its principals throughout their work.
2. Using the whole-team approach
Quality is everyone’s responsibility. Without expertise from important areas coming together, agencies can't deliver quality products faster.
3. Regression testing automation
I know you've seen this before, bit it's a core principle. And if regression tests are automated, the testers can better utilize their time on the current tasks like getting all the information required for the currents tasks to be implemented.
4. Providing and obtaining early feedback
Agile's success is all about early feedback. This means building acceptance criteria for the developers to provide them feedback, testing and delivering the story in order to achieve early feedback. This process needs to continue throughout the project.
5. Adhering to that base of core agile practices
There are certain core practices to be followed religiously. are like Continuous Integration, maintaining a test environment, and keeping coding and testing as one activity.
6. Collaborating with partners
Communication lies at the root of the agile environment. Agile concentrates on delivering business value first. Collaborating with partners frequently ensures delivering per expectation, per priority.
7. Looking at the big picture
Although developers are busy developing the user stories and pursuing technical perfection, a tester needs to focus on the product as a whole. This holds true generally, irrespective of the development methodology being followed by the team. When multiple user stories are being integrated into the system, testers need to ensure, that along with the individual user stories, the entire system functions correctly.
Let’s be honest here, once you’ve figured out what agile QA testing is, you’re going to have more questions. That’s the thing about buzzwords. So ask away and we'll get back to you.