Abstract :
In the presence of an internal state, often a sequence of function calls is required to test software. In fact, to cover a particular branch of the code, a sequence of previous function calls might be required to put the internal state in the appropriate configuration. Internal states are not only present in object-oriented software, but also in procedural software (e.g., static variables in C programs). In the literature, there are many techniques to test this type of software. However, to the best of our knowledge, the properties related to the choice of the length of these sequences have received only a little attention in the literature. In this paper, we analyze the role that the length plays in software testing, in particular branch coverage. We show that, on “difficult” software testing benchmarks, longer test sequences make their testing trivial. Hence, we argue that the choice of the length of the test sequences is very important in software testing. Theoretical analyses and empirical studies on widely used benchmarks and on an industrial software are carried out to support our claims.
Keywords :
C language; object-oriented programming; program testing; C programs; empirical analysis; function calls; internal state; object-oriented software; procedural software; software testing; static variables; structural coverage; test sequence length; test sequences; theoretical analysis; Algorithm design and analysis; Containers; Search problems; Software; Software algorithms; Software testing; Evolutionary testing; length; object-oriented software; search-based software engineering; software testing; state problem; test sequence.;