TORC: test plan optimization by requirements clustering

Acceptance testing is a time-consuming task for complex software systems that have to fulfill a large number of requirements. To reduce this effort, we have developed a widely automated method for deriving test plans from requirements that are expressed in natural language. It consists of three stages: annotation, clustering, and test plan specification. The general idea is to exploit redundancies and implicit relationships in requirements specifications. Multi-viewpoint techniques based on RM-ODP (Reference Model for Open Distributed Processing) are employed for specifying the requirements. We then use linguistic analysis techniques, requirements clustering algorithms, and pattern-based requirements collection to reduce the total effort of testing against the requirements specification. In particular, we use linguistic analysis for extracting and annotating the actor, process and object of a requirements statement. During clustering, a similarity function is computed as a measure for the overlap of requirements. In the test plan specification stage, our approach provides capabilities for semi-automatically deriving test plans and acceptance criteria from the clustered informal textual requirements. Two patterns are applied to compute a suitable order of test activities. The generated test plans consist of a sequence of test steps and asserts that are executed or checked in the given order. We also present the supporting prototype tool TORC, which is available open source. For the evaluation of the approach, we have conducted a case study in the field of acceptance testing of a national electronic identification system. In summary, we report on lessons learned how linguistic analysis and clustering techniques can help testers in understanding the relations between requirements and for improving test planning.

[1]  J. Wegener,et al.  Test Case Design by Means of the CTE XL , 2000 .

[2]  Sean McDonald,et al.  Software Test Automation , 1999 .

[3]  Gregor Engels,et al.  A Meta-Method for Defining Software Engineering Methods , 2010, Graph Transformations and Model-Driven Engineering.

[4]  Zude Li,et al.  An Approach to Requirements Encapsulation with Clustering , 2007, WER.

[5]  Michael Geisser,et al.  Evaluating the Applicability of Requirements Engineering Tools for Distributed Software Development , 2007 .

[6]  ITU-T Rec. X.904 (12/97) Information technology-Open distributed processing-Reference Model: Architectural semantics , 2022 .

[7]  John Paul,et al.  Automated Software Testing: Introduction, Management, and Performance , 1999 .

[8]  Haiyan Zhao,et al.  An approach to constructing feature models based on requirements clustering , 2005, 13th IEEE International Conference on Requirements Engineering (RE'05).

[9]  Benno Geißelmann,et al.  Program Design by Informal English Descriptions , 2001 .

[10]  Gregor Engels,et al.  Knowledge transfer in global software development: leveraging acceptance test case specifications , 2010, 2010 ACM/IEEE 32nd International Conference on Software Engineering.

[11]  Pei Hsia,et al.  Another approach to system decomposition: requirements clustering , 1988, Proceedings COMPSAC 88: The Twelfth Annual International Computer Software & Applications Conference.

[12]  P. Hsia,et al.  Incremental delivery using abstract data types and requirements clustering , 1992, Proceedings of the Second International Conference on Systems Integration.

[13]  Anil K. Jain,et al.  Data clustering: a review , 1999, CSUR.

[14]  Scott O. Bradner,et al.  Key words for use in RFCs to Indicate Requirement Levels , 1997, RFC.

[15]  Bradley S. Green Software test automation , 2000, SOEN.

[16]  T. A. Wiggerts,et al.  Using clustering algorithms in legacy systems remodularization , 1997, Proceedings of the Fourth Working Conference on Reverse Engineering.

[17]  Gregor Engels,et al.  Knowledge Transfer in Global Software Development - Leveraging Ontologies, Tools and Assessments , 2010, 2010 5th IEEE International Conference on Global Software Engineering.

[18]  ITU-T Rec. X.902 (10/2009) Information technology-Open Distributed Processing-Reference model: Foundations , 2010 .

[19]  Baris Güldali,et al.  Pattern-based generation of test plans for open distributed processing systems , 2010, AST '10.

[20]  Gregor Engels,et al.  Graph Transformations and Model-Driven Engineering - Essays Dedicated to Manfred Nagl on the Occasion of his 65th Birthday , 2010, Graph Transformations and Model-Driven Engineering.

[21]  Walter P. Bond,et al.  Toward software requirements modularization using hierarchical clustering techniques , 2005, ACM Southeast Regional Conference.

[22]  Gregor Engels,et al.  Semi-automated Test Planning for e-ID Systems by Using Requirements Clustering , 2009, 2009 IEEE/ACM International Conference on Automated Software Engineering.

[23]  Daniel M. Berry,et al.  AbstFinder, a prototype abstraction finder for natural language text for use in requirements elicitation: design, methodology, and evaluation , 1994, Proceedings of IEEE International Conference on Requirements Engineering.

[24]  David R. Dowty Word Meaning and Montague Grammar: The Semantics of Verbs and Times in Generative Semantics and in M , 1979 .

[25]  George A. Miller,et al.  WordNet: A Lexical Database for English , 1995, HLT.

[26]  David R. Dowty,et al.  Word Meaning and Montague Grammar , 1979 .

[27]  Franz Rothlauf,et al.  An Evaluation Method for Requirements Engineering Approaches in Distributed Software Development Projects , 2007, International Conference on Software Engineering Advances (ICSEA 2007).