应用型本科院校软件测试课程教改的探索

2014-08-05 07:10庞海波李占波
科教导刊 2014年20期
关键词:软件测试教学过程能力培养

庞海波 李占波

摘 要 本文分析了软件测试行业和课程教学中存在的若干问题,总结了软件企业对软件测试人才要求和行业对人才的需求状况,归纳了软件测试从业人员所应具备的基本知识和素质要求,着眼于提高学生的软件测试理论、技术能力,从课程设置、教学过程、工程实践、校企合作和课程置换等方面提出软件测试改革的新模式,激发学生学习的热情与动力,提高软件测试人员培养质量。

关键词 软件测试 教学改革 能力培养 教学过程 课程置换

中图分类号:G424 文献标识码:A

Exploring about the Reform of Software Testing Course

in the Application-oriented Institutions

PANG Haibo, LI Zhanbo

(Software Technology School of Zhengzhou University, Zhengzhou, He'nan 450002)

Abstract This paper analyzes the software testing industry, and a number of issues that exist in teaching, summed up the software companies for software testing requirements and industry demand conditions talent for talent, summed up the software testing professionals should have the basic knowledge and quality requirements, focusing on the improve student software testing theory, technical capacity, a new model of software testing from the curriculum reform, teaching, engineering practice, school-enterprise cooperation and replacement programs, etc., to stimulate students' enthusiasm and motivation to learn and improve training quality of software testers.

Key words software testing; teaching reform; ability training; teaching process; course change

近年來,中国软件产业保持了飞速发展的趋势,软件产品的质量备受所有用户特别是IT行业用户的关注。软件测试作为软件开发过程中重要的一环,对保证软件质量具有至关重要的意义,同时也是控制软件质量的重要手段之一。目前,国内许多软件开发企业对软件开发仍然存在“重开发、轻测试”的思想,因此,尽快建立完善软件测试人才的系统培养环境、提高软件测试人才的培养质量,为软件产业的健康发展提供智力支持已成为软件测试专业课程和教学改革的主要目标之一。

本文首先分析了我国软件测试行业和教学存在的若干问题以及IT企业对软件测试人才的素质要求,接着讨论了软件测试专业课程的设置和定位问题,结合笔者的工作实际以及校企联合开展大学生软件测试技能竞赛的效果,对软件测试教学过程提出了一些建议。

1 软件测试行业和教学现状

软件生产方式已经越来越趋向于大规模集成化生产,这一生产方式确立了软件产品的质量控制与质量管理在软件生产中至关重要的地位。调查显示,我国软件开发企业普遍缺少测试人员,而专职软件测试人员与开发人员的比率更是偏低,远远达不到国外1:1甚至2:1的比例,整个软件行业从业人员比例结构很不合理。主要由于企业认知和软件测试人员的培养过程存在以下一些问题和不足而导致:

1.1 重开发,轻测试

很多企业和学生认为,软件开发比软件测试重要,软件测试相关工作职位待遇不如软件开发。他们认为软件测试从业人员不需要深入的专业知识,只要会写程序就能够胜任软件测试工作,从事软件测试类的工作没有前途,所以大部分倾向于做开发人员,而不喜欢做测试。同样,绝大多数学生认为软件测试比软件开发容易,没有较高的技术含量,只是能够找出软件中的错误就可以了。甚至有相当一部分软件测试人员认为软件的质量的好坏是开发人员的事情,与软件测试人员没有关系。

1.2 底子薄、基础差

大部分开设计算机课程的学校,学生都是到大学二年级后半学期才开始接触软件测试课程,缺少对软件测试课程的系统学习,甚至很多学生只学习软件工程课程,根本接触不到软件测试课程。

对离散数学、程序设计、软件工程等软件测试基础课程的学习效果差。例如,软件测试中黑盒测试用例的设计方法大都以数学知识为依据的,决策表驱动分析法与因果图法对应命题逻辑知识。尽管学生之前已经学习这些课程了,但是由于受行业认知的限制,学生经常忽略一些重要的知识,导致在后续测试课程学习中感到力不从心,最终还是不能够稳固掌握软件测试的相关知识和技能。

软件测试贯穿软件开发的全部过程,软件测试的大部分阶段都要求测试人员能够编写代码并且进行调试,比如,在单元测试阶段和进行白盒测试的时候都需要检查和测试代码,这就对软件测试学院提出了更高的要求,要求学生不但要了解软件测试技术,还要能够熟练对代码进行分析和调试,甚至更多的时候要求测试人员能够自己编写代码进行专项测试。但是,由于先导课程的课程设计、实践和考查的脱节,导致学生写代码能力较弱,不能灵活运用软件测试中的技术和方法。

1.3 重技术、轻理论

现代社会快节奏的影响和急功近利心情的驱使,学生通常希望学习一些能够马上使用的技术,而不愿意去学习复杂和理论性较强的工程管理内容。软件测试计划、软件测试管理等工程管理课程抽象和教条,并且理论性较强,教师如果单纯通过课堂教学,学生很难真正掌握这些内容,他们不能将所学知识马上转换为应用,或者不能立刻看到成效,会慢慢地失去对这些课程的兴趣和热情。同时,考虑到软件测试需要与具体的开发模式和行业背景相结合,在学习阶段容易受授课模式和知识结构的限制,学生觉得学无所用,将来也很难结合具体场合恰当使用测试手段。

1.4 重个人,轻团队

软件的大规模集成化生产意味着个人独立劳动已经不能胜任大型软件的开发,并且对团体软件开发中的协作和沟通提出了更高的要求。软件测试作为软件开发过程中一个不可或缺的环节,也需要测试团队分工合作。目前教学更多地采用教师讲、学生听这一学习模式,没有实现双向互动学习,老师总是面面俱到地传授测试专业知识和技术,希望学生能够学得更全面。然而,当代学生普遍以自我为中心,缺少基本的沟通和团队协作能力,单独的个体又不能独当一面,最终导致软件测试工作不能顺利进行。

2 软件测试人员素质要求及课程设置定位

软件测试人员的工作职责是理解软件产品的功能和性能需求,在软件开发中担任“质量管理”角色,这种职责对软件测试人员在技术、管理能力和个人综合素质等方面提出了更高的要求。主要包括以下方面:(1)全面技术能力。测试人员必须站在工程技术的角度对需要开发的产品进行理解,以工程技术产品应用为目的构造合适的测试用例进行测试。这就要求测试人员必须掌握软件生命周期、开发流程、软件质量管理知识,熟悉离散数学、工程经济等基础知识,熟悉各种系统平台、数据库、常用软件和网络等软硬件,掌握主流测试工具与测试管理工具,还有具备编程能力和相关行业的法规和外语等知识。(2)责任心。做测试工作,需要思维严密,具有怀疑与破坏的精神,测试人员要打破常规思路进行软件测试,能够设计一些非常规测试用例对软件进行破坏性测试。(3)细心与耐心。软件测试工作中发现缺陷的环节除了依仗测试人员的专业技术知识之外,还与测试人员的细心及耐心程度有很大关系。软件测试工作相比较软件开发工作而言,更加繁琐和枯燥,如果没有足够的细心和耐心,就会留下很多潜伏的缺陷。(4)良好的沟通与组织协调能力。软件测试不仅仅是测试人员和测试团队内部的事情,软件测试人员要能够与项目经理、开发人员、客户、市场人员等不同角色人员进行良好沟通,保持密切配合。这就要求测试人员具备良好的沟通技巧,当发现问题的时候,能够积极有效组织协调开发人员、客户等各方面来解决问题,并且能够精准表达自己的观点。

软件测试人员的素质培养,需要从构建合理的软件课程着手。课程体系构建根据测试内涵来分析相应的知识、技能、素质要求,以软件测试这一职业所需的知识和技能为先导,强调当前及未来就业岗位所需基础知识和基本技能的掌握运用,体现知识、能力、素质培养的统一。精选教学内容进行整合与优化,使课程模块化,明确每个模块化课程对知识和技能的培养要求,构建以掌握技术理论和技术应用为培养目的的课程体系,实现知识和技能同步培养和提高。

3 软件测试教学过程的改进

教学过程是对软件测试人员技能和素质培养的关键环节,教学方法起着至關重要的作用。教师在教学过程中应注意几方面:

3.1 正确认识开发和测试的关系,激发学生学习动力

针对学生认为软件测试不如软件开发重要,或者认为软件测试类岗位不如软件开发类岗位有前途等片面认识,教师应注意正确引导。通常在第一节课上教师应该结合功能测试、性能测试等具体案例介绍软件测试的重要性,让学生了解该课程的重要性、必要性和当前的行业动态。另外,要让学生认识到测试工作的丰富层次和内涵,了解测试人员应该具备的知识和技能更加多样,做测试工作比做开发更有挑战性。最后,要给学生介绍行业对测试人员的需求,让学生更清楚了解软件测试工作的待遇和发展前景,树立从事软件测试工作的决心和信心,激发他们学习软件测试的主观能动性。

3.2 案例法教学贯穿全过程

针对软件测试课程中测试计划、管理等理论性较强的工程化管理知识部分,需要结合实际案例进行教学,因为单纯课堂教条式的教学很难让学生深刻掌握这些知识的精髓并应用于实际工作,更甚至会让学生失去学习软件测试的兴趣。因此,应在教学过程中引领学生由易入难自己动手实践,激发学生的学习主动性与热情。通过课堂讨论或分组讨论的方式活跃课堂气氛,在讨论的过程中,让学生担任不同角色,模拟实际管理过程,切身感受管理知识的应用价值,同时,不同角色的轮换担任还可以锻炼学生的沟通能力,树立团队意识。教师要适时进行引导与总结,指导学生按照工程化的文档模板规范将思考分析的结果进行记录,在锻炼学生分析、解决问题能力的同时养成良好的学习工作习惯。

对于技术性较强的知识,也要注意实际案例的引入。加大实际案例实验学时的的分配,引入规模适中的工程实例,让学生利用所学的测试技术对实例设计测试计划,测试用例,执行测试,分析和讨论测试结果,发现测试存在的问题,通过这样的实践教学活动,更容易让学生产生成就感,激发学生兴趣。

3.3 注重工程实践课程和参与竞赛

根据软件测试行业对人才素质需求定位测试专业方向人才培养目标。由于软件测试课程与软件开发课程的不同,软件测试实验教学应该设立实验、实训和实习等多层次的工程实践课程,通过让学生参与实际工程项目,提高学生专业技术应用、分析问题和解决问题的能力。同样,教师需要设计和引入规模适中的工程实践项目,要求学生现学现卖,完成制定测试计划、设计测试用例、执行测试和评估测试的全过程。通过项目的锻炼,学生分析问题和解决问题的能力会逐渐得到提高。

鼓励学生多参加软件测试技能竞赛等实战性的实践活动,提高学生的观察、思考、交流、实践和协作能力。本团队组织学生参加河南省计算机学会主办的首届大学生软件测试技能大赛,成绩斐然:三个代表队分别获得了特等奖、一等奖和二等奖。事实证明,竞赛类的实践活动,能够极大激发学生自己动手进行软件测试的兴趣,同时在动手操作的过程中培养了学生的创新能力,促进了学生思维的纵深发展;学生对软件测试课程的学习热情和积极性空前高涨,学习的自觉性极大提高。

3.4 开展校企合作和课程置换

校企合作的目的就是通过学校与软件企业进行多方面的合作,建立企业实习基地,让学生能够亲身参与企业软件的开发和测试过程,校企合作是软件测试人才培养最有效的办法。在计算机行业,校企合作有着至关重要的作用,学生通过参与企业实际产品的开发和测试,可以更好更快地融入到软件开发过程中。学生不但能够将所学的综合知识进行实际应用,还能对软件开发有一个更加深刻的认识。与企业交流不只是学生的事情,教师参与其中也是十分必要,教师到企业实习,参与软件项目的测试,紧跟技术发展步伐,才能把握授课方向,才能以自身参与的项目为实例进行授课。

课程置换是将企业成熟的软件测试培训课程和教学体系替换掉学校的部分软件测试课程,将企业以应用为目的的教学方式、科学、系统和实用的课程内容引入学校教学。“他山之石,可以攻玉”,课程置换就是要结合学校教学和企业培训的优势方法和资源,弥补传统学校教学方式存在的不足,紧紧结合市场需求,提高学生各个方面的能力。 同时,课程置换将学历教育和职业教育相结合,学生在获得学历证书的同时,还能获得相关企业行業证书和一线实践经验,从而为学生毕业后服务于企业奠定良好的基础。

4 结束语

软件测试的重要性得到越来越广泛的认可,创造一种课程内容改革的引导机制,探索一套切实有效的大学生学习和实践相结合的学习模式,转变教师对传统软件测试课程的教育教学观念,推动软件测试教学改革,才是提高软件测试学生的专业技能和创新能力,最终提高学生的核心竞争力的根本途径。

参考文献

[1] 钟素芬,叶明芷.软件测试应用性人才培养模式的探索与实践[J].北京联合大学学报,2007(9):90-91.

[2] 孙金华.软件测试人才培养与课程构建的探索[J].计算机时代,2009(6):68-71.

[3] 柳永坡.软件测试大学教程:软件测试课程专业教材[J].计算机教育,2010(12):158.

[4] 钟华,韩伯棠.创新型、研究型人才培养实践教学范式及应用[J].中国大学教学,2012(3):39-42.

[5] 李雯睿,张鹏程,杨种学.基于主动学习策略的软件测试教学方法初探[J].计算机教育,2012(4).

猜你喜欢
软件测试教学过程能力培养
基于OBE的软件测试课程教学改革探索
EXCEL和VBA实现软件测试记录管理
关于软件测试技术应用与发展趋势研究
浅谈科技英语教学
浅谈高校乒乓球教学过程中的问题及对策
欣赏教育在中学化学教学中的实施
数学归纳法在高中数学教学中的应用研究
信息技术教学中学生自主探究能力的培养探析
基于CDIO的大学生职业素养培养研究
低年级学生课前预习能力的培养