论文部分内容阅读
摘要:近年来我国测试行业发展很快,存在大量的就业需求。目前很多高校相关专业中已设立测试课程,但是以测试为方向培养专业人才的并不多。将探讨测试行业的各种能力要求,为了满足这些要求需要设立测试方向的系列课程,通过相关的多门测试课程逐步、全面地培养学生测试的相关理论和实践能力。
关键词:课程体系;测试;专业
作者简介:侯霞(1976-),女,天津人,北京信息科技大学计算机学院,副教授;刘建宾(1963-),男,山西阳城人,北京信息科技大学计算机学院,教授。(北京?100101)
基金项目:本文系北京市人才强教深化计划-中青年骨干项目(项目编号:PHR201108256)、北京市人才强教深化计划-软件工程教学创新团队(项目编号:PHR200907220)、北京市级人才培养模式创新试验区-软件工程专业卓越计划试点改革项目的研究成果。
中图分类号:G642?????文献标识码:A?????文章编号:1007-0079(2012)22-0068-02
随着软件产业的发展和用户对软件产品质量意识的逐步提升,不少企业因软件质量问题而遭遇产品失败、企业亏损的问题,迫使软件企业开始逐步加大软件测试的力度,以提升软件质量。与软件开发相比,我国的测试行业起步较晚,目前存在大量的就业需求,但是行业现状和人才储备还存在一些问题。[1]为了适应市场需求,很多高校都开设了测试相关课程。
课程的设置是与专业的培养目标相关的,目前很多高校的相关专业仅将测试作为一门课程放置在专业课中。这样可以为学生在测试行业的就业提供所需的基础知识,但是,目前将测试作为专业方向的高校并不是很多,可见,设立测试方向来培养专业的测试人才具有良好的市场需求。如果将测试作为专业方向,如何设计课程体系才能培养能力更全面的测试人才是一个需要探讨的问题。
2010年教育部联合有关部门,共同实施“卓越工程师教育培养计划”(简称“卓越计划”),用以促进我国由工程教育大国向工程教育强国发展。[2]在这种大背景下,如何培养合格的软件测试工程师是很多教育工作者所关注和探讨的问题。[3,4]
一、测试的不同层次需求
很多人认为,测试比开发要容易。测试只是分析代码并寻找软件缺陷,只是进行黑盒测试,甚至不用分析代码。其实这是一种错误理解,而且,测试不再仅是软件开发过程中的一个阶段,广义地讲,测试贯穿了软件生命周期的各个阶段。高素质的测试人员可以在软件需求、设计、实施各个阶段发挥作用,尽早发现问题而降低软件修正和维护的费用,有助于改善软件质量。可见,测试的理论、方法和技术也是相当复杂的。完全掌握软件测试所付出的努力和投入不亚于编写程序,两者所需要的技术也极为相似。
测试包括规划、设计、执行等不同层次的工作。而每种层次的工作对测试人员具备知识和能力的要求是不同的。可做如下分类:
1.测试规划
对具体的测试活动给出宏观的指导与预算,如制定测试项目的高层策略、方案,进行测试项目的风险分析,负责进度和人员安排等。要求对测试技术的整体把握良好,具有软件项目管理的相关知识和经验。
2.测试设计
制定出针对于测试项目及每个测试活动的测试策略、测试方案及测试用例;要求理解并掌握常用的测试方法和技术,针对具体问题进行分析,采用正确的方式设计测试用例。当进行白盒测试的设计工作时,需要分析软件架构和程序代码,因此需要具有软件开发技术。
3.测试执行
按照测试设计产生的输出,执行相应的测试活动,查找并报告相应错误和缺陷。可分为两个层次:
(1)基本手工测试。仅是测试用例的手工执行,如实记录测试结果即可。这是测试中最简单、对技术要求最低的工作。
(2)自动化测试。利用测试软件进行测试。要求掌握自动化测试工具的使用,并根据测试用例的设计编写自动化测试脚本。要求有一定的编程能力。
实际工作中,上述各种层次的工作可能界限并不是很清晰,但是不同工作对测试能力的要求一定是存在差距的。分析各种层次工作的具体能力需求,对于人才培养中课程体系设置是至关重要的。
二、测试方向课程体系
虽然上一部分提及的各种工作,需要工作经验的积累,是一个逐步提升的过程。但是如果将测试作为一个专业方向来设置,培养出的学生不能仅满足于从事手动的测试执行,而应该有更高的定位,这样才能为学生在测试行业的发展提供必要的知识储备和更好的提升空间。
从事层次稍高的测试工作是需要了解甚至掌握开发技术的。因此培养测试方向的学生同样需要像传统的计算机人才培养一样,需要开设“程序设计”、“数据结构”、“编译原理”等专业基础课程。除此之外,为了培养知识和能力更为全面的测试人才,还需要设置测试方向的系列课程,来为不同层次的测试工作提供知识储备。笔者建议为测试方向开设“测试方法与技术”、“测试平台和工具”、“软件测试过程”三门课程,分别侧重培养学生不同方面的知识和能力,同时配备企业实践环节作为课程体系的一部分以增强学生的动手实践能力。
1.“测试方法与技术”课程介绍
本课程主要讲授软件测试的背景和发展、软件测试的基本术语、黑盒测试和白盒测试的常用方法和技术等内容。通过本课程的学习学生充分了解软件测试在软件开发中的地位和必要性,掌握测试的基本知识,最主要的是学会使用黑盒测试和白盒测试的常用方法和技术,掌握缺陷记录的方式和方法。
该课程是高校中常见的一门专业课,主要通过课内教学和实验,锻炼学生针对具体问题进行测试用例设计,执行测试并进行缺陷记录的能力。该课程的目的主要是培养学生针对具体问题设计和实施测试的基本技能。
2.“测试平台与工具”课程介绍
该课程介绍主流的测试平台与工具的使用,包括功能测试软件、性能测试软件、测试管理软件、缺陷管理、用于静态分析的软件和用于单元测试的软件。通过该课程的学习学生了解自动化软件测试工具的功能,掌握软件测试平台与工具的使用,掌握软件测试方法与自动化软件测试结合的测试手段。 该课程并不以测试软件本身为核心,重点是让学生借助软件平台和工具,运用软件测试方法针对不同软件系统实施测试。注重培养学生借助平台与软件实施测试,提高测试效率的能力。该课程包括课内教学和实验两部分。由于课程中涉及大量的软件使用方法,因此需要配备较多的实验学时。
3.“软件测试过程”课程介绍
该课程在“软件测试方法与技术”和“软件测试平台与工具”两门课程的基础上,着重介绍测试过程中涉及的管理问题和各阶段测试涉及的相关活动过程。通过本课程教学,学生理解软件测试过程中各阶段的工作内容和作用;了解测试计划、设计、实施和总结过程;了解软件测试的相关标准和文档的编写内容与方法;了解软件测过程管理内容,如配置管理、团队管理、缺陷管理等,培养学生进行软件测试项目的设计、实施和管理的能力。
在该课程中,可将若干学生组成一个团队,让各个团队共同完成一个测试项目,学生在团队中扮演不同角色,如测试经理、测试设计人员、执行人员等。各组在完成项目的过程中需要提交各种测试文档。课上通过讲授和讨论的形式教授相关理论知识,并对学生在项目实施中的阶段成果进行评审。通过项目的实施,学生真实体验测试项目应如何进行,各阶段需要完成什么工作内容,体验测试不同层次的工作对知识和能力的要求。并且项目的实施可培养学生的团队意识。
4.企业实践
目前工程教育的背景下,不少高校将校内的理论课程压缩到本科教育的前三年,使学生在大四的上学期可以开始参加企业实践等实践类课程。很多高校都在积极地建立校外实践基地,以更好地配合专业的实践教学,让学生在毕业之前步入企业去体会企业工作环境和工作需求,通过实践帮助其将校内所学知识转化为实践能力。
在测试方向的课程体系中也需要设立实践环节。通过企业实践活动,学生去深刻体会各门课程知识的实际用途,特别是在“软件测试过程”课程中,虽然会讲到完整的测试过程,但在企业的实际工作中经常是需要进行特定裁剪的。因此,让测试方向的学生在实习基地参加项目实践活动,可有助于学生理论知识向实践能力的转化。同时,通过追踪和总结企业的培养模式,将目前测试行业比较流行的过程管理理念和技术融入到软件测试方向的系列课程中,将更有助于提高学生的学习兴趣,改善教学效果。
三、总结与展望
按照本文所述的测试方向课程体系的设置,学生可在本科前两年学习软件工程专业的各种基础课程;在第3年开始分方向,学习测试方向的系列课程;在第4年上学期开始进行企业实践,让学生深入企业去从事真正的测试工作的实习。
北京信息科技大学的软件工程专业从2008年开始设立软件测试方向,并实施本文所述的测试方向课程体系。2008级测试方向的学生在企业实践中获得了很好的评价,就业前景良好。目前该专业正在根据“卓越工程师”培养的要求和前期教学中遇到的经验和问题,对测试方向的课程和内容做细微调整。
参考文献:
[1]黄爱明.国内软件测试现状及对策研究[J].中国管理信息化,2007,
(2):42-43.
[2]龚克.转变观念 大胆试验 建立卓越工程师教育培养的中国模式[J].中国高等教育,2010,(18):10-12.
[3]陈宁江.面向“卓越工程师”标准的软件测试人才培养方案探讨[J].教育教学论坛,2012,(5):99-100.
[4]兰景英,范勇.基于项目驱动的软件测试人才培养模式[J].计算机教育,2011,(6).
(责任编辑:宋秀丽)
关键词:课程体系;测试;专业
作者简介:侯霞(1976-),女,天津人,北京信息科技大学计算机学院,副教授;刘建宾(1963-),男,山西阳城人,北京信息科技大学计算机学院,教授。(北京?100101)
基金项目:本文系北京市人才强教深化计划-中青年骨干项目(项目编号:PHR201108256)、北京市人才强教深化计划-软件工程教学创新团队(项目编号:PHR200907220)、北京市级人才培养模式创新试验区-软件工程专业卓越计划试点改革项目的研究成果。
中图分类号:G642?????文献标识码:A?????文章编号:1007-0079(2012)22-0068-02
随着软件产业的发展和用户对软件产品质量意识的逐步提升,不少企业因软件质量问题而遭遇产品失败、企业亏损的问题,迫使软件企业开始逐步加大软件测试的力度,以提升软件质量。与软件开发相比,我国的测试行业起步较晚,目前存在大量的就业需求,但是行业现状和人才储备还存在一些问题。[1]为了适应市场需求,很多高校都开设了测试相关课程。
课程的设置是与专业的培养目标相关的,目前很多高校的相关专业仅将测试作为一门课程放置在专业课中。这样可以为学生在测试行业的就业提供所需的基础知识,但是,目前将测试作为专业方向的高校并不是很多,可见,设立测试方向来培养专业的测试人才具有良好的市场需求。如果将测试作为专业方向,如何设计课程体系才能培养能力更全面的测试人才是一个需要探讨的问题。
2010年教育部联合有关部门,共同实施“卓越工程师教育培养计划”(简称“卓越计划”),用以促进我国由工程教育大国向工程教育强国发展。[2]在这种大背景下,如何培养合格的软件测试工程师是很多教育工作者所关注和探讨的问题。[3,4]
一、测试的不同层次需求
很多人认为,测试比开发要容易。测试只是分析代码并寻找软件缺陷,只是进行黑盒测试,甚至不用分析代码。其实这是一种错误理解,而且,测试不再仅是软件开发过程中的一个阶段,广义地讲,测试贯穿了软件生命周期的各个阶段。高素质的测试人员可以在软件需求、设计、实施各个阶段发挥作用,尽早发现问题而降低软件修正和维护的费用,有助于改善软件质量。可见,测试的理论、方法和技术也是相当复杂的。完全掌握软件测试所付出的努力和投入不亚于编写程序,两者所需要的技术也极为相似。
测试包括规划、设计、执行等不同层次的工作。而每种层次的工作对测试人员具备知识和能力的要求是不同的。可做如下分类:
1.测试规划
对具体的测试活动给出宏观的指导与预算,如制定测试项目的高层策略、方案,进行测试项目的风险分析,负责进度和人员安排等。要求对测试技术的整体把握良好,具有软件项目管理的相关知识和经验。
2.测试设计
制定出针对于测试项目及每个测试活动的测试策略、测试方案及测试用例;要求理解并掌握常用的测试方法和技术,针对具体问题进行分析,采用正确的方式设计测试用例。当进行白盒测试的设计工作时,需要分析软件架构和程序代码,因此需要具有软件开发技术。
3.测试执行
按照测试设计产生的输出,执行相应的测试活动,查找并报告相应错误和缺陷。可分为两个层次:
(1)基本手工测试。仅是测试用例的手工执行,如实记录测试结果即可。这是测试中最简单、对技术要求最低的工作。
(2)自动化测试。利用测试软件进行测试。要求掌握自动化测试工具的使用,并根据测试用例的设计编写自动化测试脚本。要求有一定的编程能力。
实际工作中,上述各种层次的工作可能界限并不是很清晰,但是不同工作对测试能力的要求一定是存在差距的。分析各种层次工作的具体能力需求,对于人才培养中课程体系设置是至关重要的。
二、测试方向课程体系
虽然上一部分提及的各种工作,需要工作经验的积累,是一个逐步提升的过程。但是如果将测试作为一个专业方向来设置,培养出的学生不能仅满足于从事手动的测试执行,而应该有更高的定位,这样才能为学生在测试行业的发展提供必要的知识储备和更好的提升空间。
从事层次稍高的测试工作是需要了解甚至掌握开发技术的。因此培养测试方向的学生同样需要像传统的计算机人才培养一样,需要开设“程序设计”、“数据结构”、“编译原理”等专业基础课程。除此之外,为了培养知识和能力更为全面的测试人才,还需要设置测试方向的系列课程,来为不同层次的测试工作提供知识储备。笔者建议为测试方向开设“测试方法与技术”、“测试平台和工具”、“软件测试过程”三门课程,分别侧重培养学生不同方面的知识和能力,同时配备企业实践环节作为课程体系的一部分以增强学生的动手实践能力。
1.“测试方法与技术”课程介绍
本课程主要讲授软件测试的背景和发展、软件测试的基本术语、黑盒测试和白盒测试的常用方法和技术等内容。通过本课程的学习学生充分了解软件测试在软件开发中的地位和必要性,掌握测试的基本知识,最主要的是学会使用黑盒测试和白盒测试的常用方法和技术,掌握缺陷记录的方式和方法。
该课程是高校中常见的一门专业课,主要通过课内教学和实验,锻炼学生针对具体问题进行测试用例设计,执行测试并进行缺陷记录的能力。该课程的目的主要是培养学生针对具体问题设计和实施测试的基本技能。
2.“测试平台与工具”课程介绍
该课程介绍主流的测试平台与工具的使用,包括功能测试软件、性能测试软件、测试管理软件、缺陷管理、用于静态分析的软件和用于单元测试的软件。通过该课程的学习学生了解自动化软件测试工具的功能,掌握软件测试平台与工具的使用,掌握软件测试方法与自动化软件测试结合的测试手段。 该课程并不以测试软件本身为核心,重点是让学生借助软件平台和工具,运用软件测试方法针对不同软件系统实施测试。注重培养学生借助平台与软件实施测试,提高测试效率的能力。该课程包括课内教学和实验两部分。由于课程中涉及大量的软件使用方法,因此需要配备较多的实验学时。
3.“软件测试过程”课程介绍
该课程在“软件测试方法与技术”和“软件测试平台与工具”两门课程的基础上,着重介绍测试过程中涉及的管理问题和各阶段测试涉及的相关活动过程。通过本课程教学,学生理解软件测试过程中各阶段的工作内容和作用;了解测试计划、设计、实施和总结过程;了解软件测试的相关标准和文档的编写内容与方法;了解软件测过程管理内容,如配置管理、团队管理、缺陷管理等,培养学生进行软件测试项目的设计、实施和管理的能力。
在该课程中,可将若干学生组成一个团队,让各个团队共同完成一个测试项目,学生在团队中扮演不同角色,如测试经理、测试设计人员、执行人员等。各组在完成项目的过程中需要提交各种测试文档。课上通过讲授和讨论的形式教授相关理论知识,并对学生在项目实施中的阶段成果进行评审。通过项目的实施,学生真实体验测试项目应如何进行,各阶段需要完成什么工作内容,体验测试不同层次的工作对知识和能力的要求。并且项目的实施可培养学生的团队意识。
4.企业实践
目前工程教育的背景下,不少高校将校内的理论课程压缩到本科教育的前三年,使学生在大四的上学期可以开始参加企业实践等实践类课程。很多高校都在积极地建立校外实践基地,以更好地配合专业的实践教学,让学生在毕业之前步入企业去体会企业工作环境和工作需求,通过实践帮助其将校内所学知识转化为实践能力。
在测试方向的课程体系中也需要设立实践环节。通过企业实践活动,学生去深刻体会各门课程知识的实际用途,特别是在“软件测试过程”课程中,虽然会讲到完整的测试过程,但在企业的实际工作中经常是需要进行特定裁剪的。因此,让测试方向的学生在实习基地参加项目实践活动,可有助于学生理论知识向实践能力的转化。同时,通过追踪和总结企业的培养模式,将目前测试行业比较流行的过程管理理念和技术融入到软件测试方向的系列课程中,将更有助于提高学生的学习兴趣,改善教学效果。
三、总结与展望
按照本文所述的测试方向课程体系的设置,学生可在本科前两年学习软件工程专业的各种基础课程;在第3年开始分方向,学习测试方向的系列课程;在第4年上学期开始进行企业实践,让学生深入企业去从事真正的测试工作的实习。
北京信息科技大学的软件工程专业从2008年开始设立软件测试方向,并实施本文所述的测试方向课程体系。2008级测试方向的学生在企业实践中获得了很好的评价,就业前景良好。目前该专业正在根据“卓越工程师”培养的要求和前期教学中遇到的经验和问题,对测试方向的课程和内容做细微调整。
参考文献:
[1]黄爱明.国内软件测试现状及对策研究[J].中国管理信息化,2007,
(2):42-43.
[2]龚克.转变观念 大胆试验 建立卓越工程师教育培养的中国模式[J].中国高等教育,2010,(18):10-12.
[3]陈宁江.面向“卓越工程师”标准的软件测试人才培养方案探讨[J].教育教学论坛,2012,(5):99-100.
[4]兰景英,范勇.基于项目驱动的软件测试人才培养模式[J].计算机教育,2011,(6).
(责任编辑:宋秀丽)