Available at http://www.ijcsonline.com/
Regression Testing through Prioritization Technique on the Basis of Various
Dependency Approaches
Diviaka Abbi
Department of CSE,
Lovely Professional University, Punjab, India
Abstract
Software testing is the technique which is used to detect errors, bugs in the system software. The various types of testing are used to accomplish the required task. These testing techniques are white box, black box, automation, model based and regression testing are much popular. On the developed software, various improvement has been done time to time to improve its efficiency. To test the various changes in software, regression testing has been applied on system software. The test case prioritization is the technique which prioritize the test cases according to the changes which are made in software. In the previous research paper, genetic algorithm was being proposed to prioritize the test cases. To prioritize the test cases, mutation values were selected randomly and functional dependency was calculated on the basis of dependency test cases were prioritized. In this work , improvement will be proposed in genetic algorithm to calculate functional dependency more accurately. This will lead to improvement in the fault detection rate in the regression testing.
Keywords: Software engineering, model based testing, test case, test case prioritization, functional dependency.
I. INTRODUCTION A. Software Testing
Software testing is the process of accepting and verifying the program or application ,which checks the proper functionality i.e. usefulness of the system and confirms that the project meets the technical and business requirements as expected and can be implemented with the same qualities. Testing procedure creates comparison of the expected outcome with the actual outcome which helps in detecting the errors which may occur during the development of the project [1].
B. Two Terms which are Considered
Validation: software validation is the dynamic
procedure which access the softwareduring or towards the end of the development process to fulfill whether it satisfies specified requirements and ensures that we building or assembling the right product .
Verification: software verification is the static system
for evaluating software. Itdetermine whether the products of a provided development phase satisfy the conditions forced at the start of that phase
C. Models of software Testing
a) White box testing: white box testing model is that
sort of model which depends on analysis of the code and the internal logic of the software or product . It requires good programming skill and logic ability of programmer to test with this model.
b) Black box testing: In this type of model no internal
working of the system is needed to be known, also no programming abilities are required. Input is given to the system and output is solved that whether it is correct or incorrect. Only the external behavior is observed, without any knowledge or learning of internal functioning.
c) System testing: It is performed on a complete or full
framework system also the software is putunder different environments and situations. It can only be performed after the complete implementation of the system. Stress testing, performance testing and usability testing are performed on it in order to check the system: under stress (load), performance (speed and accuracy) and usability (user friendliness) respectively. The model used in this testing is “black box”.
d)Acceptance testing: In this type of testing customer
checks for output that whether the system is able to meet his necessary requirements. Also customer checks whether the purpose of the system is resolved or not. The model used in it is “black box”.
e) Regression (retest) testing: this type of testing is
performed in order to validate that whenever there is any modification or advancement are made in any part of code, function or component will not induce any defect in the functionality of the other parts of the software. [2] It is re execution of some of the subset of test cases that have already been conducted to ensure that changes have not propagated the side effects. This process is very tedious, time consuming and costly affair but it is very important for improving the quality of the software.
In order to increase the efficiency and reduce the cost three techniques are used in regression testing and those are test case minimization, test case selection and test case prioritization. The model used in it is “black box”. [3]
f)Model Based Testing
behavior of the system. Specific industry standard are there which represents an era of the model, which can be further enhanced by experience standard [4].
D. Test Case Prioritization.
Test case prioritization is one of the proficient techniques of regression testing which aims at scheduling the execution procedure of test cases in such a way that improves the efficiency of regression testing. Whenever there is any modification in the software the regression testing has to be done in order to validate the functionality of the software, which is a costly affair and requires a lot of money and time. In order to reduce the burden of regression testing prioritization of test cases is done. [6]
The process of Test case prioritization aims at providing higher priority to those test cases which are crucial for the system and would have taken long time to run as per the conventional testing process. As now a day most of the industries are working toward the agile development, it has become necessary to increase the efficiency of test case prioritization.
There are various approaches provided by various researchers such as test case prioritization based on history, customer requirement, code coverage etc. to prioritize the test case. However as the system is getting complex and advanced the number of component and the interaction between them is also increasing with greater rate. Therefore there is a great requirement of such technique which can handle such complex system and can provide an efficient testing technique which requires less cost, efficient utilization of resources, early detection of the fault, satisfies the entire functional requirement and provide greater reliability of the software.
E. Dependency Approach
A large software product is consisting of vast number of subsystem or segments which further contains programs to a specific task. In software engineering these subsystems or components are called as scenarios. This scenario depicts the behavior or sequence of action which is performed by system. These ordering of the scenario show the interaction among the scenario and the dependency between them. Action of the one scenario is dependent on the other and that cannot be executed before the completion of the action of the dependent scenario. [12]
(a) Prioritization Of The Test Cases Using Dependency:
Complexity of the large system is greater due to the large amount coupling and the interaction between the parts of the system. For the early detection of the fault it is prescribed to find out those parts of system which have higher interaction and connections. [14] Interaction among the system demonstrates the dependencies of the function in the system. Therefore prioritization of the test cases in the order of the weights of the dependencies will result into the early detection of the faults in the system. [15] In order to find the priority of the function dependencies a technique is used which is called dependency structure prioritization (DSP).
II. SURVEY OF RESEARCH
S Yoo and M Harman, “Regression Testing Minimisation Selection And Prioritisation: A Survey,":- Shin Yoo and Mark Harman, have studied and tested the papers which concentrate on test suite minimization, test case selection and test case prioritization. They suggested that the work on these three is firmly associated to each other. The function of test suite minimization is to check out for the test plans. Test suite minimization ensures the duplicity, by decreasing the size of test plans. This leads to the test suite minimization. With the reduction the test suites gets removed everlasting. Test case selection process selects the test cases from a typical set of test cases. The priorities to different test cases are provided by Test case prioritization technique. Then these test cases will be run in the order of their priority. Higher priority test case will run first and then the test case with lowest priority run next. Dependencies and prioritization of test cases, in coordination with those dependencies which are discovered have been the principle basis of this paper.
H Cichos ,and T.S. Heinze “Efficient Reduction of Model-Based Generated Test Suites Through Test Case Pair Prioritization” IEEE 2010 Workshop on Model-Driven Engineering, Verification, and Validation :- Harald Cichos and Thomas S. Heinze, recommended an methodology for systematically integrating the test cases rather than randomly making the pair and merging them aimlessly. The size of test suites can be decreased by this technique. In this technique resemblance among the test cases is identified and then based on those resemblances a pair of test cases is generated. After making the pair based on the resemblance, integration is performed with which the size will get diminished. A model checker has been used for scientifically creating the test cases.
X Han, H Zeng and H Gao “A Heuristic Model-Based Test Prioritization Method for Regression Testing” IEEE 2012 :-Xiaobo Han, Hongwei Zeng and Honghao Gao, based on heuristic models implemented a new strategy of prioritization. This technique acquires two types of information from the models. With the heuristic models the defects can be detected earlier. This earlier detection of defects serves by reducing the error rate and because of this the average percent of fault detection will increase. This technique has proven the better early rate of the detection of faults. This will lead to the quality product analysis.
X Lin “Regression Testing in Research And Practice” IEEE International Conference on. IEEE, 2006:- Xuan Lin inferred that Prioritization of test cases is the demonstration of providing the order in which test cases must be run. This result in the better utilization of the resources or assets and also the test cases which urgently needs to get executed. It takes the priority into account to run. Reduction of test suites is the process of eliminating the test cases from the test suite which are redundant. As they are not removed hence they will take more time to complete. Also they will take more resources in the comparison. Test complete tool provides an environment for automating the testing. This tool basically is made for the unit testing and functional testing but it also can be used for regression testing.
to provide more effective functionality, during the changes being made in the original test suites, there is a requirement of test suits to be managed. It can be done, by putting some new test cases in while some of the test cases are needed to get out of the suite. Both the in and out process require management. The process of using again the test cases which have been used earlier before the modifications were done is known as Test case reuse. The reuse of the test cases reduces the effort and money.
G Rothermel, R.H. Untch and M.J. Harrold “Prioritizing Test Cases For Regression Testing” IEEE 2001:- Gregg Rothermel, Roland H. Untch and Mary Jean Harrold, have proposed the technique for prioritizing the test cases with the help of execution information.
Firstly the test case prioritization is done on the analysis and basis of the code which is covered. Secondly, prioritization is done on the basis of the code coverage which has not been covered earlier. Thirdly, prioritization is done on the basis of the capability of discovering the defects and errors. These techniques are hypothetically implied on various test suites. More APFD has been found which reflects the efficiency of these techniques. The main drawbacks of these techniques are that they are very costly. Hence further research is going on to reduce the cost of factor also.
P Mahali and A.A. Acharya “Model Based Test Case Prioritization Using UML Activity Diagram And Evolutionary Algorithm” 2013:- Prateeva Mahali and Arup Abhinna Acharya, have studied and analysed the model based optimization and prioritization for the test suites in regression testing. Their methodology and research suggested that using the genetic algorithm, the optimization of test cases is first performed and then prioritization is performed. This can result in producing better results and the successful regression testing. The authors also found that there is reduction in the cost and time with these methods. Case study of a shopping mall was taken into account in order to provide results which are better in comparison. They presented the system under test by an activity diagram in UML 2.0.
Qurat-ul-ann Farooq ,M Zohaib Z. Iqbal Zafar I. Malik and M Riebisch “A Model-Based Regression Testing Approach for Evolving Software Systems with Flexible Tool Support” IEEE 2010:-
Quart-ul-an-farooq, Mohammad Zohaib Z. Iqbal, Zafar I Malik and Matthias Riebish [20], studied an methodology of state based regression testing. START, an eclipse based tool was used for this approach. Dependencies exists is various states gets treated by START. START makes it possible to take care of the dependencies during the modifications take place. UML 2.1 class diagrams and state machines are taken in account by START. The effectiveness of this technique was proved by a case study on the “student enrolment system”. This shows test suites reduction. START works fine even if we integrate it with other testing tools. Parser, Comparator and test suite analyzer are the main parts of START. XMI v2.1 format is used as an input in START.
Shifa-e-Zehra Haidry and T Miller, “Using Dependency Structures For Prioritization Of Functional Test Suites,” 2013:-
Mitrabinda Ray · Durga Prasad Mohapatra have explained the prioritization based testing approach to achieve high reliability with the available test sources. In first case test cases are prioritize according to their impact on the reliability of the system. A test case selection approaches to select a fixed number of test cases out of a pool of test cases. A new CDD scheme is used for slicing. The slices of CDD are extracted and used along the prioritize scenarios. The thoroughness with which a component is tested is proportional to its priority, in which the test case selection approach is a multi-objective optimization problem. To solve this problem genetic algorithm based scheme has been proposed. The experimental result shows the effectiveness of the approach as compared to the existing approach.
"Indumathi CP , Selvamani K" Test Cases Prioritization Using Open Dependenmcy Structure Algorithm ,ICCS 2015:-In this paper, the proposed work was done with the help of algorithm of six Program from the Siemen's test Suites which indicated that the proposed work provided a better solution. The majors of dependency Structure was being taken. In this, dependency was calculated automatically among the test cases. So in this, it has reduced the time and speed of the processes which increased the rate of fault detection.
"T.Dinesh Parthiban,Mr.R.Kamalrj, Dr. S. Karthik" Establishing A Test Case Prioritization Technique Using Dependency Estimation of Functional Requirement, ICETS 2014:-
In this Paper, the author has done the empirical study of evaluation based on six system which showed that through these techniques the speed has been increased. The technique based on coarse grained functional coverage points. Firstly to run test suites, test cases must be prioritized. After that short iterations could be done. Second part deals with the fine grained suites and deppendency is calculated on the basis of these suites. So functional estimates were made on the basis of number of accurate functions provided in a data.
" Gregg Rothermel , Roland H. Untch" Prioritizing Test Cases for Regression Testing:-
In this paper, the empirical study of different technique of test case prioritization was done. It define how we can efficiently calculate the rate of fault detection . Various techniques like APFD metrics, FEB Technique, were used based on dynamic dependencies. Differences were calculated based on the various prioritization techniques. Through these results, we can conclude that the test case minimization, test case selection might be cost effective but regression done with prioritizing the test cases has proved to be cost effective manner.
"W.Eric Wong, J.R. Horgan, Saul London , Hira Agarwal" A Study Of Effective Regression Testing :- In this paper, its purpose is to make changes in the software . The technique was a hybrid technique which includes the techniques of minimization , prioritization and selection criteria using all the subsets of test cases. ATAC metrics was used to reduce the size .It made the new versions in the software by modification of the subsets of various techniques.
III. PROPOSED METHODOLOGY
Regression testing is used to verify the modified version of the software. A test case has an input, an action performs and an expected result as an output.
3.1 Flow Chart of Proposed Work
Figure 3.1 Flow Chart of Proposed Work
3.2 Algorithm of Proposed Methodology
The main goal of test cases is to find out the errors. Test case prioritization are of different kind i.e. faults finding based or timing based depends upon the requirement. Test cases are prioritized to give importance to the most
important function so that it could be executed first. Test case prioritization schedules the test cases in a regression test suite with a view of maximizing certainty of finding faults which help to reduce the time and cost required to maintain service-oriented business applications. As we discussed earlier, test cases are prioritized on the basis of time and faults, but sometime a particular test case gives 1st priority to that function which is least important on the basis of either faults finding or timing constraints and gives last priority to that which is most important. The existing test cases prioritization has some problems. To overcome this problem a new algorithm will be implement which will prioritize according to functions importance .
Algorithm: Steps of proposed algorithm are as follow:
1. Maintain a database which contains all the related information of the project i.e. project id, no. of changes made and affected functions due to changes.
2. Match new projects with database and find out that functions which are affected due to changes in the functionality.
3. Evaluate Function Values (FV) of each function according to formula of Function value.
4. Traverse activity diagram with the help of DFS to find out function functionality dependency. 5. Find out the Function Test value (FTV) by adding
values of each FV.
6. Prioritize the test cases according to the descending order of each test case
IV. EXPECTED OUTCOME
In this, efficiency could be increased and in this approach we have to select mutation values on the basis of certain parameters. In the previous technique it enhanced the efficiency of regression testing but problem lies with the randomly selection of mutation values, which liberates the final test cases through which efficiency was reduced but in proposed work , both of them together will give a stronger technique to prioritize test cases. This technique will detect fault in the early stages of development and will also provide higher rate of fault detection and will reduce the time of regression testing.
V. CONCLUSIONS
In this paper, it has been concluded that concept of model based testing and functional dependency approach is combined efficiently in prioritizing the test cases which could results in better effectiveness of the models. Both of these techniques have the advantages and are efficient for increasing the efficiency of the test case prioritization. Using this technique, the rate of fault detection would be increased and time for testing would be reduced which could increase the efficiency of regression testing.
Matching the new project with the existing
project from the database and identify the
changes occur in new project
With the help of DFD, Traverse the activity
diagram and check the functional dependency
of the function
Evaluate Function Value
Calculate FTV by adding values of each FV
Prioritize the Test Cases in the descending
order
Maintain database which contain project id,
project name etc.
REFERENCES
[1] Indumathi CP , Selvamani K" Test Cases Prioritization Using Open Dependenmcy Structure Algorithm ",ICCS 2015
[2] T.Dinesh Parthiban,Mr.R.Kamalrj, Dr. S. Karthik "Establishing A Test Case Prioritization Technique Using Dependency Estimation of Functional Requirement", ICETS 2014
[3] Gregg Rothermel , Roland H. Untch "Prioritizing Test Cases for Regression Testing"
[4] Renee C. Bryce, Sreedevi Sampath "Developing a Single model and test prioritization strategies for event driven software IEEE 2011"
[5] W.Eric Wong, J.R. Horgan, Saul London , Hira Agarwal "A Study Of Effective Regression Testing"
[6] B Bhattad1 and A Kothari 2 ,” Study of defects test cases and testing challenges in website projects using manual and automated techniques” Computer Science & Information Technology (CS & IT)
[7] M. J. Harold, J. A. Jone, T. Li, and D. Liang, “Regression test selection for java software,” in Proc. of the ACM Conference on OO Programming, Systems, Languages, and Applications,2001. [8] S Yoo and M Harman, “Regression Testing Minimisation Selection
And Prioritisation: A Survey,” WC2R 2LS, UK
[9] G Rothermel, R.H. Untch, C. Chu, and M.J. Harrold, “Prioritizing Test Cases for Regression Testing,” IEEE Trans. Software Engg vol. 27, no. 10, pp. 929-948, Sept. 2001.
[10] Shifa-e-Zehra Haidry and T Miller, “Using Dependency Structures For Prioritization Of Functional Test Suites,” IEEE Transaction on software Engineering ,vol. 39,no. 2,Feb 2013.
[11] K.S. Lew, T.S. Dillon, and K.E. Forward, “Software Complexity and Its Impact on Software Reliability,” IEEE Trans. Software Eng., vol. 14, no. 11, pp. 1645-1655, Nov. 1988
[12] G. Rothermel, S. Elbaum, A. Malishevsky, P. Kallakuri, and B. Davia, “The Impact of Test Suite Granularity on the Cost-Effectiveness of Regression Testing,” Proc. 24th Int’l Conf. Sofware Eng., p. 130, 2002