1、关于软件测试自动化的教学探讨摘要:软件测试自动化是高等院校软件工程专业(软件测试技术方向)的一门重要的专业课程,学好该专业课程对于以后进行软件测试工作起着重要作用。要讲好这门课,关键要重视基本概念,还要从课程的基础、重点、难点方面考虑,另外,启发式教学非常重要,最后要培养学生的自学能力。 关键词:软件测试;专业课程;教学方法 中图分类号:G424.21 文献标识码:A 文章编号: 1、引言 软件测试是软件开发过程的重要组成部分,是用来验证一个程序的品质或性能是否符合开发之前所提出的一些要求。软件测试的目的有三个:一、确认软件的质量,一方面是确认软件是否做了你所期望的事情,另一方面是确认软件是否
2、以正确的方式来做了这个事件;二、提供信息,包括提供给开发人员或程序经理的反馈信息以及为风险评估所准备的信息;软件测试不仅是在测试软件产品的本身,而且还包括软件开发的过程。如果一个软件产品开发完成之后发现了很多问题,说明此软件开发过程很可能是有缺陷的。因此软件测试的第三个目的是保证整个软件开发过程是高质量的。 现在许多软件企业开始重视软件测试,越来越多的软件技术人员开始投身测试行业。在一些大型软件公司里,软件测试甚至比开发投入的资源还要多。目前,国内的软件测试人员大多数还停留在简单、重复的黑盒手动测试阶段,软件测试人员也常常觉得自己所从事的工作和计算机技术关系不大,只要了解产品的业务逻辑就可以完
3、成工作。这也导致很多测试人员对本身的工作失去兴趣。近年来自动化测试技术逐渐进入软件测试人员的视野。通过对比,人们逐渐发现:软件测试和软件开发一样具有挑战性、有技术含量。开发人员有自己的开发工具,软件测试人员同样也有像 QTP、LoadRunner、Rational Robot 等测试工具;开发人员有例如 Java、C#等语言来编写代码,测试人员也有测试专用的语法来编写脚本、调试脚本;开发人员生产出来的产品可以为企业直接创造效益,测试人员通过质量手段防止更多的缺陷遗留给客户。因此软件测试再也不是一般非专业人员所能够胜任的,而是和软件开发一样具有技术含量、前景美好的技术。 2、理解基本概念,理清知
4、识脉络 软件测试的主要工作内容是验证和确认,在此要注意理解验证和确认的概念,验证是保证软件正确地实现了一些特定功能的一系列活动,即保证软件做了你所期望的事情。对于这个概念,可以举一些日常生活中的例子说明。确定软件生存周期中的一个给定阶段的产品是否达到前阶段确立的需求的过程;程序正确性的形式证明,即采用形式理论证明程序符号设一计规约规定的过程;评市、审查、测试、检查、审计等各类活动,或对某些项处理、服务或文件等是否和规定的需求相一致进行判断和提出报告。确认是一系列的活动和过程,目的是想证实在一个给定的外部环境中软件的逻辑正确性,即保证软件以正确的方式来做了这个事件。其中静态确认,不在计算机上实际
5、执行程序,通过人工或程序分析来证明软件的正确性;动态确认,通过执行程序做分析,测试程序的动态行为,以证实软件是否存在问题。 学习全面的软件自动化回归测试流程最好要有一定的开发基础,另外最好对软件工程中的质量体系、配置管理、度量管理有所了解和认识。例如理解回归测试,要懂得回归测试的策略,要知道为什么要进行回归测试,进行回归测试有什么好处等等,只有这样,才能真正理解回归测试的含义。 3、善于运用启发式教学 启发式教学是指教师在教学过程中根据教学任务和学习的客观规律,从学生的实际出发,采用多种方式,以启发学生的思维为核心,调动学生的学习主动性和积极性,促使他们生动活泼地学习的一种教学指导思想。这不仅
6、是教学方法,更是教学理念。 运用启发式教学,要尽量引导学生主动学习,适当进行启发、指点,而不能简单地灌输。例如,在讲述商业案例中,首先讲解了商业案例的定义,确定业务的需要,然后讲述在成本和收益方面调整自动化,最后讲述评估 ROI。紧接着是自动化测试的总节省,在此,我并没有马上展开讲述不同类型的时间节省,而是让同学们自己先想想,利用自己的知识展开讨论,可以进行 3 个同学分组讨论,然后分别叫不同的组回答讨论的结果,结果讨论的结果都不是很理想。这时,我继续讲解自动化测试的总节省,测试环境建立的时间节省以及测试开发的时间节省等等,学生通过听讲,他们感到印象特别深刻。另外,对于某些知识点,要采取对比的
7、方法,以求消化。比如,测试开发的时间节省、测试执行时间的节省、测试评估/诊断的时间节省这三个时间节省的概念,有哪些相似点和不同点,通过对比学习,学生反映良好。最后,启发式教学离不开讨论,讨论可以加深对问题的理解,它不是简单告诉答案,而是指引他们往正确的方向思索。学生们反映交互式、讨论式与单向灌输式的教学方法最大的差别是“我们都很紧张,思想不敢开小差,不知道老师什么时候提问,不知道会问什么问题,不知道会不会问到自己。 ” 4、培养学生自学能力 法国教育家第斯多惠指出:“一个不好的教师奉送真理,一个好的教师则教人发现真理。 ”这句话足以说明老师不但要传授知识给学生,更重要的是让他们能自主学习。当我
8、讲解测试自动化软件测试框架时候,我只是讲完了验证 ASTF 是否满足特定需求,功能是否表现如预期那样、对所有 ASTF 相关工作,包括设计、开发以及相关测试用例进行同级评审,还有作为软件开发生命周期一部分的同级评审以及评估所有 ASTF 软件时候,剩下的评审测试用例留给学生自己自学。刚开始时,学生还不习惯,部分人根本没有去自学,为了让他们养成这一良好习惯,上课时我经常会提问需要学生自学部分的问题,比如评审测试用例的概念和主要思想等,并把他们的回答作为平时成绩对待,结果,绝大多数学生开始重视,并按照老师的要求积极去图书馆或网上查阅资料。后来,学生们反映,其实测试用例中的内容并不是想象中的那样难。
9、自学能加深他们对课本内容的理解,能开阔他们的视野,可以提高学生解决问题的能力,实现创新人才培养的教学目标。 5、结束语 本文从实际教学的角度出发,探讨了软件测试自动化课程的几点教学方法和体会,当前,除了课堂学习外,建议学生可以充分利用网络资源学习。另外我们要不断吸收其他优秀老师的教学经验,并注重个人平时的积累和创新,逐渐形成个性化的教学风格。我们相信,通过老师和学生的共同努力, 软件测试自动化的课程一定能讲得更好,学生也一定能学得更好。 参考文献 1 张克东.软件工程与软件测试自动化教程M.北京:电子工业出版社,2010 2 李秉德 教学论M 北京:人民教育出版社,2005 3 赵斌.软件测试技术经典教程M.北京:科学出版社,2007 4 王立峰,延伟东等.软件工程理论与实践M.北京:清华大学出版社,2010 5 张克东.软件工程与软件测试自动化教程M.北京:电子工业出版社,2011 作者毛养红,讲师,硕士,研究方向:软件测试,目前从事教学和科研。