缺陷跟踪与软件测试管理课程开发思考与实践
2015-07-02马军霞谷培培邓璐娟
马军霞+谷培培+邓璐娟
摘 要 文章针对缺陷跟踪与软件测试管理课程的开发和建设,分析课程教学现状,讨论解决课程定位、课程目标、教学安排、教材建设、教学设计等方面的问题,并应用于教学实践。
关键词 缺陷跟踪 软件测试 课程建设 教学内容
中图分类号:G424 文献标识码:A DOI:10.16400/j.cnki.kjdks.2015.06.061
Defect Tracking and Test Management Software Curriculum
Development Thinking and Practice
MA Junxia, GU Peipei, DENG Lujuan
(Software Engineering College, Zhengzhou University of Light Industry, Zhengzhou, He'nan 450000)
Abstract For the development and construction of "software defect tracking and test management" curriculum, the teaching status quo analysis, problem solving course discuss location, course objectives, teaching arrangement, teaching materials, teaching design and other aspects, and applied to teaching practice.
Key words defect tracking; software test; curriculum; teaching content
0 引言
软件测试是控制和保证软件产品质量的重要手段。软件生命周期的各个阶段都不可避免地会出现差错,因此软件测试应贯穿于软件开发的各个阶段,对软件缺陷的跟踪管理在软件开发的每一步都可以进行。而随着软件测试技术应用向深度和广度的发展,基于不同管理等级、运用多种质量控制工具来跟踪管理软件缺陷,已经成为软件项目测试管理过程中的一项重要内容,也是软件测试专业人才必须掌握的专业技能。
软件缺陷管理指对软件开发过程中缺陷发现、确认、定位、修改、评审、关闭等行为进行跟踪管理的过程。①软件缺陷管理教学的目标是在学习了软件测试理论和软件功能、性能测试等技术后,帮助学生了解如何在软件开发不同阶段管理测试工作成果,如何跟踪发现的缺陷以保证其得到妥善处理,如何充分发掘缺陷数据价值,如何改进组织的软件测试和软件开发规范以实现缺陷预防、提高软件产品质量等,从而进一步培养学生的工程实践能力。
但是到目前为止,以缺陷跟踪和软件测试管理为教学内容的课程或社会培训很少,多数高校的做法是将其作为软件工程或软件测试课程中的一个章节加以介绍。这样的教学安排容易使学生把对测试工作的理解局限在单纯的“找bug”上,不能深入了解和掌握缺陷跟踪和测试管理的知识和技能,削弱了学生对软件缺陷管理重要性乃至软件质量保证的重要性的认识,不利于培养学生的实践操作能力和软件测试专业管理理念。
并且,由于本课程在其它高校以及培训机构没有开设过,可以借鉴的课程建设经验很少,更没有合适的教材可以选用。而缺陷跟踪与软件测试管理的特点是理论抽象、工程实践性强,传统的教学模式以理论传授和知识阐述为主、实践操作为辅,以教师为主体、学生在教中学,②不利于理论与实践的结合和学生工程实践能力的培养,也不适用于本课程的教学。
为此,我院在软件工程专业软件测试方向开发建设了缺陷跟踪与软件测试管理课程,并从2008级学生开始教学实践。从2011年本课程的第一次教学实施至今,教学团队每年都会根据上一年的教学反馈信息,结合行业应用情况变化,对讲授内容及组织方式进行调整,取得了良好的教学效果。
1 课程标准的制定
通过对企业软件测试过程的调研,针对其工作过程、任务和职责进行分析梳理,明确软件缺陷跟踪、分析及软件测试项目设计、执行、管理等的具体工作任务、工作流程、工作方式,制定了本课程的课程标准。
1.1 课程定位
本课程是软件测试专业的一门核心专业课程,专业必修课程,在软件测试专业课程体系中占有重要的地位。根据国家“卓越工程师教育培养计划”对工程技术人才培养目标的定位,参照国家计算机技术与软件专业软件评测师专业技术资格的专业标准,本课程按照职业岗位的任职要求进行教学,定位于培养应用型人才的软件缺陷跟踪处理和测试管理技能以及软件缺陷度量、分析、预防的基本技能,养成满足企业要求的职业能力和职业素养。
1.2 课程目标
1.2.1 知识目标
(1)软件测试管理知识:了解软件测试流程、策略、方法、技术、工作量估算和风险控制知识;(2)软件缺陷管理知识:了解软件缺陷的基本概念、分类、发现手段、修复策略,理解缺陷产生的原因,了解软件缺陷管理的理念、等级、模型;(3)软件质量保证知识:了解软件质量基本概念、影响软件质量的因素、软件缺陷的度量、分析、预防知识;(4)工具软件相关知识:了解市场占用率较高的若干软件缺陷管理工具及软件测试管理工具,了解工具软件的特点和应具备的功能,理解企业自主开发工具软件的必要性。
1.2.2 技能目标
(1)设计能力:能够针对具体的测试需求分析设计测试项目,裁剪定义测试流程和缺陷处理流程,定义软件缺陷生命周期,确定测试方法、测试策略等,选用合适的软件缺陷管理工具或软件测试管理工具;(2)管理能力:能够有效管控软件测试过程,保证测试流程和缺陷处理流程的正常流转;针对不同方式和技术发现的软件开发各阶段可能出现的缺陷,进行正确判断、描述、提交并跟踪处理,保证所有缺陷最终都得到妥善处理;(3)分析能力:能够根据具体需求选择合适的缺陷度量元及度量方式;能够应用各种软件缺陷分析技术和工具对缺陷度量数据进行定性及定量分析;能够根据缺陷跟踪管理过程和缺陷分析结论,提出适用的软件缺陷预防措施和方法,帮助改进组织的软件工程过程规范;(4)文档能力:能够独立规范撰写和使用软件测试管理和软件缺陷管理过程中涉及到的技术文档、表格。
1.2.3 素质目标
(1)德、智、体全面发展,知识、能力、素质相协调;(2)具有发现问题、分析问题、解决问题的能力;(3)具有自主学习能力和可持续发展能力,能根据工作需要更新专业知识、关注专业发展;(4)具有较高工程素养、工程创新能力和国际竞争力;(5)具有良好的团队协作和沟通能力;(6)具有严谨的工作作风和端正的工作态度。
2 教学设计
教学团队借鉴了美国实用主义哲学家和教育家约翰·杜威的“从做中学”的教学论思想,以情境为载体,采用了项目导向、任务驱动的教学方式。③在教学过程中,将理论知识的学习与具体的项目和工作任务结合,如将缺陷跟踪和测试项目管理的具体职业能力要求与虚拟软件工程项目结合,模拟企业工作岗位,将项目按角色或按阶段划分成多项工作任务,结合工作任务实施教学,带着任务学习不仅能够让学生在实践中掌握抽象的理论知识,提高对课程的学习兴趣和自信心、有效突破课程教学难点,还能培养学生的实际工作能力。具体实施方式为:
(1)结合一个软件测试项目管理工具开展软件测试管理的理论和实践教学。我们目前选用的是上海泽众公司的TestCenter。要求学生使用该软件完成创建项目、组建团队、创建测试计划、创建测试需求等任务,从而理解掌握软件测试过程及其管理流程。在后续知识点的教学过程中,也适时结合工具软件的相应功能来讲授。例如在介绍软件缺陷的生命周期时,可以TestCener或其它缺陷管理软件中具体的功能实现为例来具体讲解。
(2)学生以5~6人的小组为单位,其中一人作为测试经理,其他人为测试员。针对某一常用的开源和商业软件缺陷管理工具,例如BugFree、Mantis、Bugzillia、禅道、QC等,进行简单的功能测试,用TestCenter管理测试过程。要求小组首先通过集体讨论定义测试流程、制定测试计划,然后按照任务分工进行测试,最后提交测试报告。通过完成这样的任务,学生既进一步熟悉了使用TestCener进行软件测试管理的过程,又对其它常用测试管理或缺陷管理工具的使用有所了解,有助于拓展学生的知识面,也能帮助学生在以后的实际工作中根据需要比较选择合适的工具。
(3)学生以5~6人为一组,分别扮演项目经理、测试经理、开发经理、开发人员、测试人员角色,从需求分析开始进行一个小项目的开发和测试。要求学生完成需求规格说明书、测试计划等相关文档的撰写、评审,测试和开发工作同步进行,在前期学习的基础上自选测试管理工具或缺陷管理工具,最后按照测试计划指定的质量标准完成项目开发。要求在不同阶段通过角色交换使每个同学都能承担不同的测试和开发工作。由于我们的主要目的是了解掌握测试管理和缺陷跟踪技能,项目功能实现不是主要目的,因此选用了一些工作量较小的项目,如计算器、简易的学生管理系统、图书管理系统等。
在课程授课的内容上,该课程主要从六方面进行讲解:(1)软件测试管理。介绍软件测试常规流程、软件测试管理的内容、目标等,并通过一个软件测试管理工具的学习使用,使学生首先对软件项目的测试管理过程产生整体认知。(2)软件缺陷概述。介绍软件质量和软件缺陷的定义、关系,分析软件缺陷产生的原因、软件缺陷的来源;需要关注的软件缺陷重要信息、软件缺陷的常用分类依据等。(3)软件缺陷管理。阐述软件缺陷管理的目标和理念,介绍缺陷管理的等级定义、软件缺陷的生名周期、软件缺陷的跟踪处理流程、软件缺陷报告及其提交等。(4)软件缺陷发现。从软件工程各阶段介绍软件缺陷发现的不同方法,重点介绍同行评审、产品过程质量保证等。(5)软件缺陷度量。介绍软件度量、软件缺陷度量相关知识及针对度量数据进行的软件缺陷分析方法和技术。(6)软件缺陷预防。从主动预防的角度出发,介绍软件缺陷的预防模型、方法、技术以及其它有助于预防缺陷产生的相关方法。
3 结语
教学实践表明,缺陷跟踪与软件测试管理课程的教学实施拓展了软件测试专业学生的知识广度和深度,整合、锻炼了学生的软件测试及测试管理技能,增强了学生的就业竞争力,教学效果显著,同时进一步完善了学院软件测试专业课程体系结构。在今后的教学活动中,如何适应“卓越工程师教育培养计划”对具有工程能力、创新能力的工程技术人才的培养要求,进一步改进课程教学模式和评价方式,依然是一个需要长期探讨的课题。
*通讯作者:马军霞
郑州轻工业学院第三批青年教师教学改革与研究项目支持
注释
① 于波,姜艳.软件质量管理实践——软件缺陷预防、清除、管理实用方法[M].北京:电子工业出版社,2008:294.
② 程涛,成维莉.基于工作过程的数据库应用技术课程开发[J].计算机教育,2014(11):37-46.
③ 邵建华.理论与实践一体化教学改革的探索与实践[J].中国电力教育,2009(3):29-30.