A Conceptual Metamodel to Bridging Requirement Patterns to Test Patterns
Resumo
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.
Referências
Yuri Chernak. 2012. Requirements Reuse: The State of the Practice. In 2012 IEEE International Conference on Software Science, Technology and Engineering, SWSTE 2012, Herzlia, Israel, June 12-13, 2012. IEEE Computer Society, Los Alamitos, CA, USA, 46--53.
Xavier Franch. 2015. Software Requirements Patterns: A State of the Art and the Practice. In Proceedings of the 37th International Conference on Software Engineering - Volume 2 (ICSE '15). IEEE Press, Piscataway, NJ, USA, 943--944.
Xavier Franch, Cristina Palomares, Carme Quer, Samuel Renault, and Francois De Lazzer. 2010. A Metamodel for Software Requirement Patterns. In Requirements Engineering: Foundation for Software Quality, Roel Wieringa and Anne Persson (Eds.). Springer Berlin Heidelberg, Berlin, Heidelberg, 85--90.
Cecilia Haskins. 2003. Using Patterns to Share Best Results - A proposal to codify the SEBOK. INCOSE International Symposium 13, 1 (2003), 15--23.
IEEE. 2018. ISO/IEC/IEEE 29148:2018 International Standard - Systems and software engineering - Life cycle processes - Requirements engineering. ISO/IEC/IEEE 29148:2018(E) 2 (2018), 1--92.
Mohsin Irshad, Kai Petersen, and Simon Poulding. 2018. A Systematic Literature Review of Software Requirements Reuse Approaches. Inf. Softw. Technol. 93, C (Jan. 2018), 223--245.
Sascha Konrad and Betty H.C. Cheng. 2002. Requirements patterns for embedded systems. In Proceedings IEEE Joint International Conference on Requirements Engineering. IEEE, Essen, Germany, 127--136.
Taciana N. Kudo, Renato F. Bulcão-Neto, Alessandra A. Macedo, and Auri M.R. Vincenzi. 2019. Padrão de Requisitos no Ciclo de Vida de Software: Um Mapeamento Sistemático. In XXII Ibero-American Conference on Software Engineering, CIbSE 2019. Curran Associates, Inc., New York, USA, 420--433.
Maurizio Leotta, Diego Clerissi, Filippo Ricca, and Cristiano Spadaro. 2013. Improving Test Suites Maintainability with the Page Object Pattern: An Industrial Case Study.. In ICST Workshops. IEEE Computer Society, Washington, DC, USA, 108--113.
Gerard Meszaros. 2006. XUnit Test Patterns: Refactoring Test Code. Prentice Hall PTR, Upper Saddle River, NJ, USA.
Rodrigo M. L. M. Moreira and Ana C. R. Paiva. 2014. A GUI Modeling DSL for Pattern-Based GUI Testing - PARADIGM. In ENASE 2014 - Proceedings of the 9th International Conference on Evaluation of Novel Approaches to Software Engineering, Lisbon, Portugal, 28-30 April, 2014. IEEE, Lisbon, Portugal, 126--135.
OMG. 2002. Meta Object Facility (MOF) Specification, Version 1.4. Object Management Group, Inc. (2002).
Cristina Palomares, Carme Quer, and Xavier Franch. 2017. Requirements reuse and requirement patterns: a state of the practice survey. Empirical Software Engineering 22, 6 (2017), 2719--2762.
Lauriane Pereira, Helen Sharp, Cleidson de Souza, Gabriel Oliveira, Sabrina Marczak, and Ricardo Bastos. 2018. Behavior-driven Development Benefits and Challenges: Reports from an Industrial Study. In Proceedings of the 19th International Conference on Agile Software Development: Companion (XP '18). ACM, New York, NY, USA, Article 42, 4 pages.
Linda Rising. 1999. Patterns: A way to reuse expertise. IEEE Communications Magazine 37, 4 (April 1999), 34--36.
Arndt von Staa Roberta Coelho, Uirá Kulesza and Carlos Lucena. 2005. The Layered Information System Test Pattern. In Fifth Latin American Conference on Patterns Languages of Programming (SugarLoafPlop05). Campos do Jordão - Brasil, 1--16.
Paul Rook. 1986. Controlling software projects. Software Engineering Journal 1 (02 1986), 7.
John Ferguson Smart. 2014. BDD in Action: Behavior-Driven Development for the Whole Software Lifecycle (first ed.). Manning Publications.
Andrea Stocco, Maurizio Leotta, Filippo Ricca, and Paolo Tonella. 2015. Why Creating Web Page Objects Manually if It Can Be Done Automatically?. In Proceedings of the 10th International Workshop on Automation of Software Test (AST '15). IEEE Press, Piscataway, NJ, USA, 70--74.
Steve Tockey. 2015. Insanity, Hiring, and the Software Industry. Computer 48 (11 2015), 96--101.
Mark Trakhtenbrot. 2017. Mutation Patterns for Temporal Requirements of Reactive Systems. In Proceedings - 10th IEEE International Conference on Software Testing, Verification and Validation Workshops, ICSTW 2017. IEEE, 116--121.
Stephen Withall. 2007. Software Requirement Patterns. Microsoft Press, Redmond, Washington.
Badamasi Ya'u, Azlin Nordin, and Norsaremah Salleh. 2016. Software Requirements Patterns and Meta Model: A Strategy for Enhancing Requirements Reuse (RR). In 2016 6th International Conference on Information and Communication Technology for The Muslim World. ICT4M, Jakarta, Indonesia, 188--193.