还剩13页未读,继续阅读
本资源只提供10页预览,全部文档请下载后查看!喜欢就下载吧,查找使用更方便
文本内容:
谈项目管理和软件测试过程1软件测试在公司的组织保障是基础
1.1研发部组织结构介绍以华友公司研发部的组织结构为例,测试部门属于研发部副总裁直接管理,见如下结构图公司研发部的组织结构图对于从事软件研发的组织来说,工作类型至少包括项目管理、产品设计、编码、测试、质量确保和软件设置管理,及其他人员,如文件编制人员和美工人员/系统硬件管理人员等根据职能需要,能以半独立方式进行部门和项目的矩阵管理,即职员要对项目经理/组长负责,也要对部门经理/总监负责,工作考核由双方一起完成,标准的组织应包括技术研发部/组(主要是编码和设计人员),产品研发部/组(产品需求和项目管理),测试部/组,设置管理部/组(因为设置管理人员基本上是按20个技术人员配一个设置管理人员,所以一般部门规模较小,或只是设置管理组),软件质量保障部/组,其他部/组(如系统/文件/美工等)华友公司组织结构中,研发部是公司软件研发的核心部门产品研发Ⅰ部、Ⅱ部、和应用研发部主要负责和软件产品部或内容产品部配合,协助完成内容产品的可行性、合理性分析;平台、网关、应用产品的研发项目的立项和方案评审;研发项目的概要设计、周详设计工作;研发项目的编码、单元测试工作;组织公司相关部门进行研发产品的培训;协助相关部门做好产品的售前技术支持工作;协助相关部门进行软件的安装和调试;根据相关部门的需求做好产品的售后服务工作,保障软件的运行正常测试部隶属研发部,主要职责如下和内容产品部和软件产品部配合完成软件需求分析讨论,并根据需求说明书制订《项目测试方案》,编写《测试用例》,建立测试环境;负责完成研发部各研发组研发的软件产品研发过程和投入运营之前的新增软件和修改升级软件的模块测试和系统测试;建立、推广并维护实施软件版本管理系统CVS和VSS;使用并维护软件缺陷管理系统Bugzilla,负责软件问题解决过程跟踪记录;负责推广实施软件研发文件规范化工作,管理研发产品相关文件;负责配合软件运维部门等对于新业务软件或修改升级业务软件的上线测试工作,并提供上线测试报告;负责监督软件研发流程的执行,并负责提出软件研发过程改进建议,提高软件产品质量
1.2软件产品研发各部门的组织结构分解1华友公司从2003年10月开始,对项目组制订明确指标的独立考核,各研发部门是技术总监带队,再细分各项目经理具体负责项目计划和执行,对项目具体研发成员进行分工对于测试部门制订年度测试部门任务计划/考核表,如SMS业务销售额指标完成目标19900万(奖金提取比例为
0.01%);目标216800万(奖金提取比例为
0.02%);目标323200万(奖金提取比例为
0.03%)周详给出财务目标和业务运营目标在每周的研发经理工作会议上交流报告任务进展情况,并提出最近测试需求,测试部门经理负责制订测试计划、测试用例和测试实施方案,安排测试工程师和对应的研发人员交流完成测试执行工作测试部经理负责研发流程管理和人力资源、测试用软硬件资源调配,需要和研发之外的部门定期交流掌控下周或近期可能测试任务,所有其他外部接口都由测试部经理负责完成,和其他项目组和产品部门协调项目进度2工作汇报关系为:研发部门TeamMember-TeamLeader-研发总监-研发部副总裁-总裁测试部门测试工程师-测试小组经理-测试部经理/总监-研发部副总裁-总裁3)项目成员结构公司通常的研发项目组为6到8个研发人员,最多不超过10人华友公司的经过三次改造后的组织结构和项目组结构,各个业务部门分类非常细,任务明确,软件研发的每一个步骤都有专门的部门、专门的人员负责,从最基础的研发人员到负责统领全局的总监和副总裁,层层管理,沟通渠道畅通而在软件测试上,由于有限的测试资源,首先体目前公司的组织结构上,集中表现为测试部门不得不面对公司级管理部门的缺失和管理的交叉上,没有质量管理部门,部门质量管理工作测试部门兼做公司从成本角度考虑,测试部门规模较小,测试人员总数不超过10人,几乎每个测试人员接收处理10个研发人员的测试任务需求从实际情况出发,首先明确测试部门和软件研发部门相对独立的组织关系,确保测试人员的工作不受研发小组的控制,实现测试客观、公证华友公司要想有效地保障产品质量,首先就要在构架合理的组织结构和测试流程上下功夫,这就如同盖高楼首先要打好地基相同,地基不打牢,结构和流程不合理,其他方面再下功夫也是徒劳从实践经验看,一年前首先成立测试部,把属于研发部门的测试工程师归口到独立的测试部门管理,其次建立规范的测试流程,和研发部门交流,需求每周提出测试需求,再根据现有的资源制订每周测试计划,同时向人力资源部门提出招聘计划,随着测试工作的成绩不断被研发部门和上级领导认可,再推广实施软件研发过程规范化的管理,通过测试实践的优良成绩来确立测试部门在公司的地位和作用,经过一年的奋斗测试部门从无到有,从最初两人到目前十人,软件设置管理和缺陷跟踪系统已被60%的研发人员自愿使用和接收总结本人在华友一年多测试工作经验,深深体会到在国内从事软件项目研发难、从事软件测试和质量确保工作更难,需要具有扎实的技术功底同时,不断提高测试项目管理能力,寻找工作的突破口世上无难事,只怕有心人,不过只要你努力献身于软件测试工作,打出一片天地是有可能的待续2设置管理系统是项目经理的眼睛,是软件测试有效实施的前提在软件质量体系的诸多支持活动中设置管理系统处在支持活动的中心位置他有机地把其他支持活动结合起来形成一个整体相互促进相互影响有力地确保了质量体系的实施建立公司设置管理系统非常容易得到公司领导层的支持,几乎没人反对更重要的是建立设置管理系统后测试人员的工作有了系统确保,测试工作的矿藏资源有了明确的位置,能主动积极开展测试工作
2.1项目管理存在的主要问题华友公司测试部门去年刚成立时,以建立、规范和推广使用设置管理系统CVS为突破口,同时建立缺陷跟踪系统Bugzilla提高测试流程的管理水平我做为测试负责人首先分析华友公司几个软件项目在研发管理上的现状存在问题
一、公司几个核心项目仍然过分分依赖少数个人的作用没有建立起协同作战的氛围没有科学的软件设置管理流程;技术上只重视系统和数据库、研发工具的选择而忽视设置管理工具的选择导致即使有些项目有设置管理的规程也由于可操作性差而搁浅以上种种原因导致研发过程中普遍存在如下一些问题:调查说明华友研发成员的变动的比率达到30%,几乎每周都有新加入的员工或辞职人员,一个新成员熟悉项目的最佳途径就是通过设置管理系统阅读项目文件,甚至阅读同行代码,达到快速学习、一起提高的目的一个辞职人员能利用设置管理系统保留部分一段时间工作,最大程度减少对项目研发造成的损失存在问题
二、研发管理松散领导了解工作完成情况重视口头交流,忽视书面文件有些部门主管无法确切得知项目的进展情况项目经理也不知道各研发人员的具体工作项目进展随意性非常大可左可右左时按领导下达的期限进行到期时似乎一切已顺利完成大家一阵胡弄交差完成反正领导看的是界面至于里面是什么留到施工时再说施工时的工作因此变成了无法汇报、无法理清的无休止的维护右时则项目工期无休止地延期对我们软件工程来说总的特点是先左后右在领导面前表现左在用户面前表现右有个测试人员经常利用上班时间学习英语,过了一个多月,看她依然如此,我做为项目领导进行批评教育,这名员工并不认为自己错了,她争辩,公司采取弹性工作时间,考核员工是分配的任务是否完成等理由同时、我对她批评结果遭到她的恶意报复,她给有关领导报告新来的经理怎么不懂公司业务,采取不适合公司的管理方式等,由于领导无法了解真相,使得我的工作在一段时间开展非常困难,直到过去半年,这名员工辞职出国学习领导才明白发生了什么存在问题
三、项目之间沟通不够各个研发人员各自为政每个项目经理都像个地主,编写的代码不仅风格各异而且编码和设计脱节每个项目组的人力资源和硬件资源成了私有财产,自己人员即使暂时空闲,让他从事所谓的新技术研究,也不考虑友邻项目需要他们帮助的现状本来研发中错误在所难免进展早一点的项目组或人力资源强的项目组已积累类似问题的解决经验,也不愿意分享给其他项目组研发大量重复留下大量难维护的代码典型案例是有个短信项目D两年来在这个研发人员Y的研发支持下运转效益非常好,不过三个月之前,研发人员Y因为待遇问题和公司领导谈判失败,提出辞职项目D仍然在运行,不过最近移动公司规范修改、系统升级,需要修改程式,没人能看到及时更新的文件,尽管有一堆代码库,不过后来的程式员都没办法分析明白程式结构公司领导出面请研发人员Y来协助,因为没有文件记录,Y忙于新公司的工作也不能解决修改存在问题
四、文件和程式严重脱节软件产品是公司的宝贵财富代码的重用率是相当高的怎么建好知识库用好知识库对公司优质高效研发产品具有重大的影响但研发人员的一句名口号是:叫我干什么都能但别叫我看别人的程式当然研发人员的工作态度要转变但客观上有一个非常重要的原因是:前人留下的程式既无像样的文件即使留下了文件其和源程式也严重脱节研发风格又不统一就像一堆垃圾要研发人员到垃圾中去捡破烂从这个角度上看研发人员的需求是合理的存在问题
五、测试工作不规范仍然停留在小姑娘做测试的底水平上,传统的研发方式中测试工作只是人们的一种主观愿望根本无法提出具体的测试需求加之研发人员的遮丑测试工作往往是走一走过场测试结果既无法考核又无法量化当然就无法对以后的研发工作起指导作用存在问题
六、虽然项目施工时间不长,但软件版本更新周期过短几乎每天都修改在线运行系统,且研发人员必须亲自现场或远程登陆操作,全国十几个地点软件内容多少都有点差别,这些差别都记录在几个骨干人物的脑袋里由于应用软件的特点各个不同的施工点有不同的需求研发人员要手工地保持多份不同的拷贝即使是相同的问题但由于在不同地方提出由不同人解决其做法也不同程式的可维护性越来越差久而久之最后连自已都分不清晰了代码的相互覆盖现象时有发生且这苦水还无法倾诉因为怕别人笑话甚至别人问起还得想法搪塞可谓费尽苦心
2.2建立设置管理系统规范项目管理流程,建立知识库的同时节约项目费用针对以上问题利用自己在BeijingPrecomInc普天润汇等公司积累的经验,建立设置管理系统CVSCVS的全称是CurrentVersionControl.CVS是一种GNU软件包.由Intersolv公司研发,他明确的将源文件的存储和用户的工作空间独立开来并使其有利和并行研发.这个工具属于OpenSource,CVS能在intenet上非常方便的得到.他的源码在ftp://
202.
113.
29.4/pub1/unix/cvs他的说明文件在ftp://
202.
113.
29.4/doc/cvs.所有人能非常方便的下载.目前他的最新版本是
2..
10.8不必花钱,非常快建立,重点在于使用和推广配合项目经理一起制定相应的设置管理策略取得了非常好的成效
2.
2.1节约费用1缩短研发周期利用CVS对程式资源进行版本管理和跟踪建立公司的代码知识库保存研发过程中每一过程版本这样大大提高了代码的重用率还便于同时维护多个版本和进行新版本的研发防止系统崩溃最大限度地共享代码同时项目管理人员能通过Version系统查看项目研发日志测试人员能根据研发日志和不同版本对软件进行测试工程人员能从版本控制系统上得到不同的运行版本并且能安装在WebServer或在Unix操作系统上命令行方式存取供外地施工人员存取最新版本无需研发人员亲临现场利用CVS系统能大大提高研发效率避免了代码覆盖、沟通不够、研发无序的混乱局面如果利用了公司原有的知识库则更能提高工作效率缩短研发周期2减少施工费用利用CVS进行软件设置管理后建立研发管理规范把版本管理档案挂接在公司内部的Web服务器上工程人员能通过远程进入内部网获取所需的最新版本研发人员无需下现场现场工程人员通过对方系统管理员收集反馈意见书面提交到公司内部研发组项目经理研发组内部讨论决定是否修改并作出书面答复这样做能同时响应多个项目点防止研发人员分配到各个项目点、分散力量、人员不够的毛病同时节约大量的旅差费用
2.
2.2有利于知识库的建立1代码对象库软件代码是软件研发人员脑力劳动的结晶也是软件公司的宝贵财富长期研发过程中形成的各种代码对象就像一个个零件坯相同是快速生成系统的组成部分长期的一个事实是:一旦某个研发人员离开工作岗位其原来所作的代码便基本成为垃圾无人过问究其原因就是没有专门对各人的有用对象进行管理把其使用范围扩大到公司一级进行规范化加以说明和普及CVS系统为研发管理提供了一个平台和仓库有利于建立公司级的代码对象库2业务及经验库通过CVS的注释可形成完整的研发日志及问题集合以文字方式伴随研发的整个过程不依某个人的转移而消失有利于公司积累业务经验无论对版本整改或版本升级都具有重要的指导作用
2.
2.3规范管理1量化工作量考核传统的研发管理中工作量一直是难以估量的指标靠研发人员自已把握随意性相当大;靠管理人员把握主观性又太强采用CVS管理后研发人员每天下班前对修改的文件CheckIn其中记述当天修改细节描述这些描述能作为工作量的衡量指标2规范测试采用CVS以后测试有了实实在在的工作测试工作人员根据每天的修改细节描述对每一天的工作做具体的测试对测试人员也具有可考核性这样环环相扣大大减少了其工作的随意性3加强协调和沟通采用CVS后通过VSS文件共享系统和Bugzilla缺陷跟踪系统大大加强了项目成员之间的沟通做到有问题及时发现、及时修改、及时通知但又不额外增加非常多的工作量3性能测试是软件测试专业化的核心所在从华友实践看,软件测试对于产品经理、研发经理和市场经理都有所认识,他们大部分人会认为功能测试工作他们能够非常好的完成,产品经理是公司对于业务最熟悉的一批人,他们对于测试工程师最急切的需求是你帮我实施产品的性能测试工作,他们听说过性能测试,我们的产品投入在线运行后碰到的最大故障是大用户量访问业务是机器凼机,或停止正常的服务,每次故障,几乎给公司的收入都造成非常大损失如果测试部门能有一套有效的性能测试手段,就确立了测试部门在项目研发过程中关键地位性能测试在华友软件的质量确保中起着非常重要的作用,将性能测试概括为四个方面Wap无线应用服务在手机用户端性能测试、Web/Wap应用服务在客户端性能的测试、应用在网络上性能的测试和应用在服务器端性能的测试通常情况下,四方面有效、合理的结合,能达到对系统性能全方面的分析和瓶颈的预测
3.1Wap无线应用服务在手机用户端性能测试如今人人用手机都追求时尚,时尚体目前款式品牌和功能手机产品功能的日新月异,移动增值业务功能层出不穷,从最初的短信、彩信、铃声到GPRSCDMAK-JavaBrew手机功能的多样性带来手机用户端软件系统测试的复杂性众所周知Java手机吸引人之处是能提供智能的个人化的互动服务例如:动态产生个人化的股市服务显示图像动画实时路况气象报告数字照像玩游戏等部分服务能直接于用户端执行为了提供如此生动的服务移动通信系统要能给终端用户在无线装置上提供接入互连网的功能要能储存、提取、管理、计算、结帐、下载软件服务并使内容提供商能提供丰富的声像多媒体内容形成广大的个人化交互式服务环境而作为移动用户可将手机视作虚拟机能随时、随地在适当的装置上存取应用享受服务这确是一种时尚当前对于不同品牌的手机他们所用的平台指CPU和操作系统各不相同由于采用不同的设计方案各设计之间缺乏兼容性操作系统和二进制代码都不兼容当手机运行需要大量内存时特别是随着接入互连网手机用户需求能使用个性化的交互式应用软件应用程式运行在虚拟运行环境下时问题显得尤为突出所以有必要建立一种标准的通用运行平台达到在合适的成本下提供统一的交互式应用软件运行环境不过除非该平台是基于完全标准的器件否则是难以达到需求的标准的通用的运行平台是满足运营商软件研发商和终端用户三者综合需求的解决办法最佳的环境必须具有以下性质:
1、平台应提供二进制兼容性可执行软件是二进制目标码需要在处理器和应用软件目标码之间建立沟通;
2、平台必须包括微处理器或一个和微处理器机器代码相离的通用机器码仿真器;
3、平台应包括带有应用程式接口API及支持一致性图像用户界面GUI相应功能的操作系统API是执行典型操作功能的软件功能库例如打开文件读写数据设置和管理内存处理事件显示文件和图像等为使应用软件真正做到可移植装置上必须有公共功能集并让软件研发者能通过一致性API扩展功能;
4、平台不应需求过多的系统资源可移植性设备不应使成本上升太多;
5、平台应对功率有高效率尤其考虑用电池供电的设备;
6、由于要在互连网上应用安全性也是重要因素以Java手机软件测试为例潜在的测试问题和解决办法Java有移植性好和其他非常多优势但用在手机上速率和功耗仍是个瓶颈Java带来的新问题是执行速度慢消耗功率大和PC不同的是手机资源有限一般流行的手机中CPU的速率为26MHz或52MHz带128M闪存8Mb16M或64Mb内存没有硬盘由电池供电体积小空间窄系统慢的原因是:1系统必须同时运行两套软件:Java应用和虚拟机JVM;2Java软件需要被翻译成自然CPU指令;3Java平台是基于栈相对于寄存器结构的导致更多的内存存取因而怎么对执行Java加速成为关键加速处理数据和图像这对手机上互连网和多媒体的应用具有重要意义要克服这些问题提高Java软件性能可能的方法有四种:1提高微处理器速率然而Java软件性能和时钟频率并不成线性关系微处理器运行一般比内存存取时间高2-10倍增加时钟频率只会增加等待周期2对JVM软件进行优化这可能涉及到要用汇编语言对字节码翻译环路进行编程而这会导致JRE变得和微处理器类别有关而和可移植相抵触;3编译将软件直接编译到微处理器的自然机器语言不过这会增加内存的开销也不节省能量的消耗4采用基于硬件的加速器这能做到提高性能保障能量和成本的有效性被手机设计厂商认为是较最佳的措施通用型Java加速芯片于今年年初问世
3.2分析Web/Wap应用服务在客户端性能的测试Web/Wap应用服务在客户端性能测试的目的是考察客户端应用的性能,测试的入口是客户端他主要包括并发性能测试、大数据量测试和速度测试等,其中并发性能测试是重点并发性能测试的过程是个负载测试和压力测试的过程,即逐渐增加负载,直到系统的瓶颈或不能接收的性能点,通过综合分析交易执行指标和资源监视指标来确定系统并发性能的过程负载测试(LoadTesting)是确定在各种工作负载下系统的性能,目标是测试当负载逐渐增加时,系统组成部分的相应输出项,例如通过量、响应时间、CPU负载、内存使用等来决定系统的性能负载测试是个分析软件应用程式和支撑架构、模拟真实环境的使用,从而来确定能够接收的性能过程压力测试(StressTesting)是通过确定一个系统的瓶颈或不能接收的性能点,来获得系统能提供的最大服务级别的测试并发性能测试的目的主要体目前三个方面以真实的业务为依据,选择有代表性的、关键的业务操作设计测试案例,以评价系统的当前性能;当扩展应用程式的功能或新的应用程式将要被部署时,负载测试会帮助确定系统是否还能够处理期望的用户负载,以预测系统的未来性能;通过模拟成百上千个用户,重复执行和运行测试,能确认性能瓶颈并优化和调整应用,目的在于寻找到瓶颈问题我们公司自己组织力量同时委托第三方软件HG公司研发Hawa网站的一套应用Avatar形象系统的时候Avatar形象在网站业务中占有着重要的位置,网站上的非常多业务都是围绕Avatar开展这套系统能不能承受大量的并发用户同时访问成为这个网站能否成功的关键,也是这次两个公司合做研发能否顺利完成的关键这类问题最常见于采用联机事务处理OLTP方式数据库应用、Web浏览和视频点播等系统这种问题的解决要借助于科学的软件测试手段和先进的测试工具Web软件测试实例说明哈哇网站Avatar形象系统软件Avatar形象系统在上线试运行三个月后,所有的功能测试顺利完成,软件功能缺陷也修改完毕不过,性能问题越来越成为项目经理关心的焦点,我们测试部门借助比较熟悉的压力测试工具WebStress实施客户端性能测试进行100,500,1000等并发用户访问每次测试主要在基于URL http://avatar.hawa.cn/index.jsp的基础上,和HG公司实时交互地进行多种情况下的测试按照HG公司需求主要针对并发数为1000和500的情况下,尽量准确的对Avatar系统的性能压力进行模拟测试;并排除所有不是从web服务器(即avatar.hawa.cn)上得到的URL,即只对/index.jsp等页面进行测试三次结果后,尽管程式优化、运行服务器设置多次修改,仍然存在用户量并发数达到1000,服务质量下降,页面方面时间超过正常显示时间这里有最后一次测试结果和前几次大致相同不过本次测试,是用多客户端测试,按原理是应该比以前的单机测试准确度要高,但其结果是比用单机测试的时间还要长,当并发数达到1000时,其页面的最长响应时间在80多秒(而单机测试时时59秒多)!第三次又发现ISP网络100MB带宽实际上不到20MB,也是影响用户服务的关键因素之一这个性能问题经过HG公司研发人员近三个月改进,/index.jsp页面的1000个用户并发响应时间10秒左右对于我方采用的WebStress性能测试工具HG公司也认同其测试结果的客观性,公司因为该软件性能问题推迟支付对方经费200万圆三个月,更重要的是软件的性能问题得到非常好解决,并和HG公司的关系非常好保持另外一个更大的收获是测试部门在Web产品部门有个非常好的形象,他们每次新软件产品需求提出、产品上线都主动需求测试部门参和并实施严格测试怎么模拟实际情况呢找若干台计算机和同样数目的操作人员在同一时刻进行操作然后拿秒表记录下反应时间?这样的手工作坊式的测试方法不切实际,且无法捕捉程式内部变化情况这样就需要压力测试工具的辅助测试的基本策略是自动负载测试,通过在一台或几台PC机上模拟成百或上千的虚拟用户同时执行业务的情景,对应用程式进行测试,同时记录下每一事务处理的时间、中间件服务器峰值数据、数据库状态等通过可重复的、真实的测试能够完全地度量应用的可扩展性和性能,确定问题所在及优化系统性能预先知道了系统的承受力就为最终用户规划整个运行环境的设置提供了有力的依据并发性能测试前的准备工作 测试环境设置测试环境是测试实施的一个重要阶段,测试环境的适合和否会严重影响测试结果的真实性和正确性测试环境包括硬件环境和软件环境,硬件环境指测试必需的服务器、客户端、网络连接设备及打印机/扫描仪等辅助硬件设备所构成的环境;软件环境指被测软件运行时的操作系统、数据库及其他应用软件构成的环境 一个充分准备好的测试环境有三个好处一个稳定、可重复的测试环境,能够确保测试结果的正确;确保达到测试执行的技术需求;确保得到正确的、可重复的及易理解的测试结果 测试工具成熟的并发性能测试工具有非常多,选择的依据主要是测试需求和性能价格比著名的并发性能测试工具有QALoad、LoadRunner、BenchmarkFactory、Webstress和AB-Apache等这些测试工具都是自动化负载测试工具,通过可重复的、真实的测试,能够完全地度量应用的可扩展性和性能,能在整个研发生命周期、跨越多种平台、自动执行测试任务,能模拟成百上千的用户并发执行关键业务而完成对应用程式的测试 测试数据在初始的测试环境中需要输入一些适当的测试数据,目的是识别数据状态并且验证用于测试的测试案例,在正式的测试开始以前对测试案例进行调试,将正式测试开始时的错误降到最低在测试进行到关键过程环节时,非常有必要进行数据状态的备份制造初始数据意味着将合适的数据存储下来,需要的时候恢复他,初始数据提供了一个基线用来评估测试执行的结果 在测试正式执行时,还需要准备业务测试数据,比如测试并发查询业务,那么需求对应的数据库和表中有相当的数据量及数据的种类应能覆盖全部业务模拟真实环境测试,有些软件,特别是面向大众的商品化软件,在测试时常常需要考察在真实环境中的表现如测试杀毒软件的扫描速度时,硬盘上布置的不同类型文件的比例要尽量接近真实环境,这样测试出来的数据才有实际意义 并发性能测试的关键的是测试过程中对监视对象的灵活应用,例如目前三层结构的运行模式广泛使用,对中间件的并发性能测试作为问题被提到议事日程上来,许多系统都采用了国产中间件,选择JavaScript监视对象,手工编写脚本,能达到测试目的 采用自动化负载测试工具执行的并发性能测试,基本遵循的测试过程有测试需求和测试内容,测试案例制定,测试环境准备,测试脚本录制、编写和调试,脚本分配、回放设置和加载策略,测试执行跟踪,结果分析和定位问题所在,测试报告和测试评估
3.3应用在网络上性能的测试应用在网络上性能的测试重点是利用成熟先进的自动化技术进行网络应用性能监视、网络应用性能分析和网络预测 网络应用性能分析 网络应用性能分析的目的是准确展示网络带宽、延迟、负载和TCP端口的变化是怎么影响用户的响应时间的利用网络应用性能分析工具,例如ApplicationExpert,能够发现应用的瓶颈,我们可知应用在网络上运行时在每个阶段发生的应用行为,在应用线程级分析应用的问题能解决多种问题客户端是否对数据库服务器运行了不必要的请求?当服务器从客户端接受了一个查询,应用服务器是否花费了不可接受的时间联系数据库服务器?在投产前预测应用的响应时间;利用ApplicationExpert调整应用在广域网上的性能;ApplicationExpert能够让你快速、容易地仿真应用性能,根据最终用户在不同网络设置环境下的响应时间,用户能根据自己的条件决定应用投产的网络环境 网络应用性能监视 在系统试运行之后,需要及时准确地了解网络上正在发生什么事情;什么应用在运行,怎么运行;多少PC正在访问LAN或WAN;哪些应用程式导致系统瓶颈或资源竞争,这时网络应用性能监视及网络资源管理对系统的正常稳定运行是非常关键的利用网络应用性能监视工具,能达到事半功倍的效果,在这方面我们能提供的工具是NetworkVantage通俗地讲,他主要用来分析关键应用程式的性能,定位问题的根源是在客户端、服务器、应用程式还是网络在大多数情况下用户较关心的问题更有哪些应用程式占用大量带宽,哪些用户产生了最大的网络流量,这个工具同样能满足需求 网络预测 考虑到系统未来发展的扩展性,预测网络流量的变化、网络结构的变化对用户系统的影响非常重要根据规划数据进行预测并及时提供网络性能预测数据我们利用网络预测分析容量规划工具PREDICTOR能作到设置服务水平、完成日网络容量规划、离线测试网络、网络失效和容量极限分析、完成日常故障诊断、预测网络设备迁移和网络设备升级对整个网络的影响 从网络管理软件获取网络拓扑结构、从现有的流量监视软件获取流量信息(若没有这类软件可人工生成流量数据),这样能得到现有网络的基本结构在基本结构的基础上,可根据网络结构的变化、网络流量的变化生成报告和图表,说明这些变化是怎么影响网络性能的PREDICTOR提供如下信息根据预测的结果帮助用户及时升级网络,避免因关键设备超过利用阀值导致系统性能下降;哪个网络设备需要升级,这样可减少网络延迟、避免网络瓶颈;根据预测的结果避免不必要的网络升级
3.4应用在服务器上性能的测试首先分析服务器的类型,服务器的划分起码能依据四大部分进行一是根据整个架构,可分为IA服务器和RISC服务器;二是按照硬件设置的差别可分为工作组级、部门级、企业级;三是按照具体安装的应用软件可分为Web服务器、文件服务器、FTP服务器、E-mail服务器、数据库服务器等等;四是根据操作系统分为WINDOWS阵营、UNIX阵营这四大分类有所关联,但其中按应用分类是最能给用户清晰概念的因为用户在采购选型时,总是先想好了拿他做什么用的Intel最近所提出的前端(用于接入等)、中端(用于各种应用和中间件)和后端(用于数据库、在线分析等)的分类办法,这也是从应用角度考虑的分析服务器性能指标莫不聚焦于三大指标CPU、I/O及Web如果大家还记得图灵机的话,应该对计算单元和输入输出的重要不会抱什么怀疑的态度至于选择Web作为衡量服务器性能的要点,只能说是网络的力量Internet的大行其道让我们非常难想象有服务器孤岛出现工程师往往通过给和被测服务器不断增加的并发式文件读写、数据库操作及HTTP访问来取得其最大的潜值以Web测试为例,衡量Web性能一般有下列几个重要指标HTTP每秒交易数(TransactionPerSecond);每秒会话数(SessionsPerSecond);当前用户数(Concurrentusers);吞吐量(Throughput)HTTPTPS通常也叫做每秒的点击数;每秒会话数是每秒到达Web服务器的用户数;当前用户数是特定时间在Web站点上的用户数;吞吐量是在特定时间由Web站点发出的数据流量带宽,他和服务器提供服务的内容和交易数相关以上将是我们对测试结果进行评述和点评的重要技术基础4项目管理研发环节的测试任务当公司构架了合理的组织结构并制定了缜密的计划后,就进入了产品的研发阶段下面以已实施完成的CYB项目一期为例,分析华友公司在项目管理上的正在推广的具体项目管理细节的优缺点和测试工作改进探讨CYB项目一期需求由于华友各类业务(SMS和WAP等)在不同运营商(中国联通、中国移动、中国电信等)的不同平台和在网站www.hawa.cn的WEB门户中向用户提供服务,各类业务的相互独立,为了统一管理用户信息、业务和计费等信息,并汇总进行统计分析处理,同时也为了整合各类业务系统的资源,建立公司的业务运营支撑系统
4.1研发阶段和项目周期研发阶段比较明显,注重各阶段应完成的功能,对本阶段应完成的工作不能留到下一阶段明确项目经理为D,项目组研发程式员六人,项目第一阶段周期3个月,项目需要完成的功能1实现用户信息的统一管理,包括用户基本信息,用户使用业务的积分,用户的制定/退定信息的管理2实现各类业务信息的集中管理,包括短信业务、WAP
1.
2、WAP
2.
0、JAVA、彩铃等各种业务3实现计费信息的统一管理4提供客服功能5提供统计分析功能6提供统一的标准接口,分别和各业务子系统及运营商的系统相连接7提供网络管理、监视等功能在这个阶段,测试经理需要负责周详了解项目研发需要的需求、设计文件等,制订初步的测试方案,根据测试任务的特点决定测试研发任务实际结果表明研发阶段的最大两个问题重视设计、不重视测试和软件质量,设计会议开了至少五次,参加会议有公司非常有经验的设计人员,测试有关人员没有被邀请参加,忽视产品的性能需求,更多的关注基本功能实现;忽视需求是客服和运维人员,自以为非常理解市场部提出的需求,忽视程式研发人员实现的难度和研发人员之间理解需求的差别,项目组成员之间重视口头交流,忽视文件价值问题解决方法开始阶段请测试和质量确保工程师参加讨论,就会提出软件实现的性能需求;重视文件交流的价值,建立软件文件模版和版本控制机制,每次交流落实在成员理解和书面文件
4.2软件研发流程华友公司原来是重视项目管理,忽视流程,一味夸大个别人努力在项目成功中的作用经过一年痛苦的实践,开始探讨流程管理,已启动公司的SW-CMM质量体系认证工作,希望建立非常规范化和系统化的软件研发流程,其流程的有非常高的可执行性,并且能在实践过程中不断改进华友公司的流程管理改进从一个项目研发的所有方面开始摸索,包括从最开始的意向、市场策划到最后软件的版本发布release上线投入商业运营,都设计有相应的流程规定,基本上已由测试部门负责推广一种能够达到规范、高效的软件研发流程CYB项目经理D重视口头交流沟通,忽视文件交流,同时缺少和项目组成员知识共享意识;经理D重视和领导的交流,忽视和研发人员交流,项目实施中研发人员碰到具体问题没人协助解决,研发效率降低虽然流程没错,不过流程涉及到研发人员出现问题也是需要重视的流程管理的关键,以人为本目前的组织框架下,经过一年多的工作实践,深深体会到人和流程是确保项目成功的两个最关键因素由具有项目实施基本素质的人按规范的合理化流程进行项目研发,才能最大限度地确保项目的成功一个好的流程能确保差一点的人做出来的东西不至于太差,但不能确保做出精品通过流程能实现一种规范化、流水线化、工业化的软件研发通过流程我们部门间的配合才节省宝贵时间,为项目早期完成,赢得市场主动权
4.3项目计划的阶段性1努力做到项目计划周详、周到CYB项目计划从开始有三个月计划,到修改三次以上,计划完成时间从三个月、延长到六个月、直到目前的八个月计划已形同虚设实践证实不合理的计划不如没有计划,不合理的计划给领导造成错误的认识合理的计划应该是先明确本周工作计划,对于难以预测的任务或困难给出一个近期工作的方向,然后根据实际进展情况进行细化调整2流程中明确定义研发阶段、测试阶段研发阶段任务没有完成,占用测试阶段计划时间,测试工作效率降低正确的处理方式建议不要减少测试工作时间,项目研发完成时间根据实际需要顺延3每个阶段都列出了该阶段的各项活动,并周详描述每项活动的属性:进入条件,输入;验证方法;结束条件,输出4每个阶段结束都要召开阶段结束会议前一个阶段结束(以本阶段研发任务测试完成为标志)才能进入下一阶段项目经理需要在每个阶段测试任务完成情况进行分析,存在的问题要充分暴露出来,以便于早点解决CYB项目经理D采取报喜不报优的做法,在会议上常得到领导的表扬,其他项目经理常愁眉苦脸摆出人员问题、可能的技术问题、测试人员和时间问题等实际结果最后笑的项目经理也是项目完成比较顺利5最佳计划中每个活动都比较具体,每个活动的时间以天为单位计划包括了开展质量控制活动的时间,推广说明版本控制系统和缺陷跟踪系统的使用的时间典型案例是公司研发用于用户信息管理的代号CYB项目,CYB项目开始时副总裁牵头,由于测试人员少没有参和,研发经理们讨论设计实施方案后几乎大家一片赞美随后项目经理D负责研发,他认为时间紧,省去了许多必须的文件工作经理D采取报喜不报优的做法,项目文件差,过分强调计划,而忽视计划任务达到的质量,大部分项目测试没有完成就宣布研发完成,结果前三个月每次经理会上总裁都会表扬他们取得的阶段成果,我做为测试经理没有说话的机会,有一次刚讲几句,总裁马上提醒希望大家克服困难,每个组的任务都可能需要加班等结果原计划三个月完成项目,已过了半年发现要实现商用还需要做非常多工作,具体完成时间也不确定,可是目前每天总是强调专人测试,问文件没有,只能通过问了一次又一次的沟通方式实施测试工作,有个不错的测试人员实在无法忍耐,辞职了,我只好安排新的测试人员应对完成任务这个CYB项目遭到了整个公司的一片嘘声,虽然没有放弃,但没有商业价值了快9个月的研发成本老本最清晰去那儿了总结教训,项目经理对计划和测试工作的高度重视、周密制定、严格执行是能够实现项目有效商业价值的基本保障
4.4重视Review的作用按软件工程规范化流程,一般把Review和测试作为确保软件质量两个主要手段测试的重要性已成为各项目经理认识,并贯穿于研发的全过程,形成了项目组成员人人重视测试工作的氛围Review则是个非常简单有效并能尽早发现软件中错误的有效方法,项目经理在每周必须根据进展情况制订Review计划,能说,所有交付物都要经技术总监参加的Review后才能进行基线化目前华友公司正在建立比较周详全方面、可执行性高的由Review流程和各种交付物的ReviewChecklist我们正在弥补这方面的工作流程缺陷,提出凡事有计划,凡事必review首先在研发组内部推广代码规范化工作,定期进行员工CodeReview的工作,CodeReview是工作的重要环节
4.5质量管理和测试(QA)公司目前没有独立的质量管理部门,暂时由测试部门测试经理作为质量确保部门的代表,监督和确保项目的进展的各项流程和模板,并且收集项目中发现的一些问题和解决方法以优化流程由于公司对测试人才有着迫切的需要,因此,只好自己组建培养测试人才队伍从现实出发,我们不可能想IBM和微软等大公司有雄厚的才力支持质量保障和测试工作开展,我们的工作重点放在软件测试方面从起步三人开始的实施测试工作,首先测试工程师的工作让项目经理和上级领导发现并肯定他们的工作成果通过对比测试人员实施测试后的模块和未实施测试的模块投入商业运营带来的非常大差异,看到软件修补的高昂费用,提高了领导和项目经理对测试部门的重视程度逐步扩大测试人员数量,增加测试队伍的规模,提高测试人员的的福利待遇成为可能招聘测试人员时,要把好质量关,国内联想、华为等公司一般对于测试人员待遇底,重视不够,我们需要测试认为改动这种错误认识,让优秀的人加入测试队伍目前测试部门工程师10个人中有2个留学回国计算机方面硕士,其余几人都是计算机或相关学科本科生尽管经验方面不够,但测试人员的素质和专业技能是国内一流的,一段时间测试团队的努力,这个部门已成为公司业务研发的至关重要的部门要不断提高软件测试的自动化程度,测试工作不能仅靠手工劳动来完成,更多的情况是要使用工具软件和编写测试程式来完成,培养全方面的测试专业人才是项任重道远的工作
4.6度量数据公司最近开始CMM的质量管理体系工作,CMM中比较强调用数据说话,对项目过程中基本上所有的数据都会有记录,最后把收集的数据提交质量确保部门进行分析,以改进流程不过公司的项目管理定量化工作实施有一定难度,配合华友公司的绩效考核,测试部门需求项目经理重视项目中的数据收集,主要包括各种Review数据、测试数据及项目组员每天的活动数据等需求项目经理也要维护一个项目档案,在这个项目档案中能说包含了项目研发过程中所有的产出、研发活动、管理活动等的记录测试部门提供能够进行团队项目研发的CVS或VSS等团队研发系统,能这么说,有了这个项目团队研发系统,测试经理和项目经理就能方便了解这个项目的研发过程
4.7团队精神团队精神就好比人身体的每个部位,一起合作去完成一个动作对公司来讲,团队精神就是每个人各就各位,通力合作我们公司的每一个奖励活动或我们的业绩评估,都是把个人能力和团队精神作为两个最主要的评估标准如果一个人的能力非常好,而他却不具有团队精神,那么我们宁可选择后者公司强调团队精神、合作精神,应该说,其流程本质上就需求员工之间的互相协调和理解公司不定期的对经理级别人员进行团队管理培训,在对员工不断进行相关培训,使员工的合作精神和协调精神都比刚进入公司时有较大提高
4.8培训公司有专门的培训人员和培训费用计划,每半年会征集员工培训需求和建议,然后安排有关主题的培训活动在新员工进入公司后都会有公司流程和其他一些公司普遍章程的培训,以确保员工对流程的理解和执行对于具体项目,项目经理在制定项目计划时就会在项目计划中提出所有的培训需求,包括技术上的培训和其他所需的培训
4.9设置管理在项目正式开展前,项目经理就要制定设置管理计划,并且指定设置管理员建立起设置管理库,按设置流程严格进行设置管理在设置流程中也周详提供了对更改的控制,没有经过批准的更改请求是绝对不能进行的
4.10记录记录及时、充分、比较准确这些记录包括:重要的邮件、会议纪要、审核记录、缺陷报告、测试报告1提倡和客户和其他项目组的所有往来必须邮件记录2对所有的活动都有一个跟踪落实的过程,比如对所有的Review记录和更改请求都会有一个状态标识,标识其当前状态,通过跟踪其状态来监督其落实3对所有的活动,包括对文件和代码的更改都会有一个历史记录4记录比较准确、比较客观以上是华友公司在项目管理中所涉及到的一些主要环节,非常值得国内的软件企业在制定项目管理规划时借鉴。