SEMay 27, 2019

Towards Automated Boundary Value Testing with Program Derivatives and Search

arXiv:1905.11198v12 citations
Originality Synthesis-oriented
AI Analysis

This work addresses the challenge of automating boundary value analysis for software testing, though it is incremental as it builds on existing ideas without empirical validation.

The authors tackled the problem of automating boundary value testing in software by formalizing it through program derivatives and coupling it with search-based software engineering, proposing a practical and theoretically interesting technique.

A natural and often used strategy when testing software is to use input values at boundaries, i.e. where behavior is expected to change the most, an approach often called boundary value testing or analysis (BVA). Even though this has been a key testing idea for long it has been hard to clearly define and formalize. Consequently, it has also been hard to automate. In this research note we propose one such formalization of BVA by, in a similar way as to how the derivative of a function is defined in mathematics, considering (software) program derivatives. Critical to our definition is the notion of distance between inputs and outputs which we can formalize and then quantify based on ideas from Information theory. However, for our (black-box) approach to be practical one must search for test inputs with specific properties. Coupling it with search-based software engineering is thus required and we discuss how program derivatives can be used as and within fitness functions. This brief note does not allow a deeper, empirical investigation but we use a simple illustrative example throughout to introduce the main ideas. By combining program derivatives with search, we thus propose a practical as well as theoretically interesting technique for automated boundary value (analysis and) testing.

Foundations

The foundational work for this paper's niche, ranked by how specifically the neighbourhood builds on it — not by global fame.

Your Notes