邱祥庆 福建江夏学院信息技术系 350002
高校《软件测试》教学的若干探讨
邱祥庆 福建江夏学院信息技术系 350002
本文以软件测试人才培养的现状为背景,结合高校软件测试的课程教学,从开设软件测试课程的必要性,软件测试课程的学习内容,以及如何学好软件测试等方面展开讨论,对今后高校在软件测试教学中应当注意的问题提出了若干看法。
软件测试;教学方法
随着软件开发技术的飞速发展以及软件功能需求的日益复杂,软件测试已经成为提高软件质量的重要手段。企业对软件测试人才的需求也日趋旺盛,然而由于我国在软件测试这一块起步较晚,到目前为止并未形成系统化的软件测试人才供应链。而高校作为人才培养的主阵地,如何适时地开设软件测试的相关课程,为社会输送合格的测试人才便很值得大家思考。下面笔者将通过分析当前高校软件测试人才培养的现状并结合自身近几年来在软件测试课程的教学体会谈谈自己的看法。
目前虽然各高校培养出来的软件专业相关学生能掌握基本的软件开发技术,但很多院校目前并未开设软件测试的相关课程。学生缺乏相关的测试经验,也没有软件测试这一方面的意识,很多软件专业的学生就仅仅关注于软件功能的代码实现,但对于如何设计高质量的软件,如何判断一个软件的好坏却往往无从下手。而现在很多IT企业都意识到软件质量控制的重要性,加大了软件开发过程中软件测试的力度,因而在招聘过程中对求职者在软件测试相关技能方面的要求也就越来越高,而显然目前很多软件专业的毕业生是很难胜任企业的需求。
很多软件专业的学生都简单的认为开发软件就只要学好一门软件开发语言,到时候会用该语言实现软件的相关功能就行了,但其实这是远远不够的。随着软件业的不断发展,要实现软件的基本功能并不困难,而难的是如何保证该软件的质量。企业在购买软件时可选择的同类产品非常多,作为软件开发商要在同类产品中脱颖而出打败竞争对手除了软件基本功能的实现外,还要看软件的性能,软件的易用性,软件的稳定性,而这些都可以通过软件测试来进行控制和提高。合理的软件测试可以为企业缩短软件开发时间,节约开发成本。
同时,学好软件测试就相当于是自己成为软件的“医生”,医生既可以为病人看病,也可以保证自己在平时不容易生病。所以说学好了软件测试就算以后自己不从事软件测试工作,也可以保证自己平时在软件设计过程中不会犯那些易犯的错误,自然无形中也就提高了自己软件设计的质量。
而且对于软件测试这门课程,也不能简单地只将其作为一门专业课来学习,更应该作为一种技能进行培养。我们国家也在近几年推出了许多针对软件测试的相关职业认证,比如说全国计算机等级考试四级中的软件测试工程师,软件资格水平测试中的软件测评师,这些都说明软件测试已经渐渐成为一种专门的职业。所以高校在人才培养模式上也必然应当进行适当调整以与之接轨。
软件测试课程是一门理论和实践结合得十分紧密的一门课程。学生既要系统地学习软件测试的基本概念和基本理论,深刻理解和掌握软件测试和软件测试过程的基本方法和基本技术,也要会运用软件测试技术来解决实际的测试问题。同时,同时该课程还要求学生能至少掌握一到两种的软件自动化测试工具。根据目前市场对软件测试的现状来看,软件测试课程应该至少包括以下几方面的内容:(1)测试的基本技术如黑盒测试,白盒测试,静态测试,动态测试等;(2)不同测试流程所采取的不同测试方法,如单元测试,集成测试,系统测试,验收测试等;(3)测试用例的编写;(4)基本的测试管理方法,如测试计划的编写;(5)自动化测试工具的应用。
软件测试课程与其它编程类的课程不同,它包含的知识点比较复杂,可以说和计算机有关的知识都有涉及,学生不仅要掌握大量的理论知识,还要求有一定的动手实践能力。要上好软件测试课程既要在教师身上下工夫也要在学生身上下工夫,具体来说可以从以下几个方面进行提高:
(1) 教材的选取。由于软件测试在国内起步比较晚,因此相关的教材还不够成熟,教材的针对性不强,很多教材只是涉及了软件测试的基本理论知识,但仍不够全面,而且由于计算机发展十分迅速,一些教材上所提到的一些测试工具已经比较落后,而新的测试工具又未曾涉及。因此,教师除了尽量选取内容较新较全的教材之外,在授课过程中还需要及时补充一些最新的软件测试的发展情况。
(2) 教师在理论授课过程中应该避免照本宣科,除了把该理论知识的技术要领讲解清楚外,适当的举一些与现实生活比较贴近的例子是很有必要的。比如在讲解因果图分析法时,便可以举“自动售货机找零钱”以及“象棋中走马规则”的例子,这两个例子同学们都比较熟悉,理解起来自然也就更容易了。
(3) 在教学过程中要培养学生团队协作的精神。软件测试工作对团队协作的要求是比较高的,并不是靠一个人的努力就能完成的。因此在平时的教学过程中也要在学生中逐渐树立这种团队协作意识。这可以通过“案例驱动,分组教学”的方法来实现。当学生系统的学习完某一块的知识点时,可以提供若干个案例,然后将全班同学进行分组,每组负责一个案例。比如说要对一个MIS系统进行测试,小组里同学由于各自思维方式的不同,存在着不同的观点,有些同学注重的是该软件的外观,有些同学注重的是功能点是否正确,有些则注重具体实现算法的效率。这样一来大家各抒己见,慢慢地就能把系统中的缺陷逐步寻找出来,而这些如果只靠一个同学的话,那么测试结果肯定是不全面的。通过这种办法,同学之间自然慢慢地就会明白团队协作的重要性,同时也了解评测一个软件的出发点可以有很多。
(4) 要培养学生自学的能力。软件技术的发展是十分迅速的,基本上每年都会有很多新技术新工具诞生,而教材由于其滞后性无法包括最新的一些信息,因此很多新知识新技术都要靠自己从课本外的地方去获取。比如说在介绍自动化测试工具时,课本上的自动化测试工具可能现在企业都不再用了,而且现在很多企业也都有自己研发的自动化测试工具,这时就要求学生能够自己通过网络等途径去了解学习这些新的东西。因此,在这一点上笔者以为在软件测试教学中并不在于说要让学生掌握多少种的自动化测试工具,因为等他们毕业后可能这些工具又过时了,关键在于让学生了解自动化测试大概的工作原理,工具是死的,只有理论知识扎实了并有较好的自学能力,那么至于使用哪一种测试工具只要经过适当的短期培训都是可以掌握的。
(5) 在教学过程中要培养学生的耐心和细心。软件测试是一项既需要耐心又需要细心的工作。有些时候测试工作会显得十分枯燥乏味,这个时候就更需要有足够的耐心,必须调整好自己的心态,这样最终才能把工作做好。教师要使学生逐步树立起软件测试的意识,要让学生体会到测试工作的一种行业精神,那种坚不懈,追求完美的工作态度和思想。
(6) 软件测试培养模式的转变。现在很多高校并没有真正的软件测试专业,有些仅仅是在介绍软件工程的时候提到了软件测试,有些学校也仅仅是开设了软件测试这一门课,而软件测试所需的知识仅仅靠一门课程是远远不够的,有条件的院校应该开设软件测试这一专业,然后针对这一专业开设多门相关课程来对软件测试进行系统全面的学习,只有这样才能培养出真正企业所需的测试人才。
总之,软件测试人才的培养在高职院校中仍处于起步阶段,要想在短时间内能成熟发展也是不现实的,还需要一个逐步完善的过程。要健康地引导学生走入软件测试这个方向,除了学校的重视外,社会各企业也应该积极配合,主动与学校合作,让企业走进校园,也让学生走进企业,只有各方面都重视起来,我国的软件测试业才会得到真正的提高。
[1]Ron Patton. 软件测试[M]. 北京:机械工业出版社. 2006.
[2]贺平. 软件测试教程[M]. 北京:电子工业出版社. 2005.
[3]Paul C. Jorgensen. 软件测试[M]. 北京:机械工业出版社. 2003.
10.3969/j.issn.1001-8972.2010.19.123