TY - JOUR
T1 - Two-stage algorithms for covering array construction
AU - Sarkar, Kaushik
AU - Colbourn, Charles J.
N1 - Funding Information:
The research was supported in part by the National Science Foundation (Grant No. 1421058).
Publisher Copyright:
© 2019 Wiley Periodicals, Inc.
PY - 2019/8
Y1 - 2019/8
N2 - 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.
AB - 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.
KW - Lovász local lemma
KW - conditional expectation
KW - covering array
KW - randomized algorithm
KW - two-stage algorithm
UR - http://www.scopus.com/inward/record.url?scp=85066302534&partnerID=8YFLogxK
UR - http://www.scopus.com/inward/citedby.url?scp=85066302534&partnerID=8YFLogxK
U2 - 10.1002/jcd.21657
DO - 10.1002/jcd.21657
M3 - Article
AN - SCOPUS:85066302534
SN - 1063-8539
VL - 27
SP - 475
EP - 505
JO - Journal of Combinatorial Designs
JF - Journal of Combinatorial Designs
IS - 8
ER -