TY - GEN
T1 - Generating boundary values from OCL constraints using constraints rewriting and search algorithms
AU - Ali, Shaukat
AU - Yue, Tao
AU - Qiu, Xiang
AU - Lu, Hong
N1 - Publisher Copyright:
© 2016 IEEE.
PY - 2016/11/14
Y1 - 2016/11/14
N2 - A key component of model-based testing is the generation of test data from constraints (e.g., specified in the Object Constraint Language (OCL)) associated with models e.g., specified in the Unified Modeling Language (UML). The quality of test data eventually determines the effectiveness of test cases, e.g., fault detection and coverage. A simple way to generate test data from an OCL constraint is to find a set of values for all the variables that satisfies the constraint. One way of improving the quality of test data is by generating test data at the boundaries of each variable in the constraint. In this paper, we extend our search-based test data generation approach to generate test data at the boundaries of each variable involved in a constraint. We present different cases of constraints involving different types of variables and how we rewrite them in order to automatically generate boundary values using our existing OCL Solver called EsOCL based on a set of heuristics. We empirically evaluated our heuristics using three search algorithms, i.e., Genetic Algorithm, (1+1) Evolutionary Algorithm, and Alternating Variable Method, on industrial OCL constraints from our previous work. Results show that AVM on average achieved a 95% of success rate and outperformed the rest of the algorithms in finding all the boundary values of constraints in fewer generations.
AB - A key component of model-based testing is the generation of test data from constraints (e.g., specified in the Object Constraint Language (OCL)) associated with models e.g., specified in the Unified Modeling Language (UML). The quality of test data eventually determines the effectiveness of test cases, e.g., fault detection and coverage. A simple way to generate test data from an OCL constraint is to find a set of values for all the variables that satisfies the constraint. One way of improving the quality of test data is by generating test data at the boundaries of each variable in the constraint. In this paper, we extend our search-based test data generation approach to generate test data at the boundaries of each variable involved in a constraint. We present different cases of constraints involving different types of variables and how we rewrite them in order to automatically generate boundary values using our existing OCL Solver called EsOCL based on a set of heuristics. We empirically evaluated our heuristics using three search algorithms, i.e., Genetic Algorithm, (1+1) Evolutionary Algorithm, and Alternating Variable Method, on industrial OCL constraints from our previous work. Results show that AVM on average achieved a 95% of success rate and outperformed the rest of the algorithms in finding all the boundary values of constraints in fewer generations.
KW - Boundary Value Analysis
KW - Object Constraint Language
KW - Search-based testing
KW - Test data
KW - UML
UR - https://www.scopus.com/pages/publications/85008252467
U2 - 10.1109/CEC.2016.7743819
DO - 10.1109/CEC.2016.7743819
M3 - 会议稿件
AN - SCOPUS:85008252467
T3 - 2016 IEEE Congress on Evolutionary Computation, CEC 2016
SP - 379
EP - 386
BT - 2016 IEEE Congress on Evolutionary Computation, CEC 2016
PB - Institute of Electrical and Electronics Engineers Inc.
T2 - 2016 IEEE Congress on Evolutionary Computation, CEC 2016 - Part of 2016 IEEE World Congress on Computational Intelligence, WCCI 2016
Y2 - 24 July 2016 through 29 July 2016
ER -