CDIO理念下《软件测试技术》一体化教学探索
2017-10-21刘建芳郑浩孙浩杰
刘建芳 郑浩 孙浩杰
摘要:针对现有《软件测试技术》课程出现理实分离、内容陈旧等问题,深入调研企业软件测试流程及软件测试行业动态,提出教学改革方案。方案将国际流行的CDIO工程教育模式引入到理实一体化教学中,采用任务引领、项目主导的教学方法,对软件测试技术课程的教学内容、教学组织形式进行改革,提高了学生的学习兴趣和工程应用能力。
关键词:软件测试;CDIO;一体化教学
中图分类号:G64 文献标识码:A 文章编号:1009-3044(2017)18-0103-03
1存在的问题
目前我校软件测试技术课程开设在大三下学期,采用理论和实验分开的教学形式。由于课程对理论性和实践性要求都较高,加上学生对软件测试行业的认知偏差,导致学生学习热情不高,学习效果不佳。结合实际,对存在问题总结如下。
1.1认知偏差
由于我国软件测试行业起步较晚,长时间以来手动测试占据较大的市场,导致学生认为软件测试工作不需要太多的计算机专业知识,不如开发软件重要,相关工作待遇低、发展空间小。从而学生对软件测试技术课程的学习热情不高。
1.2理实分离
在教学模式上,软件测试技术课程仍然采用理论和实验分开的教学模式,尚未采用一体化教学模式。学生不能做到边做边练,导致学生连续学习大量的理论知识,学习效果不佳,实验课时难以将实践和理论联系起来。从而导致学生学习效果不佳。
1.3内容陈旧
我校软件测试技术课程教学重点主要集中在通用软件测试基础上,如白盒测试方法、黑盒测试方法等,内容相对陈旧,没有专门针对Web应用程序、Android/IOS APP、大数据云计算产品测试的内容。在课程案例上,通常是针对相关方法选取独立案例进行方法练习,缺乏关联性和实际应用性。另外在测试工具上,主要使用LoadRunner进行负载测试工具。对当前测试技术中流行的Junit框架、QTP等自动化测试工具基本没有涉及。而目前测试行业自动化测试和性能测试前景良好,调整教学内容适应行业发展势在必行。
2企业软件测试行业动态
分析《2016年中国软件测试现状研究及发展趋势报告》,对报告内容进行分析凝练,总结出以下几个与教学改革息息相关的几个行业动态:
2.1自动化和性能测试前景看好
近十年来,国内软件测试行业高速发展,中低端手工功能测试人员已趋于饱和,而诸如自动化测试及性能测试等专业知识要求较强的高端测试人才仍然处于紧缺状态。目前市场上出现很多针对自动化测试和性能测试等相关工程师能力提升的培训需求。
相比人工测试,自动化测试在回归测试阶段能以便利的方式验证是否有新的错误进入软件产品。既节省了重复手工输入的工作量,保证了测试案例的一致性,对产品测量能够进行更有效的度量。
目前,一些大公司都有自动化测试的工作和相关的人员配备,同时,部分手工测试人员已经开始进行自动化测试学习,完成人才储备。
2.2软件测试理念发生改变
报告显示目前我国大概有四分之三的軟件公司都有相对独立的测试部门(或测试组),对比前几年的开发测试人员比,不难发现最近几年开发人员与测试人员比在7:1以上的公司数目明显减少,而趋近3:1的公司数目也呈现出缓慢上升的趋势,同时软件测试人员中具有计算机专业背景的从业人员比也呈上升趋势,从这一数据可以看出,越来越多的软件公司以及软件从业人员对软件测试的认识在发生改变,对专业测试的重视程度呈现逐步加强趋势,同时国内企业对软件测试人员的需求量也在增多。
2.3互联网和金融行业软件测试工程师需求增多
目前无论是国家层面,还是投资者或者是个人,对互联网行业以及金融行业都表现出极大的兴趣。调查报告也很好地印证了这一点。对所有接受调查的软件测试工程师所从事的行业进行统计分析发现,63.8%的人员来自互联网和金融行业。而同时随着互联网行业和金融行业的蓬勃发展,相关企业的用人需求也是逐年呈上升趋势,行业内软件测试人才出现较大的缺口。通过调查发现,在互联网行业和金融行业中的软件测试从业者月薪基本在八千至一万二之间,有些甚至更高。
3 CDIO工程教育模式
CDIO工程教育模式是构思(Conceive)、设计(Design)、实现(Implement)和运作(Operate)的简称,它将产品从研发到运行的整个生命周期分为四个层次,使学生能以积极、务实、有机的方式学习工程项目。其人才培养大纲要求工程专业的毕业生需要达到四个层面的能力,即基础能力(对基础理论知识的掌握)、个人能力(基础知识的应用、阅读分析能力)、人际团队能力(沟通、合作、抗压等能力)和工程系统能力(工程思想)。大纲非常详细地给出了学生在相对应层面如何通过综合培养方式实现预期目标。
我国目前的高等教育中更加侧重知识技能教育,而在职业精神和职业道德的培养上相对较弱。介于此,汕头大学工学院率先提出在进行CDIO工程化教育改革的同时引入职业道德培养,提出EIP-CDIO培养模式。EIP(Ethics,Integrity,Profes-sionalism)注重学生的职业道德和职业精神,将其与基本CDIO理念构思、设计、实现和运作相结合,构建高等工程教育新模式,以培养高级工程专业人才。该模式强调做人与做事并重发展,在做事中体现做人,在做人中认真做事,在培养工程技术的同时,注重对学生的人文精神发展,从而培养出具有健全人格的优秀工程师,既有过硬的专业知识,也有优秀的从业品质。大连东软信息学院根据“教育创造学生价值”的教育理念,运用CDIO工程教育模式、在原有CDIO的概念之上,结合我国和该校的特色,进行CDIO本地化。该院对学情、教情、行业以及社会等各方面的现状展开调研,认真分析我国现有高等教育的实际情况,对照IT行业的各类人才需求标准,针对该院现有IT专业的课程开设情况,对CDIO工程教育模式的能力培养大纲进行改革创新,建构具备东软特色的“TOPCARES-CDIO”八大能力指标体系。endprint
4课程教学目标定位
平顶山学院于2012年9月开始实施理论与实践统一、教学做相结合的一体化教学方式。结合CDIO工程教育理念,《软件测试技术》课程的教学目标是通过直接参与项目激发学生的学习热情和求知欲望,使学生在参与项目的过程中对软件测试过程中的基本思想、理论、规范、方法和技术及在真实项目中的应用有较深的理解,掌握软件测试的流程。培养学生具备良好的实际软件测试能力,形成良好的软件测试思维方式,能够灵活地应用理论知识解决实际的问题。通过这门课程,培养学生分析问题和解决问题的能力。通过该课程培养学生对实际问题的分析解决能力,同时培养学生的创新精神与团队协作意识。
5课程教学实施安排
本文借鉴传统CDIO工程教育理念,采用理论实验一体化的教学形式,从教学方法、教学内容、教学实施三个方面对《软件测试技术》课程的教学实施展开阐述。
5.1教学方法
通过学习CDIO工程理念与方法,在教学过程中使用企业项目支撑教学过程,借鉴企业实际开发流程,运用实际案例来驱动教学过程,结合基础知识分解学习任务,从而引领学习在理论学习的同时学会运用。教师由传统的授课角色转为项目发布人和项目导师的双重角色,通过发布实际任务激发学生的学习热情,挖掘学生的内在潜力,通过结合实际项目分析知识点的应用,指导学生亲自完成来自项目中的若干任务,从而让学生更好地掌握相关知识要点的来龙去脉,进而掌握工程项目的实施理念和方法,也通过团队合作的形式加强学生的团队合作意识和职业沟通能力。这种以项目为核心的教学模式打破了课堂与实验室的界限,实现了理论教学与实践教学的高度融合。通过做项目,培养了学生的创新精神与团队合作意识,使学生通过参与项目学会了做事,也学会了合作。
5.2教学内容
结合企业软件测试行业动态和课程目标定位,将课程教学内容划分为七个模块,分别为软件测试技术概述、软件测试的策略和过程、黑盒测试、白盒测试、特定环境和应用测试、软件自动化测试和软件测试管理。
其中,软件测试概述主要讲授软件测试的相关概念。学习此部分学生能够了解软件测试工作的背景、软件缺陷和软件故障的基本概念;理解软件测试的意义、软件开发过程与软件测试的关系等;了解软件测试职业与素养的要求。
软件测试策略与过程主要讲授软件测试方法与策略。学习此部分学生需要掌握单元测试、集成测试、系统测试和验收测试的方法;掌握软件测试的方法与策略;确定单元测试的主要任务和流程,定义集成测试方法和验证测试标准;明白验收测试的相关内容和配置。
黑盒测试技术及其用例设计主要讲授与黑盒测试相关的技术和方法。学习此部分学生能够掌握黑盒测试的基本概念;掌握用于黑盒测试的等价类划分法的基本理论和应用领域;掌握用于黑盒测试的边界分析法的边界设置方法;掌握用于黑盒测试的因果图法和决策表法的基本理论和应用。
白盒测试及其用例的设计主要讲授白盒测试方法。学习此部分学生理解白盒测试的基本概念;了解白盒测试中提到的覆盖概念;学会使用白盒测试的路径表达以及路径测试法,并能将其应用到具体的测试工作中。
特定环境及应用测试主要根据特定应用讲授相关测试方法及技术,包括Web应用程序测试、嵌入式软件测试、移动APP测试以及大数据、云计算产品测试等。
软件自动化测试主要介绍目前流行的自动化测试工具,学习此部分学生理解自动化测试的基本概念;掌握软件自动化测试生存周期基本理论、方法学及其在实际工程中的应用;熟悉软件自动化测试工具与测试平台等。
软件测试管理主要讲授软件测试与质量文档的规范,软件缺陷管理流程,敏捷开发管理、探索式软件测试管理等。學习此部分要求学生了解测试组织的组织和管理,了解测试体系结构和配置与管理测试环境。
5.3教学实施
结合本文提到的基于CDIO模式的一体化教学方法,在教学具体实施上,《软件测试技术》课程以基于Web的某考勤系统和某医养护APP为例完成测试过程。本文以基于Web的某考勤系统为例展开阐述。
该考勤系统主要实现用户管理、排班管理、休假管理、考勤管理、加班调休管理、报表管理、统计分析等几大模块。其中用户管理主要实现用户信息维护,用户权限管理;排班管理包括法定假日等基础信息设置,考勤档案管理、班制设置、排班设置、部门排班、专业部门审核等;休假管理包括假期信息管理维护,该维护过程按照实际请假流程完成,申请→请假类型→审批人(公司领导)→审批层级(对应的部门)→请假提示→结果反馈(员工返回后销假,休假生效后,考勤系统异常自动过滤,自行设置,根据类型提示);考勤管理包括员工上下班刷卡管理、刷卡记录查询、离岗管理、离岗审批、考勤补签与异常考勤管理;加班调休管理包括加班申请、加班审核、换休调整、加班统计、已换休统计、加班类别管理;报表管理包括报表类别和项目设置、考勤报表项目,各种休假、公出、换休等项目、考勤与休假信息查询;统计分析主要完成出勤人员分布信息的统计管理。
课程具体实施过程分为以下几个阶段:结合某企业项目中某一子任务的业务流程和开发特点分析完成测试工作所需要的基本知识要点一>教师结合教学大纲中的教学内容和教学目标,讲解核心知识和技术>教师选择具有代表性的模块带领学生完成测试,理解理论知识的实际应用一>教师结合项目其他功能分解任务,布置具体实践内容,由学生以团队形式分工协作完成任务一>教师根据学生实践情况进行重难点知识应用的总结,并对出现问题进行反馈。下面排班设置模块测试为例,介绍具体实施过程。
1)教师讲解排班设置业务流程;考勤管理系统通过排班设置自动判断员工的考勤状态,本系统采用按月设置,即每月月末的时候进行下一月的排班表设置。管理人员需要新增工作时间之后方可进行排班设置。具体过程是通过安排设置上班时间、下班时间、中间休息时间完成新增工作时间;新增工作时间结束后,在排班模块设置工作班制、排班类型、排班的具体月份以及考勤人员范围等,并生成本月的台账。如果本月已经生成过,则可以选择是否需要覆盖已有台账。针对某月存在法定节假日或者公司加班日的情况,可以有针对l生地对排班模块进行修改,即修改某日的排班类型。
2)教师讲解Web系统测试的特点和方案;具体包括链接测试(主要考察页面切换是否正确、是否有孤立页面、链接页面是否存在等)、表单测试(信息提交是否能正常工作)、Cookies测试(查看Cookies是否起作用、是否按预期保存、刷新是否有影响等)、用户界面测试(各页面风格是否统一、布局是否合理、界面是否友好、窗口是否能按要求适当打开、调整等),功能测试(时间设置是否正确、功能是否实现)。
3)教师针对完成工作时间安排功能的两个页面(工作时间安排查看页面和新增标准工作时间安排页面),结合上述Web系统测试的特点和方案展开分析,同时给出该功能的测试用例集,结合需求分析和系统设计文档带领学生完成相关测试;教师布置任务要求每个学生完成排班设置业务中的其他功能(新增排班、查看排班模版、修改排班日模板、生成台账等功能),在学生完成过程中,教师巡视教室,检查学生对知识及应用的掌握程度。
4)教师结合需求分析文档和系统设计讲解其他模块的业务流程,布置课后延伸作业,由学生分小组分任务以团队形式课后完成其他模块的测试用例编写、测试过程;
5)学生以团队形式对完成任务过程中出现的问题进行内部消化解决,对未解决问题进行汇总,在下一次上课时由学生代表提出,由其他团队或者教师参与共同解决问题。
6结束语
本文阐述了将CDIO工程教学理念运用到《软件测试技术》一体化课程教学中的改革实施研究。查找现有课程教学中存在的问题,调查企业软件测试行业动态,研究CDIO模式特点,更新课程教学内容,并通过项目教学实践,采用项目驱动教学,用任务引领学习。经教学检验,能够较好的调动学生的学习热情和求知欲望,提高了学生的工程应用和团队合作能力,教学改革取得一定成效。endprint