论文部分内容阅读
【摘要】软件测试课程教学应与行业挂钩,将其与测试工程师的岗位对接,提高学生的软件测试职业能力,使学生毕业后真正具备软件测试的能力,能够胜任软件测试岗位。
【关键词】软件测试 岗位能力校企合作
当前软件行业发展迅速,不断正规化,人们对软件的质量也要求越来越高,使得软件行业对测试的重视程度不断加大,由开始时的忽略不计到现在的不可缺少,使软件测试行业出现巨大的人才需求。随着软件市场的成熟,企业和用户对于软件质量意识的逐步增强,对软件作用的期望值也越来越高,软件的质量和功能、性能、可靠性也正逐渐成为人们关注的焦点,促使国内软件测试人员的地位不断提升。
一、测试工程师岗位能力要求
1.技术能力
通常测试工程师应该具备的技能有以下几点:测试设计能力(即编写测试用例、测试计划的能力),测试执行能力,性能分析能力,自动化测试能力,测试工具使用能力,测试管理能力等。
目前,为了适应软件系统越来越复杂的测试需要,测试技术和理论越来越有针对性。测试有几个发展方向:测试工具的开发,灰盒测试或者白盒测试,测试用例设计,性能测试(包括压力测试、负载测试、安全性测试等)。要向某个方向发展不是一步达成的,需要不断的努力,在各个阶段完成自身能力的提升。
2.逻辑思维能力
软件测试人员要能清晰准确地表述BUG(缺陷、错误),帮助开发人员准确定位问题,提高效率。如果BUG描述模糊甚至是错误的,则会造成开发人员的困惑,甚至干扰开发工作。要清晰准确地描述BUG,不在于字数多少,而是要很好地分析问题,以清晰的思路描述BUG。因此,软件测试人员应该具有较强的逻辑思维能力。
3.沟通能力
现在各行各业都在提倡team work,即团队合作。从表面看,软件测试人员与开发人员是对立的,这不是我们所希望的,我们的最终目的是在工作过程中双方配合,生产出高质量的软件产品,而不是互相给对方找茬。因此,测试与开发之间要建立起信任和默契,要在坚持原则的基础上和开发保持良好关系,让开发人员理解并支持测试人员的工作。因此,沟通能力就显得十分重要。
一般在软件行业中,会从BUG描述的质量以及测试人员与其他部门的关系这两方面,来评价测试人员的能力。为提高学生的沟通能力,我们将课程以分组形式进行,分成测试组、开发组,模拟实际工作过程。并组织测试人员与开发人员讨论和交流,也定期邀请亲身从事软件测试的行内人士给学生讲座,带学生到企业参观,通过亲身接触和体验使学生懂得团队合作的重要性,以在日后注意提升自己的沟通能力。
二、教学中发现问题
1.学生对软件测试的误解
许多学生对软件测试工作存在一些误解。有人认为软件测试无需具备很高的技能,工作枯燥,不具创造性;有些人认为软件测试是软件开发完成后才进行的,只是软件编码的最后一个阶段;甚至学生们对软件测试的内容也存在一个误区,认为软件测试是检查别人的程序。会比编程容易。事实上。软件测试的内容、项目种类纷繁复杂,从硬件到软件,从程序代码到文档书写等,都要求测试人员一测试,绝不比编程容易。而且测试人员考虑的东西要比开发人员更多,不仅要考虑合理的操作,也要测试不合理的操作,看软件的反应。只有软件的每个细节都测试无误才能让软件投放到市场上。否则,一旦软件投入市场后发现错误,或更严重不得已收回,将会给公司造成巨大的经济损失。
2.缺乏兴趣。兴趣是最好的老师,对于软件测试工作,通常是比较枯燥的,如果没有兴趣很难做到持久。我们在实践的过程中就发现,感兴趣的、做事认真的同学,就能够找出很多高优先级的Bug。有的同学就说测试工作太枯燥了,千篇一律,好多缺陷还要重现,测好多遍,没有挑战性。这些同学由于缺乏兴趣,不喜欢做软件测试,实际上他对软件测试技术缺乏基本的了解,所以他在测试工作中,只找到了极少数的Bug。
3.测试用例的编写不规范。对于一个软件的测试来讲,测试用例是至关重要的。测试用例要覆盖所有测试规格,而且测试用例要易于理解、易于执行,简单的讲就是要描述的规范。而当时在上机实践的过程中好多同学的测试用例一团糟,最糟糕的是用例的质量很差,测试用例的预置条件、操作步骤、预期结果的描述也是乱糟糟的,而且用于存储测试用例的表格设计的很差,界面很不友好,从一定程度上降低了测试效率。使用这些测试用例,软件找不出毛病,但实际上软件是存在问题的,所以这样根本无法保证软件的产品质量。
4.软件测试的重点不明确。软件测试是软件工程中软件质量保证的一项重要活动,它尽可能发现程序中存在的缺陷,保证程序的质量。软件作为一种商业品,有它的发布时限,这一点经常忽略,同学们经常在一些小问题上纠缠过多,而很多重点的问题却没有得到重视,一些严重问题暴露的比较晚,导致测试时间延了又延,如果真正到工作岗位不能按时交付,是要交违约金的,会给公司带来不小的损失。
5.自动化工具的使用存在问题。教材上所提到的自动化测试工具不是很多,而且讲解的也不是很详细,在讲课的过程中虽然进行了大量的补充,包括IMB test manager以及load runner等,尽可能讲解的详细。但是由于学生学习的主动性较差,以至于在实训的时候出现了不少同学仍然不会使用自动化测试工具。
三、解决方案
1.修改教学计划,改革教学模式
修改教学计划。传统的教学计划较为僵化,不能快速地发现市场的需求,更不能很好地适应市场的需求。教学计划应建立在对社会和人才市场前瞻性研究的基础之上,针对软件行业做调研,然后根据技术的发展和市场环境的变更进行同步更新。另外,要对课程设置进行变革,使之模块化、科学化,具备一定的弹性。
软件测试需要学生具有诸如,耐性、心细、敏感、逆向、设问、怀疑、举证、韧性等多方面要求,软件开发多运用正向思维的方式,而软件测试工作则要根据原始需求、验证编码,在思维上更多使用逆向思维方式,根据已知的方向进行发挥,从中找出并预见到软件开发中的不完善之处。因此,学校的教育,不仅仅是教授学生技术和知识,还应该通过选修课和各种活动,培养学生的逆向思维、钻研精神和求真务实的品质。
改革教学模式。传统的教学模式以教、授为主,新时期则提倡以人为本、因材施教的自主学习模式,并引入项目化教学。自主学习模式,要求教师树立以学生为主的教学观,鼓励学生参与企业项目开发,课堂上采用CIA、多媒体、e—Learning、案例等多种教学手段;学校应积极投建校内、校外实训基地,使学生在实践中学习,在项目中成长;改革考核方式,通过参与项目,考察学生实际测试能力,而不再像以前,以一篇考卷进行死板的考核。学校还可以开展项目教学,在软件实训室内进行教学,学生以项目开发为主线,在导师的全程指导下进行专业课程的学习,也可以请行业人士定期来做指导,这样可以使学生在完成真实项目的过程中,迅速提高软件开发、测试水平以及团 队合作能力。
2.校企合作提供实习机会
校企合作的软件测试人才培养模式。校企合作培养高技能人才应坚持为区域经济建设服务,坚持以服务为宗旨,以基业为导向,坚持“优势互补,资源共享。互惠互利”的原则。我校软件专业与IBM软件学院、北大工程师合作,也和一些软件企业联系,帮他们做测试,如比购宝网站,给学生提供了真实项目作为上课素材,也提供了就业和实习机会。高职院校应在探索校企合作新型办学模式的实践中,不断总结经验,开展全方位、深层次和多形式的合作。高职院校软件测试人才培养的最直接办法就是多与软件企业进行合作交流,建立实习基地,给学生参与实际项目的机会。这些都需要资金的投入,校企业合作办学。通过参与项目的开发,可以让学生融入到软件开发这个过程当中,并随着开发流程的进展,感受到所面临任务的变化,这这些步骤、经历都积攒起来,成为自己日后工作的经验财富。
3.打造实战型人才的师资队伍
计算机课程不像英语、数学一样一成不变,有些教师可以说教课一把好手,但是长时间封闭在学校这个环境当中,对社会上IT行业的发展了解相对滞后。计算机教师必须走出去,接触新的软件、新的技术。担当软件测试课程的教师,更应该紧跟社会需求和企业步伐,最好参与过正规软件项目的开发,尤其参与过软件项目的测试,对软件开发的流程以及测试活动在开发流程各个阶段的作用有深刻的认识。上课时以自身参与的项目为实例,讲授起来得心应手。这一方面需要教师本身知识的积累,一方面也需要能够参与到与企业合作交流的活动中去,加强实践经验,紧跟技术发展步伐,时刻了解企业的需求,才能把握授课的方向。前面所说的校企合作,也可以给教师提供挂职锻炼的机会,或利用寒暑假到软件企业应聘兼职,也是提升教师自己实战能力的好方法。
总之,软件测试课程不是单一的理论课程,应与行业挂钩,将教学内容,实训模式,培养目标与测试工程师的岗位对接,全面提高学生的软件测试职业能力,使学生毕业后真正具备软件测试的能力,能够胜任软件测试岗位。
参考文献:
[1]黄明和,“导师制下项目驱动教学模式”的研究与实践[J]计算机教育,2007(1):30.
[2]候淑萍,任福成,复合型应用人才培养模式的薪探索[J],科技情赧开发与经济,2007(28):193.
【关键词】软件测试 岗位能力校企合作
当前软件行业发展迅速,不断正规化,人们对软件的质量也要求越来越高,使得软件行业对测试的重视程度不断加大,由开始时的忽略不计到现在的不可缺少,使软件测试行业出现巨大的人才需求。随着软件市场的成熟,企业和用户对于软件质量意识的逐步增强,对软件作用的期望值也越来越高,软件的质量和功能、性能、可靠性也正逐渐成为人们关注的焦点,促使国内软件测试人员的地位不断提升。
一、测试工程师岗位能力要求
1.技术能力
通常测试工程师应该具备的技能有以下几点:测试设计能力(即编写测试用例、测试计划的能力),测试执行能力,性能分析能力,自动化测试能力,测试工具使用能力,测试管理能力等。
目前,为了适应软件系统越来越复杂的测试需要,测试技术和理论越来越有针对性。测试有几个发展方向:测试工具的开发,灰盒测试或者白盒测试,测试用例设计,性能测试(包括压力测试、负载测试、安全性测试等)。要向某个方向发展不是一步达成的,需要不断的努力,在各个阶段完成自身能力的提升。
2.逻辑思维能力
软件测试人员要能清晰准确地表述BUG(缺陷、错误),帮助开发人员准确定位问题,提高效率。如果BUG描述模糊甚至是错误的,则会造成开发人员的困惑,甚至干扰开发工作。要清晰准确地描述BUG,不在于字数多少,而是要很好地分析问题,以清晰的思路描述BUG。因此,软件测试人员应该具有较强的逻辑思维能力。
3.沟通能力
现在各行各业都在提倡team work,即团队合作。从表面看,软件测试人员与开发人员是对立的,这不是我们所希望的,我们的最终目的是在工作过程中双方配合,生产出高质量的软件产品,而不是互相给对方找茬。因此,测试与开发之间要建立起信任和默契,要在坚持原则的基础上和开发保持良好关系,让开发人员理解并支持测试人员的工作。因此,沟通能力就显得十分重要。
一般在软件行业中,会从BUG描述的质量以及测试人员与其他部门的关系这两方面,来评价测试人员的能力。为提高学生的沟通能力,我们将课程以分组形式进行,分成测试组、开发组,模拟实际工作过程。并组织测试人员与开发人员讨论和交流,也定期邀请亲身从事软件测试的行内人士给学生讲座,带学生到企业参观,通过亲身接触和体验使学生懂得团队合作的重要性,以在日后注意提升自己的沟通能力。
二、教学中发现问题
1.学生对软件测试的误解
许多学生对软件测试工作存在一些误解。有人认为软件测试无需具备很高的技能,工作枯燥,不具创造性;有些人认为软件测试是软件开发完成后才进行的,只是软件编码的最后一个阶段;甚至学生们对软件测试的内容也存在一个误区,认为软件测试是检查别人的程序。会比编程容易。事实上。软件测试的内容、项目种类纷繁复杂,从硬件到软件,从程序代码到文档书写等,都要求测试人员一测试,绝不比编程容易。而且测试人员考虑的东西要比开发人员更多,不仅要考虑合理的操作,也要测试不合理的操作,看软件的反应。只有软件的每个细节都测试无误才能让软件投放到市场上。否则,一旦软件投入市场后发现错误,或更严重不得已收回,将会给公司造成巨大的经济损失。
2.缺乏兴趣。兴趣是最好的老师,对于软件测试工作,通常是比较枯燥的,如果没有兴趣很难做到持久。我们在实践的过程中就发现,感兴趣的、做事认真的同学,就能够找出很多高优先级的Bug。有的同学就说测试工作太枯燥了,千篇一律,好多缺陷还要重现,测好多遍,没有挑战性。这些同学由于缺乏兴趣,不喜欢做软件测试,实际上他对软件测试技术缺乏基本的了解,所以他在测试工作中,只找到了极少数的Bug。
3.测试用例的编写不规范。对于一个软件的测试来讲,测试用例是至关重要的。测试用例要覆盖所有测试规格,而且测试用例要易于理解、易于执行,简单的讲就是要描述的规范。而当时在上机实践的过程中好多同学的测试用例一团糟,最糟糕的是用例的质量很差,测试用例的预置条件、操作步骤、预期结果的描述也是乱糟糟的,而且用于存储测试用例的表格设计的很差,界面很不友好,从一定程度上降低了测试效率。使用这些测试用例,软件找不出毛病,但实际上软件是存在问题的,所以这样根本无法保证软件的产品质量。
4.软件测试的重点不明确。软件测试是软件工程中软件质量保证的一项重要活动,它尽可能发现程序中存在的缺陷,保证程序的质量。软件作为一种商业品,有它的发布时限,这一点经常忽略,同学们经常在一些小问题上纠缠过多,而很多重点的问题却没有得到重视,一些严重问题暴露的比较晚,导致测试时间延了又延,如果真正到工作岗位不能按时交付,是要交违约金的,会给公司带来不小的损失。
5.自动化工具的使用存在问题。教材上所提到的自动化测试工具不是很多,而且讲解的也不是很详细,在讲课的过程中虽然进行了大量的补充,包括IMB test manager以及load runner等,尽可能讲解的详细。但是由于学生学习的主动性较差,以至于在实训的时候出现了不少同学仍然不会使用自动化测试工具。
三、解决方案
1.修改教学计划,改革教学模式
修改教学计划。传统的教学计划较为僵化,不能快速地发现市场的需求,更不能很好地适应市场的需求。教学计划应建立在对社会和人才市场前瞻性研究的基础之上,针对软件行业做调研,然后根据技术的发展和市场环境的变更进行同步更新。另外,要对课程设置进行变革,使之模块化、科学化,具备一定的弹性。
软件测试需要学生具有诸如,耐性、心细、敏感、逆向、设问、怀疑、举证、韧性等多方面要求,软件开发多运用正向思维的方式,而软件测试工作则要根据原始需求、验证编码,在思维上更多使用逆向思维方式,根据已知的方向进行发挥,从中找出并预见到软件开发中的不完善之处。因此,学校的教育,不仅仅是教授学生技术和知识,还应该通过选修课和各种活动,培养学生的逆向思维、钻研精神和求真务实的品质。
改革教学模式。传统的教学模式以教、授为主,新时期则提倡以人为本、因材施教的自主学习模式,并引入项目化教学。自主学习模式,要求教师树立以学生为主的教学观,鼓励学生参与企业项目开发,课堂上采用CIA、多媒体、e—Learning、案例等多种教学手段;学校应积极投建校内、校外实训基地,使学生在实践中学习,在项目中成长;改革考核方式,通过参与项目,考察学生实际测试能力,而不再像以前,以一篇考卷进行死板的考核。学校还可以开展项目教学,在软件实训室内进行教学,学生以项目开发为主线,在导师的全程指导下进行专业课程的学习,也可以请行业人士定期来做指导,这样可以使学生在完成真实项目的过程中,迅速提高软件开发、测试水平以及团 队合作能力。
2.校企合作提供实习机会
校企合作的软件测试人才培养模式。校企合作培养高技能人才应坚持为区域经济建设服务,坚持以服务为宗旨,以基业为导向,坚持“优势互补,资源共享。互惠互利”的原则。我校软件专业与IBM软件学院、北大工程师合作,也和一些软件企业联系,帮他们做测试,如比购宝网站,给学生提供了真实项目作为上课素材,也提供了就业和实习机会。高职院校应在探索校企合作新型办学模式的实践中,不断总结经验,开展全方位、深层次和多形式的合作。高职院校软件测试人才培养的最直接办法就是多与软件企业进行合作交流,建立实习基地,给学生参与实际项目的机会。这些都需要资金的投入,校企业合作办学。通过参与项目的开发,可以让学生融入到软件开发这个过程当中,并随着开发流程的进展,感受到所面临任务的变化,这这些步骤、经历都积攒起来,成为自己日后工作的经验财富。
3.打造实战型人才的师资队伍
计算机课程不像英语、数学一样一成不变,有些教师可以说教课一把好手,但是长时间封闭在学校这个环境当中,对社会上IT行业的发展了解相对滞后。计算机教师必须走出去,接触新的软件、新的技术。担当软件测试课程的教师,更应该紧跟社会需求和企业步伐,最好参与过正规软件项目的开发,尤其参与过软件项目的测试,对软件开发的流程以及测试活动在开发流程各个阶段的作用有深刻的认识。上课时以自身参与的项目为实例,讲授起来得心应手。这一方面需要教师本身知识的积累,一方面也需要能够参与到与企业合作交流的活动中去,加强实践经验,紧跟技术发展步伐,时刻了解企业的需求,才能把握授课的方向。前面所说的校企合作,也可以给教师提供挂职锻炼的机会,或利用寒暑假到软件企业应聘兼职,也是提升教师自己实战能力的好方法。
总之,软件测试课程不是单一的理论课程,应与行业挂钩,将教学内容,实训模式,培养目标与测试工程师的岗位对接,全面提高学生的软件测试职业能力,使学生毕业后真正具备软件测试的能力,能够胜任软件测试岗位。
参考文献:
[1]黄明和,“导师制下项目驱动教学模式”的研究与实践[J]计算机教育,2007(1):30.
[2]候淑萍,任福成,复合型应用人才培养模式的薪探索[J],科技情赧开发与经济,2007(28):193.