Efficient Test Data Generation for MC/DC with OCL and Search (2401.03469v3)
Abstract: System-level testing of avionics software systems requires compliance with different international safety standards such as DO-178C. An important consideration of the avionics industry is automated test data generation according to the criteria suggested by safety standards. One of the recommended criteria by DO-178C is the modified condition/decision coverage (MC/DC) criterion. The current model-based test data generation approaches use constraints written in Object Constraint Language (OCL), and apply search techniques to generate test data. These approaches either do not support MC/DC criterion or suffer from performance issues while generating test data for large-scale avionics systems. In this paper, we propose an effective way to automate MC/DC test data generation during model-based testing. We develop a strategy that utilizes case-based reasoning (CBR) and range reduction heuristics designed to solve MC/DC-tailored OCL constraints. We performed an empirical study to compare our proposed strategy for MC/DC test data generation using CBR, range reduction, both CBR and range reduction, with an original search algorithm, and random search. We also empirically compared our strategy with existing constraint-solving approaches. The results show that both CBR and range reduction for MC/DC test data generation outperform the baseline approach. Moreover, the combination of both CBR and range reduction for MC/DC test data generation is an effective approach compared to existing constraint solvers.
- DO-178C/ED-12C - Software Considerations in Airborne Systems and Equipment Certification. RTCA, Inc., 2017. RTCA DO-178C/EUROCAE ED-12C.
- Mc/dc test cases generation based on bdds. International Symposium on Dependable Software Engineering: Theories, Tools, and Applications, pages 178–197. Springer, 2021. doi: 10.1007/978-3-030-91265-9_10.
- Bernhard K Aichernig and Percy Antonio Pari Salas. Test case generation by ocl mutation and constraint solving. Quality Software, 2005.(QSIC 2005). Fifth International Conference on, pages 64–71. IEEE, 2005. doi: 10.1109/QSIC.2005.63.
- Generating test data from ocl constraints with search techniques. IEEE Transactions on Software Engineering, 39(10):1376–1402, 2013. doi: 10.1109/TSE.2013.17.
- Insights on the use of ocl in diverse industrial applications. International Conference on System Analysis and Modeling, pages 223–238. Springer, 2014.
- Improving the performance of ocl constraint solving with novel heuristics for logical operations: a search-based approach. Empirical Software Engineering, 21(6):2459–2502, 2016a. doi: 10.1007/s10664-015-9392-6.
- Generating boundary values from ocl constraints using constraints rewriting and search algorithms. Evolutionary Computation (CEC), 2016 IEEE Congress on, pages 379–386. IEEE, 2016b. doi: 10.1109/CEC.2016.7743819.
- Andrea Arcuri. Full theoretical runtime analysis of alternating variable method on the triangle classification problem. 2009 1st International Symposium on Search Based Software Engineering, pages 113–121. IEEE, 2009.
- A practical guide for using statistical tests to assess randomized algorithms in software engineering. Software Engineering (ICSE), 2011 33rd International Conference on, pages 1–10. IEEE, 2011. doi: 10.1145/1985793.1985795.
- Search based software testing of object-oriented containers. Information Sciences, 178(15):3075–3095, 2008. doi: 10.1016/j.ins.2007.11.024.
- Mc/dc automatic test input data generation. Proceedings of the 11th Annual conference on Genetic and evolutionary computation, pages 1657–1664. ACM, 2009. doi: 10.1145/1569901.1570123.
- Automated generation of consistent graph models with first-order logic theorem provers. FASE, pages 441–461. Springer, 2020.
- Generating test data from ocl specification. Proc. ECOOP Workshop Integration and Transformation of UML Models. Citeseer, 2002.
- A new approach for search space reduction and seeding by analysis of the clauses. International Symposium on Search Based Software Engineering, pages 343–348. Springer, 2018.
- Uml2alloy: A tool for lightweight modelling of discrete event systems. IADIS AC, pages 209–216. Citeseer, 2005.
- A specification-based test case generation method for uml/ocl. Models in Software Engineering: Workshops and Symposia at MODELS 2010, Oslo, Norway, October 2-8, 2010, Reports and Revised Selected Papers 13, pages 334–348. Springer, 2011.
- Jordi Cabot. Ocl repository. https://github.com/jcabot/ocl-repository, 2014. URL https://github.com/jcabot/ocl-repository.
- Verification of uml/ocl class diagrams using constraint programming. 2008 IEEE International Conference on Software Testing Verification and Validation Workshop, pages 73–80. IEEE, 2008.
- On the verification of uml/ocl class diagrams using constraint programming. Journal of Systems and Software, 93:1–23, 2014. doi: 10.1016/j.jss.2014.03.023.
- Strategies comparison of test generation from uml using smt solver. 2013 IEEE Sixth International Conference on Software Testing, Verification and Validation Workshops, pages 224–229. IEEE, 2013.
- Test generation with satisfiability modulo theories solvers in model-based testing. Software Testing, Verification and Reliability, 24(7):499–531, 2014. doi: 10.1002/stvr.1537.
- Test data generation for mc/dc criterion using reinforcement learning. 2020 IEEE International Conference on Software Testing, Verification and Validation Workshops (ICSTW), pages 354–357. IEEE, 2020. doi: 10.1109/ICSTW50294.2020.00063.
- Automatic generation of implied constraints. 17th European Conference on Artificial Intelligence, pages 73–77. ECAI, 2006.
- Code generation from uml models with semantic variation points. International Conference on Model Driven Engineering Languages and Systems, pages 54–68. Springer, 2005.
- Applicability of modified condition/decision coverage to software testing. Software Engineering Journal, 9(5):193–200, 1994. doi: 10.1049/sej.1994.0025.
- Smart bound selection for the verification of uml/ocl class diagrams. IEEE Transactions on Software Engineering, 45(4):412–426, 2017. doi: 10.1109/TSE.2017.2777830.
- Managing design-time uncertainty in ocl expressions. Journal of Object Technology, 21(4), 2022. doi: 10.5381/jot.2022.21.4.a8.
- Checking unsatisfiability for ocl constraints. Electronic Communications of the EASST, 24, 2010.
- Temporal property patterns for model-based testing from uml/ocl. Software & Systems Modeling, 18:865–888, 2019. doi: 10.1007/s10270-017-0635-4.
- A new search space reduction technique for genetic algorithms. Contemporary Advances in Innovative and Applicable Information Technology, pages 111–119. Springer, 2019.
- Automatic generation of mc/dc test data. International Journal of Software Engineering, 2(1), 2013.
- RA DeMilli and A. Jefferson Offutt. Constraint-based automatic test data generation. IEEE Transactions on Software Engineering, 17(9):900–910, 1991. doi: 10.1109/32.92910.
- Alloyinecore: embedding of first-order relational logic into meta-object facility for automated model reasoning. Proceedings of the 2018 26th ACM Joint Meeting on European Software Engineering Conference and Symposium on the Foundations of Software Engineering, pages 920–923. ACM, 2018.
- Instantiation of meta-models constrained with ocl: a csp approach. 2015 3rd International Conference on Model-Driven Engineering and Software Development (MODELSWARD), pages 213–222. IEEE, 2015.
- Eu-rent car rentals specification. 2003. URL http://hdl.handle.net/2117/97816.
- Model-based testing in practice: An experience report from the web applications domain. Journal of Systems and Software, 180:111032, 2021. doi: 10.1016/j.jss.2021.111032.
- The effect of program and model structure on the effectiveness of mc/dc test adequacy coverage. ACM Transactions on Software Engineering and Methodology (TOSEM), 25(3):1–34, 2016. doi: 10.1145/2934672.
- Minion: A fast scalable constraint solver. ECAI 2006, 17th European Conference on Artificial Intelligence. IOS Press, 2006.
- Automatic test data generation for multiple condition and mcdc coverage. Software Engineering Advances, 2009. ICSEA’09. Fourth International Conference on, pages 152–157. IEEE, 2009. doi: 10.1109/ICSEA.2009.31.
- Increase in modified condition/decision coverage using program code transformer. Advance Computing Conference (IACC), 2013 IEEE 3rd International, pages 1400–1407. IEEE, 2013. doi: 10.1109/IAdCC.2013.6514432.
- Toward optimal mc/dc test case generation. Proceedings of the 30th ACM SIGSOFT International Symposium on Software Testing and Analysis, pages 505–516. ACM, 2021.
- Metrics for ocl expressions: development, realization, and applications for validation. Proceedings of the 23rd ACM/IEEE International Conference on Model Driven Engineering Languages and Systems: Companion Proceedings, pages 1–10. ACM, 2020.
- Validating uml and ocl models in use by automatic snapshot generation. Software & Systems Modeling, 4(4):386–398, 2005. doi: 10.1007/s10270-005-0089-y.
- Achieving model quality through model validation, verification and exploration. Computer Languages, Systems & Structures, 54:474–511, 2018. doi: 10.1016/j.cl.2017.10.001.
- Emftocsp: A tool for the lightweight verification of emf models. 2012 First International Workshop on Formal Methods in Software Engineering: Rigorous and Agile Approaches (FormSERA), pages 44–50. IEEE, 2012.
- Filtering, decomposition and search space reduction for optimal sequential planning. AAAI, pages 993–998. Association for the Advancement of Artificial Intelligence, 2007.
- Automated test data generation using an iterative relaxation method. ACM SIGSOFT Software Engineering Notes, 23(6):231–244, 1998. doi: 10.1145/288195.288321.
- Generating test data for branch coverage. Automated Software Engineering, 2000. Proceedings ASE 2000. The Fifteenth IEEE International Conference on, pages 219–227. IEEE, 2000. doi: 10.1109/ASE.2000.873666.
- Search-based software engineering. Information and Software Technology, 43(14):833–839, 2001. doi: 10.1016/S0950-5849(01)00189-6.
- A theoretical and empirical study of search-based testing: Local, global, and hybrid search. IEEE Transactions on Software Engineering, 36(2):226–247, 2009.
- The impact of input domain reduction on search-based test data generation. Proceedings of the 6th joint meeting of the European software engineering conference and the ACM SIGSOFT symposium on The foundations of software engineering, pages 155–164. ACM, 2007.
- Search based software engineering: Techniques, taxonomy, tutorial. LASER Summer School on Software Engineering, pages 1–59. Springer, 2008. doi: 10.1007/978-3-642-25231-0_1.
- Automated test data generation for aspect-oriented programs. Proceedings of the 8th ACM international conference on Aspect-oriented software development, pages 185–196. ACM, 2009.
- Evaluating specification-level mc/dc criterion in model-based testing of safety critical systems. 2018 IEEE/ACM 40th International Conference on Software Engineering: Software Engineering in Practice Track (ICSE-SEIP), pages 256–265. IEEE, 2018. doi: 10.1145/3183519.3183551.
- From uml/ocl to base models: transformation concepts for generic validation and verification. Theory and Practice of Model Transformations: 8th International Conference, ICMT 2015, Held as Part of STAF 2015, L’Aquila, Italy, July 20-21, 2015. Proceedings 8, pages 149–165. Springer, 2015.
- Applying uml/marte on industrial projects: challenges, experiences, and guidelines. Software & Systems Modeling, 14(4):1367–1385, 2015. doi: 10.1007/s10270-014-0405-5.
- A model-based testing approach for cockpit display systems of avionics. 2019 ACM/IEEE 22nd International Conference on Model Driven Engineering Languages and Systems (MODELS), pages 67–77. IEEE, 2019. doi: 10.1109/MODELS.2019.00-14.
- Model-based automated testing of mobile applications: an industrial case study. 2021 IEEE International Conference on Software Testing, Verification and Validation Workshops (ICSTW), pages 130–137. IEEE, 2021.
- Aspectocl: using aspects to ease maintenance of evolving constraint specification. Empirical Software Engineering, 24(4):2674–2724, 2019. doi: 10.1007/s10664-019-09717-6.
- Bogdan Korel. Automated software test data generation. IEEE Transactions on Software Engineering, 16(8):870–879, 1990. doi: 10.1109/32.57624.
- Bogdan Korel. Dynamic method for software test data generation. Software Testing, Verification and Reliability, 2(4):203–213, 1992. doi: 10.1002/stvr.4370020405.
- Automatic and efficient simulation of operation contracts. ACM SIGPLAN Notices, 46(2):53–62, 2010. doi: 10.1145/1868294.1868303.
- A multi-objective approach to search-based test data generation. Proceedings of the 9th annual conference on Genetic and evolutionary computation, pages 1098–1105. ACM, 2007. doi: 10.1145/1276958.1277175.
- D.B. Leake. Case-Based Reasoning: Experiences, lessons and future directions. MIT press, 1996.
- Test case automate generation from uml sequence diagram and ocl expression. Computational Intelligence and Security, 2007 International Conference on, pages 1048–1052. IEEE, 2007.
- Improving mc/dc and fault detection strength using combinatorial testing. Software Quality, Reliability and Security Companion (QRS-C), 2017 IEEE International Conference on, pages 297–303. IEEE, 2017. doi: 10.1109/QRS-C.2017.131.
- Algorithms for computing minimal unsatisfiable subsets of constraints. Journal of Automated Reasoning, 40:1–33, 2008. doi: 10.1007/s10817-007-9084-z.
- Avmf: An open-source framework and implementation of the alternating variable method. International Symposium on Search Based Software Engineering, pages 259–266. Springer, 2016. doi: 10.1007/978-3-319-47106-8_21.
- Input domain reduction through irrelevant variable removal and its effect on local, global, and hybrid search-based structural test data generation. IEEE Transactions on Software Engineering, 38(2):453–477, 2012. doi: 10.1109/TSE.2011.18.
- Aspect-oriented model-driven code generation: A systematic mapping study. Information and Software Technology, 55(2):395–411, 2013. doi: 10.1016/j.infsof.2012.09.003.
- Rabah Mokhtari. Validation of uml class diagram and ocl pre-and post-conditions using ots/cafeobj proof scores. 2020 4th International Symposium on Informatics and its Applications (ISIA), pages 1–4. IEEE, 2020.
- The dynamic domain reduction procedure for test data generation. Software-Practice and Experience, 29(2):167–93, 1999. doi: 10.1002/(SICI)1097-024X(199902)29:2¡167::AID-SPE225¿3.0.CO;2-V.
- Generating test data from state-based specifications. Software testing, verification and reliability, 13(1):25–53, 2003. doi: 10.1002/stvr.264.
- OMG. Object constraint language specification v2.4. Object Management Group Inc., 2014. URL http://www.omg.org/spec/OCL/2.4/.
- OMG. Uml. unified modeling language specification, version 2.5.1. Object Management Group Inc., 2017. URL http://www.omg.org/spec/UML/2.5.1/.
- Test data generation for complex data types using imprecise model constraints and constraint solving techniques. Information Technology And Control, 42(2):131–149, 2013. doi: 10.5755/j01.itc.42.2.1855.
- Automated test case generation as a many-objective optimisation problem with dynamic selection of the targets. IEEE Transactions on Software Engineering, 44(2):122–158, 2018. doi: 10.1109/TSE.2017.2663435.
- Clone: Solving weighted max-sat in a reduced search space. Australasian Joint Conference on Artificial Intelligence, pages 223–233. Springer, 2007.
- Verifying the structure and behavior in uml/ocl models using satisfiability solvers. IET Cyber-Physical Systems: Theory & Applications, 1(1):49–59, 2016. doi: 10.1049/iet-cps.2016.0022.
- Automated Validation & Verification of UML/OCL Models Using Satisfiability Solvers. Springer, 2018.
- Four-valued logic in uml/ocl models: A “playground” for the mvl community. 2019 IEEE 49th International Symposium on Multiple-Valued Logic (ISMVL), pages 61–66. IEEE, 2019.
- The effect of program and model structure on mc/dc test adequacy coverage. Proceedings of the 30th international conference on Software engineering, pages 161–170. ACM, 2008. doi: 10.1145/1368088.1368111.
- Test case evaluation and input domain reduction strategies for the evolutionary testing of object-oriented software. Information and Software Technology, 51(11):1534–1548, 2009. doi: 10.1016/j.infsof.2009.06.009.
- Seeding strategies in search-based unit test generation. Software Testing, Verification and Reliability, 26(5):366–401, 2016. doi: 10.1002/stvr.1601.
- A detailed investigation of the effectiveness of whole test suite generation. Empirical Software Engineering, 22(2):852–893, 2017. doi: 10.1007/s10664-015-9424-2.
- Hassan Sartaj. Automated approach for system-level testing of unmanned aerial systems. 2021 36th IEEE/ACM International Conference on Automated Software Engineering (ASE), pages 1069–1073. IEEE, 2021. doi: 10.1109/ASE51524.2021.9678902.
- A search-based approach to generate mc/dc test data for ocl constraints. Search-Based Software Engineering: 11th International Symposium, SSBSE 2019, Tallinn, Estonia, August 31–September 1, 2019, Proceedings 11, pages 105–120. Springer, 2019. doi: 10.1007/978-3-030-27455-9_8.
- Cdst: A toolkit for testing cockpit display systems. 2020 IEEE 13th International Conference on Software Testing, Validation and Verification (ICST), pages 436–441. IEEE, 2020. doi: 10.1109/ICST46399.2020.00058.
- Testing cockpit display systems of aircraft using a model-based approach. Software and Systems Modeling, pages 1–26, 2021. doi: 10.1007/s10270-020-00844-z.
- Model-based digital twins of medicine dispensers for healthcare iot applications. 2023. doi: https://doi.org/10.48550/arXiv.2312.04662.
- Validation of derived features and well-formedness constraints in dsls: By mapping graph queries to an smt-solver. Model-Driven Engineering Languages and Systems: 16th International Conference, MODELS 2013, Miami, FL, USA, September 29–October 4, 2013. Proceedings 16, pages 538–554. Springer, 2013.
- Formal validation of domain-specific languages with derived features and well-formedness constraints. Software & Systems Modeling, 16:357–392, 2017. doi: 10.1007/s10270-015-0485-x.
- Automated generation of consistent models with structural and attribute constraints. Proceedings of the 23rd ACM/IEEE International conference on model driven engineering languages and systems, pages 187–199. ACM, 2020.
- Encoding ocl data types for sat-based verification of uml/ocl models. International Conference on Tests and Proofs, pages 152–170. Springer, 2011.
- Practical constraint solving for generating system test data. ACM Transactions on Software Engineering and Methodology (TOSEM), 29(2):1–48, 2020. doi: 10.1145/3381032.
- Partial evaluation of ocl expressions. 2017 ACM/IEEE 20th International Conference on Model Driven Engineering Languages and Systems (MODELS), pages 63–73. IEEE, 2017.
- Practical model-based testing: a tools approach. Elsevier, 2010.
- Uml-casting: Test synthesis from uml models using constraint resolution. Proc. AFADL’2003 (Approches Formelles dans l’Assistance au Dévelopment de Logiciel). Springer, 2003.
- A critique and improvement of the cl common language effect size statistics of mcgraw and wong. Journal of Educational and Behavioral Statistics, 25(2):101–132, 2000. doi: 10.3102/10769986025002101.
- The object constraint language: getting your models ready for MDA. Addison-Wesley Professional, 2003.
- Deriving input partitions from uml models for automatic test generation. International Conference on Model Driven Engineering Languages and Systems, pages 151–163. Springer, 2007.
- Automatically generating test data from a boolean specification. IEEE Transactions on Software Engineering, 20(5):353–363, 1994. doi: 10.1109/32.286420.
- Backdoors to typical case complexity. IJCAI, pages 1173–1178. Citeseer, 2003.
- On the relationship between two control-flow coverage criteria: all jj-paths and mcdc. Information and Software Technology, 48(7):433–440, 2006. doi: 10.1016/j.infsof.2005.05.003.
- Generating distinguishing tests using the minion constraint solver. 2010 Third International Conference on Software Testing, Verification, and Validation Workshops, pages 325–330. IEEE, 2010.
- Hao Wu. Generating metamodel instances satisfying coverage criteria via smt solving. 2016 4th International Conference on Model-Driven Engineering and Software Development (MODELSWARD), pages 40–51. IEEE, 2016.
- Hao Wu. A query-based approach for verifying uml class diagrams with ocl invariants. 18th European Conference on Modelling Foundations and Applications. Springer, 2022.
- Hao Wu. Qmaxuse: A new tool for verifying uml class diagrams and ocl invariants. Science of Computer Programming, 228:102955, 2023. doi: 10.1016/j.scico.2023.102955.
- Verifying ocl operational contracts via smt-based synthesising. MODELSWARD, pages 249–259. Springer, 2020.
- A comparison of mc/dc, mumcut and several other coverage criteria for logical decisions. Journal of Systems and Software, 79(5):577–590, 2006. doi: 10.1016/j.jss.2005.05.030.
- Model-based testing in practice: An industrial case study using graphwalker. 14th Innovations in Software Engineering Conference (formerly known as India Software Engineering Conference), pages 1–11. ACM, 2021.
- Hassan Sartaj (17 papers)
- Muhammad Zohaib Iqbal (7 papers)
- Atif Aftab Ahmed Jilani (1 paper)
- Muhammad Uzair Khan (7 papers)