Select Page

Does Agile Testing Improve Application Development?

Tom Moore | | April 2, 2021

Application development is a complex process. Developers work very hard to produce products that are error-free, but without a formal testing process, the final product can be flawed. That’s why testing is so important. It’s necessary to ensure the delivery of a viable application that works in practice. There’s no controversy over the need for testing. The question is, “Which type of testing is the most effective?”

Waterfall vs Agile Testing Philosophies

The two most common types of application development methodologies are Waterfall and Agile. The Waterfall methodology calls for planning out a complete project to produce a final product. The Waterfall project team works in phases, and the output from one phase flows to the next until the product is complete.

The Agile methodology breaks a project down into small segments that are completed in “Sprints” of two to four weeks. The process focuses on collaboration among the team, the customer, and the users, and working iteratively to refine the team’s output.

Waterfall Testing

The Waterfall testing model breaks-down activities into linear sequential phases. Each phase is dependent on the successful completion of the previous phase. This approach is less iterative and flexible as progress flows usually in one direction… downward.

waterfall diagram

Testers that are part of a Waterfall process validate the features as defined in the project documentation. If problems arise during testing, it is difficult to make any significant revisions or changes in how the product works. Again, individuals working with a Waterfall methodology are caught in a downward, one-way, delivery method. It is not designed to stop (mid-stream) the team’s delivery tasks, to go-back to fix the problem, and then paddle-on to the next task. Waterfall testing should not be considered for large complex projects – but for small, short-duration projects, there is certainly a place for this delivery model.

Agile Testing

When the Agile methodology was developed, testing was one of the motivators. Experienced developers using the Waterfall methodology believed that leaving the testing until the project was almost complete left too many opportunities for problems to hide in the code. By the time testing was initiated, fixing problems typically required changes that were costly and time consuming.

agile diagram

Agile development involves members of a cross-functional Agile team, with a focus on the expertise of the testers. The testers are continuously testing (in cycles call “Sprints”) the features being developed as they are being developed, thereby supporting DevOps. This approach improves product quality, and consistency of meeting delivery dates.

The Agile Testing Philosophy

Agile testing can be done differently in different organizations. But, the authors of the book “Ten Principles for Agile Testers” outline a number of principles that Agile teams can incorporate into their Agile methodology.

  1. Make feedback continuous.The testers, development team, analysts, and the product owner should exchange feedback throughout the Agile process.
  2. Focus on the customer. Everyone’s goal should be to develop a product that works best for the customer. Even an elegant product isn’t useful if the customer isn’t delighted.
  3. Make communication face to face. Testers and developers should communicate in person to eliminate misunderstandings and to make clarifying feedback easy.
  4. Support courageous testers. Testers need to feel comfortable fighting for things they believe are in the best interest of the customer.
  5. Avoid too much testing.Testers should focus on only the most necessary tests to keep the product simple but valuable.
  6. Make continuous improvement critical.Testers need to have the mindset that continuous improvement is important to improve their skills and to stay open to new ideas.
  7. Don’t fight change. Testers need to adapt to the changing needs of the customer and the marketplace easily.
  8. Encourage self-guidance.Morale is higher when testers and the other members of the team can work together to guide their own activities.
  9. Stay centered on people.Testers should have excellent communication skills and care about the other team members. Working as a dynamic team will result in the best outcome.
  10. Have fun. When testers are a respected part of the team, and when testers respect the skills of their team members, you end up with a motivated team that has fun working together to create an outstanding product.

 
The whole point of the Agile testing mentality is to avoid this type of exchange between a tester and a developer.

  • Tester: Hi Joe, I wanted you to know that when you press this button, the application crashes.
  • Developer: Well, sure, you’re not supposed to hit that button on that screen.
  • Tester: So, I made a mistake, and if I did it, the users will probably do it, too.
  • Developer: OK, I’ll tell the trainers to be sure and teach the users not to hit that button.

The Quadrants of Agile Testing

The Agile testing process is often presented in four quadrants that give an overview of how agile testing works.

  1. Quadrant 1: Testing focuses on the quality of the code. It is technology driven and supports the team.
  2. Quadrant 2: These are business driven tests that support the team to test topics such as workflows and the user experience.
  3. Quadrant 3: This quadrant often consists of automated tests that are designed to build confidence in the product.
  4. Quadrant 4: These tests focus on non-functional requirements to ensure the product delivers what the customer expects. These elements include tests such as stress tests, infrastructure testing, security tests, and more.

Benefits of Agile Testing

Application testing is critical to allow an Agile team to produce excellent products. The process produces a number of benefits.

Facilitates documentation

In most instances, using the Agile methodology results in less documentation, but documentation is still important. Involving technical writers during development allows them to talk to the developers while they are immersed in the project rather than waiting until the end of the project when people on the team are moving on to other assignments.

In addition, since testing is completed during development, the documentation that is produced doesn’t need to be revised after a separate testing process.

Adapts to changes

Agile testers aren’t working in a structured environment where they’re comparing the final product to the original requirements. Since testers are part of the team during the development process, they can easily restructure their testing to conform to the requirements as they are refined.

Fixes happen during development

Incorporating testing during development lets the development team fix bugs or gaps during the development process. It is much less costly and time consuming to make changes as the code is written rather than addressing fixes just before the product is released.

Increases collaboration

In Agile testing, the developers get regular feedback from users and testers. This type of interaction increases the developers’ understanding of the user and how they will interact with the product. It makes it easier to fix problems and gives a new insight to the developers that often avoids problems as the development moves forward.

Delivers a high-quality product

In traditional Waterfall projects testing is completed at the end of development. In many cases, there is extreme pressure to complete testing rather than extend the release date. That approach leads to oversights and mistakes.

With the Agile approach, testing is incorporated into the development. It’s not perceived as a separate step toward product release that often gets in the way of meeting timelines. The only pressure comes from the team members who have satisfying the customer as their goal. Agile testing usually results in producing a high-quality product.

Faster delivery

Using the Agile methodology, with its integrated testing, often results in a faster delivery of a final product. It doesn’t matter if the application is for internal use or it’s a step toward increasing a company’s competitive edge in the market—fast delivery is always good news for everyone involved in an application development project.

Testing is a critical part of application development, and Agile testing has a lot to offer. But, inadequate testing is only part of what can make an application development project fail. Learn about other reasons why projects break down, and seven solutions you can use to meet the challenges of today’s application development environment by reading our white paper, “4 Reasons Why Application Development Projects Fail.”

Subscribe to Our Blog

Never miss a post! Stay up to date with the latest database, application and analytics tips and news. Delivered in a handy bi-weekly update straight to your inbox. You can unsubscribe at any time.

How to Get External Data in to SharePoint

Microsoft has introduced a new feature called Business Data Catalog for enhanced capabilities in SharePoint to help organizations.

Krishna Naik | January 25, 2018

Building a Digital Bridge: Three Utilities That Transformed the Digital Customer Experience

Find out about why building a digital bridge for utilities customers isn’t optional, and industry customer engagement success stories.

Vikas Mukhi | April 10, 2018

Best Practices in SharePoint Migration

The execution of a SharePoint migration is relatively small when compared to the planning and analysis. We’ll take you through best practices in this new blog post.

Mo Anwar | July 11, 2018

Work with Us

Let’s have a conversation about what you need to succeed and how we can help get you there.

CONTACT US

Work for Us

Where do you want to take your career? Explore exciting opportunities to join our team.

EXPLORE JOBS