[摘 要] 针对软件测试课程知识覆盖面广、操作实用性强、行业面向性强的特点,在深入调研了软件行业对软件测试人员要求的前提下,提出基于敏捷开发模型的软件测试教学改革方案,目的在于让学生熟悉软件企业普通应用的开发模型以及软件测试的流程与方法,在提高学生专业学习能力的同时,重点培养学生综合应用知识、提出问题、解决问题的能力,从而提升学生在职场中的竞争能力。
[关 键 词] 瀑布模型;敏捷开发模型;Scrum;用户故事
[中图分类号] G712 [文献标志码] A [文章编号] 2096-0603(2016)27-0104-02
軟件质量问题一直是IT(Information Technology)行业关注的重要问题,不断提升软件产品的质量,成为软件企业研究的重要课题。瀑布模型(watefall)曾经是软件行业普遍采用的一种开发模型,在整个开发过程中虽然也要求测试人员和开发人员相互合作,但存在一定的阶段性。软件测试一般发生在需求分析、设计、编码阶段之后,当开发人员完成大部分的工作任务以后,测试人员才正式参与项目,软件测试人员在项目前期仅仅是做一些测试前的准备工作而已。即便软件公司拥有一支强大软件测试团队,也没有办法维持一个较低的、比较理想的bug率。近年来,软件行业开始认同一种新的开发模式——敏捷开发模式(Agile software development),随之而来的是软件测试行业也正在经历一场巨大的变革。敏捷开发模型将软件开发与测试融为一体,从而改变了软件测试人员与开发人员之间时间、空间上的界限。敏捷开发更强调“项目中的每一天都不例外”,每一次软件迭代,不仅包含开发的任务,也包含测试的任务,每一次成功的迭代都是团队共同合作的产物。为了适应软件行业的这种变化,本文深入研究了敏捷开发模型scrum,探索了软件测试课程的设计与教学模式。
一、课程总体设计
敏捷软件开发是一个逐步迭代的过程,将整个软件产品分为若干个迭代(Iteration),持续不断地向客户提交有价值的软件,当所有的迭代结束时,整个产品的开发任务就完成了。产品开发的每一轮迭代,都要向客户提交可以使用的产品,从某种意义上来说,每一轮迭代过程都是一个完整的软件开发过程,包括设计、编码、测试等过程。
鉴于敏捷开发的特点,软件测试的总体设计不仅要体现迭代的过程,还要兼顾软件测试的知识结构,主要从教学单元的划分、教学内容的设计、教学方法等几个方面对软件测试课程进行总体设计。
(一)模块任务设计
敏捷开发模型scrum将软件产品的开发过程定义为一个不断迭代的过程,因此,教学的项目应该具有可拆分、模块化的特点,本课程选取学生较为熟悉的“教学管理系统”作为教学项目,贯穿于整个教学中。该项目由本校师生共同开发,目前正在使用过程中,教学项目选择对“教务管理系统”进行测试,不仅具有实际应用价值,而且还能够增加学生的成就感,从而激发学生的学习兴趣。
教学单元的任务设计充分体现scrum迭代的特点,通常情况下,一个教学单元对应一个scrum的一轮迭代,每个教学单元都是一个完整的任务模块,而各个教学单元之间又是一个相对独立的、可延续的整体。遵循由简单到复杂、可迭代化、可拆分化的特点,将“教务管理系统”划分为用户认证、组织管理、学生管理、课程管理、成绩管理五大教学单元,教学单元之间是一种高内聚、低耦合的关系。
由于敏捷开发的每一轮迭代都包含若干个用户故事,,通常在迭代会议结束之后,每个项目小组都会领取任务,因此在本门课程的设计中,借鉴软件企业的这种做法,将所有的特性分解成多个用户故事卡(Story Card),每一个用户故事就是教学单元中的子任务,下面以成绩管理为例,说明本门课程的教学任务设计。在以往教学中,存在教学任务划分粒度较大、任务描述不清晰的特点,本文借鉴scrum用户故事撰写的原则,在任务的命名中就明确了谁是用户、能做什么,这样使得任务的描述更准确化、清晰化,考虑到本门课程的连续性、完整性,本文将用户故事名作为任务名。
(二)教学环节设计
软件测试这门课程的理论知识主要是指软件测试方法、技巧,在以前的课程教学中,我们以工作任务为导向来组织教学,将各个知识点融入各个教学任务,取得了良好的教学效果,本门课程继续延用这种方法。同时由于scrum的每一轮迭代都会使软件测试的任务成倍的增加,给软件测试也带来了前所未有的压力,也正由于这一特点,才能保证测试的完备性,为了解决这个问题,本文在教学环节中增加了自动化测试的环节,加大自动化测试的比重。增加自动化测试的原因在于测试人员不仅要对上一轮的测试进行回归测试,还要对新的任务进行测试,如果没有自动化测试技术作为保障,测试人员是无法完成相应测试任务的,因此,在教学环节中,增加回归测试环节是必需的。
本门课程的教学环节,不仅增加了回归测试环节,而且还增加了团队互动环节。以往软件企业中的测试人员与开发人员虽然同属于某一个项目组,实际上他们的工作是相对独立的,他们之间的合作也仅仅发生在项目开发后期。由于在scrum中,项目组的划分是以用户故事为依据,以功能模块为基础,因此项目组就变成了开发人员与测试人员的结队,为了让学生适应软件行业的这种变化,在教学中增加了团队讨论环节,创造团队合作的机会,从而培养团队成员沟通、交流的能力。
二、课程单元设计
软件企业不仅要求测试人员具备测试知识、掌握一定的测试技巧,而且更看重软件测试人员的团队协作能力,为了培养学生以上的能力,本文深入探索了单元设计的思路与方案。在教学单元中不仅要讲解软件测试的理论知识,还要搭建测试人员与开发人员紧密合作的环境,从而培养团队成员之间的沟通与合作能力。单元设计包括对情景任务的设计、团队组成与合作形式的设计以及教学方法的设计。
(一)情景任务设计
- 《新课程》杂志征稿通知
- 论文发表中的DOI是什么意思
- 《新课程》杂志论文知网收截图
- 新课程杂志主管单位主办单位说明
- 如何提高发表论文的“命中率”
- 《现代职业教育》杂志每版字数调整为2000字
- 现代职业教育杂志中国知网全文收录截图
- 中国知网期刊大全检索《现代职业教育》杂志
- 编辑在论文发表工作中的重要性
新课程杂志社提示:
本文标题:基于敏捷开发scrum的软件测试课程改革与探索
当前网址:http://www.xinkecheng.cn/laigao/9515.html