Testing in an Agile Environment Part 2
Regression testing the code gains significant importance in this type of methodology (agile). Since every 2 weeks a sprint of code is being developed and released on the back of the previous week's code regression testing takes a starring role. The QA team testing will have to test both of the newly added code and that the previously released code to verify it still works as expected. We found that automated testing is good, but time constraints would also hamper our efforts to create scripts that give us a “warm and fuzzy” on the code coverage. There are a few good tools out there that are open source; we were a small company so it was open source or nothing. The development would like to use JUnit, we would also use Mozilla’s Selenium automated tool. Since we had shorter iterations we had the code ready to test almost immediately, so we would perform several levels of testing on new code.
• Developers would run automated unit tests to test functions, methods, and interactions with other pieces of code or applications.
• We would run automated acceptance tests to check the behavior of the system from beginning to end.
• Manual testing (YES MANUAL!) was still done because with this type of testing (time-consuming, labor-intensive) you could perform an exploratory exam of the system working to uncover issues.
We would use reusable checklists to perform tests, this way we were not writing verbose, time-consuming documentation. Remember TDD (Test Driven Development) Test-Code-Refactor