=Paper=
{{Paper
|id=Vol-2019/docsymp_8
|storemode=property
|title=Improving Model-based Regression Test Selection
|pdfUrl=https://ceur-ws.org/Vol-2019/docsymp_8.pdf
|volume=Vol-2019
|authors=Mohammed Al-Refai
|dblpUrl=https://dblp.org/rec/conf/models/Al-Refai17
}}
==Improving Model-based Regression Test Selection==
Improving Model-Based Regression Test Selection
Mohammed Al-Refai
Computer Science Department
Colorado State University
Fort Collins, CO, USA
Email: al-refai@cs.colostate.edu
Abstract—Existing model-based regression test selection ap- lack of traceability is a known issue in model-based RTS
proaches are based on analyzing changes performed at the approaches, and can severely limit the applicability of these
model level. These approaches have three limitations. First, they approaches [9].
cannot detect all types of changes from design models. Second,
they do not identify the impact of changes to the inheritance II. R ELATED W ORK
hierarchy of the classes. Third, their applicability is limited due
to the abstraction gap between the code-level regression test cases The RTS problem has been studied for over three
and the models that represent the software system at a high decades [10], [9]. Most of the existing approaches are code-
level of abstraction. This paper discusses two model-based RTS based [11], [12], [13], [14], [3], [4], and little work exists
approaches to overcome these limitations, the evaluation plan,
and the current status. in the literature on model-based RTS. We summarizes the
Index Terms—regression testing, model-based regression test limitations of existing model-based RTS approaches. Farooq
selection, UML activity diagram, UML class diagram, fuzzy logic et al. [7] used UML class and state machine models for
RTS. This approach does not support the identification of
(1) the addition and deletion of the generalization relations,
I. P ROBLEM and (2) the overridden and inherited operations along the
Models can be used to perform evolution and runtime inheritance hierarchy. Briand et al. [6] presented an RTS
adaptation of a software system [1], [2]. Regression testing approach based on UML use case models, class models, and
of the evolved and adapted models is needed to ensure sequence models. This approach can identify the addition and
that previously tested functionality is still correct. Regression deletion of generalization relations between classes. Zech et
testing is one of the most expensive activities performed during al. [8] presented a generic model-based RTS platform, which
the lifecycle of a software system [3], [4]. Regression test is based on the model versioning tool, MoVE. Briand et al.
selection (RTS) [5] improves regression testing efficiency by and Zech et al. do not support the identification of inherited
selecting a subset of test cases from the original test set and overridden operations along the inheritance hierarchy.
for regression testing [5], [6]. Model-based RTS has several Korel et al. [15] used control and data dependencies in an
advantages over code-based RTS. The effort for testing can be extended finite state machine to identify the impact of model
estimated earlier [6], [7], [8], tools for regression testing can changes and perform RTS. This approach does not use UML
be programming language independent [6], [8], and managing class model. All of the mentioned approaches use design-
traceability can be more practical at the model level [6], [8]. time models, and require these models to contain enough
Model-based RTS can scale up better than code-based RTS information to obtain the coverage of test cases at the model
for large software systems [9]. level, which is not always a common practice [6].
Existing model-based RTS approaches suffer from the fol-
lowing three problems. First, they cannot detect all types III. P ROPOSED S OLUTION
of changes from UML class, sequence, and state machine In this work we propose two model-based RTS approaches.
diagrams that are used in these approaches [6], [7], [8]. Briand The first approach called MaRTS addresses the first two
et al. [6] provided an example for such a change, which is problems discussed in section I. The second approach called
a modification to an operation implementation that does not FLiRTS uses fuzzy logic to address the third problem dis-
affect the operation’s signature and contract. Second, they cussed in section I.
do not support the identification of changes to inherited and
overridden operations along the inheritance hierarchy [6], [7], A. MaRTS
[8]. As a result, existing model-based RTS approaches can MaRTS [16] is a model-based RTS approach that uses (1) a
miss relevant test cases that need to be reexecuted. The third UML design class diagram to represent the static structure of
problem is the lack of traceability links between code-level a software system, and (2) UML activity diagrams to represent
test cases and the models representing the software system. the fine-grained behaviors of a software system. The class
The reason is that models are generally created at a high level and activity diagrams are reverse engineered from the original
of abstraction and lack low-level details that are needed to version of the software system. Each method of the software
obtain the coverage of test cases at the model level. This system and each test case is represented as an activity diagram.
The activity diagrams used in MaRTS are detailed and to an operation in the class diagram. This level of abstraction
executable. MaRTS exploits the Rational Software Architect prevents obtaining the coverage of test cases at the model level.
(RSA) simulation toolkit 9.01 to execute test cases at the model We propose two solutions for this problem.
level. Each action node has an associated code snippet that Activity diagram-based solution. This solution is based
contains code statements. When the execution flow reaches an on automatically generating detailed activity diagrams called
action node in a model, the code snippet associated with the refinements from the abstract activity diagrams [18]. A refine-
action node is executed. Each code-level method invocation ment is an activity diagram that contains more flows and nodes
statement is represented at the model level as a call to the compared to the one that it is refining it. FLiRTS assumes
corresponding activity diagram. When the model execution that a UML sequence diagram that represents all the use case
flow reaches such a call, the associated activity diagram is scenarios of the system is available, and is used to control
executed [17], [16]. MaRTS is based on the following steps. the refinement generation process to avoid the generation of
Extract information from the UML class diagrams. An completely inconsistent and unrelated activity diagrams. Each
operations-table is extracted from the original class diagram. activity diagram in the system model has several possible
This table stores for each class the operations that are declared refinements. A refined system model is the system model where
and inherited by the class, and the name of its superclass. each activity diagram is replaced by one of its refinements.
When developers adapt the class diagram, the declared and Several combinations of the refinements are possible, which
inherited operations in each class might change. Therefore, leads to the creation of several refined system models. A test
an operations-table is also extracted from the adapted class case may or may not traverse activity diagrams in a refined
diagram. system model depending on which refinements are used, and
Calculate traceability matrix. This step is performed their correctness.
before adapting the models. The test cases are executed at Fuzzy logic is used to address this uncertainty. We define
the model level, and coverage information is collected for each two input variables and set their crisp values in terms of (1) the
test case: (1) what activity diagrams are executed, and (2) what extent to which a test case traverses modified activity diagrams
flows in each activity diagram are executed. This information in a refined system model, and (2) the extent to which a test
is used to obtain the traceability matrix that relates each test case traverses correct refinements in a refined system model.
case to the activity diagrams and the flows that were traversed These values are provided as inputs to the fuzzy logic-based
by the test case. classifier. The final results of the classifier for each test case are
Identify model changes. MaRTS uses RSA model compar- the probabilities for Retestable and Reusable associated with
ison2 to identify fine-grained model changes after developers each refined system model. We use the most correct refined
adapt the class and activity diagrams. This tool can identify system model to obtain the final classification for the test case.
fine-grained changes in the activity diagrams at the level Class diagram-based solution. First, FLiRTS reads the
of flows, nodes, and code statements associated with action design class diagram and extracts relations between the classi-
nodes. fiers. We consider the association, composition, generalization,
Classify test cases. Our algorithm classifies the test cases realization, and usage relations. The usage relation type that
as obsolete, retestable, or reusable. Initially, all the test cases we consider is defined as the one from a class/interface C to
are classified as reusable. Next, the algorithm compares the a class/interface D, where C has an operation with a return
operations-tables to identify which operations were changed type and/or a parameter type of D.
along the inheritance hierarchy. The traceability matrix is Second, FLiRTS uses the extracted relations to build a
used to determine each test case that is affected by those relations graph. In this graph, the classifiers are nodes, and
changes, and the affected test cases are classified as retestable the extracted relations are directed edges between the nodes.
or obsolete. The remaining test cases are classified based on Third, FLiRTS uses the activity diagrams representing the
the identified model differences. test cases along with the paths between the classifiers in the
B. FLiRTS relations graph to estimate the coverage of each test case.
Based on the relations graph, there can be multiple paths
FLiRTS is a fuzzy logic-based RTS approach that performs
that start from a test case and end in adapted/evolved classes.
RTS using design models that are at a high level of abstraction.
However, we are uncertain about which one of these paths is
FLiRTS uses a UML design class diagram to represent the
traversed by the test case. We use fuzzy logic to address this
static structure of the system and UML activity diagrams to
uncertainty for each test case by considering the number of
represent the behaviors of the system’s methods at a high level
such paths, their length, and types of their edges.
of abstraction. In contrast to MaRTS, action nodes in these
activity diagrams are not executable, and do not contain code IV. P LAN FOR E VALUATION AND VALIDATION
statements. Each test case is modeled as an activity diagram
that includes call behavior nodes, each of which directly links We plan to empirically evaluate MaRTS and FLiRTS using
subjects as follows:
1 http://www-03.ibm.com/software/products/en/ratisoftarchsimutool
2 https://www.ibm.com/developerworks/rational/library/05/712_comp2/ 1) Compare the inclusiveness and precision of MaRTS and
index.html FLiRTS with that of two code-based RTS approaches.
2) Evaluate the fault detection ability of the reduced test ACKNOWLEDGMENT
sets. This material is based upon work supported by the National
3) Identify generalizable thresholds for the fuzzy sets/rules Science Foundation under Grant No. CNS 1305381.
used in FLiRTS.
R EFERENCES
V. E XPECTED C ONTRIBUTIONS
[1] W. J. Dzidek, E. Arisholm, and L. C. Briand, “A realistic empirical
This work will contribute to the modeling field by showing evaluation of the costs and benefits of uml in software maintenance,”
that the proposed RTS techniques are feasible and produce IEEE Transactions on software engineering, vol. 34, no. 3, pp. 407–432,
2008.
results that are comparable to that of code-based RTS. We [2] G. S. Blair, N. Bencomo, and R. B. France, “Models@run.time,” IEEE
expect that MaRTS will improve the safety and precision of Computer, vol. 42, no. 10, pp. 22–27, Oct. 2009.
model-based RTS, and FLiRTS will improve the applicabil- [3] G. Rothermel and M. J. Harrold, “A Safe, Efficient Regression Test
Selection Technique,” ACM Transactions on Software Engineering and
ity, safety, and precision of model-based RTS when applied Methodology, vol. 6, no. 2, pp. 173–210, Apr. 1997.
with models that are at a high level of abstraction and lack [4] M. J. Harrold, J. A. Jones, T. Li, D. Liang, A. Orso, M. Pennings,
traceability with the test cases. S. Sinha, S. A. Spoon, and A. Gujarathi, “Regression Test Selection
for Java Software,” in Proceedings of the 16th Conference on Object-
MaRTS and FliRTS can be used within the contexts of Oriented Programming, Systems, Languages, and Applications (OOP-
model-based evolution and runtime adaptation. For example, SLA’01), J. Vlissides, Ed. Tampa, FL, USa: ACM, Oct. 2001, pp.
the approaches that use models to perform runtime adapta- 312–326.
[5] M. J. Harrold, “Testing Evolving Software,” Journal of Systems and
tion [19], [20], [21], [22] can utilize MaRTS and FLiRTS to Software, vol. 47, no. 2-3, pp. 173–181, Jul. 1999.
classify regression test cases based on model-level changes. [6] L. C. Briand, Y. Labiche, and S. He, “Automating Regression Test
Selection Based on UML Designs,” Journal on Information and Software
VI. C URRENT S TATUS Technology, vol. 51, no. 1, pp. 16–30, Jan. 2009.
We implemented a prototype tool that automates the process [7] Q. Farooq, M. Z. Z. Iqbal, Z. I. Malik, and M. Riebisch, “A model-based
regression testing approach for evolving software systems with flexible
of MaRTS. We compared MaRTS with two code-based RTS tool support,” in 17th IEEE International Conference and Workshops
approaches, DejaVu [4] and ChEOPSJ [14], in terms of their on the Engineering of Computer-Based Systems, ECBS 2010, Oxford,
inclusiveness, precision, the fault detection ability of the England, UK, 22-26 March 2010, 2010, pp. 41–49.
[8] P. Zech, M. Felderer, P. Kalb, and R. Breu, “A Generic Platform for
retestable test set. We used four subject programs: JUNG, Model-Based Regression Testing,” in Proceedings of the 5th Inter-
Siena, XML-security, and chess, which is a classroom project. national Symposium on Leveraging Applications of Formal Methods,
We extracted class and activity diagrams from the original Verification and Validation (ISoLA’12), ser. Lecture Notes in Computer
Science 7609, T. Margaria and B. Steffen, Eds. Heraclion, Crete:
version of each subject program and its test cases. We adapted Springer, Oct. 2012, pp. 112–126.
the diagrams from one version to the following version. Then, [9] S. Yoo and M. Harman, “Regression Testing Minimization, Selection
we applied MaRTS, DejaVu, and ChEOPSJ to classify the test and Prioritization: A Survey,” Journal of Software Testing, Verification
and Reliability, vol. 22, no. 2, pp. 67–120, Mar. 2012.
cases. We used PIT3 to apply method-level mutation operators [10] E. Engström, P. Runeson, and M. Skoglund, “A Systematic Review
to the adapted versions at the code level. We ran PIT with on Regression Test Selection Techniques,” Information and Software
both the original and retestable test sets on each version, and Technology, vol. 52, no. 1, pp. 14–30, Jan. 2010.
[11] L. J. White and K. Abdullah, “A Firewall Approach for Regression
reported the killed mutants by each test set. The inclusiveness Testing of Object-Oriented Software,” in Proceedings of the 10th In-
of DejaVu and MaRTS was 100% for all the programs. The ternational Software Quality Week (QW’97), San Francisco, CA, USA,
inclusiveness of ChEOPSJ was 94% for JUNG, 96% for Chess, May 1997.
[12] D. C. Kung, J. Gao, P. Hsia, Y. Toyoshima, and C. Chen, “On Regression
and 92% for Siena. The precision was 100% for MaRTS and Testing of Object-Oriented Programs,” Journal of Systems and Software,
DejaVu. The precision of ChEOPSJ was 100% for JUNG and vol. 32, no. 1, pp. 21–40, Jan. 1996.
Chess, and 62% for Siena. ChEOPSJ did not produce results [13] M. Skoglund and P. Runeson, “Improving Class Firewall Regression
Test Selection by Removing the Class Firewall,” International Journal
for XML-security because of a bug in this tool. The retestable of Software Engineering and Knowledge Engineering, vol. 17, no. 3, pp.
test sets obtained by MaRTS achieved the same fault detection 359–378, Jun. 2007.
ability that was achieved by the full test sets. [14] Q. D. Soetens, S. Demeyer, A. Zaidman, and J. Pérez, “Change-
Based Test Selection: An Empirical Evaluation,” Empirical Software
We conducted a preliminary evaluation of FLiRTS. We Engineering, pp. 1–43, Nov. 2015.
obtained comparable results on inclusiveness and precision [15] B. Korel, L. H. Tahat, and B. Vaysburg, “Model Based Regression
with DejaVu and MaRTS [18]. Test Reduction Using Dependence Analysis,” in Proceedings of the
International Conference on Software Maintenance (SM’02). Montreal,
VII. P ROPOSED T IMELINE FOR THE R EMAINING TASKS Quebec, Canada: IEEE, Oct. 2002, pp. 214–233.
[16] M. Al-Refai, S. Ghosh, and W. Cazzola, “Model-based Regression Test
August - October 2017: Selection for Validating Runtime Adaptation of Software Systems,” in
∙ Collect subjects for the experiments of FLiRTS. Proceedings of the 9th IEEE International Conference on Software Test-
ing, Verification and Validation (ICST’16), L. Briand and S. Khurshid,
∙ Complete the implementation of FLiRTS. Eds. Chicago, IL, USA: IEEE, 10th-15th of Apr. 2016, pp. 288–298.
∙ Perform the experiments using FLiRTS and DejaVu. [17] M. Al-Refai, W. Cazzola, S. Ghosh, and R. France, “Using Models to
Validate Unanticipated, Fine-Grained Adaptations at Runtime,” in Pro-
October - December 2017: ceedings of the 17th IEEE International Symposium on High Assurance
∙ Analyze and report the results of the experiments. Systems Engineering (HASE’16), H. Waeselynck and R. Babiceanu, Eds.
∙ Write the dissertation. Orlando, FL, USA: IEEE, 7th-9th of Jan. 2016, pp. 23–30.
3 http://pitest.org
[18] M. Al-refai, W. Cazzola, and S. Ghosh, “A Fuzzy Logic Based Approach vol. 42, no. 10, pp. 44–51, Oct. 2009.
for Model-based Regression Test Selection,” in Proceedings of the [21] T. Vogel and H. Giese, “Adaptation and Abstract Runtime Models,”
ACM/IEEE 20th International Conference on Model Driven Engineering in Proceedings of the ICSE Workshop on Software Engineering for
Languages and Systems (MoDELS’17), Austin, TX, USA, 17th of Sep.- Adaptive and Self-Managing Systems (SEAMS’10). Cape Town, South
22th of Sep. 2017. Africa: ACM, May 2010, pp. 39–48.
[19] D. Garlan, S.-W. Cheng, A.-C. Huang, B. Schmerl, and P. Steenkiste, [22] W. Cazzola, N. A. Rossini, P. Bennett, S. Pradeep Mandalaparty, and
“Rainbow: Architecture-Based Self Adaptation with Reusable Infras- R. B. France, “Fine-Grained Semi-Automated Runtime Evolution,” in
tructure,” IEEE Computer, vol. 37, no. 10, pp. 46–54, Oct. 2004. MoDELS@Run-Time, ser. Lecture Notes in Computer Science 8378,
[20] B. Morin, O. Barais, J.-M. Jézéquel, F. Fleurey, and A. Solberg, N. Bencomo, B. Cheng, R. B. France, and U. Aßmann, Eds. Springer,
“Models@Run.time to Support Dynamic Adaptation,” IEEE Computer, Aug. 2014, pp. 237–258.