When requirements change, their associated acceptance tests must be adapted accordingly in order to maintain the quality of the evolving system. In practice, requirements and acceptance tests are often non-aligned due to many factors, such as poor communication of changes and manual traces between the documents. Furthermore, when requirements change, testers are often not informed about the changes and they consequentially report bugs for actual features. We are developing an approach for keeping acceptance tests aligned with evolving requirements and for keeping all stakeholders aware of changes in requirements as soon as they occurs. We provide a method and a tool for (1) automatic generation of guidance on how to modify impacted acceptance tests when requirements change, (2) on-time communication of changes via email and (3) warnings that keep the stakeholders aware of a mismatch between the documents.
The goal of our approach is to identify all relevant changes in requirements that require the associated acceptance tests to be adapted and to generate guidance in natural language on how to adapt the acceptance tests based on these changes. An overview of the approach:
As soon as a requirements engineer applies changes to a requirement and saves them, our approach:
1. Identifies relevant change patterns: by comparing the old and the new version of the changed requirement we identify the elements that have been changed and their change types,
2. Generates guidance: in this step, we formulate suggestions in natural language on how to manage the changes,
3. Notifies subscribed parties: finally, the generated guidance and the changes can be communicated to the interested parties via email. In addition, in the UI of our application, all non-aligned tests are flagged so that all stakeholders are aware of mismatches between the requirements and acceptance tests.
The GuideGen tool
GuideGen is a web application, written in Java using Servlet and JSP technology. It is deployed on Apache Tomcat. On the one hand, GuideGen supports requirements engineers in maintaining the requirements of a system and in communicating all changes of requirements to testers, developers and other interested parties on-time and with almost no effort. On the other hand, GuideGen supports testers, who maintain acceptance test documents, by providing them with guidance on how to modify impacted tests so that they stay aligned with the modified requirements. In addition, by flagging all non-aligned acceptance tests, any stakeholder can easily see which acceptance tests are currently mis-aligned with their corresponding requirement - be it that tests do not exist yet or that they have not been updated after changes in the requirements.
View our five minute demo video that we prepared for the ICSE 2018 demonstrations track: https://youtu.be/4uXqP3mwmAo. For the corresponding tool demo paper, see the publications list below.
If you want to try the GuideGen tool, please contact us.
Sofija Hotomski and Martin Glinz. 2018. A Qualitative Study on Using GuideGen to Keep Requirements and Acceptance Tests Aligned. To appear in 26th IEEE International Requirements Engineering Conference, Banff, Canada
Sofija Hotomski and Martin Glinz. 2018. GuideGen – A Tool for Keeping Requirements and Acceptance Tests Aligned. To appear in 50th International Conference on Software Engineering (Demonstrations track), 4 pages. https://doi.org/10.1145/3183440.3183484
Download preprint (PDF, 929 KB)
Sofija Hotomski, Eya Ben Charrada, and Martin Glinz. 2018. Keeping Evolving Requirements and Acceptance Tests aligned with Automatically Generated Guidance. To appear in 23rd International Working Conference on Requirements Engineering: Foundation for Software Quality (REFSQ 2018). Won the REFSQ 2018 Best Paper Award
Download preprint (PDF, 1272 KB)
Sofija Hotomski, Eya Ben Charrada, and Martin Glinz. 2017. Aligning Requirements and Acceptance Tests via Automatically Generated Guidance. In 4th Workshop on Requirements Engineering and Testing (RET), Lisbon, Portugal.
Download paper (PDF, 130 KB)