培训服务 | PMP认证 | PgMP认证 设为首页 收藏本站 关于我们 联系我们
电信行业软件开发的范围管理
发布者:佚名 来源:信管网 点击: 发表日期:2013-04-05

  一、电信行业软件测试项目管理面临的问题

  近年来,随着计算机和软件技术的飞速发展,国内软件测试技术研究也取得了很大的突破:测试专家总结了很好的测试模型,比如著名的V模型、W模型等;在测试过程改进方面提出了TMM(Testing Maturity Model,测试成熟度模型)的概念;在单元测试、自动化测试、负载压力测试以及测试管理等方面涌现了大量优秀的软件测试工具。然而,遗憾的是,针对软件测试的项目管理方法,以及如何组织实施软件测试项目管理的策略,却较少有人关注,从而使软件测试工作长期处于低水平应用层面。目前国内的软件项目,尤其是企业应用软件测试项目中,存在以下问题:

  1、企业应用软件项目的复杂性和专业性。国内大多数软件项目都是企业信息化项目,企业信息化系统是面向管理应用革新的过程,尽管它也要依托计算机和网络等物质化的硬件平台,但其实施对象主要是人及业务流程等非客观形态,需要重构企业的经营模式和管理方式,并需将先进的管理思想和管理模式潜移默化到人的行为规范和业务流程中。

  (1)业务需求的宽泛和易变。企业信息化的应用软件项目,它涉及到企业的方方面面。如一个电信企业的营销管理信息系统(Sales Management Information System,SMLS,以下简称:A系统),它的业务需求不仅牵涉到企业内部的营销、运维、调度等业务部门,还与企业外部的客户、上级单位、国家的相关政策等有关联。每一个环节的变化,都有可能影响系统的业务需求。因此,既使是同行业的同类应用软件,在不同企业、不同时期,应用需求都会有很大变化。(2)软件项目实施运用的干扰因素多。众所周知,企业信息化“三分在技术,七分在实施”,一个完整的ERP工程实施至少需要2到3年的周期。每个实施阶段又包括一系列实施步骤,整个实施过程均需要严格的实施规范。而在这个较长的周期中,行业的政策变化、企业的经营状况,甚至企业的机构和领导更替,都可能对软件项目产生影响,甚至导致项目的失败。因此,所面临的干扰因素、不确定因素太多。

  (3)电信业务的专业性。由于电信行业的专业化,使软件的测试工作要具备软件测试的相关知识,同时,又要有电信相关的专业知识。两者的结合非常重要,而具备两者能力的人,非常缺乏。因此,电信企业软件测试项目管理的专业门槛更较高。由于电信企业长期的垄断经营,几乎没有外部竞争压力,管理上各省、市电信企业自行进行经营和管理,因此业务方面各地的处理方式差异很大,而作为大型传统行业,固守传统的力量相当大,所以长期以来,虽然很多电信企业也在做信息化建设,但都是各自为政。这样一来,开发自动的软件测试工具变得不现实,因为很难想象,为了一个软件项目的测试工作,去开发一个不可复用的测试工具。功能测试主要还要依靠人工测试,使电信企业软件测试项目管理的手段相对滞后,测试工具缺乏。

  2、企业应用软件项目的需求变动风险。目前很多的软件项目还是按照瀑布开发模式开发的,即先提需求,然后根据需求进行分析,一步一步推进设计、验证、编码等各项工作。在这个过程中需求作为源头起着关键作用,然而,企业应用软件因为大量的个性化的需求和行业的专业性特点,存在业务人员不知道如何规范和细化需求,而软件设计人员又缺乏专业知识,这是相互矛盾的。很多电信企业应用软件项目就面临这样尴尬的局面,经常提交的系统需求分析只是一个框架性的文档,对系统设计工作不具有可操作性。软件设计人员根据这样一个框架,凭着个人的理解,进行设计,并指导开发工作,最后推出系统的初级版本提交客户,在使用中边用边改。导致整个软件开发工作的效率不高。造成软件用户使用不畅,从而不愿进行后期投入。另一方面,开发方的后期维护成本居高不下。实力较弱的软件企业往往会被拖垮,最终导致软件项目的失败。这样的框架需求,不仅使软件项目后期需求变动很大,同时,使系统的测试管理工作变得非常困难,很多项目都无法使用自动测试手段,从而对软件项目的研发质量难于控制。需求的不断变化,使整个软件项目生命周期均存在着各种的风险,项目过程难以进行有效控制。

  3、软件测试的管理方式和应用技术发展相对滞后。虽然软件测试技术的发展很快,但是其发展速度仍落后于软件开发技术的发展速度。在对各行各业对软件质量的要求越来越高的今天,软件测试项目管理在今天面临着很大的挑战。(1)软件规模越来越大,功能越来越复杂,信息系统的自身安全性、数据安全性问题日益突出。如何针对软件项目的特点,进行充分而有效的测试,是测试管理工作的急待解决的问题。(2)很多软件测试项目还由开发人员来完成。软件测试理论从心理学角度认为,开发人员在测试自己开发的程序时有不可避免的心理障碍,测试工作应该是相对独立的。因此,测试项目的有效开展需要建立一套有效的测试管理体系。(3)电信企业软件测试项目管理工作是关系到国计民生的大事,它直接影响着企业的生产经营和信息安全。但长期以来,电信企业的应用软件,很多开发完成后,便直接投放用户使用,即使少量大型的软件企业实施的开发项目,也只是验收前组织相关人员突击式的测试一下,几乎不在开发中进行过程控制和跟踪测试。往往是投入使用后很长时间,边修改边使用,导致软件系统的性能长期不稳定。目前,相对滞后的软件测试发展现状急待改变。

  4、人员流动性较大。为电信做软件开发的企业的规模相对于电信企业,往往是中小企业,企业性质和经营实力决定,对大多数程序员,只能维持较低的员工工资水平,而低工资决定了员工流动性大、素质差、缺乏归属感和责任心,更谈不上主动性和积极性。

  这样导致项目的连续性受影响,有时甚至出现人员交接的断层,更别说规范稳定的测试队伍。人员的流动性不仅影响测试工作的开展,甚至导致很多软件项目,交付用户使用后,维护工作难以为继,最后不得不推倒重做,形成这样一个软件项目的恶性循环。如何保证一支稳定的软件研发和测试队伍,开展电信企业软件测试项目管理,是很多为电信企业提供软件的企业不得不面对的问题。

  二、A系统测试过程管理

  软件测试在系统的开发过程中占有重要的作用,它是对前面的开发成果的检测,是用户对开发方交付物的验收,软件测试的质量,直接关系到系统的成败。一般情况下,软件测试具有较长的周期,几乎与程序编写的时间相当,其费用也是非常高的,因此,对系统测试的过程进行有效管理是非常必要的。

  软件测试过程一般分为四个阶段:单元(功能模块)测试,联合(集成)测试,压力测试和验证(确认)测试。下面简单介绍这四个阶段的主要工作。

  单元测试:是针对软件设计中的最小单位——程序模块——进行正确性检验的测试工作,其目的在于发现各模块内部可能存在的各种差错。它的主要依据是详细涉及说明书和源程序。多个模块可以平行独立地进行单元测试。

  联合测试:集成测试主要依据是总体设计文档,测试主要内容有功能性、可靠性、易用性、效率、维护性和可移植性中相关的部分,根据软件需求和设计的要求而选定。集成测试验证各软件单元集成后形成的模块能否达到概要设计规格说明中各模块的设计目标。这里的模块可能是指某个软件部件,也可能是指某个或某几个子系统。

  压力测试:它主要是确认系统功能的稳定性,系统性能的高效性和可靠性。它的常用做法是在实际的运行环境中模拟系统在使用高峰时是否能正常,稳定的工作,系统的反应速度和吞吐量是否满足需求说明书的要求。

  验证测试:验证测试的内容主要包括功能验证性测试、软件配置复审、验收测试。(1)功能验证性测试:是在实际的环境下,验证所测软件是否满足需求规格说明书列出的功能需求。(2)配置复审:复审的目的在于保证软件配置齐全、分类有序,并且包括软件维护所必须的细节。(3)验收测试:在通过了系统的功能性测试及软件配置审查之后,就应开始系统的验收测试。验收测试以用户为主,测试在实际的环境下,安装软件,并用实际数据进行测试。验收测试还包括验证软件的相关文档,如操作手册等。

  三、A系统测试过程的范围管理

  如上所述,系统测试将分别经历单元测试,联合测试,压力测试和验证测试四个阶段,但是,如何保证测试的四个阶段能有序进行,每个阶段有效完成测试任务呢?一个重要的工作就是对测试的每个阶段进行范围管理,即在做测试计划时,清晰的划分四个测试阶段的工作范围。

  A系统各阶段的测试过程的范围管理如下:

  单元测试:因为A系统采用增量开发模型,所以各功能模的单元测试是按照开发优先级管理设定的各开发阶段的内部进行。开发优先级管理把A系统分成四个开发阶段,对应的单元测试也自然的包含在这四个阶段内,因此,单元测试的功能模块的测试顺序与开发优先级类别划分相同。对于每个功能模块,单元测试的主要工作内容是:1)桩模块和驱动模块的开发。。2)模块接口测试。3)局部数据结构测试。4)路径测试。5)错误处理测试。6)边界测试。7)各模块的测试报告。

  联合测试:在开发优先级管理中,每个开发阶段都会有一个可交付的子系统,联合测试主要是把这4个子系统集成起来测试。联合测试的主要工作内容是:1)功能性测试:指检查各个子功能组合起来能否满足设计所要求的功能,包括程序单元或模块的功能是否互相产生不利影响、程序单元或模块之间的接口是否正确、各个程序单元或模块所用到的全局变量是否一致等。2)可靠性测试:根据软件需求和设计中提出的要求,对软件的容错性、易恢复牲、错误处理能力进行测试。3)易用性测试:根据软件设计中提出的要求,对软件的易理解性、易学性和易操作性进行检查和测试。4)性能测试:根据软件需求和设计中提出的要求,进行软件的时间特性、资源特性测试。5)维护性测试:根据软件需求和设计中提出的要求,对软件的易修改性进行测试。6)可移植性测试:根据软件需求和设计中提出的要求,对软件在不同操作系统环境下被使用的正确性进行测试。7)联合测试报告。

  验证测试:A系统的验证测试基本都是用户亲自测试。它的主要工作内容如下:1)软件安装测试。2)功能验证测试。3)软件配置测试。4)核心业务的操作手册测试。5)验证测试报告。

发 表 评 论 相 关 信 息
姓名: 邮箱:
内容:
全部评论
共创国际项目管理顾问旗下网站:中国研发管理网 | 项目管理者联盟 | 中国工程管理网
Copyright © 2005-2014 ChinaRDM.COM 研发管理网 All rights reserved. 京ICP证060517号