前言:中文期刊网精心挑选了软件测试课程总结范文供你参考和学习,希望我们的参考范文能激发你的文章创作灵感,欢迎阅读。
软件测试课程总结范文1
关键词:软件测试;测试工具;测试管理;企业需求
中图分类号:G642 文献标识码:A 文章编号:1009-3044(2014)32-7664-02
Abstract: In order to reverse the misunderstanding in College of Software Testing Talents Training, through explains the intension of software testing,proposes the teaching was in the software testing course necessary and feasible, as long as the change of thoughts, simulation test case of enterprises in the process of teaching, students' comprehensive quality training, can cultivatecomprehensive talent of software testing by enterprise love.
Key words: Software testing; test tool; test management; enterprise demand
自上世纪80年代,伴随着软件行业的发展需要,软件测试的基础理论和实用技术开始形成,经过三十多年的发展,软件测试在软件开发行业中的角色越来越重要,我们目前评价软件测试,它即需要工具和技术的支持,更需要有科学的管理体制,它既要保证软件能够健壮运行,又要保证软件的功能完全符合客户的需求,一个好的测试队伍,是软件开发必不可少的依靠,尤其是复杂的软件项目,开发和测试要亲如手足,才能保证项目的顺利进行。
目前高校的软件相关专业的毕业生,大约有1/5的人在5年之内从事过或最终从事软件测试相关的职业,这是一个相当大的比重,同时也反应出社会上对软件测试职业的缺口很大,众所周知,高等教育往往落后于企业的实际发展,这种“厚基础,宽口径”的办学宗旨已经盛行了很多年,当然,在许多专业领域,这种以不变应万变的培养体系是最明智的选择,但在计算机软件教学领域,因为这个学科的发展速度几乎超乎人类的想象,因此我们必须让学生在校园里感受到计算机企业中对计算机技术的需求方向,这样才不至于在学生走出校园时无所适从。软件测试职业的职位待遇稳步提升,而且其职业寿命要远远长于软件开发,从学生的职业规划角度来看,在高校进行软件测试中高级人才的培养是一条可行之路。
1 高校开设软件测试课程的必要性
事实上,在高校计算机教学体系中开设软件测试课程,并不单单是为了迎合企业的需求,软件测试是软件工程课程的延伸,是软件开发课程的补充,是软件管理课程的实践。
软件测试课程的基础学科涉及数学、计算机导论、软件工程、计算机组成、管理学和信息技术等,如果没有这些学科的支撑,软件测试无法深入学习。
软件测试课程的开设,对高校计算机软件专业的学生来讲,是有着非常大的意义的,目前很多大型的软件企业并不担心开发人员的招聘,而对熟练掌握软件测试技术和管理方法的高级测试人员求贤若渴,这一方向的职业缺口确实非常之大,究其原因就是目前几乎所有高校的软件相关专业都开设了软件开发从技术到管理的全套课程,而软件测试的相关课程几乎为零,这样的学生走出去,很难迅速掌握测试的理念,也无力制定宏观测试计划,不得不从测试行业最低端的测试员开始做起,这对于高校毕业生来讲这是一种人才的浪费,在高校的计算机课程体系加入软件测试内容已经迫在眉睫。
在任何一个行业,从业人员对行业的成熟度区分,是企业招聘首先要考虑的问题,我们经常在招聘信息中看到“有工作经验”这样的条款,在软件测试行业也是如此,一般给出5种分级:1级我们称之为用户级测试人员,这一级别的测试人员直接扮演客户的角色来使用软件,看是否能发现问题;2级是软件测试操作员,这类人群受过一定程度软件测试的专门训练,可以执行上级下达的具体测试任务;3级是软件测试技术员,这一职位人群有很多软件测试的经验,能够非常熟练的使用某些软件测试专门技术,能够设计测试用例;4级是软件测试系统工程师,他们具有相当广泛的计算机相关专业知识,熟悉软件开发,熟练掌握所有软件测试技术,并具有项目管理经验;5级是软件测试总工程师,总工程师负责管理整个软件测试项目,具有掌控全局的能力和技术。
高校软件测试人才的培养,其目标要向3级人才靠近,并且这些人才有向4级或5级成长的持续发展能力。
2 软件测试教学中需要重视的两个问题
2.1扭转重开发,轻测试的偏见思想
很多人轻视软件测试,认为软件测试无需具备很高的技能,是没有前途的工作,缺乏创造性,很多高校也存在重开发,轻测试的思想,学生在这种观点的熏陶下,也对测试工作存在偏见,其中对软件测试工作有三个认识误区尤为突出:首先,软件测试是软件开发完成之后才进行的,只是软件编码的最后一个阶段,其地位可有可无。其次,软件测试不需要具备很高的专业技能,工作乏味枯燥,不具创造性,最后,软件投入使用后一旦出现BUG,测试人员要负主要责任。
事实上,首先,一个好的软件测试团队,在软件需求分析阶段就已经开始测试了,开发人员理解的客户需求是否正确,要由测试人员监控和保证,测试工作和开发工作是并行的,尤其在软件项目开始的时候,监控和防范一个微小的问题或隐患,是为了防止软件成型后出现无法挽回的缺陷。其次,软件测试是一项综合技能能强的工作,运用测试工具的能力,与人沟通的能力,有效管理的能力,书写文案的能力等等,做好软件测试工作绝对不是想象的那么简单,而且一旦具备了综合测试的素质,将是受用终身的资本。最后,软件测试规范实施后,软件仍然可能出现BUG,这是开发和测试人员应该共同面对的现实问题,测试人员只能保证BUG越来越少,越来越不影响系统的健壮运行。
2.2强调管理与技术并重
软件测试的规范实施需要测试技术和管理方法两方面的支撑,如果不具备专业的测试技术,只能做一些简单的功能测试,如果不具备宏观管理计划的能力,只能处于被指挥状态进行片面测试的实施,现在软件测试真正缺少的是技术和管理兼备的人才,高校的学生素质非常适合软件测试高端人才的培养。高校的培养中,要让学生深刻理解,我们培养的学生不是只能低头做测试任务,而是要能指挥测试工作,这绝对不是件简单的工作,需要全面的技能和完善的人格,只有这样的人才,才能带领出出色的测试队伍。
教学中,增加实训环节,给学生安排丰富的实例和习题,最好采用实际软件项目的测试案例,让学生在学校感受到企业中一样的工作环境,并安排和企业中一样的测试岗位,让学生体会沟通和管理的必要,在独立处理问题的过程中激发学生的学习兴趣,促进理论和实践教学的结合,把对学生的应用能力的培养融汇于教学中。
3 软件测试专业课程设计的目标和原则
软件测试专业要全方位的培养和提高学生的基础理论、实践能力、设计能力、实践训练等综合素质。重视管理、人文、经济等知识的学习。
3.1软件测试专业课程设计的目标
高校软件测试培养目标要以市场为导向,培养具有一定的设计测试计划方案的、具有管理能力,能平衡整个测试项目各方面因素的软件人才,这些人才要具备软件开发的整体认识,能制定和执行测试,能利用测试工具完成一定测试任务。
本专业课程的重点包括:软件缺陷生命周期管理;软件测试基本概念的内涵;主流测试工具的应用;进行全面的系统测试的方法;注课程以实训为主,重动手能力的培养等。 具体课程要涵盖:熟练掌握至少一种数据库应用技术及一门软件开发语言;了解软件开发过程中软件测试的重要性;掌握主流的自动化测试工具;科学管理测试队伍。
3.2软件测试专业课程设计的原则
课程的设计要体现与时俱进的精神,以企业的实际项目为依托,主要原则包括:
1)开展项目教学,项目教学具有针对性、研究性、启发性和实践性等。项目的选择要知识涵盖全面,要能够激起学生的学习兴趣。
2)制定专业课程计划、课程大纲和教学方案等,课程计划提倡电子化、网络化和课堂教学并用,建设校企合作的专兼结合的教学团队,开设以项目为载体的教育大纲,用以指导课程教学工作的开展。
3)建立测试工程内容的课程结构模式,把真正的测试项目开展到课堂上来,或者让学生在学习期间进入企业进行岗前培训,充分安排工程实践,引进软件测试的工程师资格认证,同时逐步建立科学的工程教育检验和质量评估体系。
理论与实践并重,课程需要涵盖单元测试、集成测试、性能测试、功能测试与系统测试。注重设计和管理的执行过程。为学生创造可自由而主动的学习氛围。以学生为出发点,在软件测试中融会贯通大学里学习的软件相关课程,在项目驱使下培养主动学习的能力。采用分组讨论学习方式,结合实际项目,把学生组织为若干小组,在教师指导下完成工作。不断提升学校教师的专能,提供系统学习和阶段性培训机制。
4 总结
软件测试课程在高校的教学中,没有现成的经验和模式,需要我们根据行业的发展随时调整,以社会需求为导向,以培养行业
中高级人才为目标,以项目实训教学为依托,边进行边思考,逐步发展,逐步稳定,所以我们要以发展的眼光,灵活的策略来微调教学过程的细节,测试无处不在,高校进行软件测试的教学改革也是一种测试,只要我们采用严谨的工程控制策略,科学管理,总结规律,必然能取得高校进行软件测试课程探索的胜利。
参考文献:
[1] Ron Patton.软件测试[M].北京:机械工业出版社,2002.
[2] Myers G J.软件测试的艺术(中文版)[M].王峰,陈杰,译.北京:机械工业出版社,2006.
软件测试课程总结范文2
关键词:自主学习;外文文献研读;软件测试;双语研究性教学
0、引言
软件测试是从事计算机软件开发和维护专业的人员应该掌握的一门技术。软件测试是软件工程中的关键活动之一,是保证软件质量的重要手段,其工作量通常占软件开发总工作量的50%以上,而对于某些可靠性要求极高的软件系统,如航天、银行等领域的软件系统,软件测试占软件开发总工作量的比例甚至达到60%~80%。软件测试的目的是发现软件中的错误,并及时修正这些软件错误,以减少软件在后出现错误,提高软件产品质量。软件测试是一项需要专业技能的工作,它包含许多理论和实践。如果缺少这些理论知识和实践经验,测试的深度和广度就不够,测试质量也就无法保证,从而导致软件质量达不到要求,影响软件的可信性。
由于国内软件产业的现状所致,很多的软件公司属于软件外包型公司,这些公司以软件开发为主。这样,软件工程专业很大一部分学生毕业后通常从事软件开发或者程序员工作,这也影响着学校对软件工程专业的设置。因此,当前高校在软件工程专业课程设置上往往将很大一部分精力放在软件开发课程的设置上,如各种语言的学习、软件开发方法的学习等。但是,软件工程不仅包括软件开发,还包括软件测试以及软件维护。大部分国外大型软件公司,如微软、IBM等公司,这些公司对软件测试非常重视。在这些公司内部,软件测试人员数量并不比软件开发人员少,因为一个优秀的软件产品最终是通过不断的软件测试进行验证和评价的。随着软件工程课程的不断完善,当前软件测试的重要性已逐渐得到重视,很多高校已将软件测试课程作为软件工程专业课程中的必修课程。该课程是软件工程的核心组成部分,是连接软件开发和软件的纽带。通过本课程的学习,学生要了解软件测试及其管理的重要性,掌握软件测试基本理论、技术和方法,具备研究设计测试用例和使用自动化测试工具的基本方法和实践能力,能将测试驱动的理念融入软件开发、维护的研究与应用中,从工程化角度提高和培养学生从事大型软件的测试技术和能力。
尽管软件测试课程已作为软件工程专业的必修课程,但从教师和学生两个角度对该课程的调查反馈发现,教师觉得该课程不好教,教学效果不好;而学生感觉该课程较空洞,没有发现其在实际软件开发中有多大的应用。这主要因为在传统的软件测试教学中,学生只是被动地参与,听教师授课,听教师讲授各种软件测试概念和方法,但学生并没有真正学到这些理念,并没有对这些方法进行应用。所以这种传统的软件测试教学方法效果很难令人满意。
扬州大学信息工程学院将软件测试课程作为一门双语研究性课程进行试点改革,探讨如何更好地进行软件测试课程的教与学。本文将以该学院软件工程专业软件测试课程为例,探讨学生自主学习的软件测试双语研究性教学方法。笔者作为该课程的授课人实施了本文的软件测试教学方法,其目的是研究如何促进学生进行双语研究性教学,促进学生主动学习软件测试新技术,从而让学生学到软件测试课程中的一些测试理念,让他们了解软件测试在整个软件开发过程中的重要性。
1、软件测试双语研究性教学
软件测试双语研究性教学主要包括三方面内容:教学、研究、实践。这三者在软件测试双语研究性教学中的关系是:以教学为本学习,以研究为重点突破,以实践为辅助训练。下面分别介绍这三方面的内容:
1)教学方面。
软件测试双语研究性教学和传统的软件测试教学一样,根据软件测试教学大纲进行教学,主要包括软件测试基本概念、软件测试基本方法、白盒测试、黑盒测试等。由于研究性教学过程中加入了研究,所以教学是以基本的测试理论和技术为主。另外,在教学过程中,由于本课程属于双语课程,所以教学过程中采用英文PPT,中文授课方式进行教学。另外,教学主要以启发式教学为主,让学生更多参与课堂讨论,由于本文主要讨论研究方面,所以这里对教学不做详细讨论。
2)研究方面。
本课程采用的是研究性教学,因此研究是本课程的重点和特色。本课程所采取的研究方式主要以学生自主学习为主,采用阅读文献的方式。由于本课程是双语教学,研究过程中所提供的文献材料全部是英文论文,这些材料都是从当年软件工程领域顶级国际会议中选取的有关软件测试方面的最新技术和方法,这样有助于学生开阔视野,了解最新的软件测试技术、方法,及软件测试发展的方向。这一部分的实施方法将在第3节进行详细介绍。
3)实践方面。
软件工程是实践性很强的专业,同样,软件测试也是如此。需要通过不断的实践才能理解和掌握软件测试技术,将测试理念贯穿到软件工程项目中。本课程软件测试实践主要包括三方面内容:一是验证性实践,熟悉已有测试工具,学会使用这些工具,并利用已有测试工具生成测试用例;二是自己开发软件测试工具,主要根据研读的论文进行工具的设计和开发;三是软件测试工具的验证和评估,主要是对自己开发的工具进行验证和评估。一方面利用已有测试工具来验证当前软件测试工具,另一方面,利用已有软件测试知识评估测试工具在故障识别方面的效率,这有助于学生更深地掌握软件测试技术,了解什么样的测试技术是好的测试技术或者方法,是有效的测试工具。这一部分也不是本文的重点,因此不详细展开讨论。
2、软件测试双语研究性教学特色
本课程作为扬州大学软件工程专业的试点课程,采用双语研究性教学方式进行课程的授课和学习。对于双语性教学,主要采用英文材料,中文授课;而对于研究性教学,主要是让学生进行自主学习最新的软件测试技术和方法,研读相关的英文论文,进行专题报告和讨论,并鼓励学生开发实现这些技术。因此,在本课程的教学过程中,主要体现了5个特性。
(1)自主性:让学生从给定的英文材料中自主选择学习材料,自主组建团队,自主与英文材料作者联系、沟通、交流和讨论。
(2)协作性:学生必须要组建团队,团队成员数量由2~4人构成,团队之间相互协作、配合,共同完成整个研究性学习过程。
(3)互动性:在学习过程中,必须要与论文作者沟通和交流,真正把握论文作者的真正意图,并尝试提出自己的见解,与论文作者进行讨论。
(4)实践性:要能够实现论文材料中的软件测试方法,在工具开发过程中,鼓励学生采取测试驱动的开发方法,并利用所掌握的软件测试技术去测试自己的工具。
(5)研究性:在研读论文过程中,要对论文进行深入的讨论和研究,特别是对作者的思想以及未来工作、论文中的不足进行研究,提出可能的解决方案。
3、软件测试双语研究性教学实施
笔者主要针对软件测试双语研究性教学过程中的研究过程的实施进行讨论。在本课程中,研究主要是采用学生阅读文献的方式进行自主学习的研究,主要针对当前最新的软件测试技术进行学习和研究。研究性教学具体的实施过程如图1所示。
首先,教师从当年软件工程顶级国际会议中选取软件测试相关的研究技术论文放入文献库中。这样的文献库主要用于学生对当前软件测试的学习和研究。对于本科学生来说,独立地去研读这些最新技术还有一些难度,而且时间上也紧张。因此,研究性学习主要采取团队方式一起研究,这样学生进行自由分组,并且每个小组指派一名学生作为小组组长负责该小组的研究性学习进展。
有了文献库以及学生分组后,就进入自由选题阶段,即各个小组从文献库中选取自己感兴趣的论文。在各小组确定自己的研究论文后,进行论文的研读。在论文研读过程中,要求每个小组每周至少讨论一次,讨论各小组的分工任务完成情况,对原文的理解情况,以及对遇到的问题进行讨论,并且项目小组要及时记录这些讨论记录,每周发送给任课教师。另外,在研读论文过程中,每个小组要用英文与论文作者进行沟通与交流(如果作者没有回复,可以选择与课程教师进行交流),并将交流过程中的对话记录下来作为课程成绩考核的依据。
在论文研读后,需专门安排几节课进行专题报告和讨论,主要用于检查各小组对原文的理解情况。专题讨论内容包括三方面:一是学生对论文内容的理解;二是学生需要提出对论文的见解和观点,挖掘论文可能存在的问题或对论文中的未来工作部分提出见解;三是本小组研读论文的体会分享。在专题报告中,我们还邀请了学院的一些其他教师参与进来与学生们一起讨论,一方面,教师对各个论文本身进行点评;另一方面,教师对各个小组的表现进行点评。另外,在专题报告中,强调学生的参与,就是大家要多提问,多讨论。
专题讨论后,各小组要对原文中软件测试技术进行实现。其中,在软件测试技术实现过程中,鼓励采用测试驱动的软件开发方法;另外,需使用已有的软件测试技术和工具进行测试。在完成开发软件测试工具后,需要选择一些例子进行软件测试技术的验证。最后,各个小组需要提交一份总结报告,主要是关于技术实现进行总结,包括这几方面内容:对论文原文的理解或技术改进,采用的测试技术和工具,技术改进效果的验证和评估。
4、实施效果
该课程已在2012-2013年秋学期的扬州大学软件工程专业的一个班按照本文教学方式进行实践。该班学生40人,我们从2012年ICSE(International Conference on Software Engineering)、FSE(Symposium on the Foundations of Software)、ISSTA(Symposium on the Foundations of Soft-ware)、ICST(Intemational Conference on Sottware Testing,Verification and Validation)、ICSM(Inter-national Conference on Software Maintenance)等国际顶级会议上选取了44篇软件测试相关的论文作为学生学习的资料库。然后让学生自由组队,每组2~4人一起研读论文。最后组队15组,选择了15篇论文进行学习和讨论。在研读论文过程中,建议学生自己与论文作者用英文进行交流和讨论,讨论论文中不能理解的内容;在研读完论文后,我们组织了专题报告,报告主要包括三方面:一是论文主要内容;二是学生对论文的看法以及学生自己的想法;最后就是分享研读过程中的体会。另外,我们鼓励学生用英文进行报告(其中一组采用英文进行报告)。专题报告过程中我们还邀请软件工程系相关教师一起进行点评。
通过这样的学习,大部分小组完成得较好,基本能理解论文内容,也提出一些想法和改进措施。在研读论文后,学生对论文内容和自己的想法进行实践,实现相关技术并进行实验验证。几个月的学习后,大部分学生对这门课的研究性教学方式比较认可。我们以问卷的方式对学生进行了调查分析,调查主要包括对课程教学方式的认可,对自己收获的认可等。发放调查问卷40份,收回有效调查结果28份。该调查问卷由11个问题组成。前10个是选择题,如表1所示,是对当前教学方式和教学效果的同意或支持程度,由1~5这5个选项构成,其中1表示非常支持(同意),2表示支持,3表示无所谓,4表示不支持,5表示严重不支持。统计结果如表1所示。最后一个调查问题是关于这门课程的建议。从表1中可见,学生还是比较渴望学习新的知识,比较认可这种学习方式;另外,学生对自己的学习效果也比较认可。最后,无论从考试效果,还是学生的反响来看,这门课所采用的教学和学习方式是比较成功的。该教学方式也得到学院的认可,所采用的教学方式也得到科技日报、新华报业网等主流媒体的广泛关注和报道。
软件测试课程总结范文3
关键词:软件测试;案例教学;教学内容
中图分类号:TP311 文献标识码:A文章编号:1009-3044(2010)09-2275-02
Teaching Methods of Software Testing Technology
GAO Zhi-sheng
(School of Mathematic and Computer, Xihua University, Chengdu 610039, China)
Abstract: Software testing is a course that teaches the software testing methods and means. Case teaching methods that runs through the whole software testing process with a single case is proposed. The corresponding teaching contents and experiment requirements are also introduced. Through the teaching methods, the studying interesting, the initiative and the capability of finishing the practical software testing projects are really improved.
Key words: software testing; case teaching; teaching contents
软件开发过程中的质量问题是关系到软件和软件组织生存的重大问题,得到了越来越多的重视。目前在高校的软件工程专业普遍开设有软件测试相关课程。但是在具体教学实践中,教师普遍感觉到有许多不如意的地方[1],具体表现在教学内容与具体应用脱节,学生对软件测试认识有误区,学生学习积极性不强、认为软件测试是文字性课程,软件测试过程如何展开,如何选择测试工具,如何在教学中贯彻软件测试管理思想等。
近年来关于怎样进行软件测试教学,引起了相关专家的重视和讨论[1-4]。本文在总结前人的经验基础上,结合作者近几年在软件测试技术课程教学中的实践提出了以一个具体项目案例贯穿整个教学过程,理论与实践紧密结合的教学方法。
1 教学的目的和教学方法
软件测试技术课程是本校软件工程专业的一门专业必修课程,通过软件知识体系的学习,使学生了解软件测试的发展现状,认识软件测试的重要性,掌握软件测试的方法和技术,熟悉软件测试过程管理,从而具有独立承担软件测试项目的实施能力,具有测试计划、管理、实现和软件质量保障的能力[3]。
针对以上教学目的,我们在软件测试技术教学过程中引入一个具体测试项目案例贯穿整个教学过程的教学方法。第一课时,我们组织学生自由进行分组,每组5个人左右,每组确定一个名称。要求每个小组在课程的前几周完成同一个模拟题目“大学图书馆管理系统”的软件开发。系统完成后,然后各个小组交叉进行测试对方开发的软件系统。随着课程的进度,主要要求学生完成软件系统的单元测试,集成测试,功能测试和系统测试。单一的案例贯穿整个软件项目测试过程的案例教学方法的优点是:
1)软件测试的前期课程有“Java EE编程技术”,同时我们选择图书馆管理系统作为开发对象,学生从技术上和业务需求上都具备快速完成该系统的能力。
2)相同的开发对象,互相测试对方开发的系统,有利于形成竞争,有利于调动学生的学习积极性。同时也有利于教师对学生完成的结果进行点评和组织课堂讨论。
3)整个软件测试课程,学生能够完成对一个具体项目的全部测试过程,有利于促进学生系统地掌握软件测试的技术方法,组织和过程。
2 教学过程
我们的教学过程主要包括以下5个阶段,最初的几周主要讲解软件测试原理,同时这个阶段学生主要完成指定项目,然后是4个主要的软件测试技术:单元测试,集成测试,功能测试和性能测试。软件测试课程也会讲解其他如回归,压力等其它测试技术,下面是我们课程重点讲授的内容和要求。
2.1 软件测试原理
本阶段主要讲授软件测试技术的基本概念,使学生掌握基本的软件测试原理。包括软件测试的重要性,软件评测师的职业规划,软件质量的概念等基本概念,重点讲授的内容是白盒测试及用例的设计和黑盒测试及用例的设计两个章节。白盒测试主要包括逻辑覆盖和基本路径覆盖两种用例设计方法,逻辑覆盖又分为语句、判定、条件、判定/条件、组合、路径覆盖等。黑盒测试的重点内容是等价类划分,边界值分析,因果图,决策表和场景法。
本阶段对学生的实践要求是开发“大学图书馆管理系统”,由上课老师为学生统一提供系统的需求规格说明书,该系统的主要功能如图1所示。要求学生结合对本校图书借阅系统的使用和需求规格说明书,采用Java EE技术进行开发,系统采用典型的4层结构进行设计,如图2所示,即运行在客户端计算机上的客户层组件、运行在Java EE服务器上的Web层组件、业务层组件和运行在EIS服务器上的企业信息系统(EIS)层软件[4]。系统开发采用JSF+EJB3.0的架构,Glassfish为应用服务器,MySql提供数据库服务。
2.2 单元测试
单元测试是对软件最小组成单元的测试,是软件开发过程中进行的最基本的测试。单元测试主要按照程序内部的结构测试程序,检验程序中的每条通路是否都能按预定要求正确工作。单元测试主要考虑各个模块接口的输入和输出,模块内部的数据结构,模块的边界条件,模块的基本路径和模块的出错处理。单元测试阶段还讲授代码规范性检查,代码覆盖率的检查,代码复杂度的计算和内存泄漏的检查等。
完成单元测试的基本原理的学习后,要求学生交叉完成图书馆管理系统的单元测试,主要抽取系统中的核心函数进行测试。完成测试后要求每个小组提供单元测试计划,单元测试用例和单元测试报告3个报告文档。得到所有报告后,组织一次课堂讨论,展示优秀小组的成果,分析原因总结经验。单元测试工具要求采用JUnit,代码规范和代码质量分析采用Logitscope, Pruify用于分析代码的内存问题。
2.3 集成测试
软件各个单元通过单元测试之后,需要检查各个单元之间的相互接口是否正确,就是集成测试。软件集成测试主要考虑的问题是模块间的数据传递是否正确,一个模块的功能是否会对另一个模块的功能产生错误的影响,全局数据结构是否有问题,块组合起来的功能是否能满足要求,集成后累积误差是否被放大等[5]。关于软件集成测试的原则、策略和用例设计等相关原理可参考其它相关文献。
教授完集成测试相关原理后,我们要求每个小组负责人组织完成系统的集成测试。集成测试以一个EJB、Servlet或者JSF为基本单元,工具选择Cactus和HttpUnit。完成集成测试后要求每个小组提交集成测试计划、集成测试设计文档和集成测试分析报告。收齐所有小组成果,组织学生进行讨论。
2.4 功能测试
功能测试就是对产品的各功能进行验证,根据功能测试用例,逐项测试,检查产品是否达到用户要求的功能。主要考虑系统的各个功能,一般从软件产品的界面、架构出发,按照需求编写测试用例,测试产品时是否达到用户使用的需求。本阶段主要让学生采用WinRunner完成系统的功能测试,进行功能测试之前首先完成测试计划和测试用例的设计。然后完成WinRunner的6个步骤:识别程序的GUI,建立测试脚本,完善测试脚本,在新版应用程序执行测试脚本,分析测试结果和回报缺陷。
2.5 性能测试
典型的性能测试主要是从系统的响应时间、吞吐量、系统资源利用率、并发用户数、HTTP事务处理数/秒、会话数/秒和连接建立时间等方面衡量系统的性能。性能测试主要有压力测试,容量测试和强度测试等。针对图书馆管理系统的特点,我们要求学生理解性能测试的重要性和困难性,掌握性能测试的基本概念和技术。在此技术上,我们要求学生使用LoadRunner完成系统的压力测试。主要步骤是测试需求分析,制定测试策略和方案(重点是设计测试场景),使用VuGen创建脚本,在Controller中创建场景,运行场景,分析结果。完成后提交测试策略和方案报告,脚本和图书馆管理系统压力测试报告。
3 结论
一个合格的软件评测师要求具有编程能力、开发能力、沟通能力、管理能力、逆向思维能力等多种能力。怎样在大学软件测试技术教学中培养既有理论又能实践的软件测试从业人员是本文研究的动机。我们提出的基于同一案例贯穿整个软件测试技术教学过程的教学方法,通过学生互测对方开发的软件系统,相互对比,相互促进同时组织课堂讨论,有效营造了主动学习的气氛,增强了学生的学习积极性,培养了学生主动思考问题的能力。该方法是一个值得借鉴的软件测试技术教学方法。
参考文献:
[1] 李绘卓,唐峻,范勇.基于案例的软件测试实验教学[J].电脑知识与技术,2009,27(5):7820-7821.
[2] 屠红蕾.软件测试教学的点滴体会[J].计算机教育,2008(10):124-125.
[3] 李亚.“软件测试”教学探索与实践[J].计算机教育,2008(6):14-15.
软件测试课程总结范文4
关键词:测试设计;测试模型;教学模式
中图分类号:G642 文献标识码:A 文章编号:1009-3044(2012)34-8163-02
软件测试是软件质量保证的关键步骤。软件测试研究的结果表明:软件中存在的问题发现越早,其软件开发费用就越低;在编码后修改软件缺陷的成本是编码前的10倍,在产品交付后修改软件缺陷的成本是交付前的10倍;软件质量越高,软件后的维护费用越低。另据对国际著名IT企业的统计,它们的软件测试费用占整个软件工程所有研发费用的50% 以上。软件测试成为与软件开发同等重要的地位。
长期以来,我国软件企业缺乏完善的质量保障体系,缺乏严格的质量认证和规范化管理,不能与国际标准接轨。其中一个主要的原因,就是在专业教学中缺乏对软件测试行业需求的了解、缺乏适合学生将来与测试领域直接对口的软件测试专业的基础性教学内容。
近年来社会上培训机构越来越多地开设软件测试技能培训,国内各大高校也都有相关的软件测试课程,甚至有些高校近年正在申请软件测试专业,但是目前的软件测试教学材料非常有限,软件测试相关的书籍很多,但适合教学的较少;极少看到软件测试实验教材。
软件测试课程理论性强,实践性要求高,专业难度又很大的特点。当前,我们学院软件测试课程作为专业选修课刚刚开设几年,我们的软件测试课程存在的问题是,没有充足的师资,而且软件测试课程的相关教学材料不完善,甚至没有。另外,在“3+1”教学模式改革的背景下,在加强实践教学的同时,我们教师应当重新思索如何做好“3”的工作,即“教”的过程。因此,对教学方法、教学手段等教学模式的改革有待于我们进一步研究。
1 知识结构
随着软件工程行业的日渐成熟,软件已渗透到人们日常生活的各个方面,对软件可靠性、可维护性和安全性等的要求越来越高。为了应对这种变化,软件企业必须用多种方法来应对这些变化,其中就包括改善软件测试方法。经过几十年的研究和实践,已涌现出许多知识和技术。
初涉软件测试的人都有一个体会,软件测试的知识和技术是如此的复杂、繁多,无从下手。尤其是在很难找到一本全面、系统地介绍软件测试书籍的情况下,整理软件测试知识结构,找出其核心的内容显得尤为重要。教授从核心入手,必能达到事半功倍的成效。图1就是以朱少明的《软件测试方法和技术》一书为依据,画出的软件测试知识结构图。
2 软件测试的本质,是“方法”和“度量”
分析图1的知识结构,我们发现,软件测试的核心部分是测试设计与测试模型,即软件测试的本质就是选用什么样的方法对软件缺陷进行度量。方法就是选择自动化测试还是手工测试,选择什么样的测试技术、采取什么测试策略和测试方法;度量就是通过测试用例的设计使软件缺陷量化。软件测试的本质如图2所示。
由此,我们发现学习和讲授软件测试的方法就是:注重测试设计,掌握各类测试设计方法、能够将测试对象抽象成各类模型,并运用测试方法设计用例去覆盖。
3 教授软件测试的方法
教授软件测试的方法之一:从系统化的概念出发。测试是一个很大的概念网。因此我们一方面重点讲透测试概念,引导学生要高度关注词汇和术语的阅读理解;另一方面对于一些超前出现的术语,要引导学生主动查找。
教授软件测试的方法之二:从测试模型出发。在开发一个软件系统时,我们首先要设计和建立系统模型。哪怕是个小程序,也要看作一个系统的一部分进行设计。测试如同开发,也要设计先行,将测试对象抽象建立测试模型,并运用各种测试方法设计测试用例模板,测试报告文档模板等。在整个的教学活动中,以测试设计为核心,组织教学内容,引入设计案例,培养学生测试设计能力。
4 软件测试教学模式
软件测试课程实际是一个理论性强、实践要求高的一门课程,但现在的软件测试课程单一,且偏向于理论化。在教学改革中,加强实践教学,提高学生实践教学能力是我们的重中之重。
4.1 案例教学
软件测试课程是一门理论知识难、对实践要求又高、专业性又强的课程,在一个民族院校,讲授这样一门课程是对老师的挑战也是对学生的考验。传统的教学只告诉学生怎么去做,而且其内容在实践中可能不实用,且非常乏味无趣,这样一定程度上影响学生的积极性和学习效果。在课堂教学中,适当引入案例,有助于丰富课堂教学内容,在理论教学中增加实践内容。案例的引入,可引导学生变注重知识为注重能力。知识不等于能力,知识应该转化为能力。学生一味的通过学习书本的死知识而忽视实际能力的培养,不仅对自身的发展有着巨大的障碍,也不能适用社会企业的需求。案例的引入,增强了教师和学生的双向交流。传统的教学方法是老师讲、学生听。听没听、听懂多少。要到最后的测试时才知道,而且学到的都是死知识。在案例教学中,学生拿到案例后,先要进行消化,然后查阅各种他认为必要的理论知识.这无形中加深了对知识的理解,而且是主动进行的。捕捉这些理论知识后,他还要经过缜密地思考,提出解决问题的方案,这一步应视为能力上的升华。同时他的答案随时要求教师给以引导,这也促使教师加深思考,根据不同学生的不同理解补充新的教学内容。双向的教学形式对教师也提出了更高的要求。
4.2 引入软件测试工具,增强实践教学环节
我们学院建立了专门的软件测试实验室,购买了专门的测试教学平台。该平台规范测试过程,注重测试分析和设计,培养学生
工程思想。另外引入一些主流的开源软件测试工具作为应用基础,以实战能力培养为目的,有组织地开展软件测试的实践教学活动。测试工具的引入,增强了学生兴趣,提高实践动手能力。
4.3 作业设计
作业环节是我们教学过程中的重要环节,通过作业我们教给学生学习软件测试课程的方法。基于这样的思想,我们设计作业从三方面入手:
1)基本作业――概念的认知与理解;
2)习题作业――提高与分析;
3)实践作业――实践动手能力。
从这三方面作业也是一个对软件测试从概念基础的认知理解到认知的提高和分析,从分析能力到实践动手能力的加强。这样设计作业,让实践教学贯穿于整个教学活动中,从单调的理论学习到与理论和实践相结合的学习,循序渐进,从而使学生从被动学习逐步转向主动学习,增强学习积极性。
5 结论
软件测试课程是前沿的、新的专业课程,之前没有较成熟的教学材料。在整合软件测试课程的教学内容时,融入工程思想,把握测试核心,设计适合我们学校学生实际情况的教学体系。突出实践教学环节的探索和积累,注重开发和积累软件测试习题和实践案例,引入测试工具学习与使用,增强学生的学习兴趣,切实提高学生软件测试问题的分析能力和实践应用能力,提高了教学质量。对于理论性强,实践性要求高,专业难度又很大的这类专业课程的教学模式探索有一定的借鉴作用。
参考文献:
[1] 朱少民.软件测试方法和技术[M].北京:清华大学出版社,2008.
软件测试课程总结范文5
关键词:研究生教学;软件测试;测试案例;交叉教学;测试实践
随着国家信息化建设步伐的不断加快,软件日益成为信息系统中极为重要的组成部分。软件的可信性已倍受关注,目前软件测试仍然是保障和提高软件质量的一种有效方法。同时随着国内软件产业的标准化与国际化,越来越需要专门的软件测试高级人才。当前高校仍然是培养软件测试专业人才的重要机构。
目前我国高校开设软件测试课程按学历分主要有三个层次:大专、本科与研究生阶段。大专和本科阶段的软件测试课程在我国已经开设有较长时间了,主要是教授基本的软件测试理论与技术,侧重以基础知识为核心。一些高校已经摸索出一些好的教学经验和方法,发表了一些教学体会[1-3]。但是,研究生(本文特指硕士研究生,下同)阶段的软件测试课程教学却面临很多新的问题。特别是随着近几年高校研究生招生规模的扩大及招生形式的多样化,各高校研究生生源相差较大,学习目的与培养形式也有所差异,使得研究生的软件测试课程教学很难采取统一标准,给各校任课老师提出了新的挑战。从我校研究生软件测试课程教学实际出发,笔者分析了近年来研究生在学习基础、学习能力及学习目的上的诸多变化,提出了一种“紧密结合测试案例、测试理论与实践交叉进行”的软件测试教学新方法。该方法连续实施在两级研究生的教学实践中,从课堂反应、课程考核、案例测试实践指标来看,该方法较大程度地激发学生的学习兴趣,提高了研究生测试理论知识及实践测试动手能力。
1传统教学及面临的新问题
1.1传统的研究生软件测试教学形式
2010年5月我们参加了第四届全国软件工程领域硕士培养工作研讨会,与会期间我们和软件测试同行进行了广泛的交流。大部分院校认为软件测试教学大纲仍然沿用研究生招生改革之前的大纲,即教学对象为传统的学术型研究生,课程教学仍然以理论教学为主,教学内容也以书本为主,按章节进行教学。课程结束考试仍以论文报告的形式完成。总结大部分高校共同的教学内容有:
1) 软件测试概述;
2) 测试人员的离散数学;
3) 测试人员的图论;
4) 功能性测试;
5) 结构式性测试;
6) 集成测试;
7) 系统测试;
8) 面向对象测试等。
传统教学以教授学生理论知识为主,旨在培养懂理论的学术型研究生。未考虑学生的水平、学习需求、学习目的及学习能力等因素的差异,导致相当一部分同学失去学习兴趣。此外教学过程没有测试案例及其他实践测试环节,导致总体教学效果不理想,课程结束后大部分同学均没有掌握基本的软件测试理论与技术。
1.2研究生教学的新特点
随着近年来国家研究生招生及培养方式的改革,研究生的招生规模、招生形式及培养方案等均变化较大。以前是以工学硕士为主,重点培养懂理论、会创新的高级学术型研究人才。近年来,国家硕士研究生招生已细分为工学硕士及工程硕士,工学硕士又分为学术型与应用型。工程硕士和应用型硕士侧重于培养工程开发、工程应用、工程管理等应用创新型高级人才。研究生招生及培养制度的改革促使培养方案不一样,相应的课程大纲及教学方式也应不一样。故研究生软件测试课程教学面临的主要特点有:
1) 理论与实践并重;
2) 加强工程案例的测试教学;
3) 激发学生兴趣,互动教学;
4) 侧重于培养学生的实际测试动手能力。
现阶段研究生软件测试课程应考虑所有选修学生的学习基础、学习需求、学习目的及学习能力的多
样化,重点学习以下内容:常用软件功能性测试方法;面向对象程序测试技术;WEB软件测试;错误注入测试技术;安全性测试、主流软件自动化测试工具及大公司常用测试方法等。通过课程的学习,使学生较好地掌握软件测试理论、先进的软件测试技术和主流测试工具,并能较好地应用于实际软件工程项目中。
2案例交叉教学法大纲及其教学过程
基于研究生培养方案的诸多变化,我们提出了一种紧密结合测试案例、测试理论与实践交叉进行的教学新方法。该方法以学生为中心,旨在激发学生的学习兴趣,提高学生的理论知识和实际案例测试能力。
2.1江苏大学研究生软件测试教学大纲
表1是我校现行的研究生软件测试教学大纲,全校理工科研究生也可选修。
2.2案例交叉教学法教学过程
案例交叉教学法总体分成两个阶段:课前案例程序编写和课堂理论与案例交叉教学。
第一阶段:课前案例程序编写。上课前一周布置实现两个测试案例,每学期难度类型与之类似。
案例1:使用C、C++或C#语言编写一个程序,计算任意两个正整数a,b的最大公因数,其中0≤a,b≤1060。并撰写程序设计说明书。
案例2:使用ASP或JSP技术,数据库SQL Server实现具有用户注册、登陆验证的简单B/S结构系统。
当然,可以根据不同学生的水平布置不同的案例程序,要求所布置程序难度、功能和工作量与案例1和2相当,即案例1满足后期单元测试、功能测试、类测试、错误注入测试、安全测试及编写测试驱动等测试需求,案例2满足后期GUI测试、WEB测试、错误注入测试、安全测试及测试工具的教学等测试需求。
第二阶段:课堂理论与案例交叉教学。结合前面两个案例,自第二章开始结合测试案例、测试理论与实践交叉进行教学。具体教学流程如图1所示。
图1案例交叉教学流程图
图1中,S1代表第1章,其它类似。案例1重点是让学生掌握基于程序结构的测试方法,如边界值测试、等价类测试、类测试、数据流与控制流测试方法等。案例2重点让学生掌握基于程序规格说明的测试方法,如GUI测试、错误注入测试及基于状态的测试等方法。此外,结合案例1和2,不但教授学生重要的功能性测试方法,而且教授学生一些关于软件安全
性、可靠性及稳定性的测试思路,全面提高学生的综合测试能力。
此外,我们的教学过程中将联系国内外大型软件企业的实际测试方法及测试工具。如我们选用的教材之一便是微软软件测试工程师们撰写的教程,所讲授是主流自动化测试工具系列:Parasoft公司AEP方案系列、Mercury Interactive公司系列及IBM Rational系
列。重点讲授的自动化测试工具主要有:Parasoft C++Test;Mercury公司主要产品LoadRunner、WinRunner、TestDirector、QuickTestPro、IBM Rational Purify等。同时将结合程序案例1、2及其他大型测试案例进行工具的演示教学。
3教学效果分析
我们连续对两级研究生运用了案例交叉教学法,在课程结束后对50名学生进行了问卷调查,同时结合学生考试成绩及课程测试报告情况,结果表明案例交叉教学法教学效果明显好于传统的按章节教学方法。表2从学生兴趣、理论掌握度、测试用例设计、测试驱动编写、测试方案设计、测试思想及自动化测试工具的掌握等方面进行了教学效果对比分析。
学生问卷调查中的学生兴趣度以调查结果为主,其他调查项均以课程考核结果为主,调查结果为参
照。在课程期末考核中除了考查常规的测试基本理论与技术之外,同时还要求学生交叉测试其他同学的程序案例,最后撰写测试用例设计报告及程序测试报告。
由表2数据对比分析可知,案例交叉教学法在各方面都明显优于传统的按章节教学法,特别是学生在掌握测试思想及测试自动化工具方面近96%以上的学生掌握较好。
4结语
随着近年来软件企业规模化、正规化及国际化步伐的加快,社会越来越需要大量的专业化高级软件测试人才,这给高等院校及高级软件人才培训机构带来了新的挑战。本文提出了一种紧密结合测试案例、测试理论与实践交叉进行的教学新方法。该方法综合考虑学生的学习要求、学习基础及学习目的等诸多因素,以培养学生的测试兴趣为出发点,以学生自己编写的程序为测试案例,将测试理论、测试技术、测试案例及测试工具结合起来进行教学。课程最后介绍了微软公司常用的一些测试方法。
通过测试能力考核及课后调查表明,绝大部分学生认为新方法教学更有利于他们掌握软件测试基本理论,提高测试案例实践编写能力,特别是学会了主流自动化测试工具的应用。教师们也普遍反映软件测试课程的教学质量和教学效果有明显的提高。
参考文献:
[1] 韩玉民,车战斌,郭基凤,等. 两年制软件测试技术人才培养模式的研究与实践[J]. 计算机教育,2007(7):60-62.
[2] 许棣华,朱立华. 分组软件测试教学法探讨[J]. 计算机教育,2008(14):133-135.
[3] 贺平. 软件类专业的工程教育研究与实践[J]. 计算机教育,2010(11):82-89.
A New Case Cross-teaching Approach for Graduate Software Testing Course
CHEN Jin-fu, YANG He-biao
(School of Computer Sci. & Telecom. Engineering, Jiangsu University, Zhenjiang 212013, China)
软件测试课程总结范文6
关键词 课程体系 项目化 模块化
中图分类号:G712 文献标识码:A DOI:10.16400/ki.kjdks.2016.04.021
Abstract According to traditional vocational education computer major curriculum independent of each other, can not adapt to the students future career needs, to software testing technology as an example, analysis the cognitive law of the career needs and learning, the modular curriculum, the curriculum connection between, form the system of the professional curriculum system; through the project of the implementation of specific teaching, through knowledge and skills at the same time to strengthen the training of professional quality.
Key words curriculum system; project; modularization
高职计算机类专业时至今日依然存在着这样一个现实:一方面,随着现代化进程的不断推进,IT类人才的社会需求不断加大,每年IT人才的需求缺口达到一个庞大的数字,大量的用人单位求贤若渴;另一方面,几乎所有的职业院校都开设了计算机类相关专业,大量毕业生却不容易找到自己满意的工作。我们迫切需要寻找有效途径,解决庞大的毕业生就业群体与就业岗位之间不对称的问题。
“计算机类专业课程项目化模块化研究”旨在从课程建设的角度,缩小企业需求与学校培养的人才之间的差距。学生的职业规划需要从进校开始,贯穿始终,他们在学习的过程中就应该明确――当前所学课程和所学知识在整个专业体系中的地位。
下面我们以软件测试技术专业为例,从计算机知识体系的分析出发,结合IT职业岗位分析,研究如何将课程体系模块化,如何以项目化的方式组织教学。
1 课程体系模块化
课程体系模块化是指,将计算机类专业课程编制成在深度和广度上有差异的几种模块,各相近专业可以按照需要选择适用的课程模块,再加上少量自己开发的课程,组合成专业教学计划。模块化的课程结构,不但能及时体现新知识、新技术、新工艺和新方法 ,大大增强教学内容的适用性,而且能在一定程度上适应不同学习基础、发展需求各异的受教育者的需要。
我校软件测试技术专业,从专业的特征出发,以构建合理的模块化、项目化课程为目标,以专业知识认知过程与基于工作过程的课程设置为着眼点,形成了具有职业教育特色的课程建设思路及课程结构。
1.1 确定人才培养的目标及规格
我校软件测试技术专业主要面向“武汉・中国光谷”核心圈、武汉都市圈、“1+8”城市圈的软件测试和软件开发的企业,培养与社会主义现代化建设要求相适应的德、智、体、美全面发展,适应生产、建设、管理和服务第一线需要,具有良好的职业道德和敬业精神,掌握软件测试、软件开发所需的系统基础知识,具备软件测试环境装配、调试、使用、维护及测试工具的操作、测试用例设计动手能力,能从事软件测试、软件测试管理、软件开发、软件产品售前售后服务、技术文档编制和管理的高素质技能型专门人才。
根据专业领域的要求及人才培养目标,我们确定了以下的人才培养规格,如表1所示。
根据近五年毕业跟踪调查,软件测试技术专业学生的工作岗位主要为软件测试、软件开发、软件服务三个方向。三个方向的毕业生规格有一定的差异。
1.2 形成专业课程体系
根据前面得到的人才目标规格,以及专业技术领域的要求,我们拟定出六大课程模块,如图1所示:公共基础、计算机软硬件基础、算法分析与设计、软件工程、程序设计与开发、软件测试。课程的模块化有助于教学过程中紧扣目标,各课程之间有效衔接。
2 课程项目化
课程项目化,是指根据职业能力培养的需要,将教学内容设计成集知识、体能力和素质一体化的课程项目,以项目为媒介组织实施教学与考核,从而实现专业人才培养的目标。
课程项目化的教学目标是实现职业技能和职业素质的综合培养;教学方法强调学生自主性、师生互动性与成果应用性紧密结合。这样的教学方法将职业体验融入到学习过程中。
以“Java高级程序设计”课程为例,为实现课程目标,该课程设计了两个项目:第一个项目桌面游戏“捕鱼达人”,让学生对Java高级的七个知识点有初步的认识;第二个项目“学生信息管理系统”进行强化认知,增强实践能力。
在教学方法的运用上,该课程将学生划分为若干小组,模拟软件开发小组(公司),制定相应的公司管理说明,如表2所示;将业绩作为学生平时成绩评定标准。
通过项目化学习、项目化管理,学生的知识、技能及综合素质得到了很好的锻炼,同时也充分发挥了学习过程中的互助作用,使得学生的自主学习能力得以提高。
3 结语
以上我们主要从课程建设方面,以软件测试技术专业为例,对职业教育计算机类专业课程的改革提出了自己的观点,旨在提升计算机类职业教育的实效,让学生真正享受到职业教育的“实惠”。这样的改革还涉及师资队伍建设、实训基地建设、教材建设等多个方面的内容,有待我们进一步探索、实践和总结。
参考文献
[1] 姜荣,丛迎,曲桂.高职院校教师职业能力标准与评价体系研究[J].职教通讯,2013(2).
[2] 杨丽君,辛和金.高职院校教师职业能力构成及提升策略[J].中国市场,2014(17).
[3] 熊安锋,阳军,殷遇骞.高职院校教师职业能力标准与评价体系研究[J].大学教育,2014(16).