Join me for a brief look into the worlds of Traditional vs Agile testing.
Testers working on Traditional teams
Traditionally testers are only involved right at the end of the SDLC / PDLC value chain. They had no inputs into the writing of the requirements. During development they did not have the opportunity to quickly pick up 'issues' and have them attended to by the team.
In traditional teams testers morph into some gatekeeping role, always protecting the near-stable release. Remember we are behind schedule as the development effort took longer than expected!
Any changes to the software requirements were scheduled for the next release. Traditional teams are expected to deliver the project scope in it's ownty. An all or nothing approach. If all features are not ready on the 'go-live' date the release is usually postponed.
Team members rarely have a say in which features are included in the release and developers tend to specialize in one specific area of the codebase. Collaboration is typically replaced with a sense of competitiveness. As you can see this is not what we are after in any method.
Testers working on Agile teams
Moving from traditional to Agile testing has one facing short bursts of productivity (Sprints) repeated until the product is 'done'. Within the boundaries of these Sprints, the entire PDLC / SDLC activity is completed, from analysis, design and coding to testing and post release support, all occurring in one team, every day.
Agile teams work closely with business and detailed understanding of business problem areas that require solving. The team may have inputs into prioritizing the work as they can share pertinent information about the technical enablers that need to be in place for certain functionality to work.
As Agile methods are incremental, the Agile tester tests the user stories or requirements as they are deployed to the test environment. Fundamentally different to traditional methods, in Agile the whole team delivers a piece of functionality every day or so.
Programmers never get ahead of testers, as within the confines of the Sprint all team members are required to assist with testing.
“In Agile, quality is a team sport!”
In Agile, the whole team is responsible for quality whereas in traditional methods it was only testers that were accounting for software quality. Agile team members start thinking about test cases the moment the customer makes known the requirements. Developers code the tests before the actual coding starts and test analysts extend the testing harnesses, all before the code has been completed that implement the user story.