Model-Based Regression Testing: Process, Challenges and Approaches

Model-Based Regression Testing: Process, Challenges and Approaches

Qurat-ul-ann Farooq (Ilmenau University of Technology, Germany) and Matthias Riebisch (Ilmenau University of Technology, Germany)
DOI: 10.4018/978-1-61350-438-3.ch010

Chapter Preview

To improve is to change; to be perfect is to change often (Winston Churchill)



Evolution is inherent to the software systems. Due to the growing size and complexity of modern systems, the evolving nature of a system can cause adverse side effects and even system failures. Besides many other measures to prevent these unintended effects of evolution, it is essential to test a system after modifications; often referred to as Regression Testing. Regression testing is performed during the software maintenance phase and during various maintenance activities including corrective, perfective and adaptive maintenance (Wu & Offutt, 2003).

When a software system is modified, repeating the entire testing activity is a very costly task. A large system may have a huge number of test cases and test-execution requirements. Executing all these test cases is generally not a economically feasible option. Hence, it is necessary for regression testing to select a subset of the test cases corresponding to modifications. This is known as the selective strategy for regression testing and is a more feasible solution in terms of cost and time (Binder, 1999).

Another important issue during regression testing is scalability. Conventional code-based regression testing approaches fail to deal with the huge size of modern software systems. Model-based regression testing is a potential solution to this problem, because it offers several advantages compared to the conventional code-based regression testing approaches. This includes better scalability, better complexity management and better comprehension of the system, the relevant test suites and test cases. In model-based testing, the testing activity can be started in early phases of software development allowing early regression planning and estimation (Briand, Labiche, & He, 2009). This results in effort reduction in terms of time and labour. Furthermore, traceability maintenance between test cases and models is relatively easier to accomplish as compared to the code-based approaches (Briand, Labiche, & He, 2009). Due to the use of models as primary artefact in the MBRT, static and dynamic interactions are more visible in design models and no static and dynamic analysis is required to determine the dynamic bindings as in code based approaches. Finally, portability and platform independence is a major benefit for evolving systems to adopt the rapid changes in technology and operational environment.

Besides all these benefits, there are some limitations of model-based regression testing as well. One of the major limitations is the potential impact of incomplete and outdated design models on the creation of effective regression test suites and plans. Moreover, since the test cases are generated from the design models, they are more abstract than test cases generated from code. This abstraction, sometimes make the test execution more difficult as the test cases should be adapted according to the implementation environment. However, considering the benefits of model-based regression testing, these limitations can be somehow compromised.

Complete Chapter List

Search this Book: