一种基于web的软件测试实训系统及方法

文档序号:9375473阅读:302来源:国知局
一种基于web的软件测试实训系统及方法
【技术领域】
[0001] 本发明属于网络教育技术和软件测试技术领域,特别涉及一种基于WEB的软件测 试实训系统及方法。
【背景技术】
[0002] 在软件开发过程中,软件测试是保障软件质量和可靠性的重要手段。软件测试使 用人工或自动方式来运行或测试某个系统,其目的在于检验它是否满足规定的需求或是弄 清预期结果与实际结果之间的差别。在优秀的软件企业中,测试人员和开发人员的比例通 常为1:3,在部分企业中此比例甚至高达2:1。以微软为例,早在1999年开发Windows 2000 操作系统时,投入了 250多个项目经理、1700多个开发人员,而内部测试人员则达到3200 人,测试人员比例远超过一半。
[0003] 相比国外,我国软件测试行业的发展仍处于起步阶段。调查显示:
[0004] (1)尚有51%的软件公司没有专门的软件测试部门;
[0005] (2)超过19%的软件公司测试人员与开发人员的比例低于1:7 ;
[0006] (3)国内软件测试人才缺口高达30万,超过74%的软件公司有扩大测试人员的需 求,其中68%以上的软件公司更是计划大规模招聘软件测试人员;66%的软件公司不断增 加测试人员的薪资。
[0007] 总体而言,国内IT产业对软件测试逐步重视,测试职位发展潜力大、前景好,并且 需要大量人才进行补充。针对软件测试人才缺乏的现象,各高校相继开设了软件测试课程, 软件测试是一门实践性很强的技术。在软件测试教学中,教师应当配合理论教学对学生进 行实践训练。然而如何有效地开展这种实训、是一个具有挑战性的问题。其原因至少有以 下几点:
[0008] (1)很多高校尚未开设软件测试实验课,因缺少教师的辅导、课外的实践性练习很 难展开;而在开设了实验课的高校中,由于实验课的时间所限、教师也很难同时为每个学生 提供个性化的实时辅导。
[0009] (2)在传统的实践性练习中,教师不仅需要设计被测程序和程序缺陷,而且需要人 工地评估每个学生的测试效果,因此教师的教学负担重、效率低。
[0010] (3)实践性练习往往依赖于特定的软件测试工具;然而现有的测试工具种类繁 多、学习周期较长,有些工具价格不菲,因此教师难以从中选择合适的工具。
[0011] 据调查,国内大部分与软件测试教育有关的学习系统均以资料分享为主,部分系 统提供题库系统模拟传统的笔试,但很少见到能提供软件测试实践模拟和实时反馈的系 统,且尚未见到能自动提供个性化指导的游戏式软件测试实训系统。鉴于此,有必要设计并 发明一套可减轻教学负担、提高教学效率、激发学习兴趣、改善学习效果的软件测试实训方 法及其系统。

【发明内容】

[0012] 本发明的目的在于克服现有技术的缺点与不足,提供一种减轻教学负担、提高教 学效率以及提高学习效果的基于WEB的软件测试实训系统。
[0013] 本发明的另一目的在于,提高一种上述基于WEB的软件测试实训系统实现的实训 方法。
[0014] 本发明的第一目的通过下述技术方案实现:一种基于WEB的软件测试实训系统, 所述系统的架构自下而上分为数据层、业务逻辑层和表现层,所述数据层包括关系型数据 库,用于存放软件测试实训相关的数据;
[0015] 所述业务逻辑层包括:
[0016] 用户服务模块,用于提供用户注册、用户登入和用户信息管理;
[0017] 课堂服务模块,用于提供相应用户开设课堂和管理选课用户以及为选课用户提供 课堂选择;
[0018] 测试任务服务模块,用于提供课堂中的测试任务以及查看完成该测试任务用户的 成绩,并且每个测试任务中包含一个带有缺陷的被测程序;
[0019] 执行服务模块:针对用户给出的每个测试用例,执行服务模块通过测试用例执行 对应测试任务中的被测程序;针对用户所找到的每个被测程序缺陷,执行服务都提供多个 缺陷改错选项供用户选择;针对用户所选择的每个缺陷改错选项,执行服务模块首先生成 测试任务中带有缺陷的被测程序的副本,然后根据用户所选的缺陷改错选项修复带有缺陷 的被测程序的副本,最后编译修复后的被测程序副本,并通过用户给出的测试用例执行修 复后的被测程序副本;
[0020] 分析服务模块,对于被执行的测试用例,分析服务模块用于判断该测试用例是否 正确,当测试用例正确时,进而判断通过此测试用例能否发现被测程序的缺陷,若能,则分 析服务模块定位所发现的缺陷在被测程序中的位置、同时提供缺陷修复方案;在被测程序 的修复环节,分析服务模块用于将其提供的缺陷修复方案与用户给出的缺陷改错选项进行 对比,从而判断用户该是否已正确地选择缺陷改错选项来修复此缺陷;分析服务模块使用 基本评价指标记录用户在一个测试任务中的表现,然后根据基本指标生成综合评价指标;
[0021] 以及报告服务模块,用于抽取分析服务模块所生成的基本评价指标和综合评价指 标数据,并且生成相应的报告,然后传递给表现层渲染页面使用;用于报告被用户发现和被 修复的被测程序中的缺陷;
[0022] 所述表现层包括交互模块,用于在服务器端进行页面渲染和跳转,在浏览器端实 现浏览器与服务器的异步交互。
[0023] 优选的,所述关系型数据库中存放的软件测试实训相关的数据包括基本表及其字 段,其中基本表包括用户信息表、课堂表、课堂限定用户学号表、测试任务表、被选的测试任 务表、选课表、完成任务表和测试用例表;所述用户服务模块注册的用户包括教师角色用户 和学生角色用户;所述课堂服务模块提供教师角色用户开设课堂和管理选课学生角色用户 以及为选课的学生角色用户提供课堂选择;所述测试任务服务模块为教师角色用户提供在 课堂中选择加入测试任务。
[0024] 优选的,执行服务模块包括执行测试的子服务模块和执行修复的子服务模块;
[0025] 执行测试的子服务模块,用于接收用户给出的测试用例,并且抽取测试用例的输 入数据,针对对应测试任务中被测程序的.class文件进行插装,然后在虚拟机上通过用户 给出的测试用例执行插装后的被测程序,并且在执行时获取被测程序的语句覆盖信息;
[0026] 执行修复的子服务模块,用于接收用户所选的被测程序缺陷改错选项,生成测 试任务中带有缺陷的被测程序的副本,然后根据用户给出的被测程序缺陷改错选项修复 带有缺陷的被测程序的副本,最后重新编译修复后的被测程序副本得到修复后被测程序 的.class文件,对此.class文件进行插装,并且执行测试的子服务模块通过用户给出的测 试用例执行修复后的被测程序副本,在执行时获取修复后的被测程序语句覆盖信息。
[0027] 更进一步的,所述执行测试子服务模块中,针对对应测试任务中被测程序 的.class文件进行的插装包括以下两类插装:第一类插装在被测程序的每条可执行语句 的字节码之前都插入探针以统计该语句被执行的次数;第二类插装在被测程序中的每个带 有缺陷的语句之前都插入探针以判断该缺陷语句是否被执行,并在此缺陷语句被执行时输 出其相应的缺陷编号;通过用户给出的测试用例执行上述两类插装后的被测程序,获取到 测试用例对被测程序的语句覆盖信息以及测试用例所发现的缺陷的编号;
[0028] 执行修复的子服务模块中,针对修复后被测程序的.class文件进行插装的过程 如下:在修复后的被测程序的每条可执行语句的字节码之前都插入探针以统计该语句被执 行的次数;通过用户给出的测试用例执行此修复插装后的被测程序,获取到测试用例对修 复后被测程序的语句覆盖信息。
[0029] 更进一步的,所述分析服务模块使用基本评价指标记录的用户在一个测试任务中 的表现包括完成一个测试任务所用的测试用例总数,语句覆盖率、分支覆盖率、修复尝试次 数、修复缺陷数和耗时;根据基本指标生成综合评价指标包括被测程序缺陷的查全率、查准 率、修复能力和速度;对于一个课堂中完成测试任务的所有用户分析服务模块还生成完成 这项测试任务的用户平均成绩和每个用户的成绩排名。
[0030] 本发明的第二目的通过下述技术方案实现:一种基于WEB的软件测试实训方法, 包括在数据层、业务逻辑层和表现层的实训步骤,
[0031] 数据层实训步骤:在数据层,通过关系型数据库存放软件测试实训相关的数据;
[0032] 业务逻辑层实训步骤,
[0033] S1、用户服务:首先进行用户注册、用户登入和用户信息管理的用户服务;
[0034] S2、课堂服务:为相应用户开设课堂和管理选课用户以及为选课用户提供课堂选 择;
[0035] S3、测试任务服务:为用户提供课堂中的相应测试任务以及查看完成该测试任务 用户的成绩,并且每个测试任务中包含一个带有缺陷的被测程序;
[0036] S4、执行服务:针对用户给出的每个测试用例,通过测试用例执行对应测试任务中 的被测程序;针对用户所找到的每个被测程序缺陷,执行服务都提供多个缺陷改错选项供 用户选择;针对用户所选择的每个缺陷改错选项,执行服务模块首先生成测试任务中带有 缺陷的被测程序的副本,然后根据用户所选的缺陷改错选项修复带有缺陷的被测程序的副 本,最后重新编译修复后的被测程序副本,并通过用户给出的测试用例执行修复后的被测 程序副本;
[0037] S5、分析服务:对于执行服务中用户给出的测试用例,首先判断该测试用例是否正 确,当测试用例正确时,进而判断通过此测试用例能否发现被测程序缺陷,若能,则分析服 务模块定位所发现的缺陷在被测程序中的位置、同时提供缺陷修复方
当前第1页1 2 3 4 5 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1