The input domain of software systems can typically be divided into sub-domains for which the outputs are similar. To ensure high quality it is critical to test the software on the boundaries between these sub-domains. Consequently, boundary value analysis and testing has been part of the toolbox of software testers for long and is typically taught early to students. However, despite its many argued benefits, boundary value analysis for a given specification or piece of software is typically described in abstract terms which allow for variation in how testers apply it. Here we propose an automated, black-box boundary value detection method to support software testers in systematic boundary value analysis with consistent results. The method builds on a metric to quantify the level of boundariness of test inputs: the program derivative. By coupling it with search algorithms we find and rank pairs of inputs as good boundary candidates, i.e. inputs close together but with outputs far apart. We implement our AutoBVA approach and evaluate it on a curated dataset of example programs. Our results indicate that even with a simple and generic program derivative variant in combination with broad sampling over the input space, interesting boundary candidates can be identified.
翻译:软件系统的输入域通常可以分为与产出相似的子域。 为了保证高质量,必须在这些子域之间的边界范围内测试软件。 因此,边界值分析和测试是软件测试器工具箱中长期的一部分,而且通常很早教授给学生。 然而,尽管它有许多优点,但对特定规格或软件的输入域的边界值分析通常用抽象的术语描述,允许测试者如何应用该规格或软件。 我们在这里提出了一个自动的黑箱边界值检测方法,以支持系统边界值分析中的软件测试者,并得出一致的结果。 这种方法建立在量化测试投入的界限程度的衡量标准之上:程序衍生物。通过将它与我们所找到的搜索算法结合起来,将输入的组合排列成良好的边界候选物,即输入物与产出相近,但相距遥远。 我们实施我们的AutoBVA 方法, 并评价其如何使用一个标定的数据集。 我们的结果表明,即使与输入空间的广泛取样结合,也可以确定一个简单和通用的程序衍生物变方。