基于工作过程的软件测试课程实践教学改革

2018-06-27 07:52刘小飞李美满
计算机教育 2018年6期
关键词:测试人员测试用例软件测试

刘小飞,李美满

(广东理工职业学院 计算机系,广东 中山 528458)

0 引 言

随着现代信息技术的快速发展,计算机软件已经深入国民生活的方方面面。人们对计算机软件的质量提出了更高要求,要求软件系统提供7×24小时不间断服务。软件测试作为软件质量保障的一种重要的方法,近年来已经得到产业界、学术界和软件工程师的普遍重视[1]。随着软件产业的迅速发展,对软件测试人才的需求量越来越大,同时对软件测试人才素质也提出了更高的要求,因此,加强对软件测试人才的培养成为高校的当务之急。当前,高校软件测试人才的培养与企业的人才需求存在着一定差距,高校应届毕业生的项目实践能力不足,导致其找不到相应软件测试工作,而企业又招不到合适的软件测试人才。如何提高学生的项目实践能力,实现与企业需求的无缝对接,成为软件测试课程教学的重点。

1 软件测试课程实践教学的现状

软件测试贯穿软件工程的整个生命周期,覆盖软件各种应用领域,需要具备较强的专业技能和职业素养,对从业人员工程实践能力要求比较高[2]。目前,高校的软件测试课程实践教学中存在一些问题,学生通过课程的学习,虽然能掌握软件测试的基本概念和基本理论、基本测试技术和方法,但真正运用软件测试技术分析和解决实际问题的能力还不够[3]。

1.1 教学内容的抽象化

教学形式单一化,以理论为主、实践为辅。教学内容充满了软件测试的理论、方法和技术规范,讲授了一大堆软件测试理论。学生由于缺乏软件项目实践经验,导致不知道如何去使用这些理论,无法激起对课程的兴趣。

1.2 教学内容的碎片化[4]

在传统的教学中,软件测试理论体系往往被分割成许多知识片段,如软件测试的基本理论、白盒测试技术、黑盒测试技术、缺陷管理技术、软件测试工具的使用等。知识的讲授仅仅是单纯罗列软件测试的技术和方法,理论知识缺乏针对性和连贯性,导致学生难以形成一个统一的测试理论体系,难以将所学的理论、方法运用到项目实践中。

1.3 教学案例的简单化

知识碎片化导致每个知识点案例的选取简单化。简单案例虽然有助于学生对单个方法或知识点的掌握,但没有贯穿整个测试过程的案例,学生很难体会各种技术的使用场景。面对一个完整项目时,学生难以形成一个完整的测试思路[5]。

1.4 实践教学脱离项目实践

软件测试是一门实践性比较强的课程,需要有企业实际软件测试经验的支撑,而大部分教师没有软件测试的实际经验,影响实践教学的效果。在实践教学中,项目选取过于简单,软件测试过程混乱,学生的软件测试技能无法得到提升。毕业生反馈过来的信息是在学校学的一大堆理论不知道怎么样用,但企业项目测试中真正需要的知识反而没学到[6]。

2 基于工作过程的软件测试实践教学改革

针对传统教学存在的问题,以企业软件测试岗位需求为导向、以企业真实项目为驱动,着眼于学生项目实践能力的培养。在课程内容上直接采取企业真实项目,在教学的组织上更贴近企业实际,使学生尽快地熟悉软件测试工作过程,能够对完整的项目进行测试,从而实现与企业软件测试技能要求的无缝对接。

2.1 软件测试工作过程分析

根据笔者多年的软件测试工作经验和对多家软件企业的调研,总结出典型的软件测试工作过程(如图1所示)。

图1 软件测试工作过程

1)测试需求分析。

测试需求分析是测试工作的第一步,经过需求分析,对原始需求列表中的每一个需求点进行分析,进而得到我们需要测试的测试要点。针对确定的测试要点,分析测试执行时对应的测试方案和方法。

2)制定测试方案。

主要是明确测试目的和测试范围,确定测试人员和测试环境,确定测试工具的设计和选择、测试用例的设计方法、测试代码的设计方案、测试人员进度安排与模块划分等。

3)设计测试用例。

根据测试需求分析的结果,利用测试用例设计的各种方法来设计测试用例,为测试执行提供参考与依据。

4)执行测试。

根据需求文档和设计好的测试用例,对软件进行测试,在测试过程中如果发现缺陷,则需要在缺陷管理平台上登记缺陷,并对登记好的缺陷进行缺陷跟踪。

5)测试总结。

根据测试的情况,编写测试报告,对测试的进度和质量进行总结,测试报告应包括测试目的、测试环境、测试人员、测试进度情况、Bug汇总、重要问题总结、遗留问题列表等。

以上各环节并不是独立没有联系的,实际工作千变万化,各环节有可能交织、重叠,比如编写测试用例的同时就可以进行测试环境的搭建工作,也可能由于一些需求不清楚而重新进行需求分析等。一般而言,测试需求分析、测试用例编写、测试环境搭建、测试执行等环节由高级测试人员完成;测试执行以及缺陷提交等由普通测试人员完成;测试负责人负责测试各个环节的跟踪、实施、管理等。以上流程各环节并未包含软件测试过程的全部,如根据实际情况还可以实施一些测试计划评审、测试培训等。

2.2 基于工作过程的实践教学模式

以典型软件测试工作过程所需的各种技能和知识为导向,将实践能力的培养贯穿于整个教学活动过程中,对教学内容进行重新组织,实现理论与实践教学高度融合,得出软件测试课程实践教学模式,如图2所示。

图2 软件测试课程实践教学模式

在教学模式中,最左边的部分是企业软件测试中需要掌握的测试技能,中间部分为每一种测试技能所对应的知识领域,右边部分为学生通过技能训练和知识融合所提升的职业能力和素养,企业真实项目贯穿整个教学过程。如针对具体的企业项目,首先,进行测试需求分析,熟悉系统及明确系统的测试要点,测试需求分析主要的工作包括原始需求整理、继承性分析、测试规格分析、测试类型分析、功能交互分析等内容。为了能够进行软件测试需求分析,教师需要讲授相关的理论知识,主要包括软件工程的相关知识、软件测试的相关理论知识、测试需求分析的方法以及被测试系统的业务知识;之后,学生针对真实项目进行测试需求分析。通过对测试需求分析技能的训练和相关理论知识的补强,可以提升学生在实际项目中的分析问题和需求理解的能力。在教学模型中,学生针对项目实践中所面对的问题,通过分析问题,补强所需要的相关理论知识,从而为解决问题提供方案,使学生真正从面对真实问题入手,实现到实践中学习理论知识,并将所学的理论知识又运用到实践中,真正实现项目实践与理论知识学习的高度融合、在实践中提升自身的职业能力和素养的目的。

2.3 教学的组织与实施

1)教学内容的选取。

以企业真实项目为教学载体,将理论教学与项目实践融为一体,在项目实践中学理论知识,通过理论知识的学习促进项目实践技能的提升,并在学习的过程中培养职业能力,提升职业素养。如选用CloudOA项目,该项目具有行政管理、个人助理、公共信息、人事管理、绩效考核、销售管理、超级管理等功能模块,该项目在企业属于中型项目,难度适中,符合实际教学需求,满足学生知识及能力的提升,同时也利于学生知识的迁移,在本项目中学生所涉及的测试理论知识和技能可以在不同的项目中进行应用,具有普适性。

2)教学的组织。

根据企业软件测试的角色划分,将教师定位为企业项目经理的角色,全班学生定位成软件测试员,同时将全班学生分成若干个测试小组,每个小组人数控制在5~6人左右,每个测试小组任命1名测试组长,测试组长全权负责本小组的测试任务的分配与测试管理,其余学生作为测试员,负责系统的测试工作。全班划分为7~8个独立的小组,每一个小组负责整个CloudOA系统的测试,每位同学至少负责1个功能模块的测试工作,这样划分有利于纵向、横向的对比。

3)教学的实施。

项目载体确定和角色划分完成后,设计基于工作过程的教学场景。教学场景的设计采用由易到难、由简到繁重复的工作流程,变化的是工作内容。根据企业的实际情况,测试人员由普通测试人员和高级测试人员组成。普通测试人员需要掌握测试的基本技能主要包括测试需求分析、测试用例设计、黑盒测试、缺陷登记,高级测试人员除了掌握普通测试人员所需的测试技能外,还需要掌握白盒测试、自动化测试、测试管理的相关知识(如制订测试计划、进行测试总结等高级测试技能)。在教学实施过程中,采取循序渐进方式的进行,先开展基本技能的训练,等学生掌握基本技能训练后再进行高级技能的锻炼。根据企业项目测试的情况,将基本技能提升划分为两个连续的阶段:第一阶段为测试准备阶段,主要完成测试需求分析、测试用例设计、执行测试和登记缺陷;第二阶段为测试执行阶段,主要执行制订测试计划、测试总结。

在教学实施的过程中,采取“任务与任务评估”模式,以测试项目为载体,根据企业工作的实际情况,先下达工作任务,再针对工作任务的要求进行相关知识的补强;然后执行任务,根据任务执行过程中碰到的问题,再一次进行知识补强;任务完成后,最后对任务的完成情况进行评估与反馈;完成该任务后,再进入到下一个任务。以Cload OA项目的人事管理模块测试用例设计为例:首先,任务布置,任务是完成人事管理各模块的测试用例设计;其次,再进行知识补强,讲授测试用例的概念、测试用例的设计方法、测试用例的设计规范等;然后,再根据相关的方法和规范设计该模块的所有测试用例,在测试用例设计的过程中如果对某些知识明确,再一次进行知识补强;最后,从测试用例的覆盖度、设计的规范、正确性等方面对各组测试用例设计进行评审,并将评审的结果反馈给各个小组,各小组根据评审的意见对本小组的测试用例进行修正。

3 教学结果反馈

广东理工职业学院从2014年开始进行该课程的教学改革,不断完善以上教学模式。为了能够准确地反应教学改革的效果,连续对5届学生进行考查,学生都采用Cload OA项目同一版本进行检验。笔者主要从测试用例设计覆盖度、发现有效缺陷数、企业反馈等指标进行考察教学改革的效果。经过近4年的教学积累,从各个考察指标来看,学生实践能力有了提升(见表1)。从表1可知,2016年进行改革的反馈情况与2013未进行改革进行比较,教学效果有明显的改观,随着教学模式的改革深入,后续几年教学效果更为明显,充分说明了教学模式的改革取得了一定的成效。

4 结 语

笔者针对企业软件测试工作过程所需的技能,对软件测试课程的实践教学进行了改革;根据工作技能的需要,对教学内容进行重新组织,着重强调实践能力的培养,将企业的真实项目贯穿于课堂教学的整个过程。学生在实践中完成理论知识的学习,同时将所学的理论知识运用到实践中,真正实现理论知识与实践融合,有助于学生专业技能与职业素养的提升。在此教学模式下,学生的实践能力得到了较大的提高,学生对测试理论知识的掌握得到进一步加强,有助于实现学校与企业的无缝对接。当然,该教学模式也存在一些不足的地方,需要在实践中不断地完善与改进。

表1 教学效果对比情况

[1]聂长海. 关于软件测试的几点思考[J]. 计算机科学, 2011(2): 1-4.

[2]赵翀, 高鹏. 软件测试课程工程实践教学模式的探索与实施[J]. 计算机工程与科学, 2014(4): 51-55.

[3]杨鹏. 高职软件测试课程的教学探索与实践[J]. 番禺职业技术学院学报, 2005(4): 47-49.

[4]穆海伦, 李万清.面向企业的高校软件测试教学改革探索[J]. 计算机教育, 2013(10): 36-40.

[5]张冬玲, 黄伟, 王辰尹. 软件测试教学中的计算思维能力培养[J]. 计算机教育, 2014(9): 98-100.

[6]杨秋辉, 洪玫. 软件测试课程实践教学改革研究[J]. 计算机教育, 2016(2): 106-109.

猜你喜欢
测试人员测试用例软件测试
软件测试方向人才培养“1+X”融合研究
基于相似性的CITCP强化学习奖励策略①
测试用例自动生成技术综述
论职务犯罪侦查中测谎技术的应用与完善*
基于OBE的软件测试课程教学改革探索
航天软件测试模型构建与应用
浅析软件测试中的心理学应用
关于 Web 应用系统的软件测试的研究
绿植防辐射只是个传说,是真的吗?
测试工时受限的测试策略研究