Agile Software Testing is a type of testing following agile methodology. Agile development is an incremental modal where software is developed in fast cycles of not more than 4 weeks. Each release of the application is tested very thoroughly with no compromise on quality of the software. In today’s article we are focusing on “How To Work As An Agile Software Tester?“
Agile testing involves testing from the customer point of view and performed as early as possible.
There are two types of models followed in Agile model:
- Agile Scrum Model
- Kanban Development Model
Agile Scrum is the most commonly used method in agile development in testing. Scrum is an agile process that helps in delivering the best quality business in the shortest time. It allows us to deliver the software in 2 weeks time and decide to release it or enhance it. Scrum works on certain principles. Some of them are making demos, sitting together, having meetings, retrospective meets, sprint backlog items and product backlog items, sprint planning.
The role of a software tester in an Agile Scrum Process is not just testing the software and finding defects but extends to many other things. An agile software tester works with the development team, product owner, and every part of the team to make the product at a fast pace.
You may interested in:
Agile Manifesto and Principles
70+ Comprehensive Agile Project Management Tools List
What are the roles of a tester in Agile Scrum environment?
- Face- To – Face Communication: Face to face discussion with the team is the most efficient way to communicate ideas to the time. A tester participates in the Planning/ Release of the Sprint: The design meetings are held every time before the sprint planning is done. The testers can participate in this meeting and ask questions on the stories being discussed. The tester should make a model in his mind about how the system would look and work based on the discussions. The tester should also put suggestions like how it would be easier to test if the development would take place in a certain way.
- Capability to find ambiguity: The tester would work collaboratively and productively with the product owner and the customer to form acceptance criteria. An agile tester would be able to describe the feature well. Before any user story is sent for development the tester and other team members would discuss the complete user story with the team member to find out what the customer wants. A good agile tester would be able to ask questions and recognize any ambiguity in the story at the time of the meeting. Testers should be able to find out scenarios for acceptance criteria. This will help the development team to understand the goals of the sprint. Thus we can say the tester will also contribute to preventing issues in the initial stages of the bugs.
- Absolute Role: When interacting with the client/customer the tester would always provide a positive feedback. The personality and the skills of a tester should be excellent. He should be able to maintain great interpersonal skills. The role to agile tester is to test but he should be interactive and also have good analytical skills. A tester having only good technical skills and poor communication skills or vice versa may not have a good impact on the team. All these things make the role of a tester wider than just testing.
- Technical: An agile tester understands the relevance of technical skills. He She is always prepared to contribute to the technical discussions of the team. His contribution may extend up to code reviews, user stories grooming, requirements understanding. The Agile Software Tester would work with the developers when they are performing unit testing and share the perspective of testing from the tester point of view instead of the developer point. In Agile testing, there is a lot of fun since the developers and testers work together, there is teamwork and everyone’s goals are the same.
- Automation: An Agile Tester would always work upon incorporating automation process in software testing. It does not mean that it is the tester job to know automation; instead, there are many tools available that can help the tester to know automation. Knowing coding can be a good benefit but there is much software which does not require the tester to know to how to code although the tester should understand how to read code.
- Exploratory Tester: The agile tester should be an explorer in testing: The skill of exploratory testing is a very useful and powerful method sometimes in an agile process. An exploratory tester can utilize his skills to perform testing avoiding risks and uncertainty in the product. The tester can get ideas from the initial design discussions and the meetings with the team to uncover the system and explore more in the system. Once the tester is able to find out the areas of ambiguity the tester can work more systematically and efficiently in the product. An agile tester should share their knowledge and information with the rest of the scrum team. It is the part that is generally ignored by the tester. The tester should already keep the team informed about their finding so that in meetings there are no surprises. An agile tester should be a good communicator, negotiator, and an investigator.
The testers should keep on reporting issues such as:
- Bugs found in the system
- Repetitive defects that can be solved in one go
- The areas of system which went unexplored.
- Parts of the system which are restricting further testing.
What are the various testing activities in an Agile Scrum Process?
In Sprint Planning:
- A tester is able to tell which items should be picked from the Product Backlog items which would of high value to the customer.
- A tester is able to tell how much efforts would be required to complete testing of the selected user stories. The tester has this power to tell how much time is required thus the testers are solely responsible for all estimated testing activities.
- A tester would understand the sprint goals and prioritize the tasks.
In Daily Scrum:
- A tester should participate in daily scrum meeting. He/She discusses few points in the meetings:
- 1. What was the progress done yesterday
- What are the targets for today?
- Overall testing progress
- The tester can report any sprint which cannot be completed in any sprint and discuss with the team members to move it to next sprint.
In Daily Work:
- The Agile Software Tester is responsible for daily automation scripts
- The tester reviews the test reports, and reports the test results to stakeholders via various systems.
- Perform non functional testing of the user stories of the current sprint
- The tester performs user acceptance test and confirms the testing completeness of current sprint.
In Review and Retrospective meetings:
- The tester needs to identify what went wrong and what went right in the current sprint
- He needs to learn new lessons and best practices from the current sprint
- The tester is encouraged to write new user stories that would help in testing and also user stories that would help the customer
- The tester will discuss like if any user story was not covered in current sprint.
- Any obstructions in the project will be put under consideration of Scrum Master.
What are the testing activities in Agile Kanban Project?
The testing activities in Agile Kanban Process are quite similar to Scrum. There is no time duration limitation. The changes can be done anytime adding and removing new items from the project. The items are selected logically in Kanban process.
The testing activities performed in Kanban are:
- Backlog: The user stories are converted into tasks means that the backlog may have limited number of items only.
- Ready: The items are selected are ready for execution
- Specifies: To decide the criteria for completeness in work items
- Execute: The items which are under execution.
What are the testing activities followed in Product Development?
The testing in agile methodology is done by
- Unit Test: The developers take help of testers to make effective unit tests
- Acceptance Test: It is the sole responsibility of the testers to perform acceptance tests.
- The integration tests and regression tests are performed by automation on daily basis
- Testers communicate with the team to discuss the flows of story between the product owner and team.
- Tester also communicates regarding any user story within the team.
- The testers also speak regarding any abnormality in the user story they find.
- Estimation is done by the tester using various techniques after which the story planning is done.
- Preparation of test data, making acceptance tests, perform manual testing, execution of automation scripts is performed after that.
- The testers perform exploratory testing to uncover the tests. This technique forms story progression
- Story acceptance is done if all the additional tests pass.
Over to you:
The role of a software tester in agile testing is not just testing the product but it is more of working with the development team and the customer. Skilled, analytical testing is far more beyond than just testing.
- Agile SCRUM Methodology
- Learn SCRUM Framework
- Importance of Testing
- 70+ Comprehensive Agile Project Management Tools List
- Difference between Quality Assurance(QA) and Quality Control(QC)
- Better Requirements Better Testability
- Definitive Guide To Writing Good Agile User Stories
- How To Create Requirements Traceability Matrix (RTM)?
- Why QA Managers Are Not Needed in Agile Projects?
- There is NO QA Team in Agile