“以学生为中心”的软件测试课程教学改革与实践

2021.08.22

教育教学论坛

一.引言

软件测试是保障软件质量的唯一手段。目前所有高校的计算机相关专业都开设了软件测试课程。然而,培养出的软件测试人才与IT企业的实际需求还有一定差距。主要原因是目前软件测试课教学主要讲授软件测试基本理论和方法,对学生的实践训练不足,影响了学生软件系统测试能力的培养。因此,有必要对目前软件测试教学模式进行改进。

二.目前软件测试课程教学存在的问题

(一)目前计算机相关专业的培养方案普遍“重开发、轻测试”,一般把软件测试安排为限选或任选课,学时较少。授课教师不够重视;学生把这门课作为了解性知识,积极性不高。

(二)理论课教师主要讲授软件测试的基本理论和方法,以讲解软件测试知识点为主,各知识点间的关联不多。实践课基本上是软件测试基本方法的验证、较小软件单元的模拟测试、测试工具的简单使用,较少涉及软件系统的测试需求分析和测试计划。

(三)软件测试的实践性很强,但授课教师大多没有接受过专门的软件测试技术训练;软件测试工程实践经验不足。

(四)授课教师一般按教学计划授课、考试和评定成绩,而对学生在教学过程中的知识掌握程度缺少了解,也不够重视。

基于产出的教育(Outcomes-based Education, OBE)模式理念,作者提出了“以学生为中心”的课程教学改革方案。“以学生为中心”,即任何有关教学的决策与措施应该把学生作为第一受益者来考虑。第一步,明确以培养学生解决软件系统测试问题的能力作为教学计划制定、内容设计和课堂教学的直接目标。第二步,努力把课堂教学从“软件测试基本理论和方法的知识传递”转变为“软件系统的测试能力培养”。

三.“以学生为中心”的课程教学改革方案

(一)明确课程培养目标,制定教学计划

课程培养目标为:学生具备解决软件系统测试问题的能力,包括:测试需求分析与计划、计划执行和结果分析能力。教学目标1:理解软件测试基本理论,掌握基本测试方法,并开展测试设计,熟悉常见测试工具;教学目标2:能针对软件系统的功能、性能要求等设计测试方案,选用适当的测试方法或工具进行测试,采集测试结果,对预期结果和实际结果进行比较、分析和解释,得出有效结论。以32学时为例,制定教学计划如下。

1.理论课

.软件测试背景与基本概念,2学时,讲授法,课堂考勤评估。

.软件需求评审,2学时,问题驱动讨论法,课后作业和课堂演讲评估。

.软件测试基本方法,4学时,案例法,课堂测试评估。

.软件测试流程、过程模型与标准规范,2学时,讲授法,课堂演讲评估。

.单元测试、功能测试与性能测试,6学时,案例法,课堂测试和课堂演讲评估。

.自动化测试及工具,2学时,讲授法和体验学习法,课堂演讲评估。

.测试用例设计、维护与测试报告,2学时,讲授法和案例法,课后作业和课堂演讲评估。

.软件测试报告、测试评估和软件质量保障,2学时,案例法,课程报告评估。

2.实验课

内容:单元测试及工具JUnit应用,Web自动化测试及性能测试,测试用例设计与测试管理,随机测试,共8学时。现场指导教学,采用实验验收和分析报告方式评估。

理论课的第-,-部分和实验课主要培养测试计划执行能力;第,部分培养测试需求分析与计划能力;第部分培养测试结果分析能力。

(二)改进理论课教学方法,提高教学效果

1.采用Bloom学习分类法,减少讲授记忆型的软件测试基础理论内容,增加讲授理解和应用型的软件测试技术内容。结合多种教学方法引导学生进行探索性学习,同时评估学生的软件测试能力水平。

2.提高课后作业复杂度,部分保留现有分析和计算题,把从基础概念题改为有挑战性的分析或应用题。如:学会使用某测试工具,如代码静态分析工具PMD、单元和集成测试框架TestNG等,在课堂讲解;针对某软件单元模块,分析测试需求,设计测试计划和用例进行测试,在课堂讲解等。这样可以加深对软件测试方法的理解,提高测试计划执行能力。

3.在课程的每2-3章内容结束时进行一次开卷课堂测试。测试一般使用2-3个题目,耗时约30分钟。这样可以了解学生的知识掌握程度,据此调整教学内容。测试内容是需灵活运用教材中的基础知识才可以解决的问题。具体类型有:使用黑盒/白盒方法进行单元测试、测试场景分析、具体软件模块的测试需求分析和计划、测试用例设计等。这种形式可以培养学生的测试需求分析与计划,以及测试计划执行能力。

(三)跟踪软件测试技术发展更新实验课教学内容,提高学生的测试计划执行能力

实验课教师需要跟踪软件测试技术和工具的发展,更新教学内容,如增加代码静态分析工具FindBugs,TestNG框架,移动APP测试,Web网站安全性测试工具,随机测试等。在实验教学过程中,还要求学生在慕测网(www.mooctest.net)上完成2个题目。这样提高了学生的测试计划执行能力,也提高了测试结果分析能力。

(四)开展多种形式的课外实践活动,提高软件测试技术自学习能力

为了扩大学生的软件测试技术知识面和开阔眼界,邀请知名IT企业的测试工程师来校做专题报告,介绍软件测试工程师的必备素质。这样不但可以让学生了解软件测试方法在实际软件项目测试中的应用,还可以对学生关心的测试工程师的招聘条件及待遇问题进行解答。教师还鼓励学生考取软件测试工程师职业资格证书,以考促学;参加软件测试比赛,以赛促学,以此提高学习软件测试的兴趣和成就感,同时也提高软件测试技术自学习能力。

作者在2019年秋季学期的软件测试课中实施了本方案。与2019年春季学期的软件测试课进行对比,在课程考核的复杂度基本不变,实验课内容的复杂度反而提高的前提下,秋季学期的软件测试课的学生总评平均成绩提高了17.8%;课程目标达成度从69提高到77,提高了11.6%。成绩优良率从8.9%提高到37%,不及格率从28.5%下降到15.8%。以上数据说明了“以学生为中心”的软件测试课程教学改革方案的有效性。

四.结论

本文从软件测试教学的现状出发,探讨了“以学生为中心”的软件测试课程教学改革方案。该方案可以较好地把课程从软件测试知识传递转变为软件测试技术和能力培养,提高了教学效果,较好地培养了学生的软件系统测试能力,对培养满足IT企业需求的软件测试人才有积极推动作用。今后,授课教师还需要加强自身的软件测试工程实践训练,探索和尝试时下流行的线下线上混合的教学模式,以更好地培养学生解决复杂软件系统测试问题的潜力。