Abstract
This paper deals with a new technique for validating object-oriented software at design phase of project development. There are several modeling diagrams used at design phase of Software Development Life Cycle. But in this paper, we focus on UML Activity Diagram. In our work, first we construct the UML activity diagram for the given system using ArgoUML. Then, the XML (“EXtensible Markup Language”) code is generated for the constructed activity diagram. Next, this XML code is translated to XSD (“XML Schema Definition”) code. This XSD code is given as input to JAXB (“Java Architecture for XML Binding”), which generates the Java template. Then, this Java template is instrumented to a complete Java program with minimal manual effort. Next, we carryout concolic testing of this Java code using jCUTE. This tool generates test cases by taking the Java program as input. Then, the obtained test suite and generated Java source code are inputed into our in-house developed tool named COPECA (COverage PErcentage CAlculator) to calculate MC/DC (Modified Condition/Decision Coverage) score. We have achieved 56.31% MC/DC on doing experiment with fourteen activity diagrams, which is a fair (moderate) achievement compared to the existing work.
Similar content being viewed by others
Notes
“ArgoUML” https://argouml.en.softonic.com/.
“JAXB Tutorials” https://www.javatpoint.com/jaxb-tutorial.
“RANDOOP” https://www.randoop.github.io/randoop/.
See footnote 3.
See footnote 1.
See footnote 2.
See footnote 3.
References
Awedikian Z, Ayari K, Antoniol G (2009) Mc/dc automatic test input data generation. In: Proceedings of the 11th annual conference on genetic and evolutionary computation. ACM, pp 1657–1664
Bhuiyan M, Islam MZ, Koliadis G, Krishna A, Chose A (2008) Supporting uml activity diagrams using organizational models. In: Challenges in information technology management. World Scientific, pp 182–188
Chen M, Qiu X, Li X (2006) Automatic test case generation for UML activity diagrams. In: Proceedings of the 2006 international workshop on automation of software test. ACM, pp 2–8
Chilenski JJ, Miller SP (1994) Applicability of modified condition decision coverage to software testing. Softw Eng J 9:193–200
Clark T, Muller P-A (2012) Exploiting model driven technology: a tale of two startups. Softw Syst Model 11(4):481–493
Das A, Mall R (2013) Automatic generation of MC/DC test data. Int J Softw Eng 2(1):1–8
Godboley S, Dutta A, Das A, Mohapatra DP (2016) Measuring MC/DC at design phase using UML sequence diagram and concolic testing. In: India conference (INDICON). IEEE Annual Conference, pp 1–6
Godboley S, Dutta A, Mohapatra DP (2016b) Java-HCT: An approach to increase MC/DC using hybrid concolic testing for Java programs. In: 2016 federated conference on computer science and information systems (FedCSIS). IEEE, pp 1709–1713
Godboley S, Panda S, Dutta A, Mohapatra DP (2017) An automated analysis of the branch coverage and energy consumption using concolic testing. Arab J Sci Eng 42(2):619–637
Godboley S, Dutta A, Mohapatra DP, Mall R (2016) J3 model: a novel framework for improved modified condition/decision coverage analysis. Int J Appl Inf Syst (IJAIS) 50:1–17
Godboley S, Dutta A, Mohapatra DP, Mall R (2018) Scaling modified condition/decision coverage using distributed concolic testing for Java programs. Comput Standards Interfaces 59:61–86
Godboley S, Dutta A, Mohapatra DP, Mall R (2018) Scaling modified condition/decision coverage using distributed concolic testing for Java programs. Comput Standards Interfaces 59:61–86
Hayhurst, Kelly J, Veerhusen, Dan S, Chilenski, John J, Rierson, Leanna K (2001) A practical tutorial on modified condition/decision coverage. ACM Digital Library, NASA Langley Technical report server, pp 1–85
Javed AZ, Strooper PA, Watson GN (2007) Automated generation of test cases using model-driven architecture. In: Proceedings of the second international workshop on automation of software test. IEEE Computer Society, pp 3–3
Swain Sk, Mohapatra DP (2010) Test case generation from behavioral uml models. Int J Comput Appl 6(8):5–11
Khan ME, Khan F (2012) A comparative study of white box, black box and grey box testing techniques. Int J Adv Comput Sci Appl 3(6):12–15
Krishna A, Gregoriades A (2011) Extending UML with non-functional requirements modelling. Springer, New York
Mall R (2009) Fundamental of software engineering. PHI Learning Private Limited, New Delhi
Mani P, Prasanna M (2017) Test case generation for embedded system software using UML interaction diagram. J Eng Sci Technol 12(4):860–874
Naik K, Tripathy P (2008) Software testing and quality assurance: theory and practice, 1st edn. Wiley Online Library, University of Waterloo, Waterloo, Canada
Nayak A, Samanta D (2010) Automatic test data synthesis using UML sequence diagrams. J Object Technol 9(2):75–104
Panthi V, Mohapatra DP (2014) Generating prioritized test sequences using firefly optimization technique. Computat Intell Data Min 2:627–635
Panthi V, Mohapatra DP (2018) Generation and prioritization of test scenarios for object-oriented software using UML state machines. J Appl Res Technol 16:466–483
Parada AG, Siegert E, De Brisolara LB (2011) Generating Java code from UML class and sequence diagrams. In: 2011 Brazilian symposium on computing system engineering. IEEE, pp 99–101
Pretschner A (2003) Compositional generation of MC/DC integration test suites. Electron Notes Theor Comput Sci 82(6):1–10
Rayadurgam S, Heimdahl MPE (2003) Generating MC/DC adequate test sequences through model checking. SEW 3:91–96
Rhmann W, Zaidi T, Saxena V (2015) Use of genetic approach for test case prioritization from UML activity diagram. Int J Comput Appl 115(4):8–12
Sarma M, Mall R (2007) Automatic test case generation from UML models, pp 196–201
Sawprakhon P, Limpiyakorn Y (2014) Sequence diagram generation with model transformation technology. Proc Int MultiConf Eng Comput Sci 1:20–30
Sen K, Agha G (2006a) Cute and jCUTE: Concolic unit testing and explicit path model-checking tools. In: International conference on computer aided verification. Springer, pp 419–423
Sen K, Agha G (2006b) A race-detection and flipping algorithm for automated testing of multi-threaded programs. In: Haifa verification conference, volume 4383 of Lecture Notes in Computer Science, pp 166–182
Sen K, Marinov D, Agha G (2005) Cute: a Concolic unit testing engine for C. ACM SIGSOFT Soft Eng Notes 30:263–272
Shameem M, Chandra B, Kumar C, Khan AA (2018) Understanding the relationships between requirements uncertainty and nature of conflicts: a study of software development team effectiveness. Arab J Sci Eng 43(12):8223–8238
Stephan W, Sokenou D (2008) Automatic test case generation from UML models and ocl expressions. In: Software engineering (workshops). Citeseer, pp 423–426
Swain SK, Mohapatra DP, Mall R (2010) Test case generation based on use case and sequence diagram. Int J Softw Eng 3(2):21–52
Vadakkumcheril T, Mythily M, Valarmathi M (2013) A simple implementation of uml sequence diagram to Java code generation through XMI representation. Int J Emerg Technol Adv Eng 2(12):4–8
Vilkomir Sergiy A, Bowen Jonathan P (2006) From MC/DC to RC/DC: formalization and analysis of control-flow testing criteria. Form Aspects Comput 18(1):42–62
Yu Tak Y, Lau Fai M (2006) A comparison of MC/DC, MUMCUT and several other coverage criteria for logical decisions. J Syst Softw 79:577–590
Author information
Authors and Affiliations
Corresponding author
Additional information
Publisher's Note
Springer Nature remains neutral with regard to jurisdictional claims in published maps and institutional affiliations.
Rights and permissions
About this article
Cite this article
Barisal, S.K., Behera, S.S., Godboley, S. et al. Validating object-oriented software at design phase by achieving MC/DC. Int J Syst Assur Eng Manag 10, 811–823 (2019). https://doi.org/10.1007/s13198-019-00815-8
Received:
Revised:
Published:
Issue Date:
DOI: https://doi.org/10.1007/s13198-019-00815-8