Abstract
Abstractions are significant domain terms that have assisted in requirements elicitation and modeling. To extend the assistance toward requirements validation, we present in this paper an automated approach to identifying the abstractions for supporting requirements-based testing. We select relevant Wikipedia pages to serve as a domain corpus that is independent from any specific software system. We further define five novel patterns based on part-of-speech tagging and dependency parsing, and frame our candidate abstractions in the form of <key, value> pairs for better testability, where the “key” helps locate “what to test”, and the “value” helps guide “how to test it” by feeding in concrete data. We evaluate our approach with six software systems in two application domains: Electronic health records and Web conferencing. The results show that our abstractions are more accurate than those generated by a state-of-the-art technique. While the initial findings indicate our abstractions’ capabilities of revealing bugs and matching the environmental assumptions created manually, we articulate a new way to perform requirements-based testing by focusing on a software system’s changing features. Specifically, we hypothesize that the same feature would behave differently under a pair of opposing environmental conditions and assess our abstractions’ applicability to this new form of feature testing.













Similar content being viewed by others
Data availability
The datasets generated during and/or analyzed during the current study are available in the Zenodo repository, https://doi.org/10.5281/zenodo.5858384.
Notes
http://www.pamelazave.com/faq.html (last accessed on 2022/09/14 12:07:09).
http://www.oxforddictionaries.com/definition/english/assumption (last accessed on 2022/09/14 12:07:09).
iTrust is a Java application that provides patients with a means to keep up with their medical records and to communicate with their doctors [44].
https://en.wikiquote.org/wiki/Edsger_W._Dijkstra (last accessed on 2022/09/14 12:07:09).
By bug, we mean Eq. (4) is evaluated to be true (i.e., the entailment relationship fails to hold) under a specific set of \({\mathcal{E}}\), \({\rm{SUT}}\), and \({\mathcal{R}}\). We refine the notion of bug in Sect. 6 by formulating the test oracle without directly referring to \({\mathcal{R}}\) in order to address the distance between observing the software executions and validating the stakeholder goals.
https://en.wikipedia.org/wiki/Electronic_health_record (last accessed on 2022/09/14 12:07:09).
References
Gacitua R, Sawyer P, Gervasi V (2011) Relevance-based abstraction identification: technique and evaluation. Requir Eng 16(3):251–265
Sawyer P, Rayson P, Cosh K (2005) Shallow knowledge as an aid to deep understanding in early phase requirements engineering. IEEE Trans Softw Eng 31(11):969–981
Gacitua R, Sawyer P, Gervasi V (2010) On the effectiveness of abstraction identification in requirements engineering. In: Proceedings of the international requirements engineering conference (RE), Sydney, Australia, September–October 2010, pp 5–14
Goldin L, Berry DM (1997) AbstFinder, a prototype natural language text abstraction finder for use in requirements elicitation. Autom Softw Eng 4(4):375–412
Dwarakanath A, Ramnani RR, Sengupta S (2013) Automatic extraction of glossary terms from natural language requirements. In: Proceedings of the international requirements engineering conference (RE), Rio de Janeiro, Brazil, July 2013, pp 314–319
Arora C, Sabetzadeh M, Briand LC, Zimmer F (2017) Automated extraction and clustering of requirements glossary terms. IEEE Trans Softw Eng 43(10):918–945
Gemkow T, Conzelmann M, Hartig K, Vogelsang A (2018) Automatic glossary term extraction from large-scale requirements specifications. In: Proceedings of the international requirements engineering conference (RE), Banff, Canada, August 2018, pp 412–417
Yu E (1997) Towards modeling and reasoning support for early-phase requirements engineering. In: Proceedings of the international symposium on requirements engineering (RE), Annapolis, MD, USA, January 1997, pp 226–235
Ryan K (1993) The role of natural language in requirements engineering. In: Proceedings of the international symposium on requirements engineering (RE), San Diego, CA, USA, January 1993, pp 240–242
Jin Z (2018) Environment modeling-based requirements engineering for software intensive systems. Morgan Kaufmann
Jackson M (1997) The meaning of requirements. Ann Softw Eng 3:5–21
van Lamsweerde A (2009) Requirements engineering: from system goals to UML models to software specifications. Wiley
Tun TT, Lutz RR, Nakayama B, Yu Y, Mathur D, Nuseibeh B (2015) The role of environmental assumptions in failures of DNA nanosystems. In: Proceedings of the international workshop on complex faults and failures in large software systems (COUFLESS), Florence, Italy, May 2015, pp 27–33
Knight JC (2002) Safety critical systems: challenges and directions. In: Proceedings of international conference on software engineering (ICSE), Orlando, Florida, USA, May 2002, pp 547–550
Bhowmik T, Chekuri SR, Do AQ, Wang W, Niu N (2019) The role of environment assertions in requirements-based testing. In: Proceedings of the international requirements engineering conference (RE), Jeju Island, South Korea, September 2019, pp 75–85
Peng Z, Rathod P, Niu N, Bhowmik T, Liu H, Shi L, Jin Z (2021) Environment-driven abstraction identification for requirements-based testing. In: Proceedings of the international requirements engineering conference (RE), Notre Dame, IN, USA, September 2021, pp 245–256
Barr ET, Harman M, McMinn P, Shahbaz M, Yoo S (2015) The oracle problem in software testing: a survey. IEEE Trans Softw Eng 41(5):507–525
Niu N, Mahmoud A (2012) Enhancing candidate link generation for requirements tracing: the cluster hypothesis revisited. In: Proceedings of the international requirements engineering conference (RE), Chicago, IL, USA, September 2012, pp 81–90
Wang W, Gupta A, Niu N, Xu LD, Cheng J-RC, Niu Z (2018) Automatically tracing dependability requirements via term-based relevance feedback. IEEE Trans Ind Inf 14(1):342–349
Wang W, Niu N, Liu H, Niu Z (2018) Enhancing automated requirements traceability by resolving polysemy. In: Proceedings of the international requirements engineering conference (RE), Banff, Canada, August 2018, pp 40–51
Wermter J, Hahn U (2005) Finding new terminology in very large corpora. In: Proceedings of the international conference on knowledge capture (K-CAP), Banff, Canada, October 2005, pp 137–144
Leveson NG (1995) Safeware: system safety and computers. Addison-Wesley
Hull E, Jackson K, Dick J (2010) Requirements engineering. Springer
Rahimi M, Xiong W, Cleland-Huang J, Lutz RR (2017) Diagnosing assumption problems in safety-critical products. In: Proceedings of the international conference on automated software engineering (ASE), Urbana, IL, USA, October–November 2017, pp 473–484
Alenazi M, Niu N, Savolainen J (2020) A novel approach to tracing safety requirements and state-based design models. In: Proceedings of international conference on software engineering (ICSE), Seoul, South Korea, June–July 2020, pp 848–860
Alrajeh D, Cailliau A, van Lamsweerde A (2020) Adapting requirements models to varying environments. In: Proceedings of international conference on software engineering (ICSE), Seoul, South Korea, June–July 2020, pp 50–61
Yang C, Liang P, Avgeriou P (2018) Assumptions and their management in software development: a systematic mapping study. Inform Softw Technol 94:82–110
Garlan D, Allen R, Ockerbloom J (2009) Architectural mismatch: why reuse is still so hard. IEEE Softw 26(4):66–69
Jin X, Khatwani C, Niu N, Wagner M, Savolainen J (2016) Pragmatic software reuse in bioinformatics: how can social network information help? In: Proceedings of international conference on software reuse (ICSR), Limassol, Cyprus, June 2016, pp 247–264
Bhuta J, Boehm B (2007) A framework for identification and resolution of interoperability mismatches in COTS-based systems. In: Proceedings of the international workshop on incorporating cots software into software systems: tools and techniques (IWICSS), Minneapolis, MN, USA, May 2007
Bazaz A, Arthur JD, Tront JG (2006) Modeling security vulnerabilities: a constraints and assumptions perspective. In: Proceedings of the international symposium on dependable, autonomic and secure computing (DASC), Indianapolis, IN, USA, September–October 2006, pp 95–102
Wang W, Dumont F, Niu N, Horton G (2020) Detecting software security vulnerabilities via requirements dependency analysis. IEEE Trans Softw Eng 48(5):1665–1675
Kroll P, Kruchten P (2003) The rational unified process made easy: a practitioner’s guide to the RUP. Addison-Wesley
Laplante PA (2007) What every engineer should know about software engineering. CRC Press
Unterkalmsteiner M, Gorschek T, Feldt R, Klotins E (2015) Assessing requirements engineering and software test alignment—five case studies. J Syst Softw 109:62–77
Uusitalo EJ, Komssi M, Kauppinen M, Davis AM (2008) Linking requirements and testing in practice. In: Proceedings of the international requirements engineering conference (RE), Barcelona, Spain, September 2008, pp 265–270
Flammini F, Mazzocca N, Orazzo A (2009) Automatic instantiation of abstract tests on specific configurations for large critical control systems. Softw Test Verif Reliab 19(2):91–110
Miller T, Strooper PA (2012) A case study in model-based testing of specifications and implementations. Softw Test Verif Reliab 21(1):33–63
de Santiago Júnior VA, Vijaykumar NL (2012) Generating model-based test cases from natural language requirements for space application software. Softw Test Verif Reliab 20(1):77–143
Siegl S, Hielscher K-S, German R (2010) Model based requirements analysis and testing of automotive systems with timed usage models. In: Proceedings of the international requirements engineering conference (RE), Sydney, Australia, September–October 2010, pp 345–350
Garousi V, Bauer S, Felderer M (2020) NLP-assisted software testing: a systematic mapping of the literature. Inform Softw Technol 126:106 321:1–106 321:20
Fischbach J, Vogelsang A, Spies D, Wehrle A, Junker M, Freudenstein D (2020) SPECMATE: automated creation of test cases from acceptance criteria. In: Proceedings of the international conference on software testing, validation and verification (ICST), Porto, Portugal, October 2020, pp 321–331
Skoković P, Rakić-Skoković M (2010) Requirements-based testing process in practice. Int J Ind Eng Manag 1(4):155–161
Meneely A, Smith B, Williams L (2012) iTrust electronic health care system: a case study. In: Cleland-Huang J, Gotel O, Zisman A (eds) Software and systems traceability. Springer
Niu N, Brinkkemper S, Franch X, Partanen J, Savolainen J (2018) Requirements engineering and continuous deployment. IEEE Softw 35(2):86–90
Zave P, Jackson M (1997) Four dark corners of requirements engineering. ACM Trans Softw Eng Methodol 6(1):1–30
Gunter CA, Gunter EL, Jackson M, Zave P (2000) A reference model for requirements and specifications. IEEE Softw 17(3):37–43
Mahmoud A, Niu N (2015) On the role of semantics in automated requirements tracing. Requir Eng 20(3):281–300
Ezzini S, Abualhaija S, Arora C, Sabetzadeh M, Briand LC (2021) Using domain-specific corpora for improved handling of ambiguity in requirements. In: Proceedings of international conference on software engineering (ICSE), Madrid, Spain, May 2021, pp 1485–1497
Chernov S, Iofciu T, Nejdl W, Zhou X (2006) Extracting semantics relationships between wikipedia categories. In: Proceedings of the workshop on semantic Wikis (SemWiki), Budva, Montenegro
Beautiful S. A Python library for pulling data out of HTML and XML Files. Last accessed on 2022/09/09 16:36:31. [Online]. Available: https://www.crummy.com/software/BeautifulSoup/
Abualhaija S, Arora C, Sabetzadeh M, Briand LC, Vaz E (2019) A machine learning-based approach for demarcating requirements in textual specifications. In: Proceedings of the international requirements engineering conference (RE), Jeju Island, South Korea, September 2019, pp 51–62
Lin X, Peng Z, Niu N, Wang W, Liu H (2021) Finding metamorphic relations for scientific software. In: Proceedings of international conference on software engineering (ICSE) companion volume, Madrid, Spain, May 2021, pp 254–255
spaCy. Industrial-strength natural language processing in Python. Last accessed on 2022/09/09 16:36:31. [Online]. Available: https://spacy.io/
Kübler S, McDonald R, Nivre J (2009) Dependency parsing. Morgan & Claypool Publishers
Dalpiaz F, Dell’Anna D, Aydemir FB, cCevikol S (2019) Requirements classification with interpretable machine learning and dependency parsing. In: Proceedings of the international requirements engineering conference (RE), Jeju Island, South Korea, September 2019, pp 142–152
Cohen KB, Christiansen T, Hunter LE (2011) Parenthetically speaking: classifying the contents of parentheses for text mining. In: Proceedings of the annual symposium on biomedical and health informatics (AMIA), Washington, DC, USA, October 2011, pp 267–272
Klaussner C, Zhekova D (2011) Pattern-based ontology construction from selected Wikipedia pages. In: Proceedings of the international conference on recent advances in natural language processing (RANLP) Student Research Workshop, Hissar, Bulgaria, September 2011, pp 103–108
Hearst MA (1992) Automatic acquisition of hyponyms from large text corpora. In: Proceedings of the international conference on computational linguistics (COLING), Nantes, France, August 1992, pp 539–545
Klaussner C, Zhekova D (2011) Lexico-syntactic patterns for automatic ontology building. In: Proceedings of the international conference on recent advances in natural language processing (RANLP) Student Research Workshop, Hissar, Bulgaria, September 2011, pp 109–114
Finin TW (1980) The semantic interpretation of nominal compounds. In: Proceedings of the annual national conference on artificial intelligence (AAAI), Stanford, CA, USA, August 1980, pp 310–312
Peng Z, Niu N (2021) Co-AI: a Colab-based tool for abstraction identification. In: Proceedings of the international requirements engineering conference (RE), Notre Dame, IN, USA, September 2021, pp 420–421
Liu H, Shen M, Zhu J, Niu N, Li G, Zhang L (2022) Deep learning based program generation from requirements text: are we there yet? IEEE Trans Softw Eng 48(4):1268–1289
Nyamawe AS, Liu H, Niu N, Umer Q, Niu Z (2019) Automated recommendation of software refactorings based on feature requests. In: Proceedings of the international requirements engineering conference (RE), Jeju Island, South Korea, September 2019, pp 187–198
Nyamawe AS, Liu H, Niu N, Umer Q, Niu Z (2018) Recommending refactoring solutions based on traceability and code metrics. IEEE Access 6:49–475
Nyamawe AS, Liu H, Niu N, Umer Q, Niu Z (2020) Feature requests-based recommendation of software refactorings. Empir Softw Eng 25(5):4315–4347
Niu N, Savolainen J, Bhowmik T, Mahmoud A, Reddivari S (2012) A framework for examining topical locality in object-oriented software. In: Proceedings of the annual IEEE computer software and applications conference (COMPSAC), Izmir, Turkey, July 2012, pp 219–224
OpenEMR. A medical practice management software system supporting electronic medical records (EMR). Last accessed on 2022/09/09 16:36:31. [Online]. Available: https://en.wikipedia.org/wiki/OpenEMR
OpenMRS. A collaborative open-source project on medical record systems (MRS). Last accessed on 2022/09/09 16:36:31. [Online]. Available: https://en.wikipedia.org/wiki/OpenMRS
OpenEMR Features. Features of OpenEMR. Last accessed on 2022/09/09 16:36:31. [Online]. Available: https://www.open-emr.org/wiki/index.php/OpenEMR_Features
OpenMRS User Guide. A complete user guide for OpenMRS. Last accessed on 2022/09/09 16:36:31. [Online]. Available: https://wiki.openmrs.org/display/docs/User+Guide
Maier D (1978) The complexity of some problems on subsequences and supersequences. J ACM 25(2):322–336
Lin X, Simon M, Peng Z, Niu N (2021) Discovering metamorphic relations for scientific software from user forums. Comput Sci Eng 23(2):65–72
Hsia P, Kung DC, Sell C (1997) Software requirements and acceptance testing. Ann Softw Eng 3:291–317
Haugset B, Hanssen GK (2008) Automated acceptance testing: a literature review and an industrial case study. In: Proceedings of the agile development conference (AGILE), Toronto, ON, Canada, August 2008, pp 27–38
Cisco. What’s new for the latest channel of Webex meetings. Last accessed on 2022/09/09 16:36:31. [Online]. Available: https://help.webex.com/en-US/article/xcwws1/What’s-New-for-the-Latest-Channel-of-Webex-Meetings
Kohavi R, Tang D, Xu Y (2020) Trustworthy online controlled experiments: a practical guide to A/B testing. Cambridge University Press
NLTK Project. Natural language toolkit. Last accessed on 2022/09/09 16:36:31. [Online]. Available: https://www.nltk.org/
Lilian JF, Sundarakantham K, Rajashree H, Shalinie SM (2019) SSE: semantic sentence embedding for learning user interactions. In: Proceedings of the international conference on computing, communication and networking technologies (ICCCNT), Kanpur, India, July 2019, pp 1–5
Killawala A, Khokhlov I, Reznik L (2018) Computational intelligence framework for automatic quiz question generation. In: Proceedings of the international conference on fuzzy systems (FUZZ-IEEE), Rio de Janeiro, Brazil, July 2018, pp 1–8
Segura S, Fraser G, Sánchez AB, Cortés AR (2016) A survey on metamorphic testing. IEEE Trans Softw Eng 42(9):805–824
Chen TY, Kuo F-C, Liu H, Poon P-L, Towey D, Tse TH, Zhou ZQ (2018) Metamorphic testing: a review of challenges and opportunities. ACM Comput Surv 51(1):4:1-4:27
Auer F, Ros R, Kaltenbrunner L, Runeson P, Felderer M (2021) Controlled experimentation in continuous experimentation: knowledge and challenges. Inform Softw Technol 134:106 551:1–106 551:16
Niu N, Koshoffer A, Newman L, Khatwani C, Samarasinghe C, Savolainen J (2016) Advancing repeated research in requirements engineering: a theoretical replication of viewpoint merging. In: Proceedings of the international requirements engineering conference (RE), Beijing, China, September 2016, pp 186–195
Khatwani C, Jin X, Niu N, Koshoffer A, Newman L, Savolainen J (2017) Advancing viewpoint merging in requirements engineering: a theoretical replication and explanatory study. Requir Eng 22(3):317–338
Acknowledgements
We thank Sarah Sturmer and Sreelekhaa Nagamalli Santhoshkumar from the University of Cincinnati for their preliminary work on related research topics and their insightful comments on this work. The research is partially supported by the National Natural Science Foundation of China under Grant No. 62192731, 61802374, 62002348, and 62072442, the National Key Research and Development Program of China under Grant No. 2018YFB1403400, and Youth Innovation Promotion Association CAS.
Author information
Authors and Affiliations
Corresponding author
Ethics declarations
Conflicts of interest
The authors have no conflicts of interest to disclose.
Additional information
Publisher's Note
Springer Nature remains neutral with regard to jurisdictional claims in published maps and institutional affiliations.
Rights and permissions
Springer Nature or its licensor holds exclusive rights to this article under a publishing agreement with the author(s) or other rightsholder(s); author self-archiving of the accepted manuscript version of this article is solely governed by the terms of such publishing agreement and applicable law.
About this article
Cite this article
Peng, Z., Rathod, P., Niu, N. et al. Testing software’s changing features with environment-driven abstraction identification. Requirements Eng 27, 405–427 (2022). https://doi.org/10.1007/s00766-022-00390-8
Received:
Accepted:
Published:
Issue Date:
DOI: https://doi.org/10.1007/s00766-022-00390-8