根据剑桥大学最近的一项研究,软件开发人员花了大约一半的时间在检测错误和解决错误上。根据这项研究,预计到全球软件产业,这将相当于每年约3120亿美元的账单。
“当然,自动化测试更便宜,”萨尔大学软件工程教授Andreas Zeller解释道,因为您可以在不产生任何费用的情况下运行一个程序一千次。但是这些必要的测试用例是从哪里来的呢?”西问道。“自动生成它们很困难,但自己思考它们就更困难了。”
在与计算机科学家Nikolas Havrikov和Matthias Höschele的合作中,他现在开发了软件系统“XMLMATE”。它自动生成测试用例,并使用它们自动测试给定的程序代码。它的特殊之处在于,要测试的程序必须满足的唯一要求是,它的输入必须以某种方式结构化,因为研究人员使用它来生成最初的测试用例集。他们将这些数据提供给测试所基于的所谓的遗传算法。它的工作原理与生物进化相似,在生物进化中,染色体是作为输入的。只有包含大量尚未执行的代码的输入才能保存下来。正如Nikolas Havrikov解释他们的策略:“检测真正的错误并不容易,我们覆盖的代码越多,我们就越确定不会发生更多的错误。”Havrikov XMLMATE实现。“由于我们使用真实的现有输入接口,我们确保没有虚报:每一个发现的错误也可能发生在程序的执行过程中,”泽勒补充说。
研究人员将他们的软件发布在用户已经在日常生活中使用的开源程序上。通过他们的程序,他们检测到的致命错误几乎是只处理随机输入的类似测试方法的两倍。“但最好的是,我们完全独立于应用领域。有了我们的框架,我们不仅能够测试计算机网络、数据集的处理、网站或操作系统,还可以测试汽车传感器的软件。”泽勒说。
Saarbrücken的计算机科学家用Java编程语言开发了XMLMATE。要测试的软件输入是根据描述语言XML定义的,因此XML模式的存在是有帮助的。由于XML是标准化的,并且被认为是一种输入格式之间的世界语言,因此大多数编程输入都适合XMLMATE,如果不适合,则可以通过相应的工具快速进行转换。
欲了解更多信息,请访问http://www.uni-saarland.de/
了下:M2M(机对机)
