贯穿不同软件工程职业角色的软件测试课程教学方法的探索

来源 :高教学刊 | 被引量 : 0次 | 上传用户:abcwangyong
下载到本地 , 更方便阅读
声明 : 本文档内容版权归属内容提供方 , 如果您对本文有版权争议 , 可与客服联系进行内容授权或下架
论文部分内容阅读
  (南华大学 计算机科学与技术学院,湖南 衡阳 421001)
  摘 要:为了满足社会对软件工程人才的需求,解决软件測试课程教学中存在的问题,文章根据软件测试贯穿于整个软件生命周期的特性,分析总结了软件人才市场常见的职业角色特点,并根据实际教学情况设立了五个主要的职业角色,分析这些不同职业的角色对于软件测试能力的不同需求,在此基础上提出贯穿不同职业角色的软件测试课程教学模式,并详细介绍了该教学模式设计的实施过程和效果。
  关键词:软件测试;课程改革;职业角色
  中图分类号:G642 文献标志码:A 文章编号:2096-000X(2017)11-0027-03
  Abstract: In order to satisfy the needs of the social demand for talent of software engineering, and to solve the problems in the software testing course teaching. According to the characteristics of software testing that is throughout the software life cycle, we analyze and summarize the common characteristics of the occupation roles of the software talent market, and set the five main occupation roles according to the actual teaching situation, and then we analyze these different roles to find the different requirements for software testing capabilities. Based on our research,we present a course teaching mode for software testing course through the different occupation role, and introduce the implementation process and the effect of this teaching mode.
  Keywords: software test; curriculum reform; occupation role
  一、软件测试课程教学过程中存在的问题分析
  随着软件规模越来越大、产品特性越来越复杂,如何才能保证好软件的质量,是每个软件人不可回避的问题。软件的开发是团队行为,一个典型的软件团队包含软件项目经理,系统分析员,开发人员,测试人员等不同的软件职业角色[1]。目前大多数高校软件工程的专业都开设了软件测试课程,并且很多高校对软件测试的课程教学都进行了探索和改革。但大部分的教学设计是针对培养有软件测试职业倾向的学生,导致学生有很大的误区就是认为只有将来想从事测试职业方向的人才需要好好学习测试课程,而以后不做测试工作的现在就不需要学习测试的知识,这样使得很多有其他职业规划或者没有明确自己职业规划的同学忽略了测试课程的学习。然而软件测试是一个与其他软件工程过程密切相关的活动,而且各个软件企业的职业角色本身存在一定的灵活性,不同难度和规模的项目所需要配置的职业角色往往不同,另一方面,一个人常常在一个或者多个项目中承担多种角色[2],如果其他软件工程职业角色如果不具备软件测试的视角,那么软件质量的保证很有可能存在各种问题,软件测试在整个软件开发过程中的推进也会产生很多困难,使得软件测试达不到很好的效果。因此要让学生真正认识到测试课程的教学目的,并且教学过程应该与学生的能力和不同的职业规划进行结合,针对不同阶段训练目标来设计不同的教学方案,分析不同职业角色的学习目标,并以此设计教学过程,让有不同职业规划的学生了解软件测试的真正意义,真正达到主动学习的目标,同时那些以测试为方向的同学也能够通过学习体会到软件测试是如何贯穿到软件开发全过程中去的,更好的学习测试技术,以及其他支持的技术。
  二、贯穿不同软件工程职业角色的软件测试课程教学方法的提出
  目前软件企业分工越来越细,角色越来越多,不同难度和规模的项目所需要的软件开发角色常常有不同的定义。根据软件企业的大小、管理机制、所涉及的项目,以及其他相关的因素影响,这些职业角色的配置,名称都会有区别,因此我们并没有完全依照市场中细分的各种职业角色来设计教学过程,我们依据SWEBOK的知识域,软考、NCRE、CSIA ETC行业协会和智联招聘网的岗位,参考微软开发团队的关键角色,并且考虑了实践教学实施过程的可行性,在课程教学过程中划定的主要职业角色为:需求分析、软件设计、软件开发、软件测试和项目管理。
  不同职业角色对测试知识的需求是不同的,要将软件测试课程教学贯穿到软件工程不同职业角色中去,首先需要对我们设定的主要职业角色进行详细分析,找到不同职业角色的课程学习目标,并以此分析出不同职业角色侧重的知识域,然后再具体设计实施方案。
  项目管理者的工作主要集中在计划、组织、领导和控制几个方面,需要对所有非技术性的重要事情做出最终决定,因此在学习过程中需要全面了解软件测试的流程,度量标准,评价手段,支持其多环节工作的衔接做决策。
  需求分析者的工作集中在需求的收集,提取,整理,与用户沟通,协助设计者和开发者理解需求,因此在学习的过程中需要侧重了解如何对需求进行评价,如何提供测试支持。
  软件设计者的工作集中在系统分析与建模,因此在学习过程中需要侧重了解在软件集成和交付方面需要的支持技术,能够为系统集成和测试提供支持。   软件开发者工作集中在系统代码的具体实现,因此在学习过程中需要侧重了解如何对自己代码进行复查,并进行软件单元的測试。
  软件测试者的工作集中在各个环节产品的验证与确认,因此在学习过程中需要全面了解软件测试各种技术,测试工具,了解软件测试过程和组织方式,以及测试工作本身质量的度量。
  教学团队根据对不同职业角色的工作任务分析,在此基础上提出了贯穿不同软件工程职业角色的软件测试课程教学方法。希望通过实施该方法解决传统的软件测试课程教学中的问题,真正的让学生建立对软件测试课程的学习兴趣,确立明确的学习目的,取得良好的教学效果。
  三、软件测试教学过程的设计与实施
  由于改变了原来传统的教学过程,不再单纯依靠统一的课堂教学和实践环节设计,教学过程的实施存在一定的难度,也面临了很多的问题。我们的软件工程教学团队从2005年以来一直努力进行人才培养和课程体系改革的研究,不仅对每门专业课程进行改革试验,而且花费了大量的时间解决各门课程的衔接问题,形成了软件工程的人才培养的软件过程增量模型,建立了基于软件过程的课程体系,将专业课程整合重组为三轮增量教学微循环和三轮实践环节。如图1所示,前两轮为专业基础,第3轮按专业方向选修,每个循环为一次完整的软件开发过程,将多门课程设计整合打包为综合性实践课程,每轮循环安排一次综合性实践,学生直接参与项目的需求、设计、构造、测试和管理。
  软件测试课程教学融合在了该课程体系中,在三轮教学循环和三轮实践环节中具体实施。
  教学循环中的单元知识点借鉴了SWEBOK V3(软件工程知识体系)[3]中软件需求,软件设计,软件构造,软件测试,软件工程管理,软件工程过程,软件质量几个关键的领域中与软件测试相关的内容如表1所示,以此对软件测试课程教学进行设计。
  测试相关知识点的理论授课在三轮微循环中根据不同环节的侧重点循序渐进的进行,第一轮循环中侧重软件测试技术,第二轮循环侧重评价和度量,第三轮循环侧重质量管理。分阶段分层次的教学,避免了传统授课中按章节进行,知识点不能很好的分散到实际应用中去的问题。学生在学习过程中目的明确,学习内容清晰,改变了填鸭式的教学,能让学生清楚了解每个知识点的具体作用,解决了盲目学习的问题。
  软件测试是一个实践性非常强的课程,单纯的理论学习没办法完成对学生能力的培养,对实践教学的设计也是我们探索的重点。在三轮循环过程中对学生实践能力的训练很好的体现了软件测试在各种职业角色中的贯穿,第一轮循环中测试任务重点体现在了软件开发人员和软件测试人员这两个职业角色上,对于代码的白盒测试,持续的进行代码的集成测试,保证代码的开发质量是本轮实践的重点,在这一轮的实践任务重点让开发和测试人员掌握基本的测试技术技能。第二轮循环中测试任务重点体现在软件需求,软件设计和软件测试这几个角色,对于需求和设计产品质量的确认和评价是本轮实践的重点,在这一轮的实践任务重点让需求,设计和测试人员掌握对于非代码产品是如何进行确认和质量评估的,让需求和设计人员对各自开发环节生成的产品是怎样才会具备良好的可测试性。第三轮循环中测试任务的重点体现在项目管理和软件测试者两个职业角色,对测试过程如何与整个软件开发的其他过程进行衔接,整个软件开发过程的质量管理在哪些方面进行,从而训练其设计好的项目管理方式。
  经过三轮的理论和实践教学,软件测试课程不仅让那些对测试感兴趣的同学清晰职业方向,并且在每一轮循环中参与了不同阶段的测试,了解软件测试与整个软件开发过程的联系,同时也让有其他职业规划的同学学习到不同的测试视角,清晰自身的工作环节与软件测试的关联,让软件测试课程的价值得到最大的体现。
  三轮微循环的课程教学模式在计算机学院软件工程专业实施了多年,2005年开始初步设想,2006年开始在软件工程试验班中进行教学实践试验,到2012年推广至软件工程卓越工程师计划班,2016年逐步向整个软件工程专业推广。这种教学模式也产生了一些良好的实际效果,近几年软件工程本科在校的学生很多都参与了实际项目的开发和测试,得到了相关单位的好评。
  四、结束语
  软件测试贯穿于软件项目的整个生命周期内,需要与项目中各类人员打交道,而软件开发的其他环节人员也应该具备良好的测试素质,只有各个环节的软件产物具备了良好的可测试性,软件测试才能很好的进行,并且在软件质量的保证活动中起到有效的作用。也只有这样在整个项目开发过程中,各个不同环节的人员才能进行良好的沟通和交流,整个团队中的各个职业角色团结合作,最终使得软件项目的顺利进行,开发出高质量的软件产品。
  参考文献
  [1]刘征海.基于团队学习的软件工程专业课程教学改革探索[J].课程教育研究,2013(22):45-47.
  [2]郭军.契合软件企业职业角色发展架构的软件工程课群及实践体系[J].辽宁教育研究,2008(5):70-72.
  [3]沈备军.解读软件工程知识体系SWEBOKV3[J].计算机教育,2014(7):1-2.
其他文献
互动协同作为一种教学模式,已成为外语研究的重点。而大部分研究更关注互动协同于综合英语中的运用,而英国文学作为英语专业的必修内容,或部分非英语专业的必备素养,其普及也引起
舰载雷达两轴转台系统机械结构简单,可对雷达天线法线的姿态角进行控制以保证雷达波束指向,但在舰船发生摇摆时,雷达波束绕天线法线发生旋转。本文分析了大地直角坐标系和舰
高等工程教育是培养国家新兴领域工程科技人才的重要战略。为了适应高等工程教育的发展和"新工科"研究与实践项目的建设需求,探讨提升课堂教学质量的方法策略是十分必要的。在
呼吸道合胞病毒(respiratory syncytial virus,RSV)属RNA病毒,可引起儿童呼吸道感染。北半球11-4月为高感染季节。2岁前,大多数儿童都曾感染过RSV。细支气管炎属下呼吸道感染,常
针对非环境专业《环境学概论》教学中普遍存在的问题,进行课堂和实践教学改革,优化课程内容,增设学生自主讨论和案例教学,加强实践教学,并有针对性地进行了一些相关探索,取得
船舶低频通信中会产生大量的噪声,传统研究方式将低频通信中噪声幅度分布忽略不计,但是实际使用中会造成严重的信号阻隔。针对上述问题,提出船舶低频通信中噪声幅度概率分布
统计能量分析方法能够有效预示舰船和车辆等结构的高频振动及噪声。本文通过建立两子结构耦合模型,利用差分法研究了瞬态统计能量分析中参数误差对子结构响应能量的影响,同时给
A'Design设计大赛是一项国际性比赛,是经过对其他上千个设计类比赛科学分析,并对超过500名设计师和品牌商进行调查后设立的。设计对象包括包装设计、室内设计、视觉设计、珠宝
针对"矿山机械与设备"课程在专业知识体系中所处的重要地位,结合教学内容组织方式与学生学习效果等进行阐述与分析,探讨模块化教学方式的思路与在实施中的改进,加强学生对矿山
1985年3月14日,法国驻华大使代表法国总统向盛成颁发法国荣誉军团骑士勋章。图为盛成(中)、盛成夫人李静宜和法国驻华大使马乐在授勋后的酒会上。