In this blog post, I am going to talk about the following topics:
- Who is an Agile Tester
- Difference between Testing in Traditional (Waterfall) and Agile Approaches
The Agile Tester is who understands the values and principles of Agile project, who is an integral part of the “Power of Tree” whole team approach and, who communicates early and frequently to remove defects and develop a quality product.
To understand what Agile Tester is, we must understand the Agile Manifesto first. The Agile Manifesto has basically 4 concepts:
- Individuals and Interactions over Process and Tools
- Working software over Comprehensive Documentation
- Customer Collaboration over Contract Negotiation
- Responding to change over Following a plan
So, how does a Tester fit in an Agile Team?
In order to deliver a quality product, the Agile Tester must work closely to Developers and Business Representatives, collaborate and support business representatives to create acceptance test and, decide the test automation projects that will fit perfectly into the Agile Team.
Now, let’s look at the main differences between a Traditional model (waterfall) and Agile Testing model.
Testing & Development Activities
When we compare to a waterfall project, in the Agile testing we got:
- Short Iterations
- Deliver features of value to business stakeholders
- Testing activity occurs throughout the iteration
- Changes may occur throughout the project
- The “Power of Tree” has a role in testing: Developers must run unit testing, the testers must feature testing and automated integration testing and, the Business Stakeholders must run features testing and provide feedback to the team.
Project Work Products
- Avoid too many documentation
- Focus on working software with automation tests that show the requirement
- Teams make decisions during release planning for the required work product documentation
- A Business work product will be: User Stories & Acceptance criteria
- A Developer work product will be: Code & Unit Tests
- A Tester work product will be: Automated Tests, Test Plans, Quality Risk Catalogue, Manual tests, Defect reports & Test Results
These are basically the activities that the Agile Tester performs.
- Test activities logically related to the item under test
- Test activities overlap as changes occur throughout the iteration
- Parallel Regression Testing with Unit Testing, Automated Verification Testing & Validation Testing occur sequentially throughout the iteration.
Testing and Configuration Management
- Automated tools are used to Develop, test and manage software development.
- Configuration Management tools are used to automate builds, run a static analysis, unit test, code coverage, automated functional test repeatedly.
Organisations options for Independent Testing: Independent Testers are much more efficient in terms of Agile Team to find effective bugs.
There are 3 options of Independent Testing:
Option 1: Developers are testers – The developer writes his own code, he writes his own unit test and he also made the automation tests
Option 2: Fully independent test team – At the end of the sprint or at the end of the iteration, the testing team acts and test the features.
Option 3: Independent test team as part of the Agile Team
In terms of Agile, we really need constantly collaboration and communication between teams, so option 3 would be the ideal one.
In the next post, I am going to talk about the Status of Testing in Agile, the skills and roles of an Agile Tester.