If your agile development team wants to deliver high-quality software applications, there are two things the team must do:
- Automate the regression testing effort
- Get real users involved in acceptance testing early
(Okay, there are lots of other things as well, but let’s focus on these two.)
Automate the regression testing effort
Face it — regression testing can be boring. How many times does a portion of the application have to be tested? Ideally, everything should be retested at the end of every sprint or iteration. If you have 10 sprints, you have 10 test cycles. Testing new features is fun. Retesting existing features over and over is not.
If you run with 1-2 week sprints, which I recommend, you’ll be doing a lot of retesting. After a while, any of us will begin to see what we expect to see. We may blow right by an error message as we race through menus and dialog boxes to complete the next test.
The problem many agile teams run into is that automating the regression tests can be complex and time-consuming. If your test software is too complex, you’ll spend large amounts of time testing and debugging the test code.
Get real users involved in acceptance testing early
This one should be obvious. No matter how good a job the QA engineers do, there is simply no substitute for real user feedback. They are familiar with the business processes. They know what the software needs to do. They understand the data characteristics.
Don’t fall into the trap of delivering what the users asked for but not what they really need. Engage them as early and often as possible.
Here are a few more things to keep in mind as you figure out how to test the software:
- Keep manual and automated tests simple, clear and repeatable, so they are easy to maintain and enhance.
- Make the test results concise and obvious; they should not be subject to human interpretation.
- Take advantage of automated test tools to minimize custom test-software development.
- Invest the most testing effort in areas of the software that are most complex.
- Strike a balance between manual and automated testing; don’t blindly automate everything.
- Aim for a minimum of 75-80% coverage in your automated tests; 100% is rarely needed.
Software testing may not be glamorous but it’s absolutely essential. Cut it short or skip it entirely and you’ll hear about it — from your soon-to-be-former customers.