4、利用神经网络构建基于搜索的软件测试搜索空间

利用神经网络构建基于搜索的软件测试搜索空间

1. 引言

基于搜索的软件测试(SBST)方法在软件工程中被广泛应用。它依赖于一个反馈机制,该机制评估候选解决方案并相应地引导搜索。任何反馈机制的有效性都取决于表示方式和适应度函数的选择。在自动化搜索驱动测试的背景下,还需要选择搜索策略。本文主要关注为基于搜索的测试过程构建合适的适应度函数。

一个好的适应度函数的搜索空间应具备一些理想的特性:
- 空间要大且近似连续。
- 适应度函数的计算复杂度要低,且没有已知的最优解。
- 要真正代表其试图表示的属性。
- 度量所施加的顺序关系要有意义。

本文将为两种基本的测试策略——属性目标和多样化驱动,介绍构建具有理想特性的适应度函数的方法。

1.1 属性目标搜索景观

执行属性目标搜索策略的适应度函数需要指示候选解决方案与感兴趣属性的“接近程度”(前提是该属性尚未被观察到),即需要满足表示条件。

例如,测试人员想要执行一个数值条件语句后面的特定程序点,变量值与 if 语句谓词值之间的数值差(分支距离)就是明显的适应度函数。但在许多“大海捞针”的测试场景中,这样简单的适应度函数并不存在。比如,测试人员在寻找程序崩溃点,但对原始输入进行一千次变异执行后程序仍未崩溃,这时能否判断某些执行“更接近”崩溃,从而更适合进一步变异呢?

通过对执行轨迹和崩溃/未崩溃标签进行训练的神经网络可以为每个候选解决方案生成一个“可疑度”分数。我们可以查询神经网络,判断某些输入的行为“看起来可疑地像崩溃”。本文将展示如何构建这样的适应度函数及其有用特性。

评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符  | 博主筛选后可见
 
红包 添加红包
表情包 插入表情
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值