Automatic JUnit Generation and Quality Assessment using Concolic and Mutation Testing
Avadhani Bindu1, Saumya Ranjan Giri2, P. Venkateswara Rao3
1Avadhani Bindu, Department of Computer Science and Engineering, VNR Vignana Jyothi Institute of Engineering and Technology, Hyderabad, India.
2Saumya Ranjan Giri, Robert Bosch Engineering and Business Solutions Pvt. Ltd., Bengaluru, India.
3P. Venkateswara Rao, Department of Computer Science and Engineering, VNR Vignana Jyothi Institute of Engineering and Technology, Hyderabad, India.
Manuscript received on 11 August 2019 | Revised Manuscript received on 18 August 2019 | Manuscript published on 30 August 2019 | PP: 2843-2851 | Volume-8 Issue-10, August 2019 | Retrieval Number: J96020881019/2019©BEIESP | DOI: 10.35940/ijitee.J9602.0881019
Open Access | Ethics and Policies | Cite | Mendeley | Indexing and Abstracting
© The Authors. Blue Eyes Intelligence Engineering and Sciences Publication (BEIESP). This is an open access article under the CC-BY-NC-ND license (http://creativecommons.org/licenses/by-nc-nd/4.0/)
Abstract: The necessity of Unit Testing cannot be denied in catching bugs at the lowest level of software development with low cost of fixing bugs. It is difficult and costly to detect a bug at a later stage of development in a large module of software. Since there are many individual units (functions) in a software program, manual unit testing needs a lot of effort and time. A huge amount of time and human effort can be saved if unit testing is automated. There are 3 basic needs of unit testing i.e. identifying the inputs to a function, detecting runtime errors and detecting logical errors. Concolic Testing is used to identify the inputs to function and detecting the runtime errors. Mutation Testing is used to detect the logical errors. The identified inputs to a function are called as Test Cases. Mutation testing can verify the test cases to see if there is a need of having more test cases for a function. Our software uses both Concolic and Mutation testing and can automate the unit testing process of Java code to a great extent. The output of the work is JUnit where user can make his own assertions for every auto-generated test cases.
Keywords: Unit Testing, JUnit, Concolic Testing, Mutation Testing, Java Path Finder and PIT.
Scope of the Article: Software and System Testing Methods