Every day we have a meeting with all the project managers, kind of like daily standup to go over pressing issues and what we want to get done for the day. Yesterday we had a special meeting on how to increase our agile test velocity, or at least how to attack those issues that slow down our testing. Issued discussed included:
Get your builds going – Use an automated build process
- Being able to get the latest build instantaneously enables quick testing. Waiting for builds, NOT.
- Build frequently: Make sure the fixes have been included, but most importantly make sure its documented what is in each build so that testers can focus only on those parts fixed.
Get your requirements documented
- Even though you want to go ‘agile’, for new features/modules, you need some level of documentation.
- We’re not talking about a full specification, but a level of logic and flow that enables QA to think through and create good use cases.
Design test cases with flexibility and appropriate level of detail
- Detailed test cases means lots of work on test case writing, which takes up the time for test execution and test analysis.
- Depending on the changes in your software and your organization, create the level of detail you need. Obviously for a feature that may be here and gone tomorrow, or a feature that is changing frequently, there is no need for a detailed test case.
Organize your test cases well
- Sometimes, you need to test with a subset of test cases. For instance, developers just update a grid column on a page, and testers are asked to do testing to make sure the updates are good. Then a few relevant test cases for the updated area should be selected and executed, instead of all. If there are thousands of test cases and they are not organized well, it would be very difficult select the right subset of test cases.
Design and execute interface testing
- Use interfaces for end-to-end testing with commands or other means that can operate the software rather than just the front end GUI.
Automate test data preparation
- Test data preparation is required for most testing and takes time to generate. Such as prepare test data for a report. This means preparation in generating different status of data, sometimes, the different status can only be reached by executing a specific procedure in the software / system. Use automation to put the system in the required state and generate the data.
Keep track of configurations – Use Configuration management
- In some cases, especially as SaaS web applications, custom features are provided to different clients. And different clients have their own configurations. This requires individual testing on each different configuration. And sometimes, it requires to test across versions in order to do comparison. Make sure you keep all these versions organized with the particular differences between configurations, to minimize your additional testing.
Step into each others shoes
Remember that you don’t work alone but part of a team. Others could have blocking issues resulting from you not doing something or not updating them and vice versa.
This is certainly a non-exhaustive list. The point is that if you want to increase your agile test velocity, think about how to stop those things that hold it back.