面向卓越软件工程师培养的《软件测试与质量保证》课程建设

时间:2022-05-29 12:05:18

面向卓越软件工程师培养的《软件测试与质量保证》课程建设

摘要:为培养卓越软件测试人才,常熟理工学院进行了十余年的《软件测试与质量保证》课程建设探索。本文分析国内软件测试教学存在的不足,从教学内容组织、实验教学改革和工程实践能力培养等方面阐述常熟理工学院《软件测试与质量保证》课程改革的各项措施。

关键词:软件测试;软件质量保证;教学改革;卓越工程师

中图分类号:G642.0 文献标志码:A 文章编号:1674-9324(2015)06-0160-02

一、引言

为培养创新能力强、适应社会经济发展需要的软件测试人才,适应卓越软件工程师培养要求,软件测试课程亟须改变传统的教学理念,更新教学内容,改进教学方法。笔者结合自己10余年软件测试课程的教学科研和工程实践经验,分别从教学内容组织、实验教学改革和工程实践能力培养等方面论述《软件测试与质量保证》课程改革的措施和体会。

二、国内高校在软件测试教育方面存在的问题

通过多年软件测试教学实践和调研,发现国内高校在软件测试教学中普遍存在如下问题:

(一)教材选择取舍两难

企业要求软件测试工程师掌握软件测试及软件质量保证知识及技能。但是,在售中文图书中(以2014年6月7日当当网在售中文图书作为基础数据),与软件测试相关的书籍居多达300多种,软件质量保证方面图书有10种,同时包含软件测试与软件质量保证知识的中文图书仅有6种。分析仅有的6种软件测试与质量保证教材,发现这几种教材都偏重软件测试理论和方法的讲解,很少涉及软件测试工具、软件测试项目实践等,难以适应软件测试人才培养的要求。

(二)实验教学存在知识点遗漏

统计分析与软件测试、质量保证相关的中文图书发现:作为发现软件缺陷最高效的静态测试技术现有的中文图书很少系统讲述。除了软件测试工程师认证考试培训教材之外,其他图书均未阐述软件测试人才必需的专业外语知识。在内容组织上,上述教材普遍均未按照软件测试项目实践的过程进行系统化的组织,兄弟院校在软件测试与质量保证教学过程中也存在上述知识点遗漏情况。

(三)思维锻炼不足

自主学习能力培养有助于学生自主学习掌握软件测试新的方法、技术和工具,使学生尽快适应新的软件测试环境;逆商是积极应对挫折、摆脱困境和超越困难的能力,逆商培养有利于学生积累软件测试项目实践的经验教训,从而促进其软件测试工程师职业素养的形成。但是,国内高校在软件测试与质量保证教学时,很少关注学生自主学习能力和逆商的培养。

三、教学改革内容

在卓越工程师计划驱动下,以软件企业对软件测试人才的需求和国家软件测试工程师认证要求为导向,我们整合已有的校企合作课程资源,按照软件测试三要素组织课堂教学内容,强化实验教学环节,采用项目驱动的案例教学法开展教学活动,取得了较好的教学效果。

(一)课堂教学改革

1.教材选择。我们选择同济大学朱少民教授编写的《全程软件测试》作为课程教材,该书按照软件测试项目实践的实际过程组织软件测试的基本概念、原理、方法、技术以及最佳实践等知识,为学生系统化学习软件测试技术、开展软件测试实践提供具有高度可操作性的指南;选择NIIT培训教程《Software Testing and Quality Assurance:Student Guide》,作为专业英语教程,学生阅读该教程可以了解印度在软件测试职业教育方面的成功经验,为学生专业英语水平的提高提供便利。

2.教学内容的组织。教学内容组织方面,围绕软件质量,把课堂教学内容划分成软件质量管理、软件质量保证、软件测试基础和软件测试技术等课程模块。(1)软件质量管理模块,介绍软件问题的分类、软件缺陷管理、软件质量基础和软件质量管理等知识;(2)软件质量保证模块,讲解常用的软件质量保证措施(包括软件质量保证团队的组织、软件质量管理措施、软件质量标准、项目早期阶段的质量保证措施、软件开发维护阶段的质量保证措施等),让学生认识到软件质量的提高需要综合运用软件质量保证的各项措施;(3)软件测试基础模块,介绍软件测试的定义与目的、软件测试原则、软件测试过程模型、软件测试停止标准、软件测试类型的划分、软件测试自动化以及软件测试人才的职业素质等。(4)软件测试技术模块,突出软件测试用例的作用,按照软件测试项目实施过程组织,包括软件测试计划、测试设计(包括测试过程设计、测试用例设计、驱动模块及桩模块的设计)、测试实施(包括测试脚本编写、编码实现驱动模块和桩模块)、测试执行、测试评估、软件缺陷管理等知识点。软件测试执行方面,根据软件测试执行的层次划分为单元测试、集成测试、确认测试和系统测试。

(二)实验教学改革

如何在有限的实验课时内,最大限度地加深学生对软件测试技术的理解,增强其软件测试实践能力,是实验教学的主要任务。根据软件测试项目实施过程编排教学内容,突出软件测试与质量保证的基本方法、原理和业界常用工具的使用,以反映中小企业软件测试项目实践的经验。

1.基于Microsoft Project的软件项目计划。软件项目计划及进度管理,既是软件质量保证中重要的管理部件,也是开展软件测试活动的前提。为此,安排软件项目计划实验,要求学生使用Microsoft Project建立软件项目计划。实验内容包括使用“资源工作表”定义软件测试项目所需的各类资源、使用甘特图制定软件测试计划、运用跟踪甘特图跟踪项目进展,等等。

2.软件测试与软件调试。软件测试的目的是发现软件系统中潜在缺陷,而缺陷解决则通过软件调试手段实现。本次实验以员工工资核算软件Employee作为测试对象,要求学生在Eclipse开发环境中用Java语言描述软件测试过程,发现Employee中人为注入的软件缺陷,然后应用Java调试器的断点调试功能,结合回归测试手段修订所发现的缺陷。

3.BugFree软件缺陷管理。软件缺陷管理贯穿软件测试项目的始终,记录软件缺陷从发现、修复、回归测试直至关闭软件缺陷的全过程。“BugFree软件缺陷管理”介绍开源缺陷管理软件BugFree的软件缺陷管理思想,要求学生掌握BugFree安装与配置、软件缺陷管理等技能。

4.软件静态测试。软件静态测试是软件测试技术中发现软件缺陷效率最高的技术。我们安排“软件静态测试实验”,讲解软件制品阅读、静态分析的技巧,还介绍如何运用CheckStyle、FindBugs等静态测试工具分析程序源代码、目标程序中潜在缺陷。

5.JUnit单元测试。“JUnit单元测试”实验要求学生编写Triangle类描述三角形问题,使用等价类划分方法、边界值分析方法为三角形问题设计测试用例,把测试用例编码成为基于JUnit框架的测试脚本,执行测试脚本以发现潜在缺陷。推荐学有余力的学生自学JMock,综合应用JUnit和JMock进行对Java应用系统进行集成测试。

6.QuickTest Professional功能测试。安排“QuickTest Professional(简称QTP)功能测试”实验,要求学生为机票预订系统设计测试用例,录用人工测试的过程形成机票预订系统的测试脚本框架,把测试用例中软件预期执行结果和测试实际执行结果的比较编码成为QTP检查点,产生测试脚本。然后,在回放测试脚本,产生功能测试执行报告。

7.LoadRunner性能测试。该实验讲述如何运用HP Mercury LoadRunner对Web系统进行性能测试,让学生在实验过程中理解虚拟用户技术,掌握基于LoadRunner的性能测试技术的过程及技巧。

(三)工程实践能力培养

课程开篇即向学生介绍软件测试人员的就业前景、能力要求。利用我校网络课程平台BlackBoard把讲稿、实验讲义、实验视频、参考文献等课程素材到BlackBoard,要求学生在学有余力的前提下利用课外时间完成课程扩展任务,锻炼学生的自主学习能力。通过临时调整实验地点,要求学生在新的测试环境中快速完成测试环境构建,引导学生渐进地解决测试实践过程中遇到的各类问题,锻炼学生的逆商能力。

四、结束语

《软件测试与质量保证》通过十余年的建设已形成了较完善的课程体系,十多轮的授课实践积累了丰富的教学经验。本课程作为软件工程专业卓越工程师课程已进行了2轮教学,最近一轮的课程教学评价学生评分为98.19,教学效果较好。

当前,我校正转型应用技术大学,这将对本课程的教学内容、教学方法、教学手段等提出更多、更高的要求。鉴于此,本课题的教学团队正积极更新课程体系,以适合长三角地区中小型软件企业对软件测试人才的能力要求。

参考文献:

[1]陈翔,鞠小林.卓越计划驱动下的软件测试技术课程教学改革[J].计算教育,2013,(13).

[2]张红,刘京志,胡景凡,侯霞.软件测试教学中思维能力的培养与探索[J].计算教育,2013,(24).

[3]宋佩维.卓越工程师创新能力培养的思路与途径[J].中国电力教学,2011,(7).

[4]唐新华.CDIO工程教育在推进工程应用型本科学生逆商教育中的作用[J].教育与职业,2010,(3).

上一篇:情境教学法在中职市场营销教学中的运用 下一篇:工科院校文科学院毕业生就业创业工作探析