如何运用测试手段控制质量

  启亚监理公司的项目总监蔡高工刚吃完早饭,就急急忙忙地往用户的办公大楼赶。因为上午九点该单位信息中心的金主任要主持召开项目会议,会议议程前两天就发给参会各方了,主要是关于办公自动化系统用户测试的总结会。老蔡走在路上一直在想着这个项目,“项目已经进行了2年多了,前期需求调研、设计、开发都比较顺利,无论是质量、进度等方面,业主都比较满意,这次用户对开发成果进行测试,效果如果不错,就可以初验了……”老蔡想着项目的事情,丝毫没有注意到城市早晨的车水马龙,不知不觉地就到了目的地。

  出乎老蔡的意料,几个业务部门都反映对这次用户测试的结果不满意,主要是发现很多比较“幼稚”的问题,老蔡边听边记,但是心里在琢磨:“在质量控制方面,监理工程师依据信息工程监理规范做了很多工作,怎么会有这么多问题呢?”这时金主任说:“蔡总监,刚才大家就测试情况进行了汇报,发现了不少问题,而且很多问题是不应该出现的,你怎么看待这次用户测试中发现的问题?”老蔡看了一眼开发商的项目经理小王,于是他首先对小王说:“王经理,你们在交付用户测试之前,内部是否已经进行了测试?”小王连忙解释:“蔡总监,我们按照质量保证计划的要求,多次对代码进行了评审,并且还依据监理方审核后的测试计划、测试用例进行了测试,对发现的问题也进行了修改,并且也提交了测试报告;至于系统性能的问题,我们调试环境感觉还是很不错的,在数据库设计时就考虑到了系统性能的指标,优化了数据库设计;程序当中涉及的一些算法我们也进行了优化。”听完了小王的发言,蔡总监说:“开发商应及时改进用户测试中发现的问题,并且再进行测试,并把测试结果提交给监理方进行审核;监理方在开发商完成测试后,将继续组织工程师进行抽测。”

  这时,信息中心的一位工程师忍不住插话道:“蔡总监,在软件开发项目上,监理在质量控制方面有哪些好的手段?比如:性能测试如何验证系统的性能指标达到了前期设计要求?功能测试方面,我们倒是可以通过亲自操作,直接发现问题,可是性能方面,很多情况是凭感觉,有时感觉系统很慢,有时倒是很正常,到底系统支持多少个用户并发操作?质量控制是监理的一项工作内容,能不能也采用loadrunner等测试工具进行性能测试,关于抽查测试,覆盖面能否放宽?”

  还没等蔡总监继续发言,业务处的陈处长补充说:“现在很多监理在项目过程管理方面还不错,但这只是一部分内容,如果只做这些工作就是‘形式监理’。在质量控制方面,监理应该多采用一些测试手段和技术,只是评审测试文件或者进行一些简单的抽测,是远远不够的。

  老蔡感觉今天这个会和自己早晨想的完全不同,业主方看来对项目的质量很不满意,作为监理也的确采取了措施,评审测试有关文件、参加抽测,可是系统太大了,好几百个新功能,不可能都抽测到。而且,性能测试一般监理工程师也无法做,太专业了。如果监理方亲自做测试,角色就类似开发商的测试工程师了,而且怎么评价项目质量呢?老蔡正在琢磨着,金主任发言了:“听了大家的汇报,我认为项目质量的确存在不少问题,开发商应尽快改进,监理方就如何在质量控制中有效应用测试手段,给项目办做个具体汇报。”

  会议散了,老蔡心里乱糟糟的,脑子里不停地转着:监理方如何在质量控制中有效应用测试手段?难道我们的测试手段不够有效?路上的喧哗声也没有打搅老蔡的思绪。(吕小刚)

  把握每一个质量控制点

  选择具有相当级别资质的开发商作为项目承建方,是规避项目建设风险的一个关键环节。用户需求调研、分析阶段也是一个非常关键的阶段。

  启亚公司所监理的项目,在系统测试阶段遇到了问题,如果仅在测试阶段来找原因,恐怕是不够的,应该彻底反省一下公司所监理的办公自动化软件开发的全过程,寻找哪个环节上下的功夫不够。前两年,我们公司监理了一个省级电子政务社会保险本地化应用软件开发的项目,项目已通过验收,目前正在全省推广使用。历时两年的开发与监理,确实不易,下面说说我们的几点体会,供蔡总监参考。

  选择具有相当级别资质的开发商作为项目承建方,是规避项目建设风险的一个关键环节。用户需求调研、分析阶段也是一个非常关键的阶段。对于不同的政府部门,往往需求不同,有的还会涉及一些政策性很强的特殊规定,因此,不可能套用所谓通用的某个电子政务软件产品,一般应作二次开发。在这一阶段中,软件开发及现场监理必须有计划、有目的地与建设方一起,一个单位一个单位地实施需求调研,与相关人员面对面座谈,向他们介绍软件编制的设计思想,直接了解一线用户的需求,深入了解所涉及的相关政策及行业知识。依据实地调研得到的素材,编写出用户需求报告书应返给相关单位,由相关单位进行审核确认。

  概要设计与详细设计阶段。本阶段的工作应在对用户需求报告书进行细致分析的基础上进行,对每一个模块设计的效果都应与需求相符,不能想当然。这一步的工作是由承建方来实施,监理方应随时掌握其进度,概要设计与详细设计均应形成书面文档,提交监理方审核,审核每一步设计的可行性、合理性。

  软件开发的系统测试阶段。通过了对详细设计的审核、承建方即可进行程序的编码、调试,一直到系统测试。系统测试应参照软件工程所要求的方式、方法来进行。

  如果所编制的软件比较简单,功能不多,系统测试工作可以遵照如下步骤进行:先由承建方提交测试方案、测试计划,由监理方及建设方相关人员进行审核,三方一起确认。然后由承建方进行自测试,并出具自测报告,再由监理方与建设方人员一起进行复测。整个测试工作,按需求逐条进行,应搭建真实的使用环境,对系统的功能、性能进行模拟运行测试,用户并发测试,最后撰写出系统初验测试报告,三方确认。对于那些比较庞大、功能比较复杂的软件,一般应聘请软件测试的专门公司,来介入项目的系统测试工作。

  从本案例中,所进行的测试过程,似乎过于简单,试图仅经过承建方自测及监理方抽测后,就提交给业主方测试或使用,还想一次通过,这的确是不太现实。建议启亚公司根据本项目的实际情况,与业主一起,重新确定测试方案,将测试阶段的工作真正做扎实。

  在本案中还提到了“上报个数据表要等好几分钟……”的问题,这就需要监理方协调相关专家进行分析,是系统硬件配置不到位,还是部分软件模块需要进一步优化,要尽快拿出个结论,好做相应的对策。

  当本工程通过测试验收后,即可进入系统试运行阶段,在这一阶段中,用户还会提出许多问题,仍然要花费很多时间与精力来加以解决,使系统逐步完善,对于这一点,蔡总监要有充分的思想准备。(翁沧南)

  工程监理是个系统工程

  只有在充分认识测试对象的基础上,我们才知道每一种测试对象需要什么样配置,才有可能配置一种相对公平、合理的测试环境,这在性能对比测压中尤其重要。

  “启亚监理公司在政府部门办公自动化系统项目中监理两年多了,“在质量控制方面已经做了很多工作,怎么还会有很多问题呢?”从用户反映的情况看,提出下面一些建议供蔡高工改进今后工作时参考。

  首先,该项目监理的对象是办公自动化系统,它的某些业务虽然与其他知识管理系统相类似,但由于其鲜明的特点,目前办公自动化系统已自成体系。系统的测试分析应与其特有的业务处理方法紧密联系,针对流转型的行政办公之需求,最好使用现成的公司体制来进行分析;针对独立型的个人事务之需求,首先要考虑统一给不同用户打上特殊标记,在准备测试数据时应避免不同用户具有相同的个人信息和相关资料的情况产生。进行功能模块测试时,行政办公流程需要重点注意批示的并行和串行情况,还要注意其组合方式是否能够全面的覆盖。

  其次,正如信息中心的工程师对蔡总监提出的:“在软件开发的项目上,监理在质量控制方面有何好的手段?比如:性能测试如何验证系统的性能指标达到了前期设计要求?”这是软件工程监理的核心问题。监理的目的是验证软件系统能否达到用户提出的性能指标,同时发现软件系统中存在的性能瓶颈,提出优化软件的建议,最后达到优化系统的目的。性能测试主要是通过自动化的测试工具模拟多种正常、峰值以及异常负载条件来对系统的各项性能指标进行测试。

  如何选择性能测试策略是我们在具体测试前就需要明确的,而软件架构在实际测试中制约着测试策略和工具的选择。性能测试的需求由业务需要驱动,并由一组基于历史数据或预测的近似值之用例阐明。在每种不同系统架构的实施中,开发人员可能选择不同的实现方式,造成实际情况纷繁复杂。还因工程和项目的不同,所选用的度量评估方法也有不同之处。

  本案例是由用户委托软件公司代为开发的一套应用系统,各类应用环境、由不同供应商组装起来的复杂产品、难以预知的用户负载以及愈来愈复杂的应用程序,都可能使用户遭遇反应慢、系统失灵等问题。

  办公自动化系统需要支持成百上千用户,不仅测试时会遇到问题,今后用户实际使用时往往还会产生疑问,正如那位应用工程师提出的:“性能方面,很多情况是感觉,有时感觉系统很慢,有时倒是很正常;到底系统能支持多少个用户并发操作啊?”这就需要用压力测试工具辅助模拟实际情况进行自动负载测试,通过可重复的、真实的测试彻底地度量应用的性能和可扩展性,确定问题所在以及优化系统性能的方案。这样,预先知道了系统的承受力,就能为用户规划整个运行环境配置提供有力的依据。

  性能测试及调校还需要有耐心和毅力,例如负载平衡管理器的主要任务就是处理那些空闲的线程占用资源等问题,以避免因系统资源不足导致严重后果。我们可以这样估计系统资源什么时候被耗尽:分析当前系统可用资源量以及系统资源被蚕食的速度(一般我们是以天为单位来计算的),我们还要跟踪系统资源变化(以天为单位)以估计我们什么时候应该开始增加系统资源的工作。跟踪系统的反应时间(接受请求到发出响应的总时间),当这个时间达到某个值的时候我们也需要进行相应的处理或者增加系统资源。这个过程需要与用户充分地沟通与协调,尽量扩充团队的知识广度与深度,并且每一个步骤都要小心翼翼,升级系统才会比较顺利。

  只有在充分认识测试对象的基础上,我们才知道每一种测试对象需要什么样配置,才有可能配置一种相对公平、合理的测试环境(这在性能对比测压中尤其重要);考虑到其它因素,如网络锁、网速、显示分辨率等对测试结果的影响。这类问题都要借助于科学的软件测试手段和先进的测试工具,而且必须有一个适应该项目软件的、完整的监理测试计划,全面进行性能指标的测试,才可以及早发现,及时解决,不至于出现很多甚至比较“幼稚”的问题。(陆兴潆)

  掌握监理工作中的关键点

  监理工作千头万绪,不一而同。所以,这就要求监理工作必须在准确理解信息化工程监理内涵的基础上,针对不同的信息化项目、不同业主的特性,明确项目建设的关键点,从而采取不同的监理实施方案和措施。

  监理工作千头万绪,不一而同。所以,这就要求监理工作必须在准确理解信息化工程监理内涵的基础上,针对不同的信息化项目、不同业主的特性,明确项目建设的关键点,从而采取不同的监理实施方案和措施,这一点对质量控制最为要紧。

  一般来讲,监理工作内容是“三控制二管理一协调”,即质量控制、进度控制、投资控制以及合同管理、信息管理和工程协调。这其中最关键的是要在充分协调的基础上实施质量控制,缺乏沟通和协调,就很难有业主满意的质量结果。为保证有效的质量控制,在建设全过程必须加强测试监理。监理方应依据测试原则对承建方的测试进行监督、审核开发方的测试计划和测试用例,定期检查测试记录。监理方根据测试结果估算错误数,确认符合约定,并协同组织有关各方进行评审。

  就本案例来讲,这是一个政府部门的办公自动化系统建设项目,属于电子政务性质的信息系统建设,核心是系统软件的开发建设,因此就必须针对电子政务需求的系统软件特性,实施质量监控。

  电子政务最重要的内涵是运用信息技术和通信技术、构建政府部门的信息系统,在政府部门、企业和民众三者之间迅速有效地交换各种信息,从而推进政府部门办公自动化、网络化,实现信息全面共享。由内部网和外部网组成的政府信息网,成为政府部门的支持平台,但是,更重要的是建立在平台之上的电子政务应用系统,其中,包括政府部门的内部应用、面向公众服务的门户应用,以及面向各职能机构的专业应用。本案例是电子政务的内部应用系统,它主要是指面向办公的业务系统。

  因此,对于如此信息系统建设质量的监理,核心是功能的实现和性能的保证。功能的实现,可以通过业主方的需求分析来确定,比较容易检测。关键是性能的保证,这就必须跟随系统软件开发和建设进程,通过分部测试再进而整体测试。

  在信息化工程前期监理中,必须认识到影响信息系统施工与开发的最关键阶段是系统开发的早期阶段,即系统的选型。在信息化工程中期监理中,监理人员要注意工程的施工与开发人员之间的沟通。建设期间还必须注重做好设计变更控制。为做好设计变更控制工作,应建立健全相应的设计变更管理制度。在进行设计变更时,先由总监理工程师提出初步意见,经与业主交流沟通后,形成正式书面文件交与承包商,由承包商提出修改后的方案设计和开发变更设计,经总监理工程师审核确认后,由现场监理工程师根据变更后的设计开发需要,重新调整编制预算,经总监理工程师与业主审核后下达给具体的施工和开发单位。

  由上可见,信息系统工程监理工作当中,业主单位、承建单位、监理单位正如三棱镜的三个反光面,三者有机结合才能映衬出信息系统工程建设光彩夺目的“整体”。

  需要特别注意的是:一个正常的信息系统工程项目的实施全过程,是一个整体,绝不能将三者割裂开来。只见树木、不见森林,就不能真正把信息系统工程监理工作做好,甚至有时可能造成重大的危害。所以,三棱镜原理对信息系统工程监理工作的开展有着重要的指导意义。(沈尔唯)

关注读览天下微信, 100万篇深度好文, 等你来看……