Let’s discuss what all points need to consider if changing requirements continuously:
- Use of rapid prototyping is best option if possible. So this will help customers feel sure of their requirements and minimize changes.
- To minimize the effort of regression testing later first prepare for risk analysis of changes.
- If possible then new requirements should move to the next Phase of the application. Stick to original requirements in the current Phase.
- Spend adequate time to think of probable changes in initial stages of project.
- Make sure that the code is well documented and commented as well. For developers this helps to make the code changes easily.
- Prepare for requirements traceability matrix that would help to trace what all test case needs update if specific requirement is changed.
- Creating automated testing such a way that if changes in requirement then expected effort is minimum to deal with new changes.
- Generic level test plan should be prepared & more flexible test case should be design (it is not simple to design flexible test cases). Minimize detailed test cases writing, you can go with high level test cases if requirement changes continuously.
- Understand risk involved in ad-hoc testing let’s focus less on comprehensive test plans and test cases.
- Automation test scripts should be created more flexible & adaptive in nature.
- First concentrate on automation testing piece that probably remains unchanged after change in requirements.
- Make sure that management and client understands the cost, schedules & impact of changes in requirement and they are acceptable with the changes.
If same issue still exists then figure out why these requirements are not aligned with realism. You have to re-factor the software development process followed in your organization. So follow Agile Development process might be the GOOD option to go with because it allows you change in requirements in late in Software Development process as well, it is intended for that. Also the end user or customer involvement is on all stages, so customer is aware of what is implementing & if they want to changes in requirement or add new requirement then it can be easily accommodate.