测试数据自动生成系统的实现
合集下载
相关主题
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
计算机 光盘 软件 与 应用
软 件 设 计 开 发
2 1 第 5期 0 2年
测试数据 自动生成系统的实现
张欣 欣 ,黄 今 慧
( 北京工商大学计算机 与信息工程 学院 ,北京
10 4 0 08)
摘要 :本 文在研 究软 件测试数据 自动生成技 术的基础上 ,为决解 空间爆炸的 问题提 出了将一种新兴 的智能算 法 菌群 算法应用到软件测试数据的 自动 生成 " 3中。但 为了能准确并 快速 的生成测试数据还 对算法进行 了改进 ,然后 - 在 用随机 法随机 生成的测试数据覆盖被测程序 大部分路径 的基础上 ,运 用改进后 的菌群算法对剩余指定路 径进行覆 盖从 而达到路 径全覆 盖的效果 ,实现测试数据 自 动生成 系统。最后 用一个简单实验验证 了该 系统的有效性 。 关键 词 :软件测试 ;测试数据 自动生成 ;菌群算 法 中图分类号 :T 3 1 P 1 文献标识码 :A 文章编号 :
础。
第 ■部分是运用随机法随机生成一些测试数据 。 随机 法能 简 单快速 的生成大量 的测试数据 , 这些数据驱动被测程序执行 并能覆 盖大 部分 的逻辑路径 。 第 三部分是在 第二部分 中随机法未覆 盖到 的路径 中指定 路径并运行 B F算法生成测试数据对其进行覆盖 ,从而达到路 径全覆盖。 B 算法 是系统 的核心 ,它先根据 “ F 有用参数编码 原则 ’ 用二进制 编码机 制对被测 程序单 兀进行参 数编码 采 构造相应的细 菌个体并构造适应度函数。 始化细 菌种群 , 初 再 对种群进行反复的 B F算法 的趋 药性 行 为 ,群 聚 , 繁殖 和迁 徙 运算 , 而引 导种群不断地 向目标值 进化直到满足精度要求找 从 到 覆 盖 指 定 路 径 的测 试 数 据 或 达 到 限 定 的 运 行 代 数 为 止 。 三 、菌群算法及改进 ( )菌群算法 一 菌群 算法 是 P s io通过模拟大肠杆菌 的觅食行 为提 出 a sn 来的 ,用来解决优化和控制 问题 的。具体过程如 ’ F:
~
一
、
引言
目前 , 软件测试的 自动化发展迅速 , 人们可 以利用测试工 具来执行和维护测试用例 , 但是测试数据 的 自动生成还足远不 尽人意 。 传统测试用例生成 的人工方法无疑会 降低测试 的效率 和 可靠性 。测试数据 自动生成技术能为程序 自生成测试 数据 , 大大减少 了测试 人员手 工编写测 试数据的劳动量, 从而使测试 效率获得 显著提高。 因此对测试数 据生成技 术的研 究 以提 高软 件测试 自动化 程度是~件有重要意义的事情 。 软件测 试数据 自 动生成技术有两大类 : 向功能测试数据 自动生成技术和面 向 面 结构测试数据 自动生成技术 。 。本文研究的就是 种 面 向结构 的 测 试 数 据 生 成 技 术 , 用 该 技 术 设 计 测 试 用 例 时 运 用 的规 则 运 般都是基于覆盖 的, 中最经常用到 的是基于路径覆盖 的准 其 则, 也就是根据指定 的路径 , 在参数空 间内搜索 能够触发这条 指 定 路 径 执 行 的输 入 数 据 , 终达 到 路径 的全 覆 盖 。 者 们 研 最 学 究 了很 多方法来解 决这些 问题,其中可 以分为四类:随机 法、 静 态 法 、动 态 法 和试 探 法 。 将 一些人工智能算法 ( 比如遗传 算法 、模拟退火算法 、 蚁 群 算法等 )引入 到软件测试数据生 成中 “ ,并取得 了不错 的 成果 。 最近 , …种新的进化计算方法被提 出,就 是菌群算法. 菌群算法是人工智能 的一种新兴 的算法 , 相对于遗传算法、模 拟退火 算法和蚁 群算法等其 它智能算法 来说具有规 则简单 的 特 点,更适合二进制编码 。 本文就对 菌群 的参数化编码 ,适应 度 函数构造和测试数据 生成接 口等技术 细节进行研 究, 使菌群 算法能够 自动生成适合 的测试数据 , 并结合随机算法实现能够 满足路径全覆盖 的测试 数据 生成系统。 二 、测试数 据 自动生 成系统框 架
1 趋 药 性 .
存细菌生存在 化学引诱 剂的环境 中, 它对环境 的应激 反应 就称为趋药性 。大肠杆菌有两种基本趋药性行 为:前 进和翻 转。 前进是沿着上一步相 同的方向运动,而翻 转是取一个新的 方 向运动 。一次趋药性行为之后细菌 的位置为
痰 j {
的位度量 单长 向。
随 莉 , 妇 Li k 三
一
该测试 数据 自动 生成系统有 以下三个部分 : 暗 首先 第 分 要对 目标程 序进 行静态 分析, 然后提供被测程序摹本单元信息 如 变 量 参 数 表 和 程 序 逻 辑 结 构 等信 息 , 后 对 测 试环 境 进 行 构 然 造 ( 括驱动模块、测试单元及桩模块 ) 包 ,它 是整 个 系 统 的基
l
;
… 一 …
一
测 跌j 例 j J
… 一
;
来自百度文库}
2 群 聚 . 在 寻 取食 物 的 过程 中 , 菌 个 体 之 间通 过 信 号 传 递 搜 索 觅 细 食 的最佳 路径 , 并通过相互 间的作用来实现群体 的聚集行 为以 便更迅速 的到达 目的地 。 在菌群优化算法 中细胞之 间的吸 引和 排 斥 效 用 被 整 合 到 了 一起 , 表 示 为 一
…
…
…
一
堂…… ……… ……
f
燎f 分 手 l ” J
(户/ ,)∑ ( (后) ( 『= , ,) ,) , ,f
r
=
l }
‘ — 一 …
扑 路 } 庀
… 一 … 一 — — — … 一 …
一 … … …
{
, 、 1 r , 、 ]
( 2)
}
… …
∑— cl … ∑ + 1 e 一 ∑ I… x p p一 r ∑ x - h p 1
软 件 设 计 开 发
2 1 第 5期 0 2年
测试数据 自动生成系统的实现
张欣 欣 ,黄 今 慧
( 北京工商大学计算机 与信息工程 学院 ,北京
10 4 0 08)
摘要 :本 文在研 究软 件测试数据 自动生成技 术的基础上 ,为决解 空间爆炸的 问题提 出了将一种新兴 的智能算 法 菌群 算法应用到软件测试数据的 自动 生成 " 3中。但 为了能准确并 快速 的生成测试数据还 对算法进行 了改进 ,然后 - 在 用随机 法随机 生成的测试数据覆盖被测程序 大部分路径 的基础上 ,运 用改进后 的菌群算法对剩余指定路 径进行覆 盖从 而达到路 径全覆 盖的效果 ,实现测试数据 自 动生成 系统。最后 用一个简单实验验证 了该 系统的有效性 。 关键 词 :软件测试 ;测试数据 自动生成 ;菌群算 法 中图分类号 :T 3 1 P 1 文献标识码 :A 文章编号 :
础。
第 ■部分是运用随机法随机生成一些测试数据 。 随机 法能 简 单快速 的生成大量 的测试数据 , 这些数据驱动被测程序执行 并能覆 盖大 部分 的逻辑路径 。 第 三部分是在 第二部分 中随机法未覆 盖到 的路径 中指定 路径并运行 B F算法生成测试数据对其进行覆盖 ,从而达到路 径全覆盖。 B 算法 是系统 的核心 ,它先根据 “ F 有用参数编码 原则 ’ 用二进制 编码机 制对被测 程序单 兀进行参 数编码 采 构造相应的细 菌个体并构造适应度函数。 始化细 菌种群 , 初 再 对种群进行反复的 B F算法 的趋 药性 行 为 ,群 聚 , 繁殖 和迁 徙 运算 , 而引 导种群不断地 向目标值 进化直到满足精度要求找 从 到 覆 盖 指 定 路 径 的测 试 数 据 或 达 到 限 定 的 运 行 代 数 为 止 。 三 、菌群算法及改进 ( )菌群算法 一 菌群 算法 是 P s io通过模拟大肠杆菌 的觅食行 为提 出 a sn 来的 ,用来解决优化和控制 问题 的。具体过程如 ’ F:
~
一
、
引言
目前 , 软件测试的 自动化发展迅速 , 人们可 以利用测试工 具来执行和维护测试用例 , 但是测试数据 的 自动生成还足远不 尽人意 。 传统测试用例生成 的人工方法无疑会 降低测试 的效率 和 可靠性 。测试数据 自动生成技术能为程序 自生成测试 数据 , 大大减少 了测试 人员手 工编写测 试数据的劳动量, 从而使测试 效率获得 显著提高。 因此对测试数 据生成技 术的研 究 以提 高软 件测试 自动化 程度是~件有重要意义的事情 。 软件测 试数据 自 动生成技术有两大类 : 向功能测试数据 自动生成技术和面 向 面 结构测试数据 自动生成技术 。 。本文研究的就是 种 面 向结构 的 测 试 数 据 生 成 技 术 , 用 该 技 术 设 计 测 试 用 例 时 运 用 的规 则 运 般都是基于覆盖 的, 中最经常用到 的是基于路径覆盖 的准 其 则, 也就是根据指定 的路径 , 在参数空 间内搜索 能够触发这条 指 定 路 径 执 行 的输 入 数 据 , 终达 到 路径 的全 覆 盖 。 者 们 研 最 学 究 了很 多方法来解 决这些 问题,其中可 以分为四类:随机 法、 静 态 法 、动 态 法 和试 探 法 。 将 一些人工智能算法 ( 比如遗传 算法 、模拟退火算法 、 蚁 群 算法等 )引入 到软件测试数据生 成中 “ ,并取得 了不错 的 成果 。 最近 , …种新的进化计算方法被提 出,就 是菌群算法. 菌群算法是人工智能 的一种新兴 的算法 , 相对于遗传算法、模 拟退火 算法和蚁 群算法等其 它智能算法 来说具有规 则简单 的 特 点,更适合二进制编码 。 本文就对 菌群 的参数化编码 ,适应 度 函数构造和测试数据 生成接 口等技术 细节进行研 究, 使菌群 算法能够 自动生成适合 的测试数据 , 并结合随机算法实现能够 满足路径全覆盖 的测试 数据 生成系统。 二 、测试数 据 自动生 成系统框 架
1 趋 药 性 .
存细菌生存在 化学引诱 剂的环境 中, 它对环境 的应激 反应 就称为趋药性 。大肠杆菌有两种基本趋药性行 为:前 进和翻 转。 前进是沿着上一步相 同的方向运动,而翻 转是取一个新的 方 向运动 。一次趋药性行为之后细菌 的位置为
痰 j {
的位度量 单长 向。
随 莉 , 妇 Li k 三
一
该测试 数据 自动 生成系统有 以下三个部分 : 暗 首先 第 分 要对 目标程 序进 行静态 分析, 然后提供被测程序摹本单元信息 如 变 量 参 数 表 和 程 序 逻 辑 结 构 等信 息 , 后 对 测 试环 境 进 行 构 然 造 ( 括驱动模块、测试单元及桩模块 ) 包 ,它 是整 个 系 统 的基
l
;
… 一 …
一
测 跌j 例 j J
… 一
;
来自百度文库}
2 群 聚 . 在 寻 取食 物 的 过程 中 , 菌 个 体 之 间通 过 信 号 传 递 搜 索 觅 细 食 的最佳 路径 , 并通过相互 间的作用来实现群体 的聚集行 为以 便更迅速 的到达 目的地 。 在菌群优化算法 中细胞之 间的吸 引和 排 斥 效 用 被 整 合 到 了 一起 , 表 示 为 一
…
…
…
一
堂…… ……… ……
f
燎f 分 手 l ” J
(户/ ,)∑ ( (后) ( 『= , ,) ,) , ,f
r
=
l }
‘ — 一 …
扑 路 } 庀
… 一 … 一 — — — … 一 …
一 … … …
{
, 、 1 r , 、 ]
( 2)
}
… …
∑— cl … ∑ + 1 e 一 ∑ I… x p p一 r ∑ x - h p 1