Introduction
Swarming also known as mobbing or huddling is now increasingly being used in software engineering. This is a process where a team or group of people agree to collectively tackle a task, resolve an issue or incident. This approach was traditionally used when a team must complete a task given a limited time. It is known to facilitate knowledge sharing and collaboration within a team.
When swarming process is applied to software testing, this is referred to as Swarm Testing. During swarm testing, a team organizes a huddle to test a feature of a software product before the eventual release. This process is not to replace but complete the existing quality assurance processes for software engineering cycle that a team might already have in place. This type of testing is effective at reducing cycle time, improving coverage and fault detection.
Swarm Testing Session
The engineer or the lead of a project is expected to consult with the team to determine if the features of the project to be tested qualifies for a swarm testing session. The project lead will identify the participants of the session and send out the meeting invites. The recommended approach is to have a mix of members that worked on the product features and those that did not.
Test plans and scenarios are to be prepared ahead and allocated to the participants. The appropriate duration of the session should be determined based on the number of test plans to be covered. It is recommended to keep the session between 30 to 45 minutes for optimal focus and participation.
Before each swarm testing session, the project lead will create the test plans and scenarios in a document or repository that is accessible to all the participants. The test plans should not contain tests already covered in the unit or end to end tests for the feature. A document or wiki page should be created using the template available later in this post. The swarm testing session document or wiki page should be filled by the project lead and shared with session attendees before the session.
During the session, the project lead will introduce the new feature by presenting the end to end flow of the most common use cases. The role of each participant in the session is to have their environment and test accounts set up if necessary. For example, some test plans require certain access or privileges, these priviledges should be requested before the session.
Any participant can create the Jira ticket for any issue or bug detected during the session. The jira ticket created should include a detailed description of what the issue is, steps to reproduce and the screenshot of the issue if applicable.
Swarm Testing Template
This template is a guideline that could be used in preparation for a swarm testing session. The template provides details about the session and guideline for participants on what to focus on during the session and where to log the outcome of the tests.
Project Details
Project: | < Link to project page > | Feature Flag: | < Feature Flag > |
Date & Time: | < Date & Time > | Product & Technical Documents | < Link to Docs > |
Design Assets: | < Link to Figma > | Jira Epic | < Link to Jira Epic > |
Attendees
Project Lead(s): | < Link to Profile > |
Team members that worked on the feature: | < Link to Profile > |
Other team members: | < Link to Profile > |
EM, Design & PM: | < Link to Profile > |
Environment Setup
These are the requirements to be met by each participant for the session.
Tools & Access:
- dev/staging/prod access
- Access to Jira backlog
Test Accounts:
- Brand-new account, no data
- Account with some test data
- Account with lots of test data
Browsers:
- Google Chrome
- Safari
- Firefox
- iOS/Android browser
Test Plans
For PM, Design & EM Focus on design patterns and user flow |
< Link to test plan > |
< Link to test plan > |
Other team members: |
< Link to test plan > |
< Link to test plan > |
Team members that worked on the feature: |
< Link to test plan > |
< Link to test plan > |
Filing bug or issues
Participants will update this section with links to jira bug tickets, for PM to prioritize.