A Conceptual Metamodel to Bridging Requirement Patterns to Test Patterns

Requirement patterns represent an abstraction of an application's behaviors and services that, in turn, may be replicated in similar applications. However, there has been a lack of efforts exploiting the benefits of requirement patterns in other phases of the software development life cycle, besides the requirements engineering itself. To address this gap, we propose the Software Pattern MetaModel (SoPaMM) that bridges requirement patterns to groups of scenarios with similar behaviors in the form of test patterns. SoPaMM allows the description of the behavior of a requirement pattern through a time executable and easy-to-use language aiming at the automatic generation of test patterns. Using SoPaMM, we model and implement a behavior-driven functional requirement pattern for a web-based user authentication application. Our preliminary results point out that a requirement pattern can be an executable specification capable of generating automated tests.

[1]  Paolo Tonella,et al.  Why Creating Web Page Objects Manually If It Can Be Done Automatically? , 2015, 2015 IEEE/ACM 10th International Workshop on Automation of Software Test.

[2]  Dave Astels,et al.  The RSpec Book , 2012 .

[3]  Betty H. C. Cheng,et al.  Requirements patterns for embedded systems , 2002, Proceedings IEEE Joint International Conference on Requirements Engineering.

[4]  Filippo Ricca,et al.  Improving Test Suites Maintainability with the Page Object Pattern: An Industrial Case Study , 2013, 2013 IEEE Sixth International Conference on Software Testing, Verification and Validation Workshops.

[5]  Alessandra Alaniz Macedo,et al.  Padrão de Requisitos no Ciclo de Vida de Software: Um Mapeamento Sistemático , 2019, CIbSE.

[6]  Carme Quer,et al.  Requirements reuse and requirement patterns: a state of the practice survey , 2017, Empirical Software Engineering.

[7]  Norsaremah Salleh,et al.  Software Requirements Patterns and Meta Model: A Strategy for Enhancing Requirements Reuse (RR) , 2016, 2016 6th International Conference on Information and Communication Technology for The Muslim World (ICT4M).

[8]  Stephen Withall Software Requirement Patterns , 2007 .

[9]  Ana C. R. Paiva,et al.  A GUI modeling DSL for pattern-based GUI testing PARADIGM , 2014, 2014 9th International Conference on Evaluation of Novel Approaches to Software Engineering (ENASE).

[10]  Sabrina Marczak,et al.  Behavior-driven development benefits and challenges: reports from an industrial study , 2018, XP Companion.

[11]  Steve Tockey Insanity, Hiring, and the Software Industry , 2015, Computer.

[12]  John Ferguson Smart,et al.  BDD in Action: Behavior-driven development for the whole software lifecycle , 2014 .

[13]  Mark B. Trakhtenbrot Mutation Patterns for Temporal Requirements of Reactive Systems , 2017, 2017 IEEE International Conference on Software Testing, Verification and Validation Workshops (ICSTW).

[14]  Carme Quer,et al.  A Metamodel for Software Requirement Patterns , 2010, REFSQ.

[15]  Gerard Meszaros,et al.  xUnit Test Patterns: Refactoring Test Code , 2007 .

[16]  Paul Rook,et al.  Controlling software projects , 1986, Softw. Eng. J..

[17]  Kai Petersen,et al.  A systematic literature review of software requirements reuse approaches , 2018, Inf. Softw. Technol..

[18]  Yuri Chernak,et al.  Requirements Reuse: The State of the Practice , 2012, 2012 IEEE International Conference on Software Science, Technology and Engineering.

[19]  Ivan A. Garcia,et al.  A serious game for teaching the fundamentals of ISO/IEC/IEEE 29148 systems and software engineering - Lifecycle processes - Requirements engineering at undergraduate level , 2020, Comput. Stand. Interfaces.

[20]  Xavier Franch Software Requirements Patterns - A State of the Art and the Practice , 2015, 2015 IEEE/ACM 37th IEEE International Conference on Software Engineering.

[21]  Cecilia Haskins 1.1.2 Using Patterns to Share Best Results ‐ A proposal to codify the SEBOK , 2003 .

[22]  Dave Astels,et al.  The RSpec Book: Behaviour Driven Development with RSpec, Cucumber, and Friends , 2010 .

[23]  Linda Rising,et al.  Patterns: a way to reuse expertise , 1999, IEEE Commun. Mag..