Locating Errors Using ELAs, Covering Arrays, and Adaptive Testing Algorithms

In this paper, we define and study error locating arrays (ELAs), which can be used in software testing for locating faulty interactions among parameters or components in a system. We give constructions of ELAs for arbitrary strength $t$, based on covering arrays. We show that the number of tests given by ELAs grows as $O(\log k)$, where $k$ is the number of parameters/components in the system, assuming other quantities (the number $g$ of values per parameter, the strength $t$ of faulty interactions, and the number $d$ of faulty interactions) are bounded by a constant. We then give a series of results for the case of pairwise interactions ($t=2$). We study the computational complexity of deciding whether a graph describing the faulty pairwise interactions is “locatable.” We characterize the locatable graphs for the binary case ($g=2$). We design and analyze efficient algorithms that locate errors under certain assumptions on the structure of the faulty pairwise interactions. Under the assumption of known “safe values,” our algorithm performs a number of tests that is polynomial in $\log k$ and $d$, where $k$ is the number of parameters in the system and $d$ is an upper bound on the number of faulty pairwise interactions. For the binary alphabet case, we provide an algorithm that does not require safe values and runs in expected polynomial time in $\log k$ whenever $d\in O(\log\log k)$.