您现在的位置是:首页 > 头条新闻 >

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

2008-11-05 16:51:00作者: 来源:

摘要监理方如何在质量控制中有效应用测试手段?难道我们的测试手段不够有效?...

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

测试结果出人意料

老蔡走进会议室,里面已经坐满了项目各方人员,有市政府各业务部门的项目负责人、开发商的项目经理和技术人员。九点钟刚到,金主任推门进来,会议准时开始了。金主任首先请各业务部门负责人发言,谈谈用户测试的情况。出乎老蔡的意料,几个业务部门都反映对这次用户测试的结果不满意,主要是发现很多比较“幼稚”的问题,比如:有的报表的数据明显不符合业务数据的要求,而且觉得系统的性能达不到要求,上报个数据表要等好几分钟……。

老蔡边听边记,但是心里在琢磨:“在质量控制方面,监理工程师依据信息工程监理规范做了很多工作,比如:项目在实施前就要求开发商制定了质量保证计划;实施开始前监理仔细审核了实施方案,而且实施方案与合同、设计方案、实施计划是符合的;开发完成后,也审核了开发商的测试计划、测试用例,并要求开发商进行了完善,并且审核了开发商提交的有关测试记录、测试分析报告;在交给各业务部门测试前,还专门安排了工程师进行抽测,从抽测的结果看,监理认为还是很满意的,没有发现明显的缺陷。应该说,监理在质量控制方面已经做了很多工作,怎么会有这么多问题呢?

摆脱“形式监理”

金主任听完汇报,神色也沉重起来,对老蔡说:“蔡总监,刚才大家就测试情况进行了汇报,发现了不少问题,而且很多问题是不应该出现的,你怎么看待这次用户测试中发现的问题?”老蔡看了一眼开发商的项目经理小王,小王正低头忙着记录问题,于是他首先对小王说:“王经理,你们在交付用户测试之前,内部是否已经进行了测试?”小王连忙解释:“蔡总监,我们按照质量保证计划的要求,多次对代码进行了评审,并且还依据监理方审核后的测试计划、测试用例进行了测试,对发现的问题也进行了修改,并且也提交了测试报告;至于系统性能的问题,我们调试环境感觉还是很不错的,在数据库设计时就考虑到了系统性能的指标,优化了数据库设计;程序当中涉及的一些算法我们也进行了优化。”听完了小王的发言,蔡总监说:“开发商应及时改进用户测试中发现的问题,并且再进行测试,并把测试结果提交给监理方进行审核;监理方在开发商完成测试后,将继续组织工程师进行抽测。”

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

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

老蔡感觉今天这个会和自己早晨想的完全不同,业主方看来对项目的质量很不满意,作为监理也的确采取了措施,评审测试有关文件、参加抽测,可是系统太大了,好几百个新功能,不可能都抽测到。而且,性能测试一般监理工程师也无法做,太专业了。如果监理方亲自做测试,角色就类似开发商的测试工程师了,而且怎么评价项目质量呢?

老蔡正在琢磨着,金主任发言了:“听了大家的汇报,我认为项目质量的确存在不少问题,开发商应尽快改进,监理方就如何在质量控制中有效应用测试手段,给项目办做个具体汇报。”

会议散了,老蔡心里乱糟糟的,走出市政府的大门,还是来的那条路,老蔡脑子里不停地转着:监理方如何在质量控制中有效应用测试手段?难道我们的测试手段不够有效?路上的喧哗声也没有打扰老蔡的思绪。

(中国软件评测中心 吕小刚)

把握每一个质量控制点

翁沧南

陕西计用信息技术监理有限公司 总监理工程师

对软件开发项目的监理工作,应该把握软件开发过程中的每一个质量控制点。

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

选择相当资质的开发商

选择具有相当级别资质的开发商作为项目承建方,是规避项目建设风险的一个关键环节。该开发商必须具备三个层面的人才,一是资深的软硬件系统专家级人才,一旦发生深层次的系统故障,即可将他们调到项目实施现场,分析解决问题;二是具有管理经验的、责任心强的项目管理人员,由他们来担任项目经理的职务,组织领导开发人员实施现场开发工作;三是熟知项目相关政策、行业知识的人才,以把握用户需要,力争软件编程一次到位。

把握用户需求分析

用户需求调研、分析阶段是一个非常关键的阶段。对于不同的政府部门,往往需求不同,有的还会涉及一些政策性很强的特殊规定,因此,不可能套用所谓通用的某个电子政务软件产品,一般应作二次开发。在这一阶段中,软件开发及现场监理必须有计划、有目的地与建设方一起,一个单位一个单位地实施需求调研,与相关人员面对面座谈,向他们介绍软件编制的设计思想,直接了解一线用户的要求,深入了解所涉及的相关政策及行业知识。

依据实地调研得到的素材,编写出用户需求报告书应返给相关单位,由相关单位进行审核确认。这个过程可能会反复几次,只有把需求调研工作做扎实了,才能避免开发工作的返工现象,才能使编出的软件让最终用户所接受。本案中,蔡总监他们在这一阶段的某个环节,可能有疏忽之处,因而造成案中所说“对这次用户测试的结果不满意,主要是发现很多甚至比较“幼稚”的问题,比如:有的报表的数据明显不符合业务数据的要求……”如果是这样的话,建议蔡总监协调相关人员回过头来,再做需求调研阶段的补充工作。

审核设计阶段的可行性

概要设计与详细设计阶段。本阶段的工作应在对用户需求报告书进行细致分析的基础上进行,对每一个模块设计的效果都应与需求相符,不能想当然。这一步的工作是由承建方来实施,监理方应随时掌握其进度,概要设计与详细设计均应形成书面文档,提交监理方审核,审核每一步设计的可行性、合理性。必要时,将相关用户请来,向他们介绍详细的流程。在讲述的过程中,设计者往往会发现项目的不周之处。另外,请用户一起来参与设计,更直接,更到位,还能对用户进行培训,为后阶段系统软件的测试与试运行打下基础。

以上两个阶段,表面上看费了很多时间,但是,是不可缺少的两个阶段,没有这两个阶段脚踏实地的工作,再好的编程高手,也编不出用户欢迎的、实用的软件。不知蔡总监他们在本项目的监理过程中,是否特别注重了这两个阶段。

重视系统测试

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

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

对于那些比较庞大、功能比较复杂的软件,一般应聘请软件测试的专门公司,来介入项目的系统测试工作,实施对系统性能、功能、压力等方面的全面测试,最后由测试公司提供系统测试报告,对承建方所开发的软件作出权威的评价,或提出整改意见,整改后再做全面或局部的复测,直至符合要求。在我们所监理的省级社会保险系统软件的本地化开发项目中,就是聘请了一家专门的测试公司,他们派出测试人员,跟踪了项目开发的相关阶段,并对承建方所编制的每个模块及整个系统,进行了功能、性能、压力等方面的全面测试,出具了上千页的测试报告,在测试的过程中,提出了许多有益的整改建议。

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

第一,承建方参与软件开发的技术人员,未必对业主方一线的业务流程了如指掌,由于理解方面的差异,暴露出问题是很正常的。

第二,如果在整个开发过程中,对用户第一线的操作人员培训不到位,用户在接受一个新的应用软件时,往往受旧的应用软件的操作习惯的影响,出现这样那样的抱怨也是难免的。

要规避上述情况,作为承建方应注重开发项目所涉及的政策、法规的学习和理解,多深入用户第一线,从而使所编程序真正被用户认可。监理方应协调好项目开发过程中的培训环节,要求承建方技术开发人员花一些时间,与第一线用户进行技术沟通、交流,达成共识。

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

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

工程监理是个系统工程

陆兴潆

厦门东晟信息工程监理有限公司 总工程师

软件工程监理是一个系统工程,不是“在交给各业务部门测试前,专门安排工程师进行抽测”就能解决问题的。

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

首先,该项目监理的对象是办公自动化系统,它的某些业务虽然与其他知识管理系统相类似,但由于其鲜明的特点,目前办公自动化系统已自成体系。它的首要特点是擅长处理类似公文、公告等流转类型行政办公类的应用需求,以及相对独立的个人相关资料、记事等个人事务类的应用需求;另外一个不同于其他应用软件的特点是其业务流程的权限管理。

系统的测试分析应与其特有的业务处理方法紧密联系,针对流转型的行政办公之需求,最好使用现成的公司体制来进行分析,这样做沟通方便,且测试数据准备容易,不易产生歧义;针对独立型的个人事务之需求,首先要考虑统一给不同用户打上特殊标记,在准备测试数据时应避免不同用户具有相同的个人信息和相关资料的情况产生。以常见的办公自动化系统为例,其功能模块主要有行政办公、个人事务、综合信息和基础服务四个部分。

进行功能模块测试时,行政办公流程需要重点注意批示的并行和串行情况,还要注意其组合方式是否能够全面覆盖;个人事务方面,以个人名片为例,需要特别考虑正确性、惟一性、保密性等;至于综合信息,不仅要保证其内容和格式的正确,还要保证传输准确、及时和可靠;基础服务部分,重点要注意用户登录名及其密码长度设置是否正确;存储大小设置是否正确、有效;预定义的行政办公中各个流转模块是否能被正确应用。

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

如何选择性能测试策略是我们在具体测试前就需要明确的,而软件架构在实际测试中制约着测试策略和工具的选择。在实际工作中我们经常会对两种类型软件进行测试:对于B/S(Browser/Server)基于浏览器/Web服务器的三层架构,一般会关注Web服务器指标;对于C/S(Client/Server)基于客户端/服务器的三层架构, 由于通常软件后台为数据库,所以我们更注重数据库的测试指标。当然,在实施时我们还会查看多用户测试情况下的内存、CPU及系统资源调用情况等。

性能测试的需求由业务需要驱动,并由一组基于历史数据或预测的近似值之用例阐明。在每种不同系统架构的实施中,开发人员可能选择不同的实现方式,造成实际情况纷繁复杂。还因工程和项目的不同,所选用的度量评估方法也有不同之处。所以,性能测试的工作千头万绪,我们需要拟定步骤分阶段地执行,一步步向目标前进。微软公司的研究表明,性能测试的过程应该为六个阶段,包括发现、探究、提案、执行、复查、收尾阶段。

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

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

性能测试及调校还需要有耐心和毅力,例如负载平衡管理器的主要任务就是处理那些空闲的线程占用资源等问题,以避免因系统资源不足导致严重后果。我们可以这样估计系统资源什么时候被耗尽:分析当前系统可用资源量以及系统资源被蚕食的速率(一般我们是以天为单位来计算的),我们还要跟踪系统资源变化(以天为单位)以估计我们什么时候应该开始增加系统资源的工作。跟踪系统的反应时间(接收请求到发出响应的总时间),当这个时间达到某个值的时候我们也需要进行相应的处理或者增加系统资源。

这个过程需要与用户充分地沟通与协调,尽量扩充团队的知识广度与深度,并且每一个步骤都要小心翼翼,升级系统才会比较顺利。

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

掌握监理工作中的关键点

沈尔唯

安徽省经济信息中心办公室主任

监理工作最关键的是要在充分协助的基础上实施质量控制,否则很难有业主满意的项目质量。

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

认识信息化工程监理的工作重点

信息化工程监理是指具有信息化工程《监理资质等级证书》的法人单位,其可以接受业主的委托,依据国家(或省)的有关规定和标准,代表业主对承建工程的单位在系统设计、系统开发、安装调试、项目工期和资金使用等方面进行全过程或阶段性的质量监督。信息化工程的设计、施工、系统集成和开发过程是密不可分,甚至是犬牙交错的,因此对于大型综合性信息化工程建设监理最好是贯穿设计、施工、系统集成和开发全过程,这可以保证质量控制的完整实施。

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

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

把握电子政务项目监理的关键点

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

本案例是电子政务的内部应用系统,它主要是指面向办公的业务系统。其中,公文处理、信息管理和内部事务管理是其核心。

公文处理类系统,主要是围绕公文的处理流程的软件系统,包括文件的收发、起草、传阅、批办、会签下发、归档、查询等。

政务信息类系统,主要是围绕政务信息的报送、接收、发布等。

内部事务处理类系统,主要是围绕内部请示报告管理,例如,人事管理、财务管理、工作计划等。

辅助决策类系统。主要提供视频点播、电子地图、气象分析、经济指标分析、政策法规库、文献资料检索、专家系统、文件背景资料以及相关的业务信息,对政务管理中的各种决策提供支持。

公共信息支持平台。主要提供电子公文交换、电子邮件,以及各种公共信息查询,例如,邮编区号、联系方式、交通信息、常用网址等。还有,视频会议系统等。

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

在信息化工程前期监理中,必须认识到影响信息系统施工与开发的最关键阶段是系统开发的早期阶段,即系统的选型。系统方案一旦确定,要想进行大的变动就很困难了。进行编程阶段或编程完成之后,则只能做一些小的或者是局部的调整。

众所周知,信息化工程的建设投入的人力物力越多,修改的可能性越小。当一个系统进入编程阶段时,系统工程的开发费用已大部分支出了。所以,在这一阶段,监理的作用是防患于未然,是为系统最终的性能质量奠定基础。这期间监理的关键是要根据业主方的应用环境,监测承建方的系统方案是否符合性能要求,以及将在建设过程中应用的测试案例是否得当等。

在信息化工程中期监理中,监理人员要注意工程的施工与开发人员之间的沟通,在这个过程当中,系统的实现方法是否按照规定的规范、标准进行施工和开发十分关键。这也是监理工作任务量最大的一个阶段,需要投入大量的人力和物力,特别是要进行不断的分部测试,以确保性能质量。

具体的测试内容通常可以包括:安装(升级)、启动与关机、功能测试(正例、重要算法、边界、时序、反例、错误处理)、性能测试(正常的负载、容量变化)、压力测试(临界的负载、容量变化)、配置测试、平台测试、安全性测试、恢复测试(在出现掉电、硬件故障或切换、网络故障等情况时,系统是否能够正常运行)、可靠性测试等。要注意的是不能直接使用承建单位提供的可执行程序用于测试,而要按照承建单位提供的编译步骤,从源代码重新生成可执行程序。

性能测试和压力测试一般情况下是在一起进行,通常还需要辅助工具的支持。在进行性能测试和压力测试时,测试范围必须限定在那些使用频度高的和时间要求苛刻的软件功能子集中。这期间监理方应尽量要求业主方参与测试中,以保证系统性能质量的可靠、实用。

由于目前此类的系统开发设计都采用功能模块化,因此在模块开发好后,先做一些基本的测试,由政府部门信息系统中心人员与业务人员把关,检查需求是否满足。当各个部门的需求都能满足时,再做全面的测试,对系统的运行速度等性能进行检查。此时,监理工作重点是建立合理的办事流程机制,让承建方和业主方能够及时充分沟通,避免最后产生大的分歧。这一阶段的监理工作做好了,可以为整个工程奠定很好的基础。这期间的质量控制,要重点、严格做好工序间的检查(检查流程如图一所示)。坚持上道工序未经检查,并验收合格后,不准进入下道工序的原则。只有上道工序完成后,先由施工、开发单位进行测试,认为合格后方可通知现场监理工程师或其代表到现场、机房或实验室会同测试,合格后由现场监理工程师签署认可后,方能进行下一道工序的工作。

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

正确运用监理的三棱镜原理

由上可见,信息系统工程监理工作当中,业主单位、承建单位、监理单位正如三棱镜的三个反光面:一方面三者缺一不可,另一方面,从任何一面中所反映出的都只是孤立的“部分”,三者有机结合才能映衬出信息系统工程建设光彩夺目的“整体”。

从不同的层次来看,业主单位的项目管理部、监理单位的咨询监理部、承建单位的工程建设部三者之间,也有着类似的关系。业主单位负责人、总监理工程师、(承建单位)项目经理三者之间的关系,也可以用三棱镜原理加以反映。

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

图1 检查流程图

施工、开发单位

加强测试,保证质量

田志斌

汉普管理咨询(中国)有限公司 咨询经理

要想保证每个模块的质量稳定,就得有统一的质量管理体系和统一的衡量质量标准。

质量管理体系并不是空泛的概念,它涵盖三方面的内容。一是质量体系,二是第三方评估,三是项目监理。可以说,使用这三种手段都可以保证软件产品的质量。要注意的是,IT应用面非常广泛,其质量管理体系的构建虽然有一定规律可循,但也有很多个性化的需求,这就需要应用方、承建方、监理方有经验,并善于沟通和交流,从流程和体系上保证应用的质量。

应用软件建设是系统建设真正的灵魂所在,开发单位的测试是开发过程中一个不可缺少的环节,它对信息系统的质量、进度都将具有重大的影响。一般来说,开发商需要完成从单元测试、集成测试、确认测试到系统测试的全部测试工作。测试的规划、实施是贯穿在整个开发过程的,监理方质量控制的一个重要工作就是对开发商的测试过程进行监督和管理,以达到促使承建单位提高工程质量、控制承建单位开发质量的目的。

从案例中可以看出,启亚公司的监理老蔡已经按部就班地做了许多关于OA系统质量控制的测试工作,但是会前信心满满的老蔡会后却陷入了迷惘与不解之中,原因何在?

软件测试无非包括两种:功能测试与性能测试。从业务部门对质量控制的诸多不满可以看出问题主要聚焦于软件性能测试,归纳为以下三点:

一、 虽然进行了软件的性能测试,但监理方没有对其进行评估与度量,也没有一个测试或者是质量标准体系进行评估与度量,所以造成业务部门对性能测试只能跟着感觉走。

二、 项目监理也即老蔡对软件性能测试不重视,甚至根本不具备软件性能的评测能力,对软件性能的测试手段与技术不熟悉,这样不仅仅无法使整个开发过程处理处于透明状态,就是最基本的监理工作也无法做到位。如果监理不懂得测试技术,没有掌握相关的检测、度量和评估技能,如何能够对开发方的测试过程进行有效的监理?对于开发方的测试计划、测试用例、测试过程、测试结构报告、测试分析、覆盖率分析等的正确性、合理性和有效性如何能够做出正确判断呢?从案例中也可以看出,OA系统的性能并不稳定,时快时慢,这就明显看出系统并未达到其设计之初的要求。

三、 对于功能测试虽然不存在什么大的问题,但是从文中可以看出,测试过程中所用的数据并非模拟的真实业务数据,以至于产生一些比较“幼稚”的问题也就不足为奇。

保证测试手段的有效性

性能测试的重要性随着网络发展更凸显重要性,由于网络环境、数据库环境、应用服务器环境、系统平台和技术等的复杂性和多样性,难以预知的用户负载和愈来愈复杂的应用程序使软件性能非常难于控制。虽然,改善系统性能不是单单依靠性能测试就能完成的,但性能测试至今仍是控制性能有效的手段。

性能测试的基本策略是自动负载和压力测试。通过在一台或几台PC机上模拟成百上千的虚拟用户同时执行业务的情景,对应用程序进行测试,同时记录下每一事务处理的时间、服务器峰值数据、数据库状态等。它主要包括并发性能测试、疲劳强度测试和大数据量测试等,其中并发性能测试是重点。

软件性能测试的步骤

每种不同的应用系统的开发,开发人员可能选择不同的实现方式。因此,根据测试项目的不同,所选用的度量和评估方法也有不同。不过仍然有一些通用的步骤帮助我们完成一个性能测试项目,步骤如下:

明确性能测试的目标和需求

性能测试需求的来源一般是软件需求、设计文档或用户备忘录等设计和需求相关的文档。在条件允许的情况下,还可以包括开发工程师和客户代表,辅助对性能测试需求进行分析和确认。

确定测试计划和测试基准

如果不进行合理的规划,性能测试将会是一项令人望而生畏且有些混乱的任务。性能测试计划是用来指导性能测试过程的主要文档,在测试计划中除了要写明本次测试的测试目标、测试需求外,还需要在测试计划中给出明确的测试通过条件、测试时间和资源计划。

在制定测试计划时,应该使用测试基准来确定应用程序中是否出现性能倒退。基准测试可以在一个相对短的时间内收集可重复的结果。性能测试基准的来源主要是用户对各项指标提出的明确需求;如果用户没有提出性能指标则根据用户需求、测试设计人员的经验来设计各项测试指标。任何测试的目的都是确保软件符合预先规定的目标和要求,性能测试也不例外,所以必须制定一套标准的测试基准。

设计测试场景和设计测试用例

这是性能测试的主要内容。性能测试的测试设计一般基于测试场景,一个测试场景就是一个用户的实际使用系统的剖面。在性能测试过程中,明确每个场景的参与者人数、比例和具体行为是非常重要的,这些都是构成性能测试脚本的基础。

因此,测试场景的提取需要测试设计人员对用户的行为和业务有较为深入的了解。明确了性能测试场景之后,可根据不同的应用领域设计各种测试用例来达到性能测试目标。最后需要注意的是,性能测试设计还应该包括测试环境、测试数据等的设计,因为影响系统性能的因素很多,保持测试过程中环境和数据的可控性是非常重要的。

测试工具的选择和使用

性能测试是一项复杂的工作,一个性能测试项目的质量如何,测试人员的素质、能力和经验是最关键的因素。要保证性能测试项目的高质量,必须依赖两个重要的因素:人和工具。“工欲善其事,必先利其器”,拥有一套熟悉、功能全面、质量可靠的性能测试工具对于从事性能测试的人员非常有帮助。

性能测试是通过工具模拟大量用户操作,对系统增加负载和压力。例如通过产生模拟真实业务的负载对被测系统进行加压,研究被测系统在不同负载压力情况下的表现,找出其潜在的瓶颈。因此,一个良好的性能测试工具必须能做到以下几点:提供产生压力的手段,能够对后台系统进行监控,对压力数据能够进行分析,快速找出被测系统的瓶颈。

例如,一组性能测试运行完毕后,我们会得到详尽的数据。这些数据的量非常大,靠人工去分析这些数据几乎是不可能的,性能测试工具能提供数据分析,帮助性能测试人员去阅读、解读和分析数据,辅助测试人员定位系统的瓶颈。因此,选择一款合适的性能测试工具并培训一支高素质的工具使用队伍无疑是至关重要的。

性能测试结果分析

这是性能测试过程中最困难,也是最重要的步骤。它需要分析人员在运行性能测试后,收集相关信息,进行数据统计分析,通过排除误差和其他因素,让测试结果体现接近真实情况,以找到性能瓶颈。

图1 传统开发流程的瀑布模型

会员评论

对软件进行阶段性测试

按照监理的职责范围要求,监理应该参与工程的全过程,即从工程设计开始到工程验收合格结束。监理不仅要参与各项工作,而且要对整个工程进行监督检查及检测,这样才能起到监理的作用。对于在质量控制中如何运用测试手段,我认为,监理应该按阶段对软件进行功能测试,看是否达到每阶段的要求,达到了就可进行下一阶段的工作,这样不仅起到了监理的作用,而且还保证了产品质量。

(天津复印技术研究所 郑西振)

对监理机构进行甄别

监理能够有效保障信息系统工程建设的质量也已经成为业界的共识。信息系统的工程监理是一种基于IT专业评估、过程控制、系统评测和技术调研的服务模式,它贯穿信息系统工程项目的投资决策、设计、施工、验收、维护等各个环节,对项目的投资、工期、质量、合同等多个目标进行严格的事前、事中和事后控制,其最终目的就是对工程的全过程进行有效的监管,使工程的建设得到有效控制,从而降低工程风险。对于监理的有效实施应做到:

首先应对监理机构进行明确甄别。由于国内的信息系统工程监理尚处于起步阶段,在相关制度还有待进一步完善的情况下,监理单位的选择是保证项目达到预期目标的重要因素之一。

其次,要确保监理的有效实施,监理单位必须具备相关的设备资源和行业背景。

第三,关系协调也是监理有效实施的重要因素。

(湖南彬州市嘉禾县环境保护局 曾梅艳)

“需求调研”环节的差错

监理方首先必须了解业主对于项目的详细要求,这样才能在监管过程中做到“有的放矢”,最终确保项目满足业主的要求。

监理方应该对照项目进度,将业主要求分解到各个阶段,实施过程监管,这样才能尽可能避免案例中的那些问题的出现。

(江西省抚州市烟草专卖局 吴昱)

需求分析没有到位

我个人认为这些责任不应全部归咎于监理方,业主方、开发商也应负一定的责任。

第一需求分析没有做好。如有的报表的数据明显不符合业务数据的要求,这充分说明报表不符合实际要求,这些都是需求分析没有做到位造成的;

第二对于质量控制测试,应由监理方、业主方、开发商方共同进行,不能依赖于监理方。因为监理方只能根据测试文件进行,很难发现实际操作中会遇到的各种问题;

第三信息系统与工程建设不同,不能进行抽样测试。对于不同功能的模块,要一一进行;

第四系统投入运行以后,监理方还要不断进行抽样测试,以便发现问题,由开发商修改、完善。

(丽水市人民医院 朱士宇)

采用迭代式测试

我觉得蔡总监在此软件项目的质量监控上应该采取分阶段、迭代式测试方法。

第一,分阶段,有利于将项目分块,分周期进行测试,同时这个阶段也是和软件开发同步进行的。

第二,迭代式提交,迭代式提交不仅可以解决开发商进度的问题,同时对于测试方也是一个很好的需求掌握。一个阶段一个版本地控制,蔡高使用监理的桥梁作用加上这两点的监控方法应该是可以解决目前问题的。

(万户网络技术有限公司 田任生)


(本文不涉密)
责任编辑:

站点信息

  • 运营主体:中国信息化周报
  • 商务合作:赵瑞华 010-88559646
  • 微信公众号:扫描二维码,关注我们