Test case generation based on mutations over user execution traces

  • PDF / 664,374 Bytes
  • 14 Pages / 439.642 x 666.49 pts Page_size
  • 36 Downloads / 224 Views

DOWNLOAD

REPORT


Test case generation based on mutations over user execution traces Ana C. R. Paiva1

´ · Andre´ Restivo2 · Sergio Almeida3

© Springer Science+Business Media, LLC, part of Springer Nature 2020

Abstract Automatic test case generation is usually based on models of the software under test. However, those models may not exist or may be outdated and so, the test case generation must resort to other artifacts. In a software maintenance context, test cases must adapt to software changes and should be improved continuously to test adequately the new versions of the software. Mutation testing is a fault-based testing technique that evaluates the quality of the tests by applying simple changes to the source code and checking afterwards if the tests are able to detects those changes. This paper presents a web testing approach in which test cases are generated from user execution traces as a way to deal with the absence of models. In addition, it applies mutation operators over those test cases to enrich the test suite. The mutation operators were designed so as to mimic possible real failures. The additional tests are analyzed, and those that generate different outcomes are kept because they exercise additional behavior of the web application under test. At the end, the overall approach is illustrated and validated in a case study. Keywords Software testing · Mutation testing · Test case generation · Web testing · Software test automation

1 Introduction Software testing is, by itself, a challenging activity (Bertolino 2007). Software is becoming more complex, and manually testing the entire behavior is infeasible (Moreira et al. 2017). So, software test automation may be a way to deal with time restrictions and complexity. This article belongs to the Topical Collection: Quality Management for Information Systems Guest Editors: Mario Piattini, Ignacio Garc´ıa Rodr´ıguez de Guzm´an, Ricardo P´erez del Castillo  Ana C. R. Paiva

[email protected] Andr´e Restivo [email protected] 1

Faculdade de Engenharia da Universidade do Porto & INESC TEC, Porto, Portugal

2

Faculdade de Engenharia da Universidade do Porto & LIACC, Porto, Portugal

3

Faculdade de Engenharia da Universidade do Porto, Porto, Portugal

Software Quality Journal

There are several software testing tools available that can be classified according to different criteria (Poston and Sexton 1992). Regarding the degree of automation, some tools automate only test execution, others automate test case generation, so test cases do not have to be manually written by testers—but they might still need to be manually executed—and others automate both. Usually, to automate the test case generation, tools use software models and some coverage criteria to guide it. However, sometimes, such models may not exist, may be outdated, and it may be challenging to construct/update them. In such cases, the test case generation must resort to other artifacts. The approach presented in this paper uses user execution traces as a source for the test case generation. User interactions with