二、教学中发现问题

  1、学生对软件测试的误解

  许多学生对软件测试工作存在一些误解。有人认为软件测试无需具备很高的技能,工作枯燥,不具创造性;有些人认为软件测试是软件开发完成后才进行的,只是软件编码的后一个阶段;甚至学生们对软件测试的内容也存在一个误区,认为软件测试是检查别人的程序。会比编程容易。事实上。软件测试的内容、项目种类纷繁复杂,从硬件到软件,从程序代码到文档书写等,都要求测试人员一测试,绝不比编程容易。而且测试人员考虑的东西要比开发人员更多,不仅要考虑合理的操作,也要测试不合理的操作,看软件的反应。只有软件的每个细节都测试无误才能让软件投放到市场上。否则,一旦软件投入市场后发现错误,或更严重不得已收回,将会给公司造成巨大的经济损失。

  2、缺乏兴趣。兴趣是好的老师,对于软件测试工作,通常是比较枯燥的,如果没有兴趣很难做到持久。我们在实践的过程中发现,感兴趣的、做事认真的同学,能够找出很多高优先级的Bug。有的同学说测试工作太枯燥了,千篇一律,好多缺陷还要重现,测好多遍,没有挑战性。这些同学由于缺乏兴趣,不喜欢做软件测试,实际上他对软件测试技术缺乏基本的了解,所以他在测试工作中,只找到了极少数的Bug。

  3、测试用例的编写不规范。对于一个软件的测试来讲,测试用例是至关重要的。测试用例要覆盖所有测试规格,而且测试用例要易于理解、易于执行,简单的讲是要描述的规范。而当时在上机实践的过程中好多同学的测试用例一团糟,糟糕的是用例的质量很差,测试用例的预置条件、操作步骤、预期结果的描述也是乱糟糟的,而且用于存储测试用例的表格设计的很差,界面很不友好,从一定程度上降低了测试效率。使用这些测试用例,软件找不出毛病,但实际上软件是存在问题的,所以这样根本无法保证软件的产品质量。
  4、软件测试的重点不明确。软件测试是软件工程中软件质量保证的一项重要活动,它尽可能发现程序中存在的缺陷,保证程序的质量。软件作为一种商业品,有它的发布时限,这一点经常忽略,同学们经常在一些小问题上纠缠过多,而很多重点的问题却没有得到重视,一些严重问题暴露的比较晚,导致测试时间延了又延,如果真正到工作岗位不能按时交付,是要交违约金的,会给公司带来不小的损失。

  5、自动化工具的使用存在问题。教材上所提到的自动化测试工具不是很多,而且讲解的也不是很详细,在讲课的过程中虽然进行了大量的补充,包括IMB test manager以及load runner等,尽可能讲解的详细。但是由于学生学习的主动性较差,以至于在实训的时候出现了不少同学仍然不会使用自动化测试工具。

  三、解决方案

  1、修改教学计划,改革教学模式

  修改教学计划。传统的教学计划较为僵化,不能快速地发现市场的需求,更不能很好地适应市场的需求。教学计划应建立在对社会和人才市场前瞻性研究的基础之上,针对软件行业做调研,然后根据技术的发展和市场环境的变更进行同步更新。另外,要对课程设置进行变革,使之模块化、科学化,具备一定的弹性。

  软件测试需要学生具有诸如,耐性、心细、敏感、逆向、设问、怀疑、举证、韧性等多方面要求,软件开发多运用正向思维的方式,而软件测试工作则要根据原始需求、验证编码,在思维上更多使用逆向思维方式,根据已知的方向进行发挥,从中找出并预见到软件开发中的不完善之处。因此,学校的教育,不仅仅是教授学生技术和知识,还应该通过选修课和各种活动,培养学生的逆向思维、钻研精神和求真务实的品质。

  改革教学模式。传统的教学模式以教、授为主,新时期则提倡以人为本、因材施教的自主学习模式,并引入项目化教学。自主学习模式,要求教师树立以学生为主的教学观,鼓励学生参与企业项目开发,课堂上采用CIA、多媒体、e?Learning、案例等多种教学手段;学校应积极投建校内、校外实训基地,使学生在实践中学习,在项目中成长;改革考核方式,通过参与项目,考察学生实际测试能力,而不再像以前,以一篇考卷进行死板的考核。学校还可以开展项目教学,在软件实训室内进行教学,学生以项目开发为主线,在导师的全程指导下进行专业课程的学习,也可以请行业人士定期来做指导,这样可以使学生在完成真实项目的过程中,迅速提高软件开发、测试水平以及团队合作能力。

  2、校企合作提供实习机会

  校企合作的软件测试人才培养模式。校企合作培养高技能人才应坚持为区域经济建设服务,坚持以服务为宗旨,以基业为导向,坚持“优势互补,资源共享。互惠互利”的原则。我校软件专业与IBM软件学院、北大工程师合作,也和一些软件企业联系,帮他们做测试,如比购宝网站,给学生提供了真实项目作为上课素材,也提供了业和实习机会。高职院校应在探索校企合作新型办学模式的实践中,不断总结经验,开展全方位、深层次和多形式的合作。高职院校软件测试人才培养的直接办法是多与软件企业进行合作交流,建立实习基地,给学生参与实际项目的机会。这些都需要资金的投入,校企业合作办学。通过参与项目的开发,可以让学生融入到软件开发这个过程当中,并随着开发流程的进展,感受到所面临任务的变化,这这些步骤、经历都积攒起来,成为自己日后工作的经验财富。

  3、打造实战型人才的师资队伍

  计算机课程不像英语、数学一样一成不变,有些教师可以说教课一把好手,但是长时间封闭在学校这个环境当中,对社会上IT行业的发展了解相对滞后。计算机教师必须走出去,接触新的软件、新的技术。担当软件测试课程的教师,更应该紧跟社会需求和企业步伐,好参与过正规软件项目的开发,尤其参与过软件项目的测试,对软件开发的流程以及测试活动在开发流程各个阶段的作用有深刻的认识。上课时以自身参与的项目为实例,讲授起来得心应手。这一方面需要教师本身知识的积累,一方面也需要能够参与到与企业合作交流的活动中去,加强实践经验,紧跟技术发展步伐,时刻了解企业的需求,才能把握授课的方向。前面所说的校企合作,也可以给教师提供挂职锻炼的机会,或利用寒暑假到软件企业应聘兼职,也是提升教师自己实战能力的好方法。

  总之,软件测试课程不是单一的理论课程,应与行业挂钩,将教学内容,实训模式,培养目标与测试工程师的岗位对接,全面提高学生的软件测试职业能力,使学生毕业后真正具备软件测试的能力,能够胜任软件测试岗位。