李菊 张丽
摘要:随着软件在各行各业应用的不断普及与深入,软件质量已逐渐成为行业的核心竞争力,而软件测试作为保障软件质量的主要手段,其专业人才的需求也与日俱增。应用型高校本科教育特点在于应用,知识学习要做到学以致用,学科内容应和社会需求结合紧密。以企业软件测试岗位需求为导向,改革传统的教学形式,搜索典型工作任务;筛选工作任务,整合典型工作;任务转换为工作过程系统化课程单元,及早调整软件测试技术课程的教学模式,通过“学中做”“做中学”,提升学生的专业实践能力,又锻炼学生的自我学习、归纳和推理能力,有助于后续的职业发展。
关键词:软件测试;应用;岗位需求;工作任务;工作过程;职业发展
中图分类号:G642 文献标识码:A
文章编号:1009-3044(2021)02-0125-02
Abstract: Along with the rapid developments of software applications, software quality has gradually become an essential factor in industry. Software testing is one key process to ensure the quality of software and the demand for professional engineers in software testing is also increasing. Undergraduate education in application-oriented colleges should focus on practices. For example, knowledge learning aims to practical use, and text contents are closely related to social needs. Guided by the requirements of enterprise software testing, we should update the traditional teaching styles, search for classic examples, choose proper work tasks and integrate typical tasks. Also, we should transform various tasks into systematic curriculum units and adjust the teaching mode of software testing courses accordingly. Through "learning in working" and "working by learning" strategies, we can improve the students' workability and exercise students' ability to study, summarize and deduce, which will contribute to their future career development.
Key words: software testing; application; job requirements; work tasks; work process; career development
1 背景
当今社会身处互联网的大背景之下,人类社会互通互联,信息技术飞速发展。软件行业在时代的大背景下发展得如火如荼,人们对软件质量的要求也变得越来越挑剔,越来越苛刻。质量好的一个最主要方面就是要让客户满意。因此,软件企业意识到要想在市场立于不败之地,唯有提高软件质量。提高软件产品的质量就是提高产品的核心竞争力,软件测试作为为质量保驾护航的重要手段,受到了越来越多的重视。具备良好专业素养的软件测试工程师正成为我国软件行业目前最紧缺的人才之一[1]。企业希望招到的人才能够立刻上岗、产生价值,作为软件测试人才输出的主要来源之一的应用型本科高校,挖掘软件测试领域软件测试工程师、测试设计师、自动化测试工程师等各种岗位的用人需求,及早调整软件测试技术课程的教学模式。培养真正适合企业及软件测试不同岗位需求的软件测试人才势在必行[2]。
2 现存问题
1) 教学方式较传统,多是面向全班同学集中授课的方式。学生自主学习能力得不到提高,动手实践能力得不到很好的锻炼。同时,这种形式不利于学生发掘自身的兴趣点,把自身的兴趣点与测试的分支领域结合,深入学习,进行未来职业规划。
2) 目前对测试知识的教学是先进行理论讲解,再进行教学案例分析,以案例分析促进知识点的理解。这样的形式,知识分散成点,没有一个逐层递进,从局部到完整的,从量变到质变的飞跃。并且目前的教学案例与理论知识点对应,相互之间也是相对独立的,都是教师分析案例为主,学生回答问题为辅的方式。学生对软件测试里面具体到某一种技术的应用场景缺乏深刻的理解。面对一个商业项目时,难以在脑海里构建出端到端的测试思路。
3)平时成绩缺乏更符合行業特点的评价手段。目前的学生的平时成绩评价主要是依据考勤、作业完成情况以及上课提问回答情况,这样的评价依据无可厚非,但软件测试作为一门实践性比较强的课程,我们作为应用型本科学校,针对这类课程的特点,平时成绩的评价可以参照企业,建立更客观的、量化的评价指标体系。
学生通过本科阶段的软件测试理论课程学习,的确能够掌握软件测试的基本概念、常见的测试技术和方法,但置身企业的项目运作模式之下,如何迅速地把能力转化为生产力,是一个值得进一步研究和探讨的问题。
3 改革措施
近10年来,由姜大源教授总结国外经验并结合我国职业教育实践提出的工作过程系统化课程开发在职业教育系统内正热烈地开展,并在许多职业院校进行实际运用取得良好效果[3]。南京理工大学紫金学院作为应用型本科院校,其办学理念是“致力于培养基础扎实、知识面宽、实践能力强,具有创新意识和创新精神、人文精神与科技素养相结合的应用型、复合型、高素质专门人才”。与高职院校既有区别也有相同之处,区别与高职院校主要负责培养技术型与技能型人才,我們培养的是处于本科层次的工程型与技术型人才,相同之处在与均要与生产实际紧密结合[4]。
因此,针对本文第一节阐述的问题,我们提出在专业课的教学中探索实施工作过程系统化的教学方式方法,在软件测试技术课程教学中开展一系列改革,具体措施如下。
3.1 组建教学团队
课程改革先从组建教学团队开始,近几年来笔者所在软件工程专业,不断引进优秀人才。软件测试技术课程组如今除了有丰富的教学经验和学生管理经验,熟悉专业的课程体系的几名资历深厚老教师之外,还加入了两名双师型,分别是来自华为公司具有5年从事软件项目管理和测试工作经验的测试专家,和来自中兴公司具有11年从事软件测试设计工作的经验的测试专家。这是一支理论扎实、实践动手能力强、企业工作经验丰富的教学团队。
3.2 边教边学边实践
开展企业调研,与南京华苏科技技术有限公司、南京瑞奕惟扬信息科技有限公司、南京中新赛克科技有限责任公司、凯易讯网络技术开发(南京)有限公司等几个公司的软件测试专家探讨软件测试岗位对专业人才知识结构和技术素养的要求。
改变传统的教学方式,授课地点从教室更改为实验室,学生由集中变为分组。软测测试的领域是宽广的,从测试设计、测试执行到自动化测试各个领域都需要有专项技能的人才,模仿公司的项目组结构,将学生按照测试领域进行分组,不同的分组之间既有分工又有协作。通过“学中做”“做中学”,提升学生的实际应对工作场景的能力,也是对学生自学能力的一次质的提高、学生解决实际问题的能力得到了一次飞跃式的提升,对他们今后的职业生涯是一次如同提前培训般的训练。
3.3 测试任务驱动式教学
依据学习难度范围,对典型工作任务进行排序。将典型工作任务进行难度范围的归类,在不同的难度范围设计相应的测试任务,层层递进,以任务为驱动,将学生置身具体任务之中[5]。充分利用慕测平台提供的企业测试任务以及自身多年的软件测试工程师工作经验,从慕测平台、企业项目着手,将收集的案例库素材进行分析,筛选,裁剪。根据教学大纲进行编排,把案例与教学章节进行对应。整理出多个对应各个章节的案例以及一份综合案例,形成任务驱动案例库。调研分析目标岗位工作过程,确定职业领域典型工作任务,依据学习难度范围,对典型工作任务进行序化,在每一阶段进行测试任务的设计,以测试任务驱动模式教学[6]。开发适合教学的递进式的测试任务,学生带着任务去学习,带着问题去学习,学生边学边做,针对进行测试需求分析、测试设计、测试执行以及测试报告撰写的整套流程的训练。从测试需求分析,到测试设计、测试执行再到问题单跟踪系统的建立都由学生主动完成、鼓励学生进行头脑风暴、培养其自主学习能力。加深学生对具体到某一种测试技术使用场景的认识。将来在工作中面对一个商业化的完整项目时,可以在脑海里构建出一套完整的端到端的测试思路。
3.4 开发自动化测试框架教程
自动化测试是近几年流行起来的。进行市场调研,能融入我们课程体系,同时又能比较系统全面的介绍自动化测试框架的教材很少。所以针对自动化测试的部分,选择自主开发教程。选择热门的,同时适合教学的自动化框架RobotFramework;分解课程内容,归纳分为四部分:自动化框架介绍、集成开发环境安装和使用介绍、脚本开发指导、任务创建执行与分析[7]。整套教程包括:
01.RobotFramework自动化测试框架介绍
02.RobotFramework环境安装和搭建
03.RobotFrameowkr集成开发环境RIDE使用说明
04.RobotFramework_工程_测试套件_测试用例
05.RobotFramework语法-变量
06.Robot Framework语法 - 用户关键字
07.Robot Framework语法 - 测试库
08.Robot Framework语法 - 循环条件分支
09.Robot Framework-常用关键字介绍
10.Robot Framework-用例执行
11.Robot Framework-测试执行结果
在软件测试技术这门课程对应的课程设计中进行应用,学生可以根据自身的兴趣爱好选择对应两个不同的方向移动端和Web的同学分而掌握Selenium和Appium两种支持库[8]。
3.5 参照软件行业绩效考评机制,建立更科学的平时成绩评价体系
目前学生的平时成绩评价还停留在考勤、作业完成情况以及课堂回答情况这些大众化的手段上,这样的评价具有普适性,但不具有针对性。对软件测试这类实践性比较鲜明的课程,平时成绩可以参照企业绩效考评规则,从发现BUG的DI值和撰写的用例数量、脚本代码量等多个方面更客观、更科学地给出评价。建立综合评价指标体系,对学生在任务驱动模式教学中所提的BUG进行DI值的积分,对学生开发的脚本代码量进行统计,考评与产出直接挂钩,以评促学。
4 结束语
针对应用型本科院校学生的特点,改革教学方式方法,设计测试任务,测试任务驱动式教学,发挥学习评价体系对教学的促进作用,在教学过程中取得了较好的成绩,学生实践能力的得到加强,学生的主观能动性得以激发,使学生对知识的理解更加透彻、准确、牢固,解决实际工程问题的能力得到提高,符合用人单位需求,就业质量得到提升。
当然,本实验教学方案还存在待改进的方面,例如在测试工作过程中就测试流程的某一个阶段的知识可以继续深入挖掘,对该阶段需要掌握的测试工具种类可以加以拓展。另外对于问题单跟踪系统的知识可以继续深化学习,将开发、测试、修改问题、回归问题整个过程形成一个完整的闭环。这些可在后续软件测试教学实践中进一步探索。
参考文献:
[1] 董倩,范亚斌.论软件工程中软件测试的重要性[J].煤炭技术,2013,32(6):173-175.
[2] 郭文欣.以软件需求为导向的软件测试实践教学探索[J].科技创新导报,2019,16(34):226,228.
[3] 姜大源.工作过程系统化:中国特色的现代职业教育课程开发[J].顺德职业技术学院学报,2014,12(3):1-11,27.
[4] 韦伟,朱俊,陈琳琳.工作过程系统化在应用型本科教育中的探索与实践——以软件测试方向人才培养为例[J].中国教育技术装备,2018(8):74-76.
[5] 张正金,石宝金.基于项目驱动的《软件测试》课程教学研究[J].巢湖学院学报,2018,20(3):134-137.
[6] 刘洪涛,杨秀茹.任务驱动教学法的实践与思考[J].中国市场,2014(27):168-169.
[7] 陈晓伍.Python Web自动化测试设计与实现[M].北京:清华大学出版社,2019.
[8] Ping++ 测试团队.Selenium自动化测试之道[M].北京:清华大学出版社[,2017.
【通联编辑:谢媛媛】