APP下载

能力导向的软件测试课程研究

2019-05-24吉雪芸谭火彬蔡为东

计算机教育 2019年5期
关键词:软件测试模块教学内容

吉雪芸,谭火彬,蔡为东

(1.保定学院 数据科学与软件工程学院,河北 保定 071000;2.北京航空航天大学 软件学院,北京 100191;3.北京趣拿软件科技有限公司,北京 100089)

0 引 言

软件测试是一门实践性很强的软件工程专业的主干课程[1],从理论知识的角度,测试是软件工程的一部分;从工作实践的角度,测试是软件开发的一个环节;软件测试是一门课程,是一个领域,也是一份职业。从发展前景来看,在互联网+时代,我国计算机软件行业人才缺口高达60万,其中就包括开发、测试、运维等岗位,作为衡量或者保障软件质量的重要手段,软件测试技术得到迅猛的发展,市场对软件测试人才的需求越来越大,企业需要更多对口资源的人才,尤其是高度职业化、专业化的测试人员[2],因此,加强软件测试人才的培养成为高校相关课程的主要教学目标。

1 背景及现状

软件测试覆盖的领域很广,从概念理论的角度,有软件测试基本理论、黑盒测试和白盒测试等;从市场需求的角度,常用的有功能测试、自动化测试和性能测试等;从开发流程的角度,有需求测试、单元测试、系统测试和敏捷测试等;从技能点的角度,有测试用例的撰写、缺陷报告的撰写、自动化测试工具的操作等一系列实用技能。最重要的,还是软件测试整体技术的把握和应用[3]。高校里沿用的教学方法,大多属于理论概念的讲述,虽然理论是实践的基础,但是和市场需求未免脱节;虽有将理论应用于实践的环节,也只是针对知识点的应用,对软件测试整体把握并无多大作用,加上软件开发技术的更新换代,测试技术日新月异。一个测试工程师要有坚实的理论基础,也要有必要的从业能力。毕业生兼有理论知识和实践技能,是高校育人和企业用人的目标。

2 能力导向的课程主要研究内容

为了激发学生的学习兴趣,锻炼学生解决实际问题的能力,促进学生就业,为市场培养合格的软件工程人才,高校以能力为导向的软件测试课程研究应从行业、理念、模式、环节等各方面入手完成以下目标:①明确教学任务,总结职业技能;②调整教学内容,实现知识与技能的融合;③丰富授课形式,借鉴企业模式。

2.1 明确教学任务,总结职业技能

经过师生在软件公司进行调研、见习和教学大纲的把握,确定了包括熟悉测试规范、制定测试需求、拟定测试用例、执行测试过程和撰写文档等在内的一系列职业技能。一般软件测试的工作流程为测试需求分析、撰写测试文档、设计测试用例、执行测试、撰写测试报告和测试总结。有的公司要求测试人员集体参与全部工作,有的公司则将分工细化到每个测试员工。无论哪种形式,都要求测试工程师具有良好的分析需求能力、沟通能力、理解和分析问题能力,再加上扎实的理论基础和过硬的技术水平。如何提高学生的上述能力,实现与企业的对接,成为测试课程的主要教学任务[4]。

2.2 调整教学内容,实现知识与技能的融合

软件测试课程的内容包含概念、技能和规范,选取的一部分内容见表1。

表1 软件测试部分教学内容

从1到4,是一个由点到面的过程,1和2涉及的概念相对分散,需要学生花时间去记忆。3和4更强调整体能力。

理论是基础,实践出真知。为了将分散的知识点、技能点转化成整体实践能力,摒弃了表1中从1到4按阶段实施教学的安排,将教学内容用模块的形式加以组织,每个模块都由理论知识、技能或规范和案例构成,教师提前安排理论部分的预习,课堂上用提问的方式引出技能点,解决学生疑问,以案例的形式加深对理论的理解、规范的熟悉和技能的掌握。教学案例选用由浅入深,最后形成螺旋式的软件测试教学环节。

表2中列举了5个模块的教学内容。

表2 软件测试教学模块

需要说明的是,重要的理论概念须进行合理地穿插,比如黑盒测试,在之前的模块中已经出现过,在后续模块中再次回归;而每个模块有各自的重点概念和技能。同样地,测试用例的设计和撰写也是每个模块的必修环节,这一技能会随着不同的概念、场景和应用反复锤炼,如在“测试的种类1”模块,教学内容安排见表3。

作为一门和实践活动紧密结合的课程,在介绍常用测试技术的时候,需要代入场景,学生才能深入理解。从这一角度来看,学生能力的培养,更需要企业工程测试人员的参与和引领。比如敏捷测试,由软件测试工程师向学生进行讲解,学生的接纳性更高。因此,企业级项目测试人员参与到教学环节中是必要的。

表3 测试种类1教学内容

2.3 丰富授课形式,借鉴企业模式

校企合作已经是软件类课程必经之路,主要途径有:通过企业工作场景的还原,接触具体企业测试项目,学生的职业素养和能力可以得到提高。比如保定学院数软学院将某企业实训加入实践课程,使学生了解到软件开发设计模式的实用性;将企业工程师请入课堂,进行案例讲解,教学内容可以双方共同组织,也可以由企业人员制定。比如北京航空航天大学软件学院的软件工程课程,最后两节大课就是由来自阿里达摩院的架构师和去哪儿网的测试经理完成教学任务。有经验的测试工程师,会敏锐地捕捉到学生在实践中存在的盲区,向学生传授“一般情况下,此类问题应该如何解决”或者“应该有哪些思路”,使学生进一步认识测试的重要性,萌发职业兴趣,产生从业欲望。即便是没有企业入驻,也可参考企业中的工作模式,采用项目驱动的团队管理方法,模拟企业工作场景,例如,Scrum是目前企业常见的开发方[5],同时也强调测试和开发的同步性,将Scrum工作方法引入到教学中,即将学生分成若干团队,每队6人,测试经理1人,测试团队5人。每个角色都有各自的职责,协同工作。课堂开始,教师提出问题或工作场景,团队讨论后拟定测试需求,由测试经理撰写测试方案,分配任务,执行任务,随着方案细化,团队将新的问题转换为新的需求,如此重复,直到课堂结束。这里的课堂,指的是课上课下一个整体,教师在课上课下进行指点,直到学生需求结束。

3 评价环节

每个模块结束的时候,每个团队有一份教师评价、一份自我评价以及一份同行评价(即同学评价)。教师评价主要从概念的理解、技能的运用给出评价;学生主要从自身欠缺和自我提升方面做出自我评价;同行评价则在自我评价的基础上客观地给出建议。所有的操作都录制了视频。教师和学生各存一份,便于回放和为以后的教学作准备。以“测试的种类1”模块为例,其包含测试的概念、黑盒测试、功能测试、等价类划分、测试用例、缺陷报告、录制视频等知识点或技能,分别拥有优秀、良好、合格、不合格等评价标准。

4 实施效果

2017秋季,笔者使用新的教学模式开启了教研探索之路。学生们热情饱满,求知欲很强,在接口测试和性能测试两个模块,利用空闲时间在机房装软件,使用工具进行测试,并撰写测试报告;在概念的理解和工具的使用的过程中,学生们开始萌发对软件测试的兴趣;在分组迭代讨论中,学生们主动发现需求中的问题,提出实现方案,给出测试用例,课下积极撰写缺陷报告。期末,94位同学参与了教学评价,其中对课程内容表示很满意的达到了83人。保定学院数软学院15级软件工程专业有一部分学生在2019年1月找到了与测试相关的实习工作。

5 结 语

随着软件开发过程地位的不断提高,软件测试已经成为软件工程专业的重点专业课程[6],在市场需求的不断刺激下,教师主动贴近软件公司的用人要求,了解新技术、新模式,将静态的理论和动态的技能结合起来,进行教学实践,同时实施校企合作方案,加大学校和企业的合作力度,给学生更多接触市场的机会,培养学生实践能力,便于学生就业,构成一个良性循环,为软件测试课程和软件工程专业其他课程的教学起到促进、铺垫和领引的作用。课程研究还有很多工作要做,比如测试平台、测试方法层出不穷,不能一一介绍,全部掌握也不可能;学校毕竟和企业有差异,不能做到完全无缝衔接;测试是和开发结合在一起的,如何以测试平台或工具的学习以点带面,激发学生主动学习精神等,需要我们继续探索和改革。

猜你喜欢

软件测试模块教学内容
综合利用单元教学内容进行整体单元复习
28通道收发处理模块设计
“选修3—3”模块的复习备考
软件测试方向人才培养“1+X”融合研究
航天软件测试模型构建与应用
关于 Web 应用系统的软件测试的研究
等差数列教学内容的深化探究
必修模块相关知识过关训练