Abstract

Modified Condition / Decision Coverage (MC/DC) is the second strongest coverage criterion in white-box testing. According to DO178C/RTCA criterion it is mandatory to achieve Level A certification for MC/DC. Concolic testing is the combination of Concrete and Symbolic execution. It is a systematic technique that performs symbolic execution but uses randomly-generated test inputs to initialize the search and to allow the tool to execute programs when symbolic execution fails. In this paper, we extend concolic testing by computing MC/DC using the automatically generated test cases. On the other hand Feedback-Directed Random Test Generation builds inputs incrementally by randomly selecting a method call to apply and find arguments from among previously-constructed inputs. As soon as the input is built, it is executed and checked against a set of contracts and filters. In our proposed work, we combine feedback-directed test cases generation with concolic testing to form Java-Hybrid Concolic Testing (Java-HCT). Java-HCT generates more number of test cases since it combines the features of both Feedback- Directed Random Test and Concolic Testing. Hence, through Java-HCT, we achieve high MC/DC. Combinations of approaches represent different tradeoffs of completeness and scalability. We develop Java-HCT using RANDOOP, jCUTE, and COPECA. Combination of RANDOOP and jCUTE creates more test cases. COPECA is used to measure MC/DC% using the generated test cases. Experimental study shows that Java-HCT produces better MC/DC% than individual testing techniques(feedback-directed random testing and concolic testing). We have improved MC/DC by ×1.62 and by ×1.26 for feedback-directed random testing and concolic testing respectively.

Highlights

  • C ONCEPTS we discuss some important background concepts, which are required to understand our work.Definition 1: Feedback-Directed Random Testing: “It is a combination of random and systematic approach that results a test suite consisting of unit tests for the classes under test

  • We develop Java-HCT using Random tester for ObjectOriented Programs (RANDOOP), Java Concolic Unit Testing Engine (jCUTE), and COverage PErcenatge CAlculator (COPECA)

  • JCUTE2 is a Java concolic unit test engine based on concolic testing to execute Java programs

Read more

Summary

I NTRODUCTION

OFTWARE Testing is the technique to detect bugs in software. Manual software testing accounts for 50-80% of the cost of software development. Existing work [7] found that random test case generation achieves less code coverage than systematic generation techniques. These systematic generation techniques include chaining, exhaustive generation, model checking, and symbolic execution. Pacheco et al [8] proposed Feedback-Directed Random testing They have addressed random generation of unit tests for object-oriented programs. We have implemented Java-Hybrid Concolic Testing using RANDOOP, jCUTE, and COPECA, and applied it to achieve high Modified Condition/Decision Coverage for Java programs.

C ONCEPTS
Overview
Detailed Description
Algorithmic Description
Result Analysis
WITH RELATED WORK
Findings
F UTURE W ORK
Full Text
Published version (Free)

Talk to us

Join us for a 30 min session where you can share your feedback and ask us any queries you have

Schedule a call