Test Case Prioritization Using Clustering Approach for Object Oriented Software

Test Case Prioritization Using Clustering Approach for Object Oriented Software

Dharmveer Kumar Yadav (Birla Institute of Technology, Mesra Ranchi, India) and Sandip Kumar Dutta (Birla Institute of Technology, Mesra Ranchi, India)
Copyright: © 2019 |Pages: 18
DOI: 10.4018/IJISMD.2019070106
OnDemand PDF Download:
No Current Special Offers


In the software maintenance activity, regression testing is performed for validing modified source code. Regression testing ensures that the modified code would not affect the earlier tested program. Due to a constraint of resources and time, regression testing is a time-consuming process and it is a very expensive activity. During the regression testing, a set of the test case and the existing test cases are reused. To minimize the cost of regression testing, the researchers proposed a test case prioritization based on clustering techniques. In recent years, research on regression testing has made significant progress for object-oriented software. The empirical results show the importance of K-mean clustering algorithm used to achieve an effective result. They found from experimental results that their proposed approach achieves the highest faults detected value than others.
Article Preview

1. Introduction

Software engineering is the systematic and disciplined method for the development all as maintenance activity of software. It is an organized method for the analysis of requirement, designing, coding, testing, and maintenance steps for the life cycle of software (Laplante, 2007). The basic actions involved in software development are an analysis of requirement, design steps, coding steps, testing steps and maintenance phase (Pressman, 2017; Ralph, 2016). Nowadays due to change in the requirement of user increases the complexity of software, to maintain such complex software increasing the cost and effort. After making requirement changes, regression testing will be performed to make promise validity of changed software, also ensure that modified code doesn’t affect other functions of the program. Hence, regression testing is an essential function in the software maintenance phase. The objective of software testing is to execute a test case with the intention to find errors. Software testing consists of the validation and verification process. In the life cycle of software development, testing is one of the important phases. Testing takes nearly half of software development cost. So tester cannot do exhaustive testing under project deadline because tester needs lots of time and effort. Thus, to limit the process of testing, the tester should know which test cases are more important to find error quickly. However, if we would like to determine an error in the program, then test cases are selected which finds errors early. Thus testing should demonstrate that errors are present in the program. Testing finds error, defects, and improves software quality. Software need to modified due to various reasons like add new functionality if the user wants to change his requirements, change in technology technologies, to correct faults, etc. After modification, it is required to ensure that the modified code doesn’t affect the functionality of the software. Maintenance has an important role in the life cycle of software. One approach is known as a selective retest approach. Software maintenance activity involves the modifications of the software after change the user requirement and after delivery of software. According to IEEE Standard, software maintenance has been defined as after delivery of software to correct faults identified in software, to improve software performance module or adapt to a new environment (Pressman, 2017). According to researchers (Mahali & Mohapatra 2018) defines software maintenance when any software undergoes change to the code for improvement. It is not possible to develop any software which does not go under modification. Whenever the code is changed, testing validates these modifications. This process of validation is called regression testing. Regression testing considered to be expensive activities involved during the maintenance phase. Regression test validates changed software code and does not introduce unexpected errors in modified parts of the code. Regression testing retest previously tested code after modification to ensure that unaffected software functionality still works correctly. Regression testing is an important activity in the testing process and determines the effectiveness of a software project. Test case prioritization techniques enhance the quality and timely delivery of software projects by improving regression-testing activities. Test case prioritization reduces the testing effort by reordering of test cases so that high priority tests are performed early than those with lower priority. Thus prioritization approach increases the fault detection capability on the regression testing. In clustering based prioritization approach cluster is formed in which test case of similar property and common features are grouped into clusters. Suppose some of the test cases are grouped in one cluster in which test case has the same capability of discovering the faults in software. If the tester is instructed to run all the test case in the allotted time then at that time few of test case from the cluster can be executed to achieve nearly similar results. Similarly, similar coverage information of test cases can be within a cluster. Clustering of test case prioritization is of two types. Intra- cluster and inter cluster prioritization technique. Intra-cluster method prioritize test cases within each cluster, the benefit of this technique is that the highest priority test case selected from the cluster. In Inter cluster-based method all the test cases are prioritized.

Complete Article List

Search this Journal:
Open Access Articles: Forthcoming
Volume 13: 4 Issues (2022): Forthcoming, Available for Pre-Order
Volume 12: 4 Issues (2021): 2 Released, 2 Forthcoming
Volume 11: 4 Issues (2020)
Volume 10: 4 Issues (2019)
Volume 9: 4 Issues (2018)
Volume 8: 4 Issues (2017)
Volume 7: 4 Issues (2016)
Volume 6: 4 Issues (2015)
Volume 5: 4 Issues (2014)
Volume 4: 4 Issues (2013)
Volume 3: 4 Issues (2012)
Volume 2: 4 Issues (2011)
Volume 1: 4 Issues (2010)
View Complete Journal Contents Listing