Ongoing progress in computational intelligence (CI) has led to an increased desire to apply CI techniques for the purpose of improving software engineering processes, particularly software testing. Existing state-of-the-art automated software testing techniques focus on utilising search algorithms to discover input values that achieve high execution path coverage. These algorithms are trained on the same code that they intend to test, requiring instrumentation and lengthy search times to test each software component. This paper outlines a novel genetic programming framework, where the evolved solutions are not input values, but micro-programs that can repeatedly generate input values to efficiently explore a software component's input parameter domain. We also argue that our approach can be generalised such as to be applied to many different software systems, and is thus not specific to merely the particular software component on which it was trained.
翻译:由于计算情报(CI)不断取得进展,人们更加希望应用CI技术来改进软件工程流程,特别是软件测试; 现有最先进的自动化软件测试技术侧重于利用搜索算法发现投入值,从而实现高执行路径覆盖; 这些算法在他们打算测试的代码上接受培训,要求仪器和长时间搜索时间来测试每个软件组件; 本文概述了一个新的基因编程框架,其中所演进的解决方案不是输入值,而是微型程序,可以反复生成输入值,以有效探索软件组件输入参数领域; 我们还认为,我们的方法可以被概括化,例如适用于许多不同的软件系统,因此不仅限于所培训的特定软件组成部分。