前言:一篇好文章的诞生,需要你不断地搜集资料、整理思路,本站小编为你收集了丰富的软件测试报告主题范文,仅供参考,欢迎阅读并收藏。
关键词:软件测试;测试管理;管理系统;第三方测试服务
中图分类号:TP31 文献标识码:A文章编号:1007-9599 (2011) 01-0000-01
The Test Management System Design&Implementation Based on Third-party Testing Service Processing
Yang Song1,Su Jia1,Chen Lei2
(1.Information Engineering School,Communication University of China,Beijing100026,China;2.China Software Testing Center,Beijing100048,China)
Abstract:In recent years,more and more prominent position of software testing, it also brings the rise of third-party testing services,with the continuous development of software testing and the progress of third-party testing services, software test process management tools and an increasingly diverse.By analyzing the status of software testing management system and found that there is an existing similar products are not uniform processes,platforms such problems binding. According to the above questions,refer to third-party testing service process,the paper design and implementation of the B / S structure software test management system that uses web2.0 design process in line with national quality assurance system, regulate the flow of third-party testing services to achieve platform independence,which can effectively ensure that the software testing process, software testing process standardized.
Keywords:Software testing;Test management;Management system;Third-party testing service
从软件质量保证的方面来说,软件测试是软件质量保证一个重要环节,通过软件测试来验证软件是否满足了需求,验证产品是否满足内部质量和外部质量[1]。近些年来,国内外在软件测试管理系统方面涌现出了很多产品,但是这些测试管理系统大部分都是依据各自的测试流程设计的,方式单一。同时大部分在测试管理系统的体系结构上都C/S结构的,不能满足跨平台操作系统测试的需求[2]。
软件测试管理是一种活动,可以对各阶段的测试计划,测试用例,测试流程,测试文档等进行跟踪、管理并记录其结果。针对上述问题,依据软件测试管理流程,本文介绍了笔者参与设计和实现的基于第三方测试流程的B/S架构的软件测试管理系统,采用了和Microsoft SQL Server2000进行开发,兼顾效率和灵活性,确保了软件的质量。
一、B/S架构的软件测试管理系统的设计与实现
(一)测试工作流程分析
在测试工作之初,就是要制定测试计划,测试计划的制定主要是依据被测系统的需求文档、设计文档等相关文档。制定测试计划后,根据测试技术和测试需求设计测试用例并制定测试过程文档格式;应用测试用例进行测试,同时记录测试缺陷,同步填写测试过程文档;同时将测试缺陷提交到缺陷管理模块;根据测试过程总记录的缺陷和测试记录进行缺陷分析;最后将测试缺陷、对应的测试问题分析和测试结果输出到测试报告生成模块产生测试报告。
(二)测试管理系统的设计
本测试管理系统采用三层架构的设计方式,应用和Microsoft SQL Server 2000进行的设计。测试工程师通过浏览器访问测试管理系统,通过用户名和密码登陆系统,访问系统各个模块,测试结果通过表现层经业务逻辑层的处理存储到数据库。测试管理系统部署在Microsoft Windows 2003操作系统中,因为应用了B/S架构,因此避免了平台相关性。
其中,系统管理员主要是通过系统和各个注册职员的角色分配任组建测试团队和分配测试内容。项目经理主要负责整体测试项目的管理,其中包括:测试需求的制定、测试方案的撰写、测试执行过程、以及测试执行过程中缺陷库的更新并对测试结果进行分析、审查测试报告和撰写测试总结,属于监管控制角色。测试工程师主要任务是参与测试设计计划和撰写测试方案,更新缺陷库中的信息以及撰写最后的测试报告工作等,在测试管理体系中属于测试执行角色。
(三)测试管理系统的实现
第三方测试服务的测试过程中,用户、开发方和测试方形成了相互制约的关系。但三方的目标都是希望被测系统符合需求、能够稳定运行。本测试管理系统主要由权限管理、需求管理、测试计划管理、测试执行管理、缺陷管理和测试报告管理这几个模块构成。
权限管理主要是由系统管理员通过对系统中各个角色分析后,进行人员的分配,组建测试团队,同时分配给团队测试任务,进行测试前期的准备工作。
需求管理主要是设计测试需求,首先制定测试需求及其工作分解结构,然后对其进行评审,评审不通过要就行修改,评审通过后产生测试需求报告,进入测试计划阶段。
测试计划模块主要是制定测试时间、安排测试任务、设计测试用例、设计测试步骤并完成测试计划文档,为测试执行部分做好一切的准备。
测试执行部分主要是以测试计划中设定的测试用例进行测试用例集编写,然后通过项目组评审通过后按照测试计划安排的测试时间安排进行测试工作。
缺陷管理模块主要是配合测试执行模块一起执行的,在测试执行过程中,发现问题,将缺陷上传到缺陷管理中,同时在回归测试的时候再将重点放到已测出缺陷上,同时修改已不再存在的缺陷,存入缺陷库。测试报告模块主要是根据以上所有的过程产生的文档,自动生成测试报告同时将缺陷分析结果写入报告中,为企业提供以后系统改进的依据和系统调优的建议。
二、结论
本系统依据第三方测试流程进行设计,采用了B/S架构避免了系统应用的系统相关性。系统分为权限管理、需求管理、测试计划、测试执行、缺陷管理和测试报告生成几大模块,同时实现了根据测试需求自动生成测试用例,依据未关闭的缺陷和测试过程文档自动产生问题分析报告的功能。本系统已经在几个测试项目中得到了应用,系统同时支持100人的在线和50人的并发压力,经实践检查本系统符合第三方测试服务的流程,能够满足第三方测试服务的要求。
参考文献:
[1]吴慧韫,李卓群.基于H模型的软件测试管理应用模型研究[J].计算机工程与设计,2006,27(11):1993-1995
[2]黄晓东,刘强环境下软件测试管理系统的设计和实现[J].武汉理工大学学报,2005,27(6):37-40
本指引为软件测试工作提供详细的指引,以提高软件开发工作的质量。
内容:
测试工作分以下几个方面进行:
安装与测试环境:
将程序单位的所有程序以及用到的公共子程序安装到指定的多用户测试环境,该环境应与程序实际运行环境一致;
将系统编译成可执行文件。
程序代码检查:
程序单位的首部应有程序说明和修改备注,内容包括编写或更改程序的人员、时间、程序的功能及调用关系等;
变量、过程、函数应符合统一的命名规则;
程序中不同的功能部分应有清楚的说明信息,较复杂的程序段落也应有说明信息;
如果是修改,在修改的代码处应有修改注释,注释说明修改的人员、时间及内容。
画面及报表格式检查:
画面、报表的格式以及程序的命名应符合统一的规则;
画面、报表的字段位置、长度、类型应与设计文档的要求一致。
功能测试:
如果有多个画面,多个画面之间切换正确;
每一个画面的功能键、触发键、按钮、菜单、选择项功能正确;
检查数据项的关联与限制功能是否正确;
找出设计文档中要求的未被包含在上述几项测试中的功能,逐项测试,检查是否达到设计文档要求的功能。
正确性测试:
有写/删除操作的程序,写/删除操作的结果正确,测试时应手工打开数据库表,以检查写/删除的效果;
有查询或报表操作时,检查在各种选择项的合理组合下,所产生的结果,对照数据库中的数据是否正确;
对照设计文档的要求,测试程序是否正确。
可靠性测试:
非法键容错测试:在不同的画面,不同的字段处输入非法键,被测试程序应有非法键容错能力;
异常数据容错测试:在不同的画面,不同的字段输入异常数据,被测试程序应有异常数据容错能力;
程序负作用检查,退出被测试程序后应恢复到进入前的系统状态,不应影响其它程序的正确运行;
残留文件检查,退出程式后在本地机和服务器的有关目录或TEMP目录下不应留下任何无用的文件。
效率测试:
本项测试需分开单用户及多用户的情况下进行。
画面操作效率测试:逐项测试每一项操作,特别是读/写、翻页、滚屏等操作,记录延迟最长的操作及时间;
报表及查询效率测试:分别选择最小范围(非空)的数据及最大范围(根据实际情况定)的数据,记下机器型号及产生结果所花的时间;
评价程序效率是否合理;
多用户测试:
随机测试:在两个或以上的终端同时多次进入和退出被测试程序,程序应正确无误;
共享测试:在两个或以上的终端同时调用被测试程序做同样的工作,程序正确无误;
同步测试:就程序中使用到的同步机构,有针对性地组织数据进行测试,有关同步的命令包括对数据库表、文件的共享,互斥操作,文件程序或记录的加锁、解锁,对公共数据区域的操作等。
测试报告:
进行软件测试的同时需填写软件测试报告,软件测试报告格式见附页;
每一项编程工作要经过程序员和测试工程师两级测试均合格后方可安装给用户;
填表说明:
表中程序员、测试工程师等空格由测试人员自己签字,当有多次反复测试时,日期填第一次通过测试的日期;
测试结果有两种填写形式,第一种形式由两个小方块“”提示,分别由程序员,测试工程师填写,当通过测试时填“√”。第二种形式由长条提示,需填写测试内容;
测试工程师发现问题时,要在测试备忘中记录签字,若问题较多可另用A4纸记录,然后退回程序员更正;
1.软件著作权申请
准备著作权申请表、软件设计说明书、源代码、申请书(盖章)、营业执照副本(盖章)、承诺书(盖章)这些资料提交(邮递)给版权局审核并付款,然后等待取证。
2.对软件进行测试
准备测试评价委托申请表、用户手册、软件设计说明书、软件包(刻盘)这些资料。把资料提交给计算机软件测评重点实验室,并约定测试时间、方式进行测试。测试完成后付款,最后等待测试报告。
3.软件产品登记
摘要:本文从“软件质量保证和测试”课程建设的重要性出发,从师资队伍的建设、教学内容的选择、教学方式的改革、实验大纲的设计、立体化教材建设和考核体系设计等方面详细介绍了浙江大学软件学院对于软件质量保证与测试课程的课程建设情况。
关键词:软件测试;软件质量;课程建设
中图分类号:G642
文献标识码:B
1 引言
随着信息技术的飞速发展,软件产品应用于社会的各个领域,软件质量的保证是一个人们普遍关注的问题。软件开发者想要高质量的软件产品,用户更希望能有稳定、方便、有效、经济的高质量软件产品。提高软件质量的重要途径主要有过程控制和软件测试。高校对软件质量保证和软件测试人员的培养担负着主要责任。对于软件学院来说,一个很重要的挑战是如何解决计算机专业特别是软件工程专业理论与实践严重脱节的问题。
本文分别就师资队伍建设、教学内容的选择、教学方式改革、实验大纲的设计、立体化教材建设、考核体系的设计等方面来阐述软件质量保证与测试课程的建设。我们的目标是培养应用型、复合型、国际化的高级软件人才。
2 师资队伍的建设
浙江大学软件学院对于师资队伍建设的思路是产学研一体化的教学框架体系。“软件质量保证与测试”课程是一门理论与实践并重的课程,既需要丰富的实践项目经验又需要深入的理论知识。按照以上思路,我们的师资队伍包括三个组成部分:外籍教师、本校教师、企业技术主管。其中,企业技术主管主要是来自道富公司的质量保证、测试经理。这门课的分工大致是外籍教师负责理论教学;企业技术主管负责学生的课程实践和项目培训;本校教师负责整个课程建设、联系以及对学生的指导,特别是指导英语学习有一定难度的学生。
另外,学院对于教师的再学习与培训也提供很大的支持,如支持教师参加国家软件测试中心的相关技术培训、国内外关于软件质量保证与测试课程学术交流等。
3 教学内容及其改革
“软件质量保证与测试”是为软件学院及相关专业的本科生开设的专业基础课。该课程按软件质量保证和测试的原理、软件测试技术和实践三部分组织内容,包括软件工程概述,软件测试和质量保证的基本概念、思想和方法,各种测试的方法和技巧,软件测试用例的设计;如何组织和管理软件测试项目、如何进行软件质量分析,最终建立全面的质量保证体系。通过本课程的学习,学生应基本上了解并掌握有效的测试策略、方法和技术,测试计划和测试用例的设计,测试自动化的应用,测试团队的建立和测试项目的管理,更清楚、准确地报告测试缺陷,对软件产品质量的正确评估以及软件测试和质量保证的关系和区别。
我们现行的教学大纲由理论学习和课程实践两部分构成。浙江大学将每年分成4个学期,每学期8周上课时间,而这门课的时间为一学期,总学时为48,按照2比1的学时来配置理论与实践部分,即课堂时间为32学时和上机时间为16学时。
目前教学内容安排如下:
4 教学方式改革
教学方式的改革主要遵循以下两条原则进行:
(1) 以案例教学为主线,通过丰富的实际案例引导学生对具体的质量保证概念、测试方法等有深刻的认识,同时也注重研讨式、启发式教学,鼓励学生尝试自己寻找资料解决问题。
(2) 加强综合性实验项目的训练,全面锻炼学生的团队组建能力、团队沟通合作能力、测试计划编写能力、测试用例设计能力、测试能力、组织文档能力。
5实验大纲的设计
本课程非常重视实践教学。我们学院特别聘请道富公司质量保证、测试经理来培训学生的实践动手能力。另外,除了布置适量的白盒和黑盒测试外,还专门布置设计了2~3套完备的全英文综合性实验设计、需求分析文档、各种支持文档、评分方法和政策。对于实验大纲的设计,我们还强调以下几个方面:
(1) 系统、综合性。以实际项目为背景,贯穿多个知识点,锻炼学生综合运用所学知识解决实际问题的能力。通过实践参与,学生可掌握质量保证的概念和过程,测试计划的制定,测试用例的设计、测试用例的执行、测试报告的书写、测试Bug的分析和描述。
(2) 团队合作。实验采用分组的形式完成,每组由5~7名成员组成,其中一人为组长。组长负责项目进展、分工协作、测试计划的制定等工作,其他组员分别就相关模块进行各自的测试策略、测试用例设计以及完成测试报告等。然后通过角色交换,充分发挥学生的沟通能力。
(3) 鼓励创新。鼓励学生发挥想象力,对各种测试方法进行尝试,在最后报告中要求写出具体的思路和分析结果。
6立体化教材建设
完善多媒体教材和教学资源(包括电子书籍、技术文档、实验平台、在线交流等),进一步加强网络资源建设,特别是教学素材库的建设。现有课程主页上的内容主要有:课程信息,包括教师队伍、课程描述、课程政策、详细的教学大纲、教学日历等;每节课的详细PPT课件;各类作业、解答以及往年的作业、试卷资料等;课程实践项目(project)的各种信息、支持文档,实验平台的链接等;网络资料库,包括电子教材、文档的收集以及与课程紧密相关的各种资料、网站等;在线留言版,与学生互动的模块,学生可完全匿名发表任何意见、建议和提问答疑,今后可进一步就该课程中学生容易疑惑的地方建立FAQ。
现在我们采用外教选编的电子课件、讲义作为主要教材并推荐相关英语教材。课程实践项目我们采用道富公司的实际项目对学生进行培训。我们下一步的目标是:
(1) 编写一本中文实验指导教材。
(2) 编写一本双语教学教材。
7考核体系的设计
软件质量保证与预测课程的考核将一改传统的由一次期末考试成绩决定学生的情况,这是因为该课程是一门理论与实践紧密结合的课程。对于考核体系的设计我们的具体思路如下:
(1) 改革课程考核,采取多因素评定学生课程成绩,而不是仅凭一次考试评定学生能力,从而调动学生学习热情,促进学生研究性学习能力的发展。学生的最终成绩由课程实践项目(40%)和期末考试(60%)组成。
(2) 强调评分的客观、公平和透明性。开学初就给定课程考核的政策和每个课程项目的详细评分标准。
(3) 学生参与评分。课程实践项目、尤其是分组项目,教师难以全面掌握每个学生的表现,但可以给整个团队评分,具体每个成员的分数则由学生参与自评。
参考文献
[1] 古乐,史九林. 软件测试技术概论[M]. 北京:清华大学出版社,2006.
[2] 古乐,史九林. 软件测试案例与实践教程[M]. 北京:清华大学出版社,2007.
[3] 杨根兴,蔡立志,陈昊鹏,蒋建伟. 软件质量保证:测试与评价[M]. 北京:清华大学出版社,2007.
[关键词]软件测试 课程体系 教学改革
[作者简介]李静(1969- ),女,陕西兴平人,河北北方学院信息工程学院,副教授,硕士,研究方向为教学设计、操作系统与软件测试;赵志升(1965- ),女,河北张北人,河北北方学院信息工程学院,教授,硕士,研究方向为教学设计、软件工程、数据挖掘。(河北 张家口 075000)
[中图分类号]G642.3 [文献标识码]A [文章编号]1004-3985(2014)02-0135-02
软件测试技术近年来发展迅速,已经成为与软件开发齐头并进的专业技术。软件测试工程师承担产品功能、性能、可靠性、易用性等全方位测试,保证产品质量,满足用户需求,保证企业信誉,是当前IT业界需求量骤升的热门人才。目前我国软件产业在产品功能和性能测试领域仍然存在着严重不足,软件测试的广度和深度已成为影响企业生存与发展的核心问题。培养大量的具备专业素养和高层次技能的测试人才,更好地推进我国测试行业和测试技术的长足发展,是高等院校必须担负的职责。
一、国内软件测试专业教育现状
自2000年软件测试技术在我国兴起至今十余年,软件测试人才随着软件行业的迅猛发展呈现出供不应求的态势。专业的软件测试机构、测试网站及测试技术培训机构等迅速发展起来。目前,国内许多高校已经逐步设有本科阶段软件测试方向的专业。2011年11月,由教育部主办的“2011年高等学校软件测试课程教学论坛”在上海同济大学召开,对国内软件测试人才的培养及测试领域的全面发展起到积极推动的作用。
1.社会培训模式与现状。当前国内业界一些知名网站主要承担起测试人才的培养职责,如51testing、达内科技、北大青鸟等,为测试行业输送了大批动手能力较强的测试人才。针对性很强的短期教育模式是社会培训的特色。培训机构通常按照助理级、初级、中级和高级测试人员安排培训内容。诸如北大青鸟等规模较大的培训机构引进欧美的混合教学模式,采用“理论知识+分模块项目实践+全真项目实训+职业素质训练”的模式,形成一个科学并且实用的培训体系。培训机构通常设立自己专用的教学平台,通过网络远程授课与集中化分期分班授课方式,在半年到一年的较短时期,培训出上岗快、操作熟练、针对性强的应用人才,而且很多学员直接通过测试工程师面试,并在后期工作中累积了较深厚的测试经验,成为测试领域的支撑力量。培训课程主要内容涵盖操作系统管理、网络应用与Web编程、数据库管理等专业课程,实训环节应用主流的测试工具,如Winrunner,Loadrunner,Rational Robot等。着重于实用性的项目实践和开发是培训机构与高校教育的最大区别。参加这些培训班已成为目前大学生岗前培训的主要途径。
2.高校专业教育现状。软件测试技术要得到广泛应用和深入发展,不能仅依靠社会办学,高校系统化的专业教学体系能够为学生奠定一个更加扎实和科学的专业基础,并对测试技术本身的学科化发展起到不可替代的作用。近三年来,软件测试技术作为专业课程逐渐在多所高校开设。目前,多数高校将“软件测试技术”作为一门独立课程设置,交叉课程主要为“软件工程”。当前一些高校开始申报软件测试专业,但是软件测试技术的学科化发展目前仍受到诸多因素的影响。主要是:(1)缺乏丰富的理论支撑。软件测试目前仍是发展中的计算机技术,专业论著少,适合于高校的教学材料非常有限,并且普遍存在知识结构不合理,教学内容不规范统一,论点少并缺乏依据,实验指导教材匮乏等问题。另外作为一门独立学科,与其他学科的交叉与相辅是理论体系的必要部分,测试技术与计算机领域诸多技术关联,相互结合教学是当前教改面临的问题。(2)目前通用性测试平台仍未完善发展与普及,在高校中缺乏结合教学实验内容的通用的实践平台,实验环境单薄。多数高校停留在泛泛讲授几个热门的测试工具的阶段,缺乏成熟、实用的测试环境来实践完整的测试项目。(3)教学模式上存在严重缺陷,专业培养过程中存在大量的不规范性和随意性。主要表现在:实践课程比例小,测试项目实例缺乏;理论课程知识结构不合理;教学理念和手段陈旧,脱离测试技术发展的实际与市场应用;不重视对学生从事软件测试职业素养的培养。尖端技术的学科化发展是高等院校的职责,建立一个科学、完整的专业教学体系是高等教育最为核心的问题。
3.当前推进测试技术应用的其他途径。除了专业公司培训和高校培养外,当前软件测试行业的发展还依赖于多种良好途径:校企合作、技术沙龙、测试专业微群、社会信息辐射等。新兴技术发展需要社会传播产生的广泛影响力来推动。以MPD(亚太软件研发团队管理)峰会、51testing等领衔的线下技术沙龙活动和巡回演讲,聚集了很多高端的测试人才,相互学习交流,积极推进软件测试行业的发展。一些较有影响的网络微群提供测试技术的交流和分享,如软件测试、敏捷测试、落地微群等,大量的测试人员和测试工程师提供测试过程管理、测试工作总结等资料,有很强的借鉴性。
软件测试行业的人才匮乏仍然是当今的重要问题。依照行业需求,软件测试人员配备应是软件开发人员的2倍,而目前我国软测人员与开发人员比例却仅在15至18之间。以高等院校专业教育为主,实现多种途径的人才培养是当前软件测试行业的当务之急。
二、高校软件测试专业课程体系建设
构建专业课程体系,需要设置好基础课与专业课、理论课与实践课、必修课与选修课的比例关系,并合理安排与协调课程相互间的分工与配合。建设科学完整的软件测试专业的课程体系是一个需要多方考证借鉴和不断探索完善的工作。
1.课程设置。软件测试是一门技术性很强的专业,对专业素养要求很高。在测试模式、测试方法上与软件开发的模式、开发平台直接相关。学生必须对操作系统、软件的逻辑结构以及物理存储过程、操作实现方法达到一定深度的了解和掌握,对于硬件的拓扑结构、物理结构要也需要尽可能多地熟知。在软件测试行业,对优秀人才的要求是拥有高敏感能力、高发散能力、高分析能力,而这些都是以扎实的理论基础为前提的。建设软件测试专业课程体系,应契合技术发展、学科发展与从业需求。经过多方考证,下表所述课程囊括的专业知识对于高层次的自动化软件测试技术的掌握必不可少。
由于计算机专业课程的关联性很强,一些专业课程可以相互结合教学。比如语言类,Shell等可以结合到UNIX/Linux操作系统课程中,HTML/XML可结合到.NET以及网络技术等课程中,PHP融入Web服务器配置等专业选修课程教学中等,避免专业内容交叉而造成的重复教学现象。在教学过程中,要将软件测试的思想广泛地渗透到所有的专业课程中。如在各类程序设计语言基础课程中引入单元测试的思想,在软件工程课程中强调软件测试的重要性,增强软件质量管理意识。当前微软、苹果、惠普等软件公司都推出完整的计算机应用与开发平台,从硬件、操作系统、集成开发环境到用户应用软件,基本上提供一条龙服务。以微软为首的测试框架开发也日趋成熟。高校需要从专业建设角度考虑,把握学科发展方向,汲取众家之长,将尖端技术和主流应用平台作为专业教学内容,在有限的学时之内统筹安排,让学生形成一个专业学习的整体思想,做到知识累积层次清晰、得到一个完整的专业知识体系。随着测试技术的快速发展,课程设置需要不断更新调整,既要考虑专业建设、学科建设,又要考虑市场需求和研发需求。合理选择、科学地纳入新知识到专业课程中,是需要不断探索和改革的无止境的工程。
2.教材选择。教材选择应当宽口径,除了主要教材之外,要为学生提供更多的辅助教材和资料,给学生自主学习的空间和时间。这方面要学习西方高等教育的模式,按照教学计划和教学内容,指导学生分期、分阶段大量阅读与课程相关联的专业资料,并汇总论点和典型实例展开讨论,开阔学生的眼界,培养学生独立思考、逻辑分析能力和探索精神。另外,教材选择应把握专业技术的最新发展,与专业领域的最新研究成果、社会培训资料等结合,及时更新教学内容。例如有经验的测试工程师撰写的技术开发、测试报告与测试总结等书籍资料,是完善和填充教材的重要知识源。
3.实验教学规划。(1)实验教学内容,应包括两部分:测试框架应用和测试项目实践。前者是指基于实验室配置的测试框架,选择针对操作系统或者客户端软件、网站等的服务性能测试案例,编写一些通用的测试脚本,在测试框架上实现完整的测试流程。后者是指选择实际的软件测试项目来组织实验教学内容。在测试项目实践中,需要提供给学生被测试的软件系统代码以及软件开发综述,包括需求分析、概要设计书、详细设计书等文档,便于学生真实地模拟实际工作中的测试流程。项目实践中,可将学生分成若干个项目组,分别设置测试经理、测试负责人、测试人员等角色,依照测试用例设计、测试任务管理、测试计划实施、测试过程监控、测试日志与测试报告管理环节,安排角色各司其职,协同完整测试项目,并对被测软件系统做出质量评审,撰写格式规范的质检报告。通过实验教学,使学生深入理解和掌握常用测试工具,如单元测试工具NUnit等应用,提升学生的项目管理经验和软件测试技能。(2)实验教材选择:实验教材选择应参考社会培训机构的项目实训资料,选择基于主流测试平台的项目实例教程,并结合测试技术的应用发展现状和高校测试环境,广泛筛选辅助资料,设置测试项目,丰富实验教材的内容。(3)实验环境配置:搭建面向高校教研的通用测试环境。当前各类测试平台及测试工具不断推出,种类繁多,但针对性较强,应用性能受到限制,缺乏可被广泛普及的通用型测试平台,导致测试过程缺乏通用性和稳定性、测试标准设定和测试价值评估无法明确等问题。建立一个通用测试环境对高校的实验教学和专业研究十分必要。通用测试环境应囊括软件测试管理平台、回归测试平台和性能测试平台功能。提供软件的文档审查、安装测试、功能性测试、易用性测试等测试项目,并能提交形式内容规范的测试报告。通用测试环境搭建需要高校结合专业研究项目实施二次开发。
三、面向从业需求的教学改革
1.注重面向市场应用的课程体系改革。为了更好地为社会培养应用型人才,高校应以企业岗位能力需求为标准,不断进行课程体系改革,构建“知识+应用+研究”的混合型课程体系结构,为学生从业后尽快适应工作岗位,担负起科技职能,并进一步从事测试技术开发与研究奠定基础。软件测试课程体系改革应基于不断发展的测试技术以及社会测试岗位的能力需求,从培养学生专业素养、测试技能、项目分析能力、探索开发能力等全面素质的高度进行必要的整合和重组,把学生应具有的知识、能力、素质结构作为课程体系改革的依据,组建模块化的课程结构。
2.注重面向从业需求的教学实践改革。面向从业需求,加强教学实践环节是高校实验教学改革的重要内容。目前很多高校与自己的合作企业签订培训合约,建立人才基地,共同开发软件和培训人才、交流人才,是教学结合实际应用的最佳模式。围绕着以企业需求为目标进行实验教学,使学生在真实的项目流程中对软件测试的完整过程与实施细节、管理机制与管理措施进行全面的了解,提高测试能力和积累测试经验,便于学生日后尽快适应实际工作,在专业技术岗位发挥人才作用。
3.注重培养学生的职业素养。高等教育为社会输送专业技术人才,不能忽视对人才职业素养的培养。在教学过程中要把专业素养、技能训练和职业素质培养有机结合起来。在学生实践与实习过程中,注重培养学生综合运用所学知识发现问题、分析问题、解决问题的能力,进而培养学生的技术应用和技术创新能力,并培养学生的团队合作精神和相互协作能力,提高将来从事测试行业的职业素养。应结合社会对软件工程师的岗位需求,设立面向毕业生的专项系列讲座,为学生提供面试技巧培训、竞争意识培训、沟通与协作技巧培训和就业指南等,是极具实效且必要的教育内容。依照国外标准,软件测试工程师应与架构师处于同一等级。从事测试行业必须具备扎实的专业基础、综合的个人能力和较高的职业素养,才能真正实现高端的自动化测试。
[参考文献]
[1]朱少民.软件测试方法和技术[M].北京:清华大学出版社,2005.
[2]钱丽.以就业为导向的软件测试课程体系改革探析[J].科技信息,2012(1).
[3]顿煜卿.软件测试教学过程中的思考和实践[J].计算机光盘软件与应用,2012(14).
关键词: 嵌入式软件; 软件测试; 路径覆盖; 基本路径测试; 覆盖率分析
中图分类号: TN919?34; TP311.5 文献标识码: A 文章编号: 1004?373X(2013)06?0063?03
0 引 言
目前,嵌入式软件已广泛的应用在各个领域:如工业控制、通信设备、信息家电以及航空航天等领域,应用越来越广泛,复杂性也日益增加。但由于嵌入式软件实时性强、I/O 通道少、内存资源受限、与硬件及硬件驱动紧密关联、CPU 种类繁多等特点[1],决定了嵌入式软件的开发和测试必须在交叉编译环境下进行,即开发及测试工具运行在宿主机上,而被测程序运行在软硬件资源紧张的目标机上。仅仅在开发环境下进行嵌入式软件测试,难以保障其测试结果的有效性;而仅在目标机上进行测试,由于软件运行的不可视性,又使得测试者难以知晓程序当前运行状态,以及代码的覆盖情况[2]。因此对嵌入式软件覆盖测试技术的要求也更高。
软件测试是一种有效地保证软件质量的重要手段。常用的软件测试方法有黑盒测试、白盒测试和灰盒测试。白盒测试中最成熟、最常用的方法是覆盖测试,它是一种动态软件测试方法[3]。覆盖测试是验证软件功能结构正确性以及查找问题的一种重要方法和手段。为了获取覆盖率信息,必须在获得被测程序结构 信息、静态数据流信息、控制流信息等基础上,加入一些探针,通过探针收集的信息来获得程序的执行路径、状态等控制流[4]。
路径覆盖测试是覆盖测试中的关键测试技术之一,目前已应用于程序覆盖率分析、测试用例设计、程序调试、性能优化等多个方面,是覆盖程度最高的测试。其基本原理是用最少的测试用例,覆盖程序中的所有路径,发现程序中最多的错误,安排测试计划、分配测试资源,并对实际测试所达到的覆盖率做出评估[5]。本文给出了路径覆盖相关理论,并在理论研究的基础上设计出了一种嵌入式软件动态测试系统框架,完成对被测程序的路径覆盖率分析,进而判断测试的充分性及弱点,从而进一步改进测试过程。
1 路径覆盖相关理论
路径覆盖使程序中每一条可能的路径至少执行一次。但在实际工作中,即使一个不太复杂的程序,路径数量往往也是较多的。要在测试中覆盖所有的路径是不现实的,而基本路径测试就是一种简化路径数的测试方法。
基本路径测试是在控制流图的基础上,通过分析控制结构的环形复杂度,导出执行路径的基本集,再从该基本集设计测试用例。为了清晰描述基本路径测试方法,需要对本文中用到的几个基本概念进行说明。
(2)Z路径优化:是指限制循环的次数,无论循环的形式和循环体实际执行的次数,简化后的循环测试只考虑执行循环体一次和零次(不执行)两种情况。
(3)环形复杂度:提供程序基本路径集的独立路径数量以及确保所有语句至少执行一次的测试数量的上界。可以通过下列两种方法来计算:对流图G,环形复杂度V(G)=E-N+2;或V(G)=P+1,其中P为包含在流图G中的判定节点数[6]。
(4)基本路径集BP:指软件可达路径的最小集合,等于环形复杂度V(G)。
(5)路径覆盖率计算:由基本路径集BP设计测试用例集T,使T理论上按BP执行。然后分析动态跟踪数据,构造实测路径集Pn。计算测试覆盖率PCP=×100%其中Pn=P(T1)P(T2)…P(Tn)。
2 嵌入式软件动态测试框架
嵌入式软件动态测试框架如图1所示。它包含宿主机程序插桩及数据处理分析和目标机数据处理两部分。
在嵌入式软件测试中,静态测试是基础,对被测软件进行代码规则检查、静态结构分析和代码质量评估;动态测试是必要补充,在目标机真实环境下或仿真环境下运行被测程序,采集动态跟踪数据,分析其动态行为[7]。
嵌入式软件路径覆盖测试的特点就是必须在交叉编译环境下, 通过物理通道传输完整的动态测试跟踪数据[8],分析数据后得到路径覆盖率。动态执行前先要检查目标机与宿主机的连接状况,确保测试正常进行。
2.1 被测试程序静态分析
静态分析并不真正执行被测程序,也不需要对代码进行编译链接,生成可执行文件。首先,对源码进行词法语法分析和变量分析, 找出不符合编码规范的地方,根据某种质量模型评价代码的质量,生成模块调用关系图、模块的程序流程图等。其次,从程序中提取必要的数据并保存,提供给后续的动态分析和测试报告使用。最后,根据模块的程序流程图绘制程序控制流图G,得到程序控制流图的边数E和节点数N,指导插桩库的建立,并根据Z路径优化法构造程序的基本路径集BP,构建动态路径覆盖测试的比较基础。
2.2 插桩技术
一般来说,对程序进行动态测试的时候,基本上要使用程序插桩来进行覆盖测试。程序插桩技术是保持被测软件逻辑完整性的基础上,在源代码中插入探针函数,它是一个子过程调用,调用的子过程能在运行到插桩点时记录下有关的运行情况,采集执行程序在真实环境中运行的控制流、数据流等测试数据[9]。插桩时需确保探针函数对源程序执行影响最小。
基本路径测试依赖探针插桩技术完成分支位置点标志位的采集。插桩位置最好选择在应用程序层,重点采集输入输出模块中的上层函数运行信息,底层模块加强单元测试,而在嵌入式软件模块集成时,默认这些模块是正确无误的。根据程序按块划分的原则,可以在子函数出入点、程序块控制流图G的分支节点、功能测试的重点变量处植入探针。
基本路径测试的插桩过程是静态的,数据收集过程是动态的,结束时需恢复现场。动态测试前,被测程序与插桩库连接,完成插桩操作,获取执行程序。执行程序交叉编译后运行于目标实际环境或者仿真环境下,通过探针函数返回动态测试跟踪数据[10]。
2.3 数据处理及分析
目标机在真实环境中运行可执行程序, 测试用例集T为运行输入参量, 探针采集数据为运行的输出参量。探针函数采集动态跟踪测试数据,传输给宿主机测试平台。宿主机测试平台对接收到的动态跟踪数据进行处理,计算出路径测试覆盖率,并结合数据处理过程中的测试日志分析出最后的测试报告。
3 测试实例分析
该航标数据采集模块由C语言开发, 根据插桩策略可以计算出插桩探针的位置、个数, 构造基本路径和实际程序执行路径, 计算路径测试覆盖率。部分测试结果分析如表1所示。
基本路径测试覆盖率大小涉及到测试的各个阶段,受到各方面因素的影响。比如,在该测试模块中,Rx_Data_Svr()和AddataConvert()程序中出现了多个判断语句和多个循环语句,可能的路径数目增长,以致影响路径覆盖率。
4 结 语
本文通过研究嵌入式软件测试的特点和路径覆盖测试的相关理论,给出了嵌入式软件动态测试框架方案。并结合实验室目前的项目,分析基本路径测试的各个步骤,得出路径测试覆盖率,进而达到测试目的。但是路径覆盖测试受多方面因素的影响,尤其是当程序中出现多个复合条件时,会大大的增加可能的路径数目,所以接下来的工作是进一步探讨插桩策略、测试用例生成等影响路径覆盖率的相关问题。
参考文献
[1] 范海霞.嵌入式软件覆盖测试的插桩技术研究[D].南京:南京航空航天大学,2010.
[2] 杨俊,张倩,林依刚.一种嵌入式软件覆盖测试方法[J].指挥信息系统与技术,2010,12(6):24?26.
[3] 李志伟.程序插装在软件测试中的应用研究[J].测控技术,2011,30(10):88?91.
[4] 张荣,王曙燕.基于插桩技术的动态测试研究与实现[J].现代电子技术,2011,34(4):50?52.
[5] 张志华,牟永敏.基于函数调用的路径覆盖生成技术研究[J].电子学报,2010,38(8):1808?1811.
[6] PRESSMAN R S.软件工程[M].北京:机械工业出版社,2007.
[7] 于全喜,张毅坤,胡燕京,等.嵌入式软件路径覆盖测试数据采集[J].计算机工程,2009,35(21):54?59.
[8] 施冬梅.嵌入式软件路径覆盖测试的研究[J].计算机测量与控制,2010,18(10):2236?2240.
关键词:高等职业教育;课程设计;校企合作;软件测试
DOIDOI:10.11907/rjdk.162329
中图分类号:G434
文献标识码:A文章编号:1672-7800(2016)012-0197-03
0 引言
随着软件技术在社会各领域的广泛应用,人们开始越来越关注软件产品质量,软件测试作为软件质量保证的重要途径也因此受到行业领域的关注与重视,软件测试岗位的就业前景也变得越来越好。在《国务院关于加快发展现代职业教育的决定》中,提出“深化产教融合、校企合作”[1]。随着技术的发展、产业结构调整的不断加快,持久深入的校企合作已经逐渐成为高职院校课程开发质量的关键要素之一。
《软件测试基础》课程大多在高职院校的计算机类专业中开设,但是普遍存在着课程内容更新慢,教学方法、手段陈旧,课程评价考核单一的问题,导致学生学习兴趣不大,学习效果不佳。该课程在苏州健雄职业技术学院是软件技术专业的一门专业基础课,该院与上海博为峰软件技术股份有限公司、上海泽众软件科技有限公司等从事软件测试的IT企业紧密合作,对课程进行了一系列建设和改革,培养了一大批软件测试人才,受到企业的一致认可。
1 以工作过程为导向的课程设计
课程组成员结合计算机等级考试、计算机软件专业技术资格考试和国际软件测试资质认证(ISTQB)的考试大纲,以及行业、企业对软件测试员的人才需求,与企业专家共同确定本课程的目标为:使学生了解软件测试的发展前景,掌握测试的基础知识,了解测试用例的概念、意义;能够搭建测试环境,掌握常用的黑盒、白盒用例设计方法,能够进行简单的手动功能测试并撰写测试报告与缺陷报告;了解常用的自动化测试工具、性能测试工具,理解测试工具的原理,了解测试管理的概念与流程等。
本课程以软件测试工程师的工作过程为导向,按照软件技术专业培养目标与高职学生的特点,将测试基础知识、相关技术方法、测试管理贯穿在整个测试流程中,从而构建测试各阶段所需的知识与技能。在课程中以“虚拟公司”作为组织形式,在运作过程中充分体现职业教育行为导向和职业性原则。行为导向,即创造师生互动的仿真情境,使学生通过自主协作式学习方式,反复操练,从而形成符合企业要求的行为方式和职业能力。职业性原则,即要求实训目标和就业目标高度一致[2]。学院与企业共建实训平台,通过具体工程项目及案例素材,使用测试管理工具从测试需求建起,测试模块划分、测试用例设计、测试用例执行、缺陷管理,加强学生对测试管理工具的使用。
2 以工作项目为载体的学习情境创设
《软件测试基础》课程最好在第三学期开设,因为这时学生对软件行业已有一定了解,并已具备初步的编程经验,课程共计64学时。依据软件测试的工作过程可以将课程划分为6个学习情境,共15个工作任务,具体如表 1所示。
学习情境1中主要让学生认识缺陷并知道缺陷产生的原因,掌握软件测试的定义、目的、分类和原则,熟悉V模型、W模型、H模型等软件测试的常见模型;熟练掌握软件质量模型的分类和各个评价指标,并明确软件质量与软件测试之间的关系;会查询互联网中的招聘信息,分析软件测试工程师的岗位职责及发展路径,并尽早做好职业生涯规划。
学习情境2中让学生能够明确软件测试的依据,并阅读需求规格说明书,理解测试需求的概念,会对测试需求进行挖掘;能够理解测试计划的重要性,知道测试计划的一般组成要素。
学习情境3中让学生能够理解黑盒测试、白盒测试、灰盒测试的基本概念及它们之间的区别与联系;能够灵活地运用黑盒测试的常用方法,如等价类划分、边界值、决策表、因果图、场景法、正交表等来设计测试用例;能够灵活地运用白盒测试的常用方法,如逻辑覆盖法、基本路径法等设计测试用例。
学习情境4中让学生学会测试环境的搭建,如在虚拟机中部署PHP、JSP、.NET等应用程序;理解单元测试、集成测试、系统测试、验收测试的概念及基本流程,熟悉集成测试的策略,能够使用JUnit 等工具来开展单元测试;能够掌握缺陷的概念,会正确记录缺陷,掌握缺陷报告的基本格式与内容。
学习情境5中要让学生理解测试总结的意义和重要性,并了解测试总结报告的格式与内容。
学习情境6中能让学生掌握手动测试与自动化测试的区别,了解自动化测试、性能测试等工具的原理,初步掌握脚本的录制和参数的设定,为后续课程的学习奠定基础。
3 “互联网+教育”方式的课程改革深化
3.1 利用雨课堂平台实施线上线下混合教学
合理运用互联网新技术,由传统教学向线上线下混合式教学方式转变,打破以往学生学习时空的限制,按需学习,让教育教学资源得到最大化共享。由于本课程概念较多,课程学习后还需通过工信部的考证,线上教学教师通过清华大学研制的雨课堂平台将PPT课件、微课、测试等资料上传至云空间,并推送到学生的移动终端上,督促学生做好预习、复习工作,学生所有的学习行为数据均被自动完整采集,有助于量化了解学生学习效果并把握学生学习轨迹[3];传统的线下面授,则重点解决学生的疑难困惑问题,提高教学效率。
3.2 改进教学方法提高学生学习兴趣
关键字:软件;测试过程;管理
软件开发过程的质量决定软件的质量,软件测试过程的质量直接影响测试结果的准确性和有效性。
1 软件测试过程常用的模型
1、V模型
V模型反映出测试活动与分析设计活动的关系,指出单元测试和集成测试应检测程序的执行是否满足软件设计的要求。系统测试应检测系统功能、性能的质量特性是否达到系统要求的指标。验收测试确定软件的实现是否满足用户需求或合同的要求。
2、W模型
W模型指出软件各开发阶段中应同步进行的验证和确认活动,即测试与开发也应是同步进行的。W模型有利于尽早和全面的发现问题。
3、H模型
V模型与W模型有不妥,即它们都把软件的开发视为需求、设计和编码等一系列串行的活动,而事实上,这些活动可以交叉进行的。H模型揭示这一点:软件测试是一个独立的流程,贯穿于产品的整个生命周期中,与其他流程并发进行。
除了上面的几种常见模型外,还有X模型、前置测试模型等。在实践中,建议以W模型作为框架,及早全面地开展测试,同时灵活运用H模型独立测试的思想,在达到恰当的就绪点时就应该开展独立的测试工作,同时将测试工作进行迭代,最终保证完成测试目标。
2 测试阶段中的测试活动
软件测试过程主要包括以下四项基本活动:
1、测试策划
在测试策划中的活动有:制定测试计划,以确定测试范围、测试策略和测试方法,规划测试任务日程表,对测试资源进行安排,并提前评估测试风险,制定风险控制策略。
2、测试设计与实现
在测试设计与实现中的活动有:制定测试的技术方案,选择测试工具,并根据测试技术方案设计测试用例。
3、测试执行
在测试执行中的活动有:建立相关测试环境、配置测试数据、按日程安排执行测试用例并记录测试执行结果,对发现的软件缺陷进行报告,并配合开发人员进行软件缺陷的分析、处理和追踪。
4、测试总结
在测试总结中的活动有:对测试结果进行综合分析,以确定软件产品质量的当前状态,为产品的改进和提供数据和依据,同时编制测试报告,提交相关的测试文档。
3 软件测试过程管理的特点
软件测试过程管理的基本内容包括计划、组织和监控;测试过程中存在的问题有:
1.软件质量标准定义不准确、任务边界模糊。
2.软件测试项目的变化控制和预警分析要求高。
3.软件测试项目具有智力密集,劳动密集的特点,受人力资源的影响最大。
4.测试任务的分配比较困难。
5.测试要求的人力资源十分稳定。
6.软件测试人员在待遇、地位上可能会受到一些不公平的待遇。
软件测试项目的过程管理能否成功,通常受到三方面的影响:项目组内的环境,项目所处的组织环境,整个开发流程所控制的全局环境。
4 软件测试过程管理的原则
1、有关测试需求,应当有一个经各方同意的、完整的、清楚的、详细的、整体的、可实现的和可测试性的需求并文档化,尽可能坚持最初的需求。
2、测试计划先行。软件项目管理过程从项目的计划活动开始,软件测试项目也不例外,也是从测试计划开始。
3、建立任务优先级。在测试任务较多的情况下,应该为各项任务建立测试优先级,这样也可以根据优先级来先后处理各项任务。
4、建立客观的评估标准。这样使得整个项目过程具有良好的可测性和可跟踪性,强调以数据说话。
5、尽早测试。这是从W模型中抽象出来的理念。一方面指测试人员尽早参与测试项目,另一方面指尽早开展测试执行任务。
6、全面测试。这也是W模型的重要思想,其含义一方面只要对软件所有产品进行全面的测试;另一方面指软件开发人员与测试人员全面参与到测试工作中。
7、全过程测试。这是从W模型中抽象出来的另一理念。其含义一方面指测试人员要充分关注开发过程;另一方面指测试人员要对测试的全过程进行全程的跟踪。
8、独立的、迭代的测试。这是H模型的重要思想,强调只要达到测试就绪点,即测试条件成熟,测试准备活动完成,测试执行活动就可以开展。
5 软件测试过程的人员组织
测试团队的组织直接关系到测试团队的工作效率和生产力,其组织方式由测试团队的规模、具体任务和技术来决定。
一个测试团队的基本角色有:测试经理、实验室管理人员、内审员、测试组长、测试设计人员、资深测试工程师、一般测试工程师。
若测试团队规模较大,则测试工程师分为三个层次:初级测试工程师、测试工程师和资深测试工程师,同时设置自动化测试工程师、系统测试工程师和架构工程师。
测试过程人员组织的一个方面是考虑测试团队的规模,测试团队的规模可以考虑在整个开发部门所占的比重,或相对开发人员所占的比例。从经验看,不同的应用,软件测试和软件开发人员的比例也是不同的,大致可分为三类。
1、操作系统类型的产品,对测试要求最高,测试人员和开发人员的比例为2:1。
2、应用平台、支持系统类型的产品,对测试要求比较高,通常测试人员和开发人员的比例为1:1。
3、对于特定应用系统一类产品,由于以后对象清楚、范围小,甚至可对应用平台或应用环境加以限制,所以测试人员可以再减少,但测试人员和开发人员的比例至少保证在1:2的水平以上。
6 结束语
相比之下,目前中国软件企业在软件测试方面与国际水准仍存在较大差距。首先,在认识上重开发、轻测试,没有认识到软件项目的如期完成不仅取决于开发人员,更取决于测试人员;其次,在管理上随意、简单,没有建立有效、规范的软件测试管理体系;另外,缺少自动化工具的支持,大多数企业在软件测试时并没有采用软件测试管理系统。所以对国内软件企业来说,不仅要提高对软件测试过程管理的认识,同时要建立起完善的软件测试过程管理体系,确保软件测试管理在软件质量保证中发挥应有的关键作用。
参考文献
[1]朱少民. 软件测试方法和技术 [M].北京:清华大学出版社, 2005年
[2]郑文强,马均长. 软件测试管理[M].北京:电子工业出版社, 2010年
[3]布莱克(美).软件测试过车管理[M].北京:机械工业出版社,2003年
随着软件开发应用需求和软件产业经济的发展,软件工程理论、方法和技术也在不断发展,社会对软件人才的数量需求越来越大,对软件人才的规格的要求也越来越高,越来越精细。2002年,我国教育部新增软件工程专业,2011年软件工程被设置为一级学科。
由于软件的应用领域不断拓展和深入,软件规模不断扩大,复杂程度不断提高,可靠性要求越来越高,软件的质量风险越来越高,1991年美国爱国者导弹由于系统时钟内的一个软件错误导致导弹误炸美国士兵等恶性事故给软件质量敲响了警钟,软件质量保证与测试的重要性日益突出,越来越被业界所认同和重视,软件质量保证与测试已经成为软件工程专业的核心课程,介绍软件质量保证与测试的相关基本概念、软件测试理论、测试方法和测试技术等,通过该课程的学习,要让学生树立软件质量保证和测试的观念,了解测试理论,掌握测试方法和技术,能够分析软件测试问题,制定测试计划,设计测试用例,编写测试脚本,执行测试过程,对测试结果进行总结分析,撰写测试报告等。
软件质量保证与测试是一门新课程,为做好该课程的建设,我们依托校企合作,从以下方面来加强课程建设。
一、紧贴企业职业岗位需求,明确教学目标和要求
应用型本科教育主要任务是培养高端技术应用型人才,为体现应用型人才培养的特点,我们软件质量保证与测试课程的教学内容、难易程度把握等应针对企业职业岗位需求,为此我们和文思海辉等多家企业合作,深入企业了解软件质量保证与测试职业岗位的知识、素质、能力需求,并以此作为课程的教学目标和要求。
二、引入企业教学资源和实践教学师资力量,快速提高课程建设水平
软件质量保证与测试是一个新兴领域,一门新的课程,校内教学资源积累不太多,任课老师的相关实践能力不太强,为此,我们专门从合作企业引入软件质量保证与测试完整案例;测试需求分析、测试计划、测试设计、测试报告等全套文档;软件测试工程师等,投入我们的软件质量保证与测试课程建设和实践教学,快速提高课程的建设水平和教学水平。
三、加强实践教学条件建设,建设立体化课程,强化实践能力培养
实践教学环节在软件质量保证与测试课程中非常重要,目的是要通过实践教学让学生理解和掌握软件质量保证与测试的相关理论、方法和技术,掌握规范化的软件质量保证与测试流程和测试工具的使用,并能应用到实际的软件质量保证与测试项目当中去,提高学生分析和解决软件质量保证与测试问题的能力。
为此,我们大力加强实践教学条件建设,建立软件质量保证与测试实验室,从企业引进了多个软件质量保证与测试相关软件,如表1,用于课程实践教学。
表1用于课程实践教学的软件质量保证与测试相关软件
[序号\&软件名称\&教学用途\&1\&Logiscope\&静态代码分析\&2\&IBM Rational Functional Tester\&自动化功能测试\&3\&51test\&综合测试项目\&]
为强化实践能力培养,我们的软件质量保证与测试课程由理论课程、实验和课程设计三个环节组成,如表2,三个环节有机结合,服务于学生的实践能力培养。
表2软件质量保证与测试课程的三个教学环节
[序号\&教学环节\&学时\&教学内容\&1\&理论教学课程\&32\&介绍软件质量保证与测试的相关概念、理论、方法和技术。\&2\&课程实验 \&16\&黑盒测试、白盒测试、自动化测试等测试技术的课程实验。\&3\&课程设计\&20\&学生实际参与综合测试项目,完成整个测试过程。\&]
四、结合校企合作,编写应用教材型
在经过一段时间的软件质量保证与测试课程教学和建设资源积累的基础上,结合校企合作,我们在2013年12月自编了教材《软件测试技术实验指导和习题》,由南京大学出版社出版,该教材规范了实验教学内容,并把依托于Logiscope、IBMRationalFunctionalTester等测试软件的实验教学设计写了进去。
下一步我们将依托校企合作继续进行《软件质量保证与测试》理论教材的编写,并开发相关教学课件,开设软件质量保证与测试MOOC。
总体来看,我们的软件质量保证与测试课程建设取得了一些阶段性的进展,如:①依托校企合作、结合实际案例、强调实践教学的课程组织和实施形式大大提高了学生的学习兴趣,受到学生欢迎。②建立软件质量保证与测试实验室,引进多款软件质量保证与测试相关软件,改善了教学条件,保障了教学需求。③引入企业教学资源和实践教学力量,安排理论课程、实验和课程设计三个教学环节,强化了学生的实践能力培养,提高了学生的实践能力。
但是,作为一门新课程,软件质量保证与测试距离优秀课程还有很多工作要做,下一步,我们要进一步提高课程建设和教学水平,依托校企合作继续进行《软件质量保证与测试》课程教材的编写,开发相关教学课件,开设MOOC,适应不断发展的课程建设和教学需求。