Quality assurance roles and responsibilities have evolved significantly in recent years, as new approaches of software development methods such as Agile have been introduced. The role of testers and QA analysts has adapted to preserve the benefits of QA within an iterative development process.
Traditionally, people working on waterfall-based models were not involved in the development process until just before it become necessary to test the product. In that moment, requirements need to be tested and often, they were uncompleted or imprecise. QA team had to deal with poor documentation, had difficult access to business stakeholders and had great time-to-market pressure. All of this together made the communication and relationships hard between different teams.
With the increasingly adoption of Agile methodologies the whole Quality perspective has changed. The concept of ‘isolated’ developers and testers is been left apart. As agile goal balances the desire of having a functional prototype with the requirement of quality, a small team including QA is the right solution to accomplish the task of having a new functionality within a fixed period of time. The concept of separate teams with individual goals is obsolete and has evolved into teams composed of cross-functional members with various levels of knowledge. With daily meetings, informal discussions and if necessary, the stakeholder participation, collaboration is encouraged. In this open and collaborative environment the final objective and responsibilities are shared.
What does it mean to QA?
Instead of misconception that Agile methods imply minimal testing efforts or being just an extension of the delivery team, actually Agile allows an active participation on quality. Role of QA is pro-active from the start of a sprint by developing proper measures. QA engineers will be involved in planning meetings, estimations and daily meetings, so this role should:
– Help to define stories and their acceptance criteria to know if they satisfy customer requirements
– Assessment about adopting code standards and improve code base through refactoring
– Ensure that Unit Tests exists by creating checklists for example and improve metrics to increase the quality of the application
– Provide developers with high level test cases and scenarios for the stories before coding
– Perform exploratory testing each build
– Increasing automated testing, so the velocity of the team will increase drastically
– Organize and perform usability and exploratory testing
– Introducing Quality Control Gates into Sprints
– Demonstrate the stories during Sprint Review
Transitioning between these two ways of working implies being an active team member with high communication skills who encourages automation and exploratory testing to deliver a quality product to customer.
MTP Spain (http://www.mtp.es/)