We have been steadily ramping up our agile software testing services in Vancouver and are here to answer a few frequently asked questions.
1. What is agile software testing?
To understand what agile software testing is, it’s best to compare waterfall software development to agile software development. The waterfall methodology is a sequential software development cycle that designs and develops an entire application in one project.
Agile software development is more iterative. Software developers deliver early versions of the software to end users so that users can start working with the software, generating feedback, and making feature requests. This way, developers receive user feedback before deciding which features are most important.
When developing applications using the traditional waterfall methodology, the software is tested in its entirety after the development phase is complete. In the agile software development process, the software must be tested after each update. Due to the high frequency of updates, agile software testing can be very time consuming.
2. How can automation help with agile software testing?
Since agile software development makes iterative changes to software, much of the functionality will remain the same. Automation can primarily be used to test the functionality that is not affected by the latest update. That way software testers can manually test the new features while automation can continue to confirm that the rest of the software’s functionality still works correctly.
3. What are the best ways to automate agile software testing?
The best methodology for automation is dependent on the situation. In certain situations, white box/grey box test automation may be the right approach. However, in situations such as regression testing, black box test automation fits well. The best approach is to understand the specific challenge, determine if automation is worthwhile, and if so proceed to select the appropriate method.
4. Who is best to conduct the testing?
Business analysts and end users are very good at testing new functionality to ensure it meets the business requirements it was designed for. QA testers can test the existing functionality to make sure it has not been affected by the recent updates.
On occasion, a software update meant to add a new feature can accidentally break pre-existing modules in the application. End users are often too busy with day-to-day activities to test an application in its entirety, so an efficient agile software development process will have end users focused on new features while QA testers can confirm no other functionality is lost.
5. How are testing artifacts affected by agile software testing?
Traditional software development requires all documentation to be completed by the end of the project where it primarily remains static. Agile software development requires documentation to be frequently updated to reflect changes in the application.
The documentation that is affected the most by agile software development is the user-manuals, test cases, and test scripts. In order to keep documentation current, it must be reviewed and updated after each update which can become very cumbersome when done inefficiently.
6. What are the common pitfalls of agile software testing?
The most common pitfall is to fit the waterfall software development methodology with agile software testing. Once methodologies are properly aligned, the second most common pitfall is a failure to engage testers and developers together in the early stages of the project.
7. How can you measure success or effectiveness?
Success criteria remain somewhat the same for testing in general: identify defects early in the development cycle to minimize the cost and time of making corrections. Another criterion specific to agile software testing is the re-usability of testing artifacts. Since documentation must be frequently updated and maintained, a well designed framework and process will improve efficiency.
Visit OptimusQA to learn more about our agile software testing methods and results.
(Photo credit: Guilherme Tavares)