刘晓刚
摘要:本文针对当前高职计算机及相关专业的软件测试课程普遍存在的问题,引入了新技术移动测试的内容,采用了主流商用的测试软件仿真实际的测试过程,并对大型项目设计了自动化的专业测试。课程的改革提高了学生的学习兴趣和积极性,提升了学生测试技能的掌握程度,保障了教学目标的有效实施。
关键词:高职;软件测试;改革
中图分类号:G642.0 文献标志码:A 文章编号:1674-9324(2018)14-0275-02
一、课程存在的问题及定位分析
当前的软件测试课程教学中普遍存在着几个突出的问题:一是教学内容前沿性不够。一些新型应用不断普及,但实训项目中尚没有针对这些应用的测试,如移动应用测试、云测试等。二是教学内容覆盖面不够。市场上常用的.NET测试、Android测试、Java测试都应该是学生掌握的技能,但由于课程时间有限,很少能全面覆盖到这些内容。三是实训软件不够理想。考虑到成本问题,实训机房一般采用免费和共享的测试软件,这些软件与正式的商业软件相比,在功能及性能上有一定差距。
对于高职计算机及相关专业的學生来说,他们理论基础薄弱,但有一定的动手能力。在学习了程序设计基础(Java)、.NET面向对象程序设计、移动应用开发(Android)、数据库技术(MySQL)等课程之后,对基于Java语言和Android技术的程序设计有了一定的基础,可以从事初步的软件开发工作,测试技术就是这个阶段作为初级程序员必须掌握的一门技能。为了让他们掌握市场上的主流技术,本着理论精学够用、重视技能的原则,在前序课程的基础上,课程应涵盖Java、.NET、Android、MySQL多个方面内容,让学生学会多方面的技能并融会贯通,从而提高专业知识的综合应用能力;通过对软件测试基础理论、技术方法、流程管理和使用自动化工具实施项目测试的学习,使学生了解完整的软件测试的工作过程,从而实现测试技能要求的目标。
二、教学内容设计
1.课程内容建设。单元1:软件测试的认知和体验。具体内容:软件测试概述,软件测试的地位和作用,软件测试的目的,软件测试的原则,软件测试的分类,软件测试的流程,软件测试人员的类型和要求,场景设计法,软件开发与软件测试的基线。重点是:软件测试的分类、原则、策略及流程。场景测试法与软件测试的基线。本单元讲授2课时实训2课时,共需4课时。单元2:白盒测试。具体内容:测试用例设计,白盒测试介绍,逻辑覆盖,基本路径测试。重难点是:代码检查法、逻辑覆盖法、基本路径测试法。本单元讲授4课时,实训4课时,共需8课时。单元3:黑盒测试。具体内容:黑盒测试介绍,等价类方法,边界值方法,决策表方法,因果图方法。重难点是:测试用例,等价类方法,边界值方法,决策表方法,因果图方法。本单元讲授8课时,实训8课时,共需16课时。单元4:单元测试。具体内容有:单元测试,集成测试,.NET应用程序的单元测试与界面测试,基于JUNIT的单元测试。重难点是:单元测试,.NET应用程序的单元测试与界面测试,基于JUNIT的单元测试。本单元讲授6课时,实训6课时,共需12课时。单元5:Android测试。具体内容有:Android界面自动化测试,Android程序的单元测试,Android的Activity测试。重难点是:Android界面自动化测试方法,Android程序的单元测试方法,Android的Activity测试方法。本单元讲授6课时,实训6课时,共需12课时。单元6:自动化测试。重难点有:自动化测试,QuickTest Professional的功能测试、自动化测试、参数化测试。本单元讲授2课时,实训2课时,共需4课时。
2.实训内容建设。单元1:软件测试的认知和体验。对应2个实训,分别是:实训1 设计基本测试用例;实训2 应用场景法对QQ登录的功能和界面进行测试,属于黑盒测试,是比较简单的一种黑盒测试,放在单元1比较合适。单元2:白盒测试。对应的实训有2个,分别是:实训3 判断闰年的白盒测试;实训4 多分支程序的白盒测试。单元3:黑盒测试。对应的实训有4个,分别是:实训5 NextDate等价类划分;实训6 三角形边长问题的边界值测试;实训7 乘机行李计费的决策表测试,实训8 谷歌地图的因果图测试。单元4:单元测试。对应的实训有4个,分别是:实训9 自制计算器的单元测试,采用.NET技术的测试,测试C#开发的Windows的计算器;实训10 JUNIT求数组最大最小值单元测试;实训11 判断素数和整除单元测试;实训12 堆栈类的单元测试。后三个实训都采用Eclipse工具和集成的JUNIT进行相关测试。单元5:Android测试。对应的实训有3个,分别是:实训13 Android界面自动化黑盒测试;实训14 Android程序的自动化白盒测试;实训15 Android程序的Activity测试。重难点是:Android界面自动化测试方法,Android程序的单元测试方法,Android的Activity测试方法。采用Android Studio开发工具以及集成的JUNIT进行测试。单元6:自动化测试。对应的实训有3个,分别是:实训16 用QTP对Java记事本进行功能测试;实训17 用QTP对飞机订票系统自动化测试;实训18 用QTP对用户登录程序进行参数化测试。有更多的时间可以添加Load Runner的相关测试。
3.实训设计。①实训工具的选择:尽量采用主流的商用的工具,如Visual Studio 2013专业版、JUNIT 5、QuickTest Professional 12、Load Runner11等,这样更加贴近实际的工作环境,提高毕业生的就业竞争力。②测试项目仿真。将学生分成开发小组和测试小组。首先对开发小组指定任务,模拟实际项目的开发过程,选用一种编程语言按要求实现一个中小规模的项目,要求尽可能避免错误,减少Bug。项目开发完成后,用单元测试工具进行单元测试,即开发小组成员测试自己的代码,发现问题立即修改好,再重新进行一遍单元测试,直至单元测试通过。单元测试通过后,再由测试小组对该项目进行集成测试和系统测试。集成测试阶段需要测试小组开发必要的桩程序和驱动程序,系统测试阶段需要进行测试的策划和设计,提交必要的测试文档。测试发现的问题汇总后交给开发小组进行项目修改,修改完成后要求进行回归测试。③自动化测试的设计。进行自动化测试时不必划分不同的角色,成员都归属于测试小组。教师提供已完成的大型项目给测试小组,小组成员自行安装测试工具,按要求的步骤对大型项目进行自动化测试,提交测试的结果和相关分析报告,老师对测试的过程和结果进行点评和打分。
三、考核方案设计
采用过程考核与项目作业评价相结合的方式,注重课程提问、业务操作、项目报告、汇报交流等环节的评价,注重理实一体化的评价方式。提高学生创新能力的考核权重,重视学生在项目作业中的想象力、创造力。注重考核学生职业素养的培养,特别强调团队协作能力的考核。考试课程成绩按百分制评定,课程考核内容与权重如下:平时成绩占20%,实训成绩占20%,期末考核成绩占60%。
平时成绩包括出勤情况、课堂纪律、提问,按20%比例折算到课程总成绩中。实训课成绩是每次实训课后,教师根据学生按要求完成任务的实际情况,给出其成绩。具体比例为测试需求分析10%、测试方案设计30%、测试设计及编码40%、测试执行和结果报告20%,但是不提交实训报告者不给分数,一票否决。按优秀(90-100分)、良好(80-89分)、中等(70-79分)、及格(60-69分)、不及格(59分及以下)五个等级评定。最后在期末给出一个总评成绩,也按上述五个等级评定。按20%比例折算到课程总成绩中。平时成绩和实训课成绩总和为40%录入成绩单。
实训过程考核内容:是否在规定时间内完成任务,完成任务的结果是否完整、正确。实训报告考核内容:对于每个实训报告,为了规范化目的,教师先给出基本框架,保证格式统一,重点清晰,适当给予学生发挥空间。考核的要點是报告的格式是否规范,书写是否认真,语句是否规范,表述是否严谨;是否完整地记录了实训项目的工作任务;个人在完成实训过程中的总结体会和技巧归纳等。期末进行规定时间的上机考核,在规定时间内完成指定的任务。将成绩按60%的比例折算到课程总成绩中。主要通过对实际测试项目的工作过程进行检查和考核,对任务完成情况进行考核,还包括对测试工具的运用的考核。
四、结语
基于移动技术的软件测试课程的设计,引入了新技术移动技术测试的内容,采用了主流商用的测试软件,以及仿真的测试过程,对大型项目进行了实用的自动化测试等等。经过近两年来的应用和实践,受到了学生们的好评。首先是课程内容的更新,提高了学生学习的兴趣和积极性,学生在理论课上能够认真听讲、踊跃参与讨论,实训课积极主动,学习热情较高。然后是项目化的实践过程,提升了测试技能的掌握程度,保障了教学目标的有效实施。最后是与市场接轨的工作过程训练,提升了学生的就业竞争力。
参考文献:
[1]穆海伦,李万清.面向企业的高校软件测试教学改革探索[J].计算机教育,2013,(10):36-40.