Testing Challenges In An Agile Environment
What is Agile?
Agile management, or agile process management, or simply agile refers to an iterative, incremental method of managing the design and build activities of engineering, information technology and other business areas that aim to provide new product or service development in a highly flexible and interactive manner.
A few surveys have found that adoption of Agile has almost doubled from 35 percent to 76 percent. Shows how the development across the world is changing and showing how successful it is. But do remember, Agile may or may not be suitable for your project/company. Read more about Agile.
JIRA is an Agile Project Management tool from Atlassian. At Haptik, we started using JIRA so as to help every member of our software team to plan, track and release great software.
Phases We Follow In JIRA
- Plan a Feature
- Build Story for each feature
- Write Test cases associated with each feature
- Track Feature Bug
- Code Release
Agile changed our approach to development but testing sometimes still comes as an afterthought. In some ways, testing becomes even more challenging:
- Due to Adhoc changes in a feature
- Development is delayed due to some issues in the current sprint cycle and that does not leave enough time to perform testing
- Sometimes silos across testers, developers and product team is another challenge+
Team Approach Towards Agile Testing
We split the testing into two parts; tests directly related to the user stories developed during the sprint, and second basis everything else. Then we defer the “everything else” to the end of the release, which happens every couple of months.
Here’s the truth: all we can do during the sprint is pretty much just the functional testing. We’re not doing much of the integration, regression or performance testing until right before the release. We call this final system test a “regression sprint” or “hardening sprint”. Sounds familiar? This is a very typical Agile implementation across the industry:
The real goal should be to eliminate the hardening sprint and to complete all types of testing during the sprint, however, short or long it is. This way every sprint would end with a set of fully tested features that could potentially be deployed to production or shipped to the customer. There would be no need for the context switch at the end of the release, no last minute defects, and costly delays:
Effective Way to Approach Challenges in Testing Environment
QA will only be successful if it operates as an integral part of the development team and larger engineering organization. Due to collaboration they would achieve the end goal easily due to understanding of objective to achieve
- Test in Parallel
Engage all the team members in Testing. QA can work on the black box testing while developers can do White Box Testing. Include Product Managers for feedback and do UAT for the product. Avoid working in silos.
- Plan Realistically
Include all the testing in the Workflow as To Do, In Progress, Done. If we miss this we may end up Deferring more Bug at the Regression Test. If we follow this we may the end up testing whole product till the end. We should plan stories more realistically
- Create Test Automation
Performing Manual Component, Integration, Regression testing is not a robust idea for testing Product. Start Identifying the mission-critical workflows, Scenario automate them and run daily as part of Deployment process
This is one of the Best QA Mantras:
“QA is to Deliver quality product by means of Continuous Feedback and Defect prevention rather than Defect Detection”
That being said, we have now started growing our QA team. I would love to hear your thoughts and suggestions around QA and how we can build quality products. I would be posting more such important blogs in the near future.
Also, don’t forget, we are hiring high-quality QA engineers. So if you are interested reach out to us at firstname.lastname@example.org.