林丽惠
(武夷学院 数学与计算机系,福建 武夷山 354300)
《软件测试》课程教学改革探讨
林丽惠
(武夷学院 数学与计算机系,福建 武夷山 354300)
本文针对《软件测试》课程教学中存在的问题,结合计算机科学与技术专业实际,从课程的教学目的、教学内容、教学方法、实践环节及考核方法等方面进行了深入的探讨,提出了《软件测试》课程教学改革的思路和方法.
软件测试;教学方法;教学改革
《软件测试》是计算机科学与技术专业的专业课.随着目前对软件产品质量的日益关注,软件测试在整个软件开发过程中的地位越来越受到重视.通过本课程的教学,使学生掌握软件测试的基本理论和基本方法,能熟练使用一些常用的测试工具,了解工程项目中软件测试的实施策略和实施过程,并进一步增强学生软件质量管理的意识.为学生将来从事实际软件测试工作和进一步深入研究打下坚实的理论基础和实践基础.但在许多高校其教学效果并不理想,学生普遍感觉理论学习枯燥无味,不能将理论与实践联系在一起对软件进行有效的测试.究其原因,主要是传统的《软件测试》课程的教学存在着一定的局限性,必须进行改革.
目前市面上的有关软件测试的教材相对偏少,且这些教材多存在以下几种倾向[1]:
(1)偏重通用化的指导,看似大而全,实则缺乏实践性;
(2)过分追求浅显化,有些测试方法的讨论缺乏系统的指导;
(3)过分专注于理论,没有联系实际运用;
(4)面向高端软件测试技术人才市场,所讨论的内容需要密切结合企业工作实际,不适合在高校中推广.
很多高校的《软件测试》课程从内容上来讲,全而不精,重点不突出,学生也较难掌握;从难度上讲,更多注意的是理论的讲授,概念的介绍,而忽略了实际动手能力,因此培养的学生也只能是纸上谈兵,达不到预期的效果.
由于教学内容和教学条件的限制,传统的教学方法一般比较单一、落后.教师一般按照课本知识的编排顺序先讲理论再讲例子,使得学生在理论知识的学习阶段觉得枯燥无味又难以理解,如果课堂上教师和学生教与学的互动再减少一下,学生学习的积极性和主动性就被降低了,学习效果大打折扣.
软件测试实验是培养学生软件测试技能的重要环节.通过实践教学,使学生能掌握软件测试技术和基本操作技能,进一步加深对所学基本理论的理解,对实验所用的测试工具能够正确和熟练地使用,并能撰写规范的测试文档,使学生具有较强的实践动手能力以及分析问题和解决问题的能力[2].然而,目前软件测试实践教学存在不少弊端.传统的《软件测试》课程虽然有实验教学的要求,但一般只是停留在课本上的黑盒和白盒方法的基础性实验上,也没有结合一些典型案例,培养学生的动手能力和创新能力.因此,如何开展软件测试的实验教学,如何保证软件测试实验环节的效果一直是个问题.
传统的《软件测试》课程的考核通常以期末理论考试成绩作为学生最终成绩的主要依据,实验环节占的比例很小,这样会造成学生不注重实践能力的培养,不利于激发学生学习的积极性和主动性.
针对目前《软件测试》课程的教学体系存在的不足,通过整合与优化教学内容,改革教学方法和教学手段,加强实践教学,改革课程考核方法,建立一个合理的《软件测试》课程教学体系,从而提高学生学习的积极性和主动性,提高学生分析问题和解决问题的能力,促进教学质量的提高.
教师除了要认真挑选一本结构清晰、内容丰富、难易适中、有丰富实例的书籍作为教材,教师平常还要注意将软件测试的科研实践和教学中积累的经验进行整理和提炼,作为教学内容的补充.教师还可以充分利用电子书籍,通过网上图书系统,了解软件测试最新的知识,适时补充到课堂教学中.
在教学中,不仅要求学生掌握软件测试的基本理论和测试技术,更重要的是强调软件测试技术在软件业中的广泛应用,培养软件测试技能和实践能力.重点介绍测试方法、测试层次、测试用例的设计,自动化测试工具的运用和测试过程的管理.使学生能够根据被测试的对象选择合理的测试策略和测试方法,设计完善的测试用例,执行测试,分析测试结果,撰写测试报告,并能对整个测试过程进行有效管理.
倡导启发式教学,激发学生的兴趣和潜能.强调从学生的实际出发,以学生为学习的主体,引导学生积极思维,使他们自觉的完成学习任务,从而达到培养和提高学生分析和解决问题的能力的目的.例如在讲白盒测试的逻辑覆盖时,告诉学生语句覆盖从流程图看,其实等同于“节点”覆盖[4].如果要更进一步深入覆盖,是不是可以考虑每一条边都覆盖呢?这就引入了判定覆盖的概念,同时让学生思考还要补充什么设计测试用例才能够从刚才的节点覆盖做到“边”的覆盖.
利用案例教学法,促进学生理论联系实际.从案例入手分析,将难于理解的概念定义变为分析后得出的结论,有利于提高学生学习的积极性.案例教学法是传统教学方法的一种补充.实例教学法的成功取决于(1)选择的案例合理;(2)教师的素质和教师在课堂上的表现;(3)学生在教学过程中的主动性发挥程度.在选取案例时,一方面可以从生产实际中寻找一些合适的项目,另一方面可充分利用历届毕业设计的成果,然后根据教学目标精心设计成软件测试案例.通过案例教学的实施使学生快速的将软件测试理论运用到实际的测试中,提高测试工具的使用技能和测试文档的撰写能力.
讨论式教学是需要教师预先设定讨论题目和要求,由学生分组讨论的一种互动教学方式.课前教师应认真设计一些问题,这些问题紧扣教学内容,同时又具有多解性的特点,这样就需要学生自己去思考答案,对不同的答案进行优劣性探讨.例如,在软件测试这门课中,等价类测试这个知识点就特别适合讨论式教学.等价类测试首先要将输入域或者输出域进行等价类划分[3].通常学生们由于对问题的理解和对理论的掌握不同,设计出来的等价类也会不一样,不能说哪个设计就是绝对正确的,只是由于侧重点不同,设计的结果就不一样,教师应该合理的进行评价和鼓励.讨论的过程必然可以使得学生受益匪浅.
采用现代化教学手段有利于发挥学生在教学活动中的主体作用.针对软件测试课程的特点,制作相应的电子课件,突出重点和难点,以文字、图像、动画等多种表现手段,展示教学内容,不仅增加了课堂信息量,更有利于教师在课堂上坚持讲重点、讲难点、讲思路、讲方法,而学生也可在相对轻松的状态下主动的接受更多知识,掌握有效学习的方法.
建立课程网站,将相关的学习资源以合理的方式和结构组织到网络课堂中,这些资源包括教学大纲、授课教案、课程视频录像、在线测试题、常见问题解答、实验指导书和范例下载等,对学生提交到网上的留言信息及时答复.通过网络的先进性、开放性和实时性,更大范围内实现师资力量的整合,满足学生的学习要求.
必须充分重视和精心设计实验内容.实验内容分为基础性实验和综合性实验.通过基础实验,掌握软件测试的技术,并能熟练运用自动化测试工具执行测试;通过综合实验,掌握软件测试的测试步骤和流程,并能对测试流程进行有效管理.在综合实验中,学生以小组的方式参与到测试项目中,培养学生管理能力和培养团队合作精神.实验课上,重点讲解实验中比较关键的内容,然后辅导、答疑,回答和解决学生在实验中遇到的问题;在实验课结束前,对实验内容和出现的问题进行总结.
基础性实验测试的程序可以从《C++程序设计》或《数据结构》等课程中选取.这样就使得学生很容易将以前所学知识与软件测试结合起来,综合解决软件开发中的问题,使学生有成就感,提高学习的兴趣和动力.综合性实验被测试对象是一个完整的系统.在选取案例时,尽量选择一些学生熟悉的,并且在生产实际中正在使用的系统.另外,还可以从历届优秀的毕业设计成果中选取,学生对这类系统的需求比较了解,对功能点和测试要点熟悉.这样使得综合性实验的题目内容丰富,并且与生产实践结合紧密,可提高学生软件测试的实战能力.
可以将考核分三部分:平时成绩+期末考试成绩+实践能力成绩,平时成绩主要是作业、考勤和平时课堂提问等,期末考试成绩还是传统的笔试方式,主要考核学生对基础知识的理解和掌握情况,实践能力成绩主要看实验成绩.对于实验成绩的考核可以采用答辩的形式.答辩时主要采用学生讲解、演示测试过程、老师提问和小组讨论的方式,以便深入了解学生对实验内容的掌握情况.通过这种考核方法,既能促使学生掌握软件测试的基本原理,又能增强学生的实践动手能力,最终能够将理论知识转化为现实工作能力.
软件测试在软件开发过程中的重要作用日益彰显,对《软件测试》课程进行教学改革,也是为了紧跟软件测试的技术前沿,积极跟踪当前软件测试技术发展的水平和趋势来培养人才.要提高教学质量,离不开正确的教学指导思想、完善的理论实践教学环节、先进的教学方法和手段.如何进一步改革教学体系,进一步提高学生学习的积极性和主动性,以取得更好的教学效果,在今后的教学中仍需要不断实践和探索.
〔1〕武剑洁,陈传波,肖来元.软件测试技术基础[M].华中科技大学出版社,2008.
〔2〕邓武.《软件测试技术(B)》实践教学大纲[EB/OL].http://www.stdjtu.edu.cn/jpk/rjcs/new s_view.asp?newsid=628,2010-11-12.
〔3〕赵斌.软件测试技术经典教程[M].科学出版社,2011.
〔4〕佟伟光.软件测试[M].人们邮电出版社,2008.
G642
A
1673-260X(2011)12-0219-02