Two‐stage algorithms for covering array construction

Modern software systems often consist of many different components, each with a number of options. Although unit tests may reveal faulty options for individual components, functionally correct components may interact in unforeseen ways to cause a fault. Covering arrays are used to test for interacti...

Full description

Saved in:
Bibliographic Details
Published inJournal of combinatorial designs Vol. 27; no. 8; pp. 475 - 505
Main Authors Sarkar, Kaushik, Colbourn, Charles J.
Format Journal Article
LanguageEnglish
Published Hoboken Wiley Subscription Services, Inc 01.08.2019
Subjects
Online AccessGet full text
ISSN1063-8539
1520-6610
DOI10.1002/jcd.21657

Cover

More Information
Summary:Modern software systems often consist of many different components, each with a number of options. Although unit tests may reveal faulty options for individual components, functionally correct components may interact in unforeseen ways to cause a fault. Covering arrays are used to test for interactions among components systematically. A two‐stage framework, providing a number of concrete algorithms, is developed for the efficient construction of covering arrays. In the first stage, a time and memory efficient randomized algorithm covers most of the interactions. In the second stage, a more sophisticated search covers the remainder in relatively few tests. In this way, the storage limitations of the sophisticated search algorithms are avoided; hence, the range of the number of components for which the algorithm can be applied is extended, without increasing the number of tests. Many of the framework instantiations can be tuned to optimize a memory‐quality trade‐off, so that fewer tests can be achieved using more memory.
Bibliography:ObjectType-Article-1
SourceType-Scholarly Journals-1
ObjectType-Feature-2
content type line 14
ISSN:1063-8539
1520-6610
DOI:10.1002/jcd.21657