Contributions to program- and specification-based test data generation
Jon Edvardsson · 2002
Software testing is complex and time consuming. One way to reduce testing effort is to automatically generate test data. In the first part of this thesis we consider a framework by Gupta et al. for generating tests from programs. In short, their approach consists of a branch predicate collector, which derives a system of linear inequalities representing an approximation of the branch predicates for a given path in the program. This system is solved using their constraint solver called the Unified Numerical Approach (UNA). In this thesis we show that in contrast to traditional optimization methods the UNA is not bounded by the size of the solved system. Instead it depends on how input is composed. That is, even for very simple systems consisting of one variable we can easily get more than a thousand iterations. We will also give a formal proof that UNA does not always find a mixed integer solution when there is one. Finally, we suggest using some traditional optimization method instead, like the simplex method in combination with branch-andbound and/or a cutting-plane algorithm as a constraint solver. In the second part we study a specification-based approach for generation of software