Construction of Variable Strength Covering Array for Combinatorial Testing Using a Greedy Approach to Genetic Algorithm
Journal Title: e-Informatica Software Engineering Journal - Year 2015, Vol 9, Issue 1
Abstract
The limitation of time and budget usually prohibits exhaustive testing of interactions between components in a component based software system. Combinatorial testing is a software testing technique that can be used to detect faults in a component based software system caused by the interactions of components in an effective and efficient way. Most of the research in the field of combinatorial testing till now has focused on the construction of optimal covering array (CA) of fixed strength $t$ which covers all $t$-way interactions among components. The size of CA increases with the increase in strength of testing $t$, which further increases the cost of testing. However, not all components require higher strength interaction testing. Hence, in a system with $k$ components a technique is required to construct CA of fixed strength $t$ which covers all $t$-way interactions among $k$ components and all $t_i$-way (where $t_i > t$) interactions between a subset of $k$ components. This is achieved using the variable strength covering array (VSCA). In this paper we propose a greedy based genetic algorithm (GA) to generate optimal VSCA. Experiments are conducted on several benchmark configurations to evaluate the effectiveness of the proposed approach.
Authors and Affiliations
Priti Bansal, Sangeeta Sabharwal, Nitish Mittal, Sarthak Arora
ECLogger: Cross-Project Catch-Block Logging Prediction Using Ensemble of Classifiers
Background: Software developers insert log statements in the source code to record program execution information. However, optimizing the number of log statements in the source code is challenging. Machine learning based...
NRFixer: Sentiment Based Model for Predicting the Fixability of Non-Reproducible Bugs
Software maintenance is an essential step in software development life cycle. Nowadays, software companies spend approximately 45% of total cost in maintenance activities. Large software projects maintain bug repositorie...
ABC-CAG: Covering Array Generator for Pair-wise Testing Using Artificial Bee Colony Algorithm
Testing is an indispensable part of the software development life cycle. It is performed to improve the performance, quality and reliability of the software. Various types of testing such as functional testing and struct...
An Empirical Study on the Factors Affecting Software Development Productivity
Background : Software development productivity is widely investigated in the Software Engineering literature. However, continuously updated evidence on productivity is constantly needed, due to the rapid evolution of sof...
Efficiency of Software Testing Techniques: A Controlled Experiment Replication and Network Meta-analysis
Background. Common approaches to software verification include static testing techniques, such as code reading, and dynamic testing techniques, such as black-box and white-box testing. Objective. With the aim of gaining...