scholarly journals A Machine Learning Based Approach for Software Test Case Selection

Author(s):  
Victor Cheruiyot ◽  
Baidya Nath Saha

Testing is conducted after developing each software to detect the defects which are then removed. However, it is very difficult task to test a non-trivial software completely. Hence, it’s important to test the software with important test cases. In this research, we developed a machine learning based software test case selection strategy for regression testing. To develop the method, we first clean and preprocess the data. Then we convet the categorical data to its numerical value. The we implement a natural language processing to calculate bag of features for text feature such as testcase title. We evaluate different machine learning models for test case selection. Experimental results demonstrate that machine learning based models can aovid manual labour of the domain experts for test case selection.

2020 ◽  
Vol 11 (2) ◽  
pp. 1-14
Author(s):  
Angelin Gladston ◽  
Niranjana Devi N.

Test case selection helps in improving quality of test suites by removing ambiguous, redundant test cases, thereby reducing the cost of software testing. Various works carried out have chosen test cases based on single parameter and optimized the test cases using single objective employing single strategies. In this article, a parameter selection technique is combined with an optimization technique for optimizing the selection of test cases. A two-step approach has been employed. In first step, the fuzzy entropy-based filtration is used for test case fitness evaluation and selection. In second step, the improvised ant colony optimization is employed to select test cases from the previously reduced test suite. The experimental evaluation using coverage parameters namely, average percentage statement coverage and average percentage decision coverage along with suite size reduction, demonstrate that by using this proposed approach, test suite size can be reduced, reducing further the computational effort incurred.


Author(s):  
Everton Note Narciso ◽  
Márcio Eduardo Delamaro ◽  
Fátima De Lourdes Dos Santos Nunes

Time and resource constraints should be taken into account in software testing activities, and thus optimizing the test suite is fundamental in the development process. In this context, the test case selection aims to eliminate redundant or unnecessary test data, which is crucial for the definition of test strategies. This paper presents a systematic review on the test case selection conducted through a selection of 449 articles published in leading journals and conferences in Computer Science. We addressed the state-of-art by collecting and comparing existing evidence on the methods used in the different software domains and the methods used to evaluate the test case selection. Our study identified 32 papers that met the research objectives, which featured 18 different selection methods and were evaluated through 71 case studies. The most commonly reported methods are adaptive random testing, genetic algorithms and greedy algorithm. Most approaches rely on heuristics, such as diversity of test cases and code or model coverage. This paper also discusses the key concepts and approaches, areas of application and evaluation metrics inherent to the methods of test case selection available in the literature.


2021 ◽  
Vol 27 (2) ◽  
pp. 170-189
Author(s):  
P. K. Gupta

Software is an integration of numerous programming modules  (e.g., functions, procedures, legacy system, reusable components, etc.) tested and combined to build the entire module. However, some undesired faults may occur due to a change in modules while performing validation and verification. Retesting of entire software is a costly affair in terms of money and time. Therefore, to avoid retesting of entire software, regression testing is performed. In regression testing, an earlier created test suite is used to retest the software system's modified module. Regression Testing works in three manners; minimizing test cases, selecting test cases, and prioritizing test cases. In this paper, a two-phase algorithm has been proposed that considers test case selection and test case prioritization technique for performing regression testing on several modules ranging from a smaller line of codes to huge line codes of procedural language. A textual based differencing algorithm has been implemented for test case selection. Program statements modified between two modules are used for textual differencing and utilized to identify test cases that affect modified program statements. In the next step, test case prioritization is implemented by applying the Genetic Algorithm for code/condition coverage. Genetic operators: Crossover and Mutation have been applied over the initial population (i.e. test cases), taking code/condition coverage as fitness criterion to provide a prioritized test suite. Prioritization algorithm can be applied over both original and reduced test suite depending upon the test suite's size or the need for accuracy. In the obtained results, the efficiency of the prioritization algorithms has been analyzed by the Average Percentage of Code Coverage (APCC) and Average Percentage of Code Coverage with cost (APCCc). A comparison of the proposed approach is also done with the previously proposed methods and it is observed that APCC & APCCc values achieve higher percentage values faster in the case of the prioritized test suite in contrast to the non-prioritized test suite.


2016 ◽  
Vol 4 (4) ◽  
pp. 56-70 ◽  
Author(s):  
Ahmad A. Saifan ◽  
Emad Alsukhni ◽  
Hanadi Alawneh ◽  
Ayat AL Sbaih

Software testing is a process of ratifying the functionality of software. It is a crucial area which consumes a great deal of time and cost. The time spent on testing is mainly concerned with testing large numbers of unreliable test cases. The authors' goal is to reduce the numbers and offer more reliable test cases, which can be achieved using certain selection techniques to choose a subset of existing test cases. The main goal of test case selection is to identify a subset of the test cases that are capable of satisfying the requirements as well as exposing most of the existing faults. The state of practice among test case selection heuristics is cyclomatic complexity and code coverage. The authors used clustering algorithm which is a data mining approach to reduce the number of test cases. Their approach was able to obtain 93 unique effective test cases out a total of 504.


2016 ◽  
Vol 25 (04) ◽  
pp. 1740002
Author(s):  
Kristof Böhmer ◽  
Stefanie Rinderle-Ma

Business processes describe and implement the business logic of companies, control human interaction, and invoke heterogeneous services during runtime. Therefore, ensuring the correct execution of processes is crucial. Existing work is addressing this challenge through process verification. However, the highly dynamic aspects of the current processes and the deep integration and frequent invocation of third party services limit the use of static verification approaches. Today, one frequently utilized approach to address this limitation is to apply process tests. However, the complexity of process models is steadily increasing. So, more and more test cases are required to assure process model correctness and stability during design and maintenance. But executing hundreds or even thousands of process model test cases lead to excessive test suite execution times and, therefore, high costs. Hence, this paper presents novel coverage metrics along with a genetic test case selection algorithm. Both enable the incorporation of user-driven test case selection requirements and the integration of different knowledge sources. In addition, techniques for test case selection computation performance optimization are provided and evaluated. The effectiveness of the presented genetic test case selection algorithm is evaluated against five alternative test case selection algorithms.


Author(s):  
Xiaobing Sun ◽  
Xin Peng ◽  
Hareton Leung ◽  
Bin Li

Regression testing is essential to ensure software quality during software evolution. Two widely-used regression testing techniques, test case selection and prioritization, are used to maximize the value of the continuously enlarging test suite. However, few works consider both these two techniques together, which decreases the usefulness of the independently studied techniques in practice. In the presence of changes during program evolution, regression testing is usually conducted by selecting the test cases that cover the impact results of the changes. It seldom considers the false-positives in the information covered. Hence, the effectiveness of such regression testing techniques is decreased. In this paper, we propose an approach, ComboRT, which combines test case selection and prioritization together to directly generate a ranked list of test cases. It is based on the impact results predicted by the change impact analysis (CIA) technique, FCA–CIA, which generates a ranked list of impacted methods. Test cases which cover these impacted methods are included in the new test suite. As each method predicted by FCA–CIA is assigned with an impact factor value corresponding to the probability of this method to be impacted, test cases are then ordered according to the impact factor values of the impacted methods. Empirical studies on four Java based software systems demonstrate that ComboRT can be effectively used for regression testing in object-oriented Java-based software systems during their evolution.


2014 ◽  
Vol 654 ◽  
pp. 378-381
Author(s):  
Yu Lin Liu ◽  
Yan Wang ◽  
Jian Tao Zhou

In the traditional software testing, a large collection of test cases of the tested system automatically generated , in the process of actual execution, all of the test cases are executed is not possible. Normally, we test a certain function of the tested system, so choosing the test cases about a certain function is very important. This paper focuses on solving the problem of choosing test cases about a certain function of the tested system based on CPN model, the method which is based on purpose is used in this process. In the process of test cases selection, there are a whole lot of repeated calculation and operation, this characteristic just can make it combined with the parallel advantage of cloud computing. In summary, this dissertation focus on the test cases selection problem, using MapReduce programming on Hadoop platform, a test case selection tool is designed to improve the efficiency and service capabilities of test selection, the result of the experiment is consistent with the expected result.


The quality of the software is a very important aspect in the development of software application. In order to make sure there is the software of good quality, testing is a critical activity of software development. Thus, software testing is the activity which focuses on the computation of an attribute or the ability of either a system or program that decides if user requirements are met. There is a proper strategy for the design of software for which testing has to be adopted. The techniques of test case selection attempt at reduction of the test cases that need to be executed at the same time satisfying the needs of testing that has been denoted by the test criteria. In the time of software testing, and the resource will be the primary constraints at the time of testing since this has been a highly neglected phase in the Software Development Life Cycle (SDLC). The optimizing of a test suite is very critical for the reduction of the testing phase and also the selection of the test cases that eliminate unwanted or redundant data. All work in literature will make use of techniques of single objective optimization that does not have to be efficient as the code coverage will play an important role at the time of selection of test case. As the test case choice is Non-Deterministic, the work also proposes a novel and multi-objective algorithm like the Non-Dominated Sorting Genetic Algorithm II (NSGA II) and the Stochastic Diffusion Search (SDS) algorithm that makes use of the cost of execution and code coverage as its objective function. The results prove a faster level of convergence of the algorithm with better coverage of code in comparison to the NSGA II.


In this paper we have presented an automated unified approach called AVISAR for the testing of the Object-oriented Systems (OOS) by Test Case Prioritization (TCP) & their selection using Genetic Algorithm for the OOS. The testing of OOS has become a more challenging task as nowadays it has been widely accepted as a paradigm for large-scale system designing. In this research paper we have also studied the Genetic algorithms in relation to their applications for providing solutions to the various aspects of the OO Testing. As a result after implementing the tool AVISAR using GA’s it has proven to be useful in providing effective solutions to resolve the issues related to the OO Testing domain. Thus it can be used for reducing the efforts of the users for testing by efficient selection of effective test cases


Sign in / Sign up

Export Citation Format

Share Document