APP下载

高职软件测试课程构建设想

2006-04-19沈海娟

计算机教育 2006年4期
关键词:软件测试测试软件

沈海娟

软件测试是软件质量保证的关键步骤。测试贯穿整个软件开发的过程,是对软件需求分析、设计规范和编码的最终复审。软件测试已成为软件产业的新兴门类而迅速发展起来,其专业机构和组织迅速发展、人才需求旺盛、职业的价值日益提升,软件测试人才的培养也应该成为高职IT教育的重要内容。

1 高职软件测试课程构建背景

1.1 软件产业的技术发展和需求

随着软件技术的发展和应用的日益广泛,软件的功能越来越强,系统的规模越来越大,内部结构愈来愈复杂,软件的质量和软件的生产率难以适应发展需求的问题统一起来突出,已成为软件企业规范管理和软件产业快速发展的绊脚石。作为一种有别于实物产品的逻辑产品,软件产品有其特有的复杂性,如功能的多样性、实现方式的多样性、产品要求难以表达、进度能见度低、运行依赖于环境等。作为人脑高度智力化的体现,软件存在缺陷无可避免,而且软件系统规模扩大,其缺陷生成机率也会加大,发现的愈迟,故障造成的各类损失也愈大。

软件质量的提高,既依赖于软件过程工程的一些方法,也依赖于软件测试。我国软件开发长期以来存在“重开发,轻测试”的现象,中小企业往往研发测试混杂,没有专业的测试人员和体系;缺少测试概念和方法,没有测试方面的专业知识;缺少测试流程或不规范。用户验收由于缺乏专业人才而失之全面甚至流于形式。从行业发展来说,急需建立专业的测试队伍、流程和规范,提高产品研发质量。

随着软件技术的发展,软件测试的技术和内容也有了很大的发展。当前软件测试已不仅仅体现为测试的执行,而且贯穿软件生存周期全过程,内容包含理论与技术、标准与规范、环境与工具及测试管理等多方面。软件测试对于软件质量的保证作用正得到软件行业以及软件用户的重视,软件测试在软件工程中的地位得到空前地提高。近年来,一些大型企业以ISO9000或CMM为导向构建质量体系,在ISO9000中共有19个要素,其中一个就是“检验和试验”;CMU/SEI的CMM中共有18个过程关键域,其中有一个质量保证过程关键域。这其中都体现了软件测试是软件开发中必不可少的环节。

1.2软件测试人才紧缺

根据国外软件业发展的经验,软件测试工程师和软件开发工程师在企业的配置比例一般至少应该达到1∶1 的水平。但我国软件产业在这方面状况堪忧,很多软件企业的测试和开发人员之比为1∶6,甚至更低。随着近几年软件企业对软件测试重要性的不断认识,产生了对软件测试人才的大量需求。业界有关人士称,未来几年,国内软件行业对软件测试工程师的需求将超过20万人。

目前在软件测试人才供需方面存在矛盾。一方面,企业对软件测试人才有大量需求,但苦于招不到合适的人;另一方面国内的高等教育也忽视了这一领域,高校计算机专业专科、本科、硕士课程中普遍未开设专门的软件测试课程,测试仅仅是作为软件工程课中的一个章节被提到,因此行业内的软件测试人才严重短缺。目前企业在软件测试人员组成上还存在结构性矛盾。在企业执行软件测试的技术人员通常由具备本科以上学历的软件技术人员来承担,没有形成合理的金字塔形结构,这一方面加重了企业人力资源的成本,另一方面也加剧了软件测试技术人员的匮乏,而实际上通过恰当的培养渠道,高职毕业生完全可以成为合格的软件测试执行人员。

基于以上背景,软件测试技术将成为软件专业人才知识结构与技能培养的重要组成,企业对软件测试人员的需求也应当纳入高职教育视野之中。

2 高职软件测试课程目标分析

高职教育以职业能力培养为目标,通常在完成学历教育同时取得相应的国家职业资格证书,国家职业资格证书或行业技能证书也是高职教育内容的一个重要参照物。而针对软件测试人员,目前还没有相应的国家资格标准,也缺乏相应的行业证书,我们参照国家职业资格标准的等级划分原则,将满足相当于国家职业资格四级(中级)水准的人员称为软件测试员,而将满足相当于国家职业资格三级(高级)水准的人员称为高级软件测试员,并将这两者的技能要求根据具体情况纳入到高职教育培养目标之中。

软件测试员应了解软件测试的基本测试概念、测试理论,根据测试用例能够执行测试,具备基本的测试心理素质,能与开发人员进行有效沟通,掌握一门脚本语言。相当于国家职业资格四级(中级)水准。

高级软件测试员是软件测试工作最基本的力量。他们应掌握基本测试概念、测试理论、测试标准和测试技术方法,能独立设计测试用例,有效进行缺陷报告和跟踪,使用常用测试工具,掌握一门脚本语言。能够完成一般软件程序的测试任务。相当于国家职业资格三级(高级)水准。

据当前软件行业相关统计资料分析,具备测试执行能力高级软件测试员和具有更高技能水准的软件测试工程师都是企业的紧缺人员,从企业人力资源管理的合理结构来说,具备测试执行能力的高级软件测试员的人数需求更大,完全可以成为高职软件测试专业的技能培养目标。教育部的目录中尚无软件测试专业,对于众多的高职院校来说,这是一个空白。因此对于条件成熟的高职院校,可将高级软件测试员纳入到软件专业(测试方向)的培养目标中。也可将软件测试员调整为软件专业的培养目标之一,提高毕业生的专业沟通能力和就业适应面。

3 课程构建原则

3.1 以软件测试工作的逻辑顺序构建课程

目前的软件测试教材大都是近两三年出版的,体例基本上是按照测试理论、测试技术、测试工具、测试实践、测试管理的顺序依次展开。高职的教材如果局限于对相应内容作的筛选、简化,是难以适应高职学生的,也不符合职业技术教育的规律。

“职业教育的教学内容应置于由实践环境构成的,以过程逻辑为中心的行动体系框架之中”,“其内容编排应以典型职业活动顺序为参照系,故具有串行结构的特点。针对工作过程环节的顺序性与时序性传授的课程内容,既符合职业院校学生与生俱有的心理顺序和具象思维的指向,也符合动态变化的职业工作过程的实际需要”。

因此,软件测试课程构建首先要按照典型的测试活动顺序,分解测试职业能力技术要求,按照需求→概要设计→详细设计的V字型测试模型,由易到难,由表及里,由简单到复杂,由单一到综合,逐步展开课程。按照组成测试技能实践教学内容及相互间的内在联系,使数据库、操作系统、自动化测试工具、测试管理工具、配置管理工具等各部分实践内容有所侧重,互相衔接,彼此关联,具有连续性。

3.2 要高度重视过程性知识与经验的获得

“现代工业心理学研究表明,高新技术工作岗位的工作人员所需要的知识,约一半是介于经验性知识和学科理论知识之间的一种特殊的知识,即“劳动过程知识”。软件测试在规范的软件生产中属于软件过程工程的重要组成,软件测试课程构建必须使学生能在“完整工作过程”中学习。

课程开发难点在于提供一定规模的实际软件产品,发放多个包含bug的软件版本,且每个版本都模拟真实测试过程中的情况进行了定制调整,以保证为学生创造一个与日常测试工作环境类似的场景。学生通过这个项目实训,将本阶段学习过程中涉及的测试技能、测试方法等知识点灵活运用,从而保证将书本中的知识点真正消化掌握,进而达到软件测试综合能力的提升。因此缺陷报告库的规模是项目实训效果的重要保证之一。

注意引入在国际市场占有率高、有代表性的自动测试工具,如Mercury、IBM的有关产品,内容涵盖从安装到使用,并结合实际操作案例进行分析讲解,以此来加深概念与方法理解,达到技术运用举一反三,知识传授与技能培养并重的目的。

有了供实践训练的软件产品和测试工具,仅仅能够找出bug还是不够的。要在软件过程工程中,围绕测试工作的的基本程序,在一个“完整工作过程”中进行工作分析,进而构建测试课程,在项目教学中建立与测试过程的直接关系。但是,对于大多数企业而言,目前测试工作流程远未规范,甚至测试员的职责也不够明确。如何进行测试工作分析呢?从形式来看,测试报告是测试人员的工作成果,因此,测试人员的工作分析可以围绕着“测试报告”来进行,包括“测试报告”的前期工作:测试计划、测试案例、测试过程、信息收集;“测试报告”中的信息管理:通常使用测试管理工具,对测试中的问题进行收集、流转、分析与统计;不同类型的“测试报告”的撰写、“测试报告”的管理、测试评估等。这样的程序,体现了人类实践活动的“完整模式”。

3.3 在“完整工作过程”中培养方法能力与社会能力

实际上,测试技术人员的要求不低于开发人员,但是需要不同于开发人员的知识结构。在具体细节上,可能不必非常深入,但知识面要求更广,涉及开发、管理、行业等多方面。

由于目前国内软件企业专职测试人员基本上只承担系统测试,所以测试课程的重点在系统测试,在单元测试、集成测试方面侧重于掌握基本概念和对测试过程的了解,能在指导下完成单元测试、集成测试。与此同时,要注重从业务需求描述与评审到文档评审的一系列质量管理问题。因此要求课程开发在内容上作出取舍,体现整体优化。要注意引入有关质量与质量体系、测试标准等概念,有利于提高职业素养,甚至也有利于企业澄清一些对于测试岗位的模糊观念。针对软件测试岗位的特定心理素质要求,如与程序员的沟通困惑,加强沟通与职业素质培养。

3.4 按照职业技术能力发展阶段来设计典型工作任务

研究表明,“人的职业能力的发展是按照从门外汉到专家的过程进行的”,而不是传统心理学认为的“从不知道到知道”的过程。因此,按照职业技术能力发展阶段来设计典型工作任务是高职课程开发的重要课题。

高职软件专业的课程在开发上一般涉及单机桌面软件和基于网络的分布式应用系统,从运行环境来说有Windows平台和Linux平台。测试课程也可以相应地划分为两个阶段,分别确定Windows平台下单机桌面软件和Linux平台(或Windows平台)下的典型测试任务。根据教学对象的软件专业知识背景与接受能力,在其他课程中作必要的软件知识铺垫。如在第一阶段,通过C语言的简单开发应用、搭建Windows测试环境、从测试角度叙述Windows开发环境及应用程序编程接口、Windows内部对象及程序运行机制、Windows消息机制、内存泄漏和检测技术等,了解编码规范,理解Windows软件错误产生原因,为有效地设计Windows应用软件的测试用例和测试脚本做准备。在对Java开发、OOP、OOAD技术、UML设计工具和基本表示方法、配置和管理数据库系统等作必要铺垫后开始第二阶段的测试课程。因此,在课程开发时一方面注意知识衔接,内容涵盖全面,另一方面深度适宜,体现理论分析“必须、适度、够用”的原则。

“职业教育的系统性,首先是要保证专业劳动过程这一大系统的完整,而不是教学所涉及的各学科子系统的完整性,否则,就会混淆全面和局部的关系,本末倒置”。也只有通过对完整测试工作过程的把握,才能够突破对普通高教课程的精简、筛选,做到理论分析“必须、适度、够用”。

4结语

随着IT技术应用的发展,产品质量控制与质量管理正逐渐成为企业生存与发展的焦点。从软件、硬件到系统集成,几乎每个大中型IT企业的产品在发布前都需要大量的质量控制、测试和文档工作,而这些工作必须依靠拥有娴熟技术的专业人才,即测试技术人员来完成,在这里高职软件测试课程建设通过引进工作过程导向的课程开发方法可以发挥重要作用。

猜你喜欢

软件测试测试软件
软件测试方向人才培养“1+X”融合研究
大数据背景下软件测试技术的发展
心理测试
有趣的识花软件
关于 Web 应用系统的软件测试的研究
即时通讯软件WhatsApp
心理小测试
测试
软件测试发展现状及前景的探讨
小测试:你对电子邮件上瘾了吗?