1、收稿日期 :-12-09; 修返日期 :-01-18(基于工作流技术软件测试步骤定义和监控*郑小军 , 刘 超 , 晏海华(北京航空航天大学 软件工程研究所 , 北京 100083摘 要 :叙述了软件测试步骤相关概念 , 叙述了基于工作流技术实现软件测试步骤定义和监控概念模型 ,具体探讨了软件测试步骤定义和实例化和软件测试步骤实施和监控所包含关键内容及其具体实现方案 。 关键词 :工作流 ; 测试步骤 ; 测试阶段 ; 测试步骤控制项中图法分类号 :TP311 51 文件标识码 :A 文章编号 :1001-3695( 02-0043-03M echan is m o f D efi n i n
2、 g and M on itori ng Soft w are Testi ngFlo w Based onW orkfl o wZ HENG X iao-j un , L I U Chao , YAN H a -i hua(Soft wa re Eng i neering Instit u te , B e i hang Un iversit y, B eiji ng 100083, C hinaAbstract :Th i s paper expati ates the concepts related to soft ware testi ng flo w, d i ssertate t
3、 he connecti onalm odel of m i ple m en -ti ng the defi n iti on and mon itoring of soft w are testi ng fl ow based on theworkfl ow technol ogy . It also discusses i n detail about them ain content and specific realizati on sche m e i nvolved i n t he defi n iti on , i nstanti ati on , executi on an
4、d m on itoring of soft ware tes -ti ng fl ow. Key words :W ork flo w; Soft w are Testi ng F l ow ; Test Phase ; Soft w areTesti ng Flo w Control Ite m1 引言研究新开发方 法、 技术和工具以提升软件项目标生产效 率和质量一直是软件 工程研究热点。三十多年来 , 尽管新 开发方法和技术在软 件开发过程中应用起到了一定作用 , 但软件产业伴随软件 规模和结构 复杂度 提升 仍然没 能摆脱 项目延期及超出预算 困扰。一个成功软件 项目意味着 能够在 没
5、有超 出预算 情况 下 , 按时交付质 量合 格 软件 产 品。 I EEE 资 料表 明 , 仅 1995年十二个月内 , 大型软件系统失败率 (取消率 达成了 20%; 而在 剩下 80%中 , 大约有 2/3项目延期 , 而且有 些项目 经费 开支超出了预算一倍 ; 而且也有 2/3项目因为第十二个月开发 中所存在可靠性和 质量方面问题而频频出现故障1。很多企业项目屡 遭失败关键原因是 :缺乏有效软件 过程管理体系 , 过多地依靠 软件设 计和开 发者个 人素质 ; 大多没有建立起完善 质量保障体系 , 忽略软件测试关键作 用。软件测试是软件 质量确保关键步骤 , 软件开发生命周期 中受
6、到最多关 注 就是 测 试 2。测 试 目标 是 以 最 少 人力、 物力和时间投入 , 尽 可能多地 找出软 件中潜 在各 种错误和缺点2。建立良好测试过程 管理体 系不仅 能够发 现错误和缺点 , 确保产品质量 , 还能够 经过对测试过程进行度量 , 辅助 组织进行过程改善 , 提升测试生产率 , 降低测试成本。所以 , 研究有效软件测试过程管理方法就成为多年来一个热点。经过软件教授 们不懈努力 , 软件测试过程管理 理论已相对成熟 , 测试技术、 方法和工具得到了相当发展 , 不过对软件测试 步骤定义 及监控 却缺乏 对应研 究。为了 使测试管理方法 能够适合不一样类型软件测试 , 适合
7、不一样软件 测试部门测试 步骤 , 开发含有软件测试步骤管理功效软件 过程管理工具就 成了一个需 要。因为工 作流技 术已经 成为目 前比较流行过 程实现技术 , 本文研究就以工作流技术为依 据 , 探讨怎样对软件测试步骤进行定义和监控。2 工作流技术近几年来工 作流管理技术 逐步被应 用于过 程自动 化和 应用系统集成中 。 W M f C 将工作流 定义为一个 过程 , 在该过程 中 , 文档、 信息或任务等 根据一 定过程 规则在 过程参 和者之 间传输 3。过程是为了实现某 个目标而 将一系 列相互 关联 活动协调起 来 一个 集合 3。工 作流 管理 系统 是用 来定 义、 创建和管
8、理工 作流 软件 系统 3。 W M f C 定 义 工作流 管理 系统参考模型 4图 1所表示。 此工作流 参考模 型定义 了工作 流管理系统基 本结构 , 它包含工作流管理系统关键组件以 及这些组件之间 接口。(1 工作流 实施服务组件 (Work flow Enact m ent Serv ices 提 供了一个运行环 境 , 在该环 境中 , 利用一 个或多 个工作 流引擎 进行过程实例 化、 解释以 及激活 , 而且 支持和 外部必 要资 源交互。它由一个或多 个创建、 管理和实施工作流实例工 作流引擎组成。(2 工 作流 引擎 (Workfl ow Eng i ne 是一 个为 工
9、 作流 实例 提供运行实施环 境软件服务。(e fi 43 第 2期 郑小军等 :基于工作流技术软件测试步骤定义和监控并统计业务过程。它输 出一个能 被工作 流引擎 解释 过程定 义。(4 工作流管理和 监控 组件 (A d m i nistrati on &M onitor i ng 关键负责对工作流实 例运 行进行 监控。管理 员能够 经过工 作流管理工具取得目 前各个活动运行情况汇报 , 并干预实例 行进。(5 工作流客 户端 应用组 件 (W ork flow C li ent A pp licati on 是和活动相关人员 进行交 互软 件实体。通 常包含 工作列 表 (W o rk
10、 list 和工作列表管理器 (Wo rkli st H andler 两个关键 组成部分。(6 外部应用调 用组件 (Invoked A pp licati ons 是指 工作流 实施服务在过程运行 中调用处理应用数据外部应用程序。(7 其它 工作流 实施 服务 组件 (O t her W o rkfl ow Enact m ent Serv ices 是不 同工作流管理系统之间互操作。3 测试步骤相关概念在具体讨论软件 测试步骤定义及其监控之前 , 我们先明确 文中所述多个和软 件测试 步骤相 关概念。 首先我 们先讨 论一下软件过程定 义。软件过 程是软 件工程 界讨论 和研究 热点之一
11、 , 依据 C MM (能 力成 熟度 模型 观 点 , 软件 过程 是指软件开发人员开 发和维护软件及相关产品一套行为、 方 法、 实践及变换过 程1; 从工 作流 角 度理 解 , 软件 过程 是软件生存周期中为达成 某个目标而 必需实 施所 有软件 工程活 动集合 6。依据 软件 过程 定义 , 我 们给 出软 件测 试过 程及 相关概念定义以下 :定义 1 软 件测试过 程是在 软件测 试中为 达成某 个目标 而必需实施全部活 动集合。定义 2 测试阶段是软件测试 过程中子 过程 , 是依据某 种要求对测试过程进 行一个划分。定义 3 测 试步骤是 由测试 阶段以 及这些 测试阶 段之
12、间 转移关系、 各测试阶段相关数据和测试步骤控制项等构 成。定义 4 测试步骤控制项是依 据测试过程 管理需要 , 从 各个测试阶段中提取 出来阶段完成所必需满足前置条件。定义 5 测 试步骤模 板指 是用户 能够在 不一样 项目中 进行重用测试步骤 。定义 6 测 试步骤实 例是指 测试流 程模板 和某个 具体测 试项目相结合 , 设定了测试 步骤模 板中 相关属性 , 用 来对具 体测试项目标步骤进 行控制。软件测试过程一 般包含四个阶段 , 即测试策划、 测试设计、 之间关系、 测试步骤控制项和测 试阶段 基数 (测试流 程所包 含测试阶段 个数 。测试 阶段 之间 关 系主 要有 串行
13、 和并 行两种关系。测试阶段主 要包含计划起 止时间、 实际 起止时 间、 运 行状 态、 启用状态等属性 , 其中运行状态 有未开始、 活动、 暂停、 完成 四种状态 , 只有测试阶段处于活动状态时测试阶段中功效才 能被使用 , 处于其它三种状态时全部不能被使用。启用状态包含 启用和禁用两种 状态。测 试阶段处于禁用状态时 , 不受测试流 程所定义约束 所控制 , 测 试阶段 中功 能能够 被任意 使用 ; 测试阶段处于启 用状态时 , 测试阶段将受到测试步骤所定义 约束控制。测试步骤控 制项关键有启用状态和完成状态两个属性 : 启用状态包含启 用和禁用两 种状态。测 试步骤 控制项 处于启
14、 用状态时 , 它在测试步骤中 起作用 ; 测试 步骤控 制项处 于禁用 状态时 , 它在测试步骤中不起作用。完成状态包含未完成和 完成两个状态 , 分别表示测试步骤控制项中定义条件是否满 足。测试阶段和 测试步骤控制项之间关系是 , 一个测试阶段 中可能包含多个 测试步骤控制项 , 一个测试步骤控制项只可能 属于一个测试 阶段。一 个测 试阶 段如 果受 步骤 控制 (即 测试 阶段启 用状 态处 于 启用 时 , 那么 该 测试 阶 段 完成 条件 是 :当测试阶段计划终止 时间到 达时 , 属于测 试阶段 启用 状态为启用测 试步骤控制项完成状态均必需为完成。测试步骤模 板就是没有对 测
15、试步骤 相关 信息进 行设定 , 能够被多个项目所使用测试步骤。测试步骤实例就是对 测试步骤模板中 相关信息进 行设定并 用于对 具体项 目进行 控制测试步骤 。测试 步骤模 板和测试 步骤实 例之间 关系 就仿佛面向对象 技术中类 (C lass 和对象 (O b j ect 关系。本文首先设 计一个步骤定义工具 , 对测试步骤模板进行图 形化定义 , 针对具体测试项目对测试步骤模板进行实例化生 成测试步骤实例 , 然后经过对测试步骤实例实施和监控对测 试项目进行控制 。4 测试步骤定义和监控4 1 测试 步骤定义和监控系统框架依据软件测试过程 特点 , 本文对图 1工作流管理系统 参考模型
16、进行了 简化 , 将测试步骤定义和监控系统结构分为 五个模块。其 UM L 用例包图表示图 2所表示。其中 , 测试步骤定义组 件、 软 件测试 步骤执 行和监控 组件 和管理组件 将在 下面说 明。测 试应 用组 件 (测试 过程 管理 工具关键内容 关键用 于管 理各测 试阶 段内 部 数据 流转 和操作 ; 数据外部组件关键用于对测试步骤实例实施中一些 实际数据进行相 应描述和外部处理 , 这两部分内容并非本 文叙述关键 , 不再赘述。44 计算机应用研究 4 2 测试步骤 定义和实例化从实现角度讲 , 测试步骤是用于定义测试过程中测试 阶段及其关系 , 其中包含指 明测试 阶段 开始和
17、 结束条 件、 测试阶段本身 信 息以 及测 试阶 段中 测 试流 程控 制项 等。 对测试步骤定义 , 能够采取基于文本和基于图形可视化两种 方法。为了方便用户使用以 及测试步骤定义直观性 , 本系 统采取可视化图形定 义方法定义测试步骤。4 2 1 测试步骤定义测试步骤是由测 试阶段和 这些测 试阶段 之间 转移关 系、 各测试阶段产生相关数据和测试步骤控制项等四种关 键元素组成 , 同时这四种元 素之间 有多种 关系 , 各个元 素本身 又有其本身特点。测试步骤定义 是指利用现有测试步骤 , 经过淘汰或 新建一个测试步骤作 为控制具体测试项目标能够重用资源 , 这些资源被称为测试 步骤模
18、 板。这些操 作均采 用可视 化图形 操作方法 , 在测试步骤模板 可视 化绘制 和显示中 , 本 文采取 了 UM L 活动图建模 符号 子 集 , 包含 起始 图 元、 测试 阶 段图 元、 并发同时图元、 连接图元和结束图元 五种图元。起始图元、 结束图元、 并发同时图元、 连 接图元 基础和 UM L 保 持一致 , 测 试阶段图元采取 UM L 中活动图元表示。图 3为利用测试流 程定义工具绘制串 并行四阶段测试步骤。其中 , 并行意义 表示除了测试阶段 起止时间能够重合之外 , 其它前置条件 均相同 ; 串行意义是指后面测试阶段开始受制于前面测试 阶段是否完成。用户经过图形化 方法
19、绘制测 试步骤 中测 试阶段 和它们 之间串并行关系。绘 制测试 步骤控 制模板 保留时 必需对 以下规则进行正当性 检验 :(1 图元规则。必需有且 仅有一个起 始图元 和结束图 元 ; 步骤图中测试阶段图 元数目必需小于等于步骤模板基数 ; 流 程起始图元入度必 须是 0, 除步骤起始 图元外所 有图元 入度必需大于等于 1; 步骤 结束图元出度必需是 0, 除步骤结 束图元外全部图元 出度必需大于等于 1; 起始图 元和结束 图元不能相连 ; 除了并发同 步图元 外 , 所 有图元 之间 连线不 能超出一条。(2 测试阶 段规 则。测试 阶段 名称 必需 在预 先定 义 测试阶段名称集合
20、中 , 测试阶段之间次序必需满足一定约 束。比如 , 假如预先定义了四个测试阶段 , 即测试 策划、 测试设 计、 测试实施和测试总结 , 那么就 不能定 义一个 名称为 测试准 备测试阶段 , 测试设计要 么和测 试策划 并行 , 要么在 测试策 划以后出现 , 不能将测试策划放在测试设计以后。用户在完成了测 试阶段和 相互之 间转 移关系 定义 后 , 能够对属于各 测试 阶段 流 程控 制项 启 用状 态进 行设 定。在四阶段测试步骤中 , 测试步骤控制项启用状态为启用 意义和所属测 试阶段如表 1所表示 。4 2 2 测试步骤实例化软件测试步骤 实例化是指 对选择 测试 步骤模 板所进
21、 行一系列操作。这些操作包 括 :首先要针对具体测试项目 依据需要选择一个测 试步骤模板 , 然后设定测试步骤控制所必 需信息 , 在经过了正当 性检验 以后 , 最终启 用步骤。 实例化表 1 测试步骤控制项启用意义及所属测试阶段表测试步骤控制项名称启 用 意 义 所属测试 阶段控制项 目组人 员定义测试项目责任人最少需 要为该项目 指定一 个测试员、 一个开发人员、 一 个测试分 析员以 及测试设计员和质量确保员测试策 划控制测 试需求 定义测试项目责任人必需定 义该测试项 目标测 试需求测试策 划 控制测 试计划 提交审批测试计划文档必需提交审批 测试策 划 等候测 试计划 审批经过测试
22、计划文档必需审批经过 测试策 划 控制测 试需求 细分和人员分配必需进行初始测试需求细分和人员分配 测试设 计 控制测试项覆 盖系统判定每个测试项至 少有一个测 试用例 覆盖测试设 计控制测 试用例 提交审批每个测试用 例必需 提交 测试 用例 审批 , 否 则无法从初稿状态成为 定稿状态。测 试用例 状态必需全为定稿状态测试设 计控制测 试说明 提交审批测试说明文档必需提交审批 测试设 计 等候测 试说明 审批经过测试说明文档必需审批经过 测试设 计 控制测 试就绪 审批测试就绪文档必需审批经过 测试执 行 控制软 件问题 归零没有软件问题处于打开、 新建、 待验状态 测试执 行 控制测 试
23、用例 执行结果每个测 试用 例 执 行结 果 必需 均 不是 未 执行 , 阻碍测试或部分测试测试执 行 控制测 试用例 执行每个测试用例必需拥有最少一个实施结果 测试执 行 控制测 试任务 执行全部测试任务必需是完成状态 测试执 行 控制测 试总结 报告提交审批测试总结汇报文档必需提交审批 测试总 结 等候测 试总结 报告审批经过测试总结汇报文档必需审批经过 测试总 结 测试步骤模 板实例化中需 要对测试 步骤相 关所 有数据 进行设定 , 包含测试阶 段、 测 试步骤 控制项 信息设 定。测试 阶段中关键对测 试阶段计 划起止时 间、 运行状 态进行 设定 ; 测试步骤控制项 关键对测试步
24、骤控制项启用状态进行设定。 测试步骤模 板实例化完成后 , 数据正当性检验必需经过后 才能启用步骤 , 对实际测试项目进行控制。这里所说正当性 检验就是对以下 规则进行检验 :必需对测试 阶段计划起止时间进行设定 ; 各个测试阶段 起止时间不能 超出测试项目标时间范围 ; 测试阶段计划结 束时间不能早于 计划开始时间 ; 一个测试阶段假如有前序测试 阶段 , 那么它计划开始时间必需晚于前序测试阶段计划结 束时间。4 3 测试 步骤实施和监控测试步骤 实施和监控 是工作流 引擎 一个简 化。测试 步骤实施关键 是指依据测试 阶段计 划起止 时间以 及测试 阶段之间约束 关系对测试阶 段实施自 动
25、开启 和自动 完成功 能 ; 依据测试步骤控制项启用意义对测试过程产生数据和 文档进行统计 , 并设定测试步骤控制项完成状态。测试步骤 对应用程序控 制关键是依据 测试阶段 和测 试步骤 控制项 多种状态为测 试应用程序提供访问接口 , 进而对应用程序进 行控制。(页 45第 2期 郑小军等 :基于工作流技术软件测试步骤定义和监控式函数及径向基函数 相互比较 , 最终确定采取最常见径向基 函数 ; , C 等参数 采取 交叉 验证 方法 (C ross V ali dati on , CV 确 定为 =1, C =103; 使用 SVM C l assifi er MATLAB T oolbo
26、x 工具 包进行试验分析 , 数据为 20个 测试样 本点。估计 结果显 示如 图 2 所表示。图 2和图 3所表示 , 两幅图中 * 和 o 分别 表示测试 样本集中信用好企业和信用 差企业。图 2表示 20个测试 点真实值 , 图 3表示 20个 测试 点 预 测值。 能够 看出 , 20个测试点中绝大部分 点被正确划分 , 只有极少点划分错误。 2 3 结果分析表 1列出 了 S VM 和 PP 模 型 结 果 , 同 时 和 神 经 网 络 (NN 所建模型结果进行了比 较。神经网 络使用 是 BP 算 法 , 因为神经 网络方法并 不是一个 稳定方法 , 故表 1中神经 网络结果是
27、15次平均结果。表 1中第 一类错误是指将信 用好企业评判为信 用差企业 , 第二类错误是指将信用差 企业评判为信用好 企业。可 以看出 , S VM 和 PP 在 测试样本 集 中 预 测 准 确 率 达 到 了 90%, 明 显 好 于 NN 模 型 83 17%; 我们还发觉 , S VM 和 PP 第一 类错误 率和第 二类错 误率均小于 NN 第 一类 错误 率 和第 二类 错 误率 ; 从 识 别速 度 , 也就是指将原 始数 据输 入计 算机 得到 最终 结果 时 间上 看 , S VM 和 PP 也有很大提升。3 结论一个基础 模式识别系统 关键是 由数据 获取、 预处理、 特
28、 征提取和选择以 及分类决议 所组成。本 文关键 对其后 两部分 进行了讨论 , 提出了一个基于投影寻踪和支持向量机模式分 类方法。该方法首先利 用投影 寻踪对传 统指 标进行 特征提 取 , 把多维评价指标综合成 一维投 影指标 , 然后 经过支 持向量 机结构广义最优 超平面。试验表明 , 这一方法大大降低了特征 空间维数 , 并有很好分类正确率。参考文件 :1李祚泳 . 投 影寻 踪 技术 及 其应 用 进展 J.自 然杂 志 , 1997, 19(4:224-227. 2Vapn i k. 统计学习理 论本质 M.张学 工 . 北京 :清华大 学出版 社 , .3黄晓荣 , 付强 ,
29、梁川 . 投影寻踪分类模型在工程评标中应用 J.哈尔滨工业大学学报 , , 36(1:35-38. 4M L Ray m er , et a l . D i m en si onalit y Reducti on U si ng Gen etic A l go -rit hm sJ.I EEE T ransacti on s on E voluti onary Co m putation , , 4(2:164-171. 5Fri edm an J H, Tu rkey J W. A P roj ecti on A l gorith m for E xp l oratory Data Anal
30、 ys i sJ.I EEE T rans . on C o m pu ter , 1974, 23(9:881-890. 6邓乃扬 , 田英杰 . 数据 挖掘中 新 方法 支持 向量 机 M .北京 :科学出版社 , .7丁欣 . 国外信用风险评定方法发展现实状况 J.湖南大学学报 (社会科学版 , , 16(3:140-142.8刘闽 , 林成 德 . 基 于支 持向 量机 商 业 银行 信用 风险 评定 模型J.厦门大学学报 , , 44(1:72-75.作者介绍 :赵晓翠 (1981-, 女 , 山东东阿人 , 硕士硕士 , 主 要研究方向 为运筹和 优化 、 支持 向量机 ; 王 来
31、生 (1954-, 男 , 吉 林人 , 教 授 , 博导 , 主 要研究 方向为运筹和优化 、 数据挖掘等 。(上接第 45页 人员 对测试 步骤进 行查看 和人工 干预 控制。测 试步骤查看功效是指 以图形化方法提供对测试步骤查看 , 关键包含以颜色来实 时反应测试阶段四种状态、 以对话框来 查看测试阶段计划 起止时间和测试步骤控制项完成情况。 测试步骤人工干预控 制功效是指 以图形 化方 式对测 试步骤 进行人工变更 , 关键包含变 更测试 阶段计 划起止时 间、 变更测 试阶段运行状态 (图 4 和变更测试步骤控制项启用状态。5 小结本文首先对软件 测试步骤相关概念进行了叙述 , 然后
32、从 概念层到实现层具体 叙述了测 试步骤 定义、 实施 和监控机 制。 本文所提出概念和 方法已经在 北航软 件所开 发测 试过程 ite 0, 实 项目标测试过程 和相关文档和数据有效管理 , 提升了软件 测试工作效率 。 参考文件 :1美 卡耐基梅隆大学软件工程研究所 . 能力成熟度模型 (C MM :软件过程改善指南 M.北京 :电子工业出版社 , .2张春霞 , 苏秦 . 软件测试过程 分析 J .计算机 应用研究 , , 21(5:46-48, 51.3W ork flo w M an age m en t Coa li ti on.T er m i nol ogy &G lossa
33、ry Z .W F M C-TC-1011. Iss ue 3. 0, 1999. 4W ork flo w M anage m en t Coalition .The W ork fl ow Ref eren ce M od el Z.W F M C-TC00-1003, 1995.5庞岩梅 , 晏 海华 . 基于 工作 流技 术 软 件过 程定 义和 追踪 机制J.计算机工程和应用 , , 39(26:69-72.6陶伟 . 以体系结构为中心软件产品线开发 D .北京 :北京航空航天大学 , 1999.作者介绍 :郑小军 (1980-, 男 , 陕西渭南人 , 硕士硕士 , 主 要研究方向 为软件质 量确保 ; 刘超 (1958-, 男 , 北京人 , 教授 , 硕士 , 关键 研究方向 为软件工 程 ; 晏海华 (1964-, 男 , 湖南益阳人 , 副教授 , 硕士 , 关键研究 方向为软 。88 计算机应用研究