Myth-Busting Agile QA Testing in Software Development

Agile software development is a set of principles that allows cross-functional teams to develop software requirements and solutions for collaboration. It’s characterized by a flexible, rapid response to change and encourages adaptive planning, early delivery and continuous improvement. These principles don’t require a specific methodology, although many techniques in software development are described as “agile”.

Agile development originated as a result of discussions on lightweight development methods. The Manifesto for Agile Software Development, which was published in 2001, promotes the interaction between individuals over tools and processes. It also values responding to change more than simply following a plan and collaboration with customers more than contract negotiations.

Agile testing follows the principles of agile software development to deliver the business value required by the customer. This strategy integrates testing with coding, rather than the traditional approach of implementing testing as a separate phase of software development. Coding and testing are performed interactively incrementally on a particular feature until it provides sufficient value to be released to production. Agile testing relies upon the participation of all members of a cross functional team along with testers who provide special expertise. Testers rely on specification by example to develop test cases, and all team members are encouraged to work at a pace they can sustain indefinitely.

Agile testing is a relatively new discipline in software development, so a number of misconceptions still persist regarding its use. These misconceptions include the following:

  • Agile quality assurance (QA) isn’t needed in software development
  • In-house agile QA teams are essential
  • Agile QA doesn’t affect products

You don’t need QA testing in your development

It’s easy to believe that software is ready for release when it appears to work perfectly on the development platform. However, this view overlooks the fact that commercial software must be compatible with many combinations of hardware and software. For example, each web browser has significant differences; these differences require browser software to be independently tested against each and every version.

The increasing rate of technological advancement means that most QA testing is now performed to ensure compatibility with new technology rather than legacy systems. For example, the Capgemini World Quality Report 2015–16 found that 52 percent of QA budgets were devoted to new IT such as the Internet of Things (IOT), mobile devices and social media. This study also found that QA accounted an average of 18 percent of an organization’s total IT budget in 2012; 23 percent in 2013; and 26 percent in 2014. Furthermore, the Capgemini report expects that figure to increase to 29 percent in 2017.

Business cycles are also becoming shorter and more dynamic, which makes agile testing even more advantageous for software development firms. Traditional software development performs testing at the end of the project, which often results in a shortened testing phase due to an approaching deadline. Agile testing can therefore produce a more robust end product with more thorough testing. The integration of developers and testers means that bugs are easier to fix in agile development, since testers can report bugs and evaluate fixes immediately. Software developers can also deliver products more quickly, since bugs can be fixed before they become tightly integrated into the code.

You must have an in-house QA testing team

The traditional method of performing quality assurance involves multiple in-house teams of testers who perform exhaustive manual and automated testing. This approach can be effective when you’re releasing a new version of software every six months. However, today’s business environment requires much shorter deployment cycles. For example, major developers like Amazon, Google and Facebook now update their software many times each day. This would be virtually impossible with in-house QA.

The primary problem with in-house QA is that it can’t keep up with the deployment cycles that most businesses need to remain competitive. The sequential approach of traditional QA necessarily results in a slower response time for fixes. To understand this, for instance, Internet applications routinely require the sign-up process to be tested with multiple browsers such as IE8, IE9 and IE10, etc. Increasing the size of an in-house QA team provides very little return for this process since this strategy only provides a linear increase in throughput.

Several software developers have offered their views on this issue to Software Magazine. Nikhil Kaul, product manager at SmartBear, observes that the tester’s role changes dramatically in agile development. He says, “Testers must be willing and flexible to participate in different phases of [the] SDLC, right from working with developers when the code is written.” He adds that agile testing suggests rapid process to deliver a new product with quality.

Shravanthi Alimilli, Product-Marketing Manager at Progress, discusses the great need for collaboration and communication in agile testing. She says that agile developers should think more like testers, and testers should think more like developers. This process involves developers checking their code for errors more often and testers engaging in the creative process of software development more fully.

QA doesn’t directly affect your products

Many software developers believe that agile QA doesn’t directly affect the end product. However, this technique reduces both the development time and the number of errors in the final product. Developers are also more likely to use product managers (PMs) as technical resources in an agile world, resulting in PMs spending more time on tactical activities.

Many PMs are just now moving toward an agile methodology, although software developers have been using it for years. An agile approach toward product management encourages greater collaboration between developers and customers, including more face-to-face communication. It also delivers code more frequently and manages the backlog of user requirements more effectively to reduce changes to the code. Furthermore, agile product management provides more opportunities for improvement in product management.

An agile approach to product development doesn’t require a particular methodology, so each team tunes its processes to create a method unique to that environment. These methods include both organization philosophies and development strategies that result in new ways of creating a product. The integration of agile approaches into existing systems generally involves mapping these new concepts to traditional solutions.

Development teams require a voice with the customers when an organization adopts agile methods. This primarily includes a prioritized list of user requirements, although an understanding of market problems is helpful for product developers in an agile environment. Agile production methods also encourage the role of a product owner (PO), which is distinct from the PM. The two roles may appear similar, but the PO’s primary duties are to provide the development team with customer and market information.

About Tiempo Development

At Tiempo, we are making the business of software development easier and more affordable with a unique combination of a nearshore business model, agile methodology, and advanced talent management. Our Development teams engineer powerful technologies that align with the goals and strategies of our customers for both their internal and public-facing development initiatives. The Tiempo Quality System is the agile framework that makes all of this possible and supports companies in launching software releases sooner without draining important resources. Learn more about our approach to creating quality software in our white paper on the Tiempo Quality System.

YouTube video