谈项目管理和软件测试过程
上一篇 / 下一篇 2007-06-27 16:49:07 / 个人分类:02.软件测试管理
1. 软件测试在公司的组织保障是基础 6e#A/kiB-n0g01.1 研发部组织结构介绍51Testing软件测试网e/X i4E6PV$]K ,^quy,c051Testing软件测试网 Rt"R I#p 51Testing软件测试网0tZ4QK^N3`^.n_ Y 'B~/p1Qh(tl051Testing软件测试网oW;Zj1sQ` "GK!L6i5sT0 51Testing软件测试网&gG ?-b-f*f@E-w}
51Testing软件测试网{.|pe7eI
q qEl8[;YHs[9e,R$h051Testing软件测试网5L_
dz(P3TI.a [1QJWqx(b0 51Testing软件测试网#C%o5PEU8V
,w9V+rZGH_K2H/c0 Svp4jq8iA]051Testing软件测试网;a$l
A%j|h.y$r }a`k+j@QH0 51Testing软件测试网S+X7IK#|p |
N.|ej/E
N051Testing软件测试网4cj-_x&C(^$G
51Testing软件测试网[rz"l!wQ
b O,m
F
2.配置管理系统是项目经理的"眼睛",是软件测试有效实施的前提
}F Q"KRg?m(s9^\0kl,Ai Aj+J0
M8d&da)X^|051Testing软件测试网;O2| dmK*?
FY/_,F
@&Yy0在软件质量体系的诸多支持活动中,配置管理系统处在支持活动的中心位置,它有机地把其它支持活动结合起来,形成一个整体,相互促 进,相互影响,有力地保证了质量体系的实施。建立公司配置管理系统很容易得到公司领导层的支持,几乎没人反对。更重要的是建立配置管理系统后测试人员的工作有了系统保证,测试工作的"矿藏资源"有了明确的位置,可以主动积极开展测试工作。
\a(UZ8M4G0
Z4b@$^"I9zC02.1 项目管理存在的主要问题
PlVd([-WP#NUu0华友公司测试部门去年刚成立时,以建立、规范和推广使用配置管理系统CVS为突破口,同时建立缺陷跟踪系统Bugzilla提高测试流程的管理水平。我做为测试负责人首先分析华友公司几个软件项目在开发管理上的现状,。
L9XWJ8[+RX^5t0存在问题一、公司几个核心项目仍然过分分依赖少数个人的作用,没有建立起协同作战的氛围,没有科学的软件配置管理流程; 技术上只重视系统和数据库、开发工具的选择,而忽视配置管理工具的选择,导致即使有些项目有配置管理的规程,也由于可操作性差而搁浅。以上种种原因导致开发过程中普遍存在如下一些问题: 调查说明华友研发成员的变动的比率达到30%,几乎每周都有新加入的员工或者辞职人员, 一个新成员熟悉项目的最佳途径就是通过配置管理系统阅读项目文档,甚至阅读同行代码,达到快速学习、共同提高的目的。一个辞职人员可以利用配置管理系统保留部分一段时间工作,最大程度减少对项目开发造成的损失。
!sTH Vg7n2j%}E0a0
4Y1YG M6p~MIO0存在问题二、开发管理松散。领导了解工作完成情况重视口头交流,忽视书面文档。有些部门主管无法确切得知项目的进展情况,项目经理也不知道各开发人员的具体工作,项目进展随意性很大,可"左"可"右"。"左"时按领导下达的"期限"进行,到期时,似乎一切已顺利完成,大家一阵胡弄,交差完成,反正领导看的是界面,至于里面是什么,留到施工时再说。施工时的工作因此变成了无法汇报、无法理清的无休止的维护。"右"时则项目工期无休止地延期。对我们软件工程来说,总的特点是先"左"后"右"。在领导面前表现"左",在用户面前表现"右"。有个测试人员经常利用上班时间学习英语,过了一个多月,看她依然如此,我做为项目领导进行批评教育,这名员工并不认为自己错了,她争辩,公司采取弹性工作时间,考核员工是分配的任务是否完成等理由。同时、我对她批评结果遭到她的恶意报复,她给有关领导报告新来的经理如何不懂公司业务,采取不适合公司的管理方式等,由于领导无法了解真相,使得我的工作在一段时间开展很困难,直到过去半年,这名员工辞职出国学习领导才明白发生了什么。
51Testing软件测试网q
nFKQj
存在问题三、项目之间沟通不够。各个开发人员各自为政,每个项目经理都像个"地主",编写的代码不仅风格各异,而且编码和设计脱节。每个项目组的人力资源和硬件资源成了"私有财产",自己人员即使暂时空闲,让他从事所谓的新技术研究,也不考虑友邻项目需要他们帮助的现状。本来开发中错误在所难免, 进展早一点的项目组或者人力资源强的项目组已经积累类似问题的解决经验,也不愿意分享给其它项目组。 开发大量重复, 留下大量难维护的代码。典型案例是有个短信项目D两年来在这个开发人员Y 的研发支持下运转效益很好,但是三个月之前,开发人员 Y因为待遇问题和公司领导谈判失败,提出辞职。项目D仍然在运行,但是最近移动公司规范修改、系统升级,需要修改程序,没人能看到及时更新的文档,尽管有一堆代码库,但是后来的程序员都没办法分析明白程序结构。公司领导出面请开发人员Y来协助,因为没有文档记录,Y忙于新公司的工作也不能解决修改。
]5j/k}7m0存在问题四、文档与程序严重脱节。软件产品是公司的宝贵财富,代码的重用率是相当高的,如何建好知识库,用好知识库对公司优质高效开发产品,具有重大的影响。但开发人员的一句名口号是:"叫我干什么都可以,但别叫我看别人的程序"。当然,开发人员的工作态度要转变,但客观上有一个很重要的原因是:前人留下的程序既无像样的文档(即使留下了文档 ,其与源程序也严重脱节),开发风格又不统一,就像一堆垃圾,要开发人员到垃圾中去捡破烂,从这个角度上看,开发人员的要求是合理的。51Testing软件测试网dK1f$]qmf$D
7ilt#c'w'|0Vr051Testing软件测试网M#w^F@}U
J
存在问题五、测试工作不规范。仍然停留在"小姑娘做测试"的底水平上,传统的开发方式中,测试工作只是人们的一种主观愿望,根本无法提出具体的测试要求,加之开发人员的遮丑,测试工作往往是走一走过场,测试结果既无法考核又无法量化,当然就无法对以后的开发工作起指导作用。51Testing软件测试网]W"GONO*E i}6vE
51Testing软件测试网j+IVAk@
M"n
存在问题六、虽然项目施工时间不长,但软件版本更新周期过短,几乎每天都修改在线运行系统,且开发人员必须亲自现场或远程登陆操作,全国十几个地点软件内容多少都有点差别,这些差别都记录在几个骨干人物的脑袋里。 由于应用软件的特点,各个不同的施工点有不同的要求,开发人员要手工地保持多份不同的拷贝,即使是相同的问题,但由于在不同地方提出,由不同人解决,其做法也不同,程序的可维护性越来越差。久而久之,最后连自已都分不清楚了,代码的相互覆盖现象时有发生,且这苦水还无法倾诉,因为怕别人笑话,甚至别人问起,还得想法搪塞,可谓费尽苦心。51Testing软件测试网,H(PE
nA
51Testing软件测试网-S a0EBN ~+z)s
2.2 建立配置管理系统,规范项目管理流程,建立知识库的同时节约项目费用
51Testing软件测试网w5ER^B3b5cD7wP
针对以上问题, 利用自己在Beijing Precom Inc, 普天润汇等公司积累的经验,建立配置管理系统CVS, CVS 的全称是Current Version Control. CVS是一种GNU 软件包.由Intersolv公司开发,它明确的将源文件的存储和用户的工作空间独立开来, 并使其有利与并行开发.这个工具属于Open Source, ,CVS可以在intenet 上很方便的得到. 它的源码在ftp://202.113.29.4/pub1/unix/cvs 它的说明文档在ftp://202.113.29.4/doc/cvs.任何人可以很方便的下载.目前他的最新版本是2..10.8。 不需要花钱,很快建立,重点在于使用和推广。配合项目经理共同制定相应的配置管理策略,取得了很好的成效。51Testing软件测试网6SA)V/i
J0eNn
TP)Xz4Sw051Testing软件测试网hxU&SR9b
2.2.1. 节约费用
W
U_7};lu0(1) 缩短开发周期
s3`8Z0cd|W0利用CVS对程序资源进行版本管理和跟踪,建立公司的代码知识库,保存开发过程中每一过程版本,这样大大提高了代码的重用率,还便于同时维护多个版本和进行新版本的开发,防止系统崩溃,最大限度地共享代码。同时项目管理人员可以通过Version 系统查看项目开发日志,测试人员可以根据开发日志和不同版本对软件进行测试,工程人员可以从版本控制系统上得到不同的运行版本,并且可以安装在Web Server或在Unix操作系统上命令行方式存取供外地施工人员存取最新版本,无需开发人员亲临现场。
}4RA[&V051Testing软件测试网 R!QUX0P:y U
利用CVS系统,可以大大提高开发效率,避免了代码覆盖、沟通不够、开发无序的混乱局面,如果利用了公司原有的知识库,则更能提高工作效率,缩短开发周期。51Testing软件测试网P#_%i5CdWay!rM8N
f]e,Z3fZD051Testing软件测试网h`e X
lAM}
(2) 减少施工费用51Testing软件测试网g;^X"US$wK'Y7y8R
wG1W0K~FS"SS%E9l7v0利用CVS进行软件配置管理后,建立开发管理规范,把版本管理档案挂接在公司内部的Web服务器上,工程人员可以通过远程进入内部网,获取所需的最新版本。开发人员无需下现场,现场工程人员通过对方系统管理员收集反馈意见,书面提交到公司内部开发组项目经理,开发组内部讨论决定是否修改,并作出书面答复。这样做,可以同时响应多个项目点,防止开发人员分配到各个项目点、分散力量、人员不够的毛病,同时节约大量的旅差费用。
fp$y"d{7L0mW]0
p+KZ6G\r02.2.2. 有利于知识库的建立
|8Y/QF^,}*WG0(1) 代码对象库
|~.Y1ZhF!k&d
{0
8e)FuCuIO
Ij#K0软件代码是软件开发人员脑力劳动的结晶,也是软件公司的宝贵财富,长期开发过程中形成的各种代码对象就像一个个零件坯一样,是快速生成系统的组成部分。长期的一个事实是:一旦某个开发人员离开工作岗位,其原来所作的代码便基本成为垃圾,无人过问。究其原因,就是没有专门对各人的有用对象进行管理,把其使用范围扩大到公司一级,进行规范化,加以说明和普及。CVS系统为开发管理提供了一个平台和仓库,有利于建立公司级的代码对象库。
8]/F,@3V@F!V:|MS0
)reIDAI"WG"u0(2) 业务及经验库
%@9E(pC7is@3NW@051Testing软件测试网-i2yg8TDCv)f
通过CVS的注释,可形成完整的开发日志及问题集合,以文字方式伴随开发的整个过程,不依某个人的转移而消失,有利于公司积累业务经验,无论对版本整改或版本升级,都具有重要的指导作用。
S7piB!L^_h051Testing软件测试网)lj YPHo L;b8lX
2.2.3. 规范管理
!W:t%F%m5?
A8{vlR0(1) 量化工作量考核51Testing软件测试网_]1O)_n zG
WK8rV$~051Testing软件测试网9cS%Z.R}7[h
传统的开发管理中,工作量一直是难以估量的指标,靠开发人员自已把握,随意性相当大;靠管理人员把握,主观性又太强。采用CVS管理后,开发人员每天下班前对修改的文件 Check In,其中记述当天修改细节描述,这些描述可以作为工作量的衡量指标。
+Ym^Jf8YiC5xD0
G:d(|
O-^nF0(2) 规范测试51Testing软件测试网YVSMB Xp5`
KTIu+E051Testing软件测试网't%M(W K*@/wjl
采用CVS以后,测试有了实实在在的工作,测试工作人员根据每天的修改细节描述对每一天的工作做具体的测试,对测试人员也具有可考核性,这样环环相扣,大大减少了其工作的随意性。
)Z v@:?&P
c051Testing软件测试网FO5I#L!v
(3) 加强协调与沟通
YuG|~051Testing软件测试网3m'DH$F'^
采用CVS后,通过VSS文档共享系统和 Bugzilla缺陷跟踪系统,大大加强了项目成员之间的沟通,做到有问题及时发现、及时修改、及时通知,但又不额外增加很多的工作量。51Testing软件测试网P-NFCRT tZ
51Testing软件测试网o^!V,ak;B.kA
3.性能测试是软件测试专业化的核心所在
a`z1KyU9E4QY@0
c.NZD^@
\Ef0从华友实践看,软件测试对于产品经理、开发经理和市场经理都有所认识,他们大部分人会认为功能测试工作他们能够很好的完成,产品经理是公司对于业务最熟悉的 一批人,他们对于测试工程师最急切的需求是你帮我实施产品的性能测试工作,他们听说过性能测试,我们的产品投入在线运行后碰到的最大故障是大用户量访问业务是机器凼机,或停止正常的服务,每次故障,几乎给公司的收入都造成很大损失。如果测试部门能有一套有效的性能测试手段,就确立了测试部门在项目开发过程中关键地位。51Testing软件测试网#\&R1k i2vknU j@
%[yKrU[Z051Testing软件测试网b!Kf
X4`
性能测试在华友软件的质量保证中起着非常重要的作用,将性能测试概括为四个方面:Wap无线应用服务在手机用户端性能测试、 Web/Wap应用服务在客户端性能的测试、应用在网络上性能的测试和应用在服务器端性能的测试。通常情况下, 四方面有效、合理的结合,可以达到对系统性能全面的分析和瓶颈的预测。
V;I*{ H;@\/yx%MB9r0
Y0J&T
|`bO03.1 Wap无线应用服务在手机用户端性能测试51Testing软件测试网DG
XVwzL#a
L K
'L7s4qR*ZL051Testing软件测试网1DM`~N(k"Ws9i
如今人人用手机都追求时尚,时尚体现在款式, 品牌和功能。手机产品功能的日新月异,移动增值业务功能层出不穷,从最初的短信、彩信、铃声到GPRS,CDMA,K-Java, Brew手机,功能的多样性带来手机用户端软件系统测试的复杂性。众所周知, Java手机吸引人之处是能提供智能的, 个人化的互动服务, 例如: 动态产生个人化的股市服务, 显示图形, 动画, 实时路况, 气象报告, 数字照像, 玩游戏等, 部分服务能直接于用户端执行。
+v?!I{6B)T6hGXB051Testing软件测试网4SE3\ U:M,N.eg
为了提供如此生动的服务, 移动通信系统要能给终端用户在无线装置上提供接入互联网的功能, 要能储存、提取、管理、计算、结帐、下载软件服务, 并使内容提供商能提供丰富的声像多媒体内容, 形成广大的个人化交互式服务环境。 而作为移动用户, 可将手机视作虚拟机, 能随时、随地在适当的装置上存取应用, 享受服务。 这确是一种时尚。51Testing软件测试网"ZD,[Wr1^[y
51Testing软件测试网 i-U2p:i]3l$^)cv'Fr
当前, 对于不同品牌的手机, 它们所用的平台(指CPU和操作系统)各不相同, 由于采用不同的设计方案, 各设计之间缺乏兼容性, 操作系统和二进制代码都不兼容。 当手机运行需要大量内存时, 特别是随着接入互联网, 手机用户要求能使用个性化的 交互式应用软件, 应用程序运行在虚拟运行环境下时, 问题显得尤为突出。 所以, 有必要建立一种标准的通用运行平台, 达到在合适的成本下提供统一的交互式应用软件运行环境。 但是, 除非该平台是基于完全标准的器件, 否则是难以达到要求的。51Testing软件测试网!q` Qo'tn;G
标准的通用的运行平台是满足运营商, 软件开发商, 和终端用户三者综合要求的解决办法。 理想的环境必须具备以下性质:
51Testing软件测试网7{mia}j2k
(1)、平台应提供二进制兼容性。 可执行软件是二进制目标码, 需要在处理器和应用软件目标码之间建立沟通;51Testing软件测试网,Nd$j0~lCCp6X
(2)、平台必须包括微处理器,或一个与微处理器机器代码相离的通用机器码仿真器;
"msrz8J`,o0(3)、平台应包括带有应用程序接口API及支持一致性图形用户界面GUI相应功能的操作系统。 API 是执行典型操作功能的软件功能库, 例如打开文件, 读写数据, 配置和管理内存, 处理事件, 显示文档和图形等。 为使应用软件真正做到可移植, 装置上必须有公共功能集, 并让软件开发者能通过一致性API 扩展功能;51Testing软件测试网R"i8r f'S
(4)、平台不应要求过多的系统资源, 可移植性设备不应使成本上升太多;
B
W8cw%l(uZ]R0(5)、平台应对功率有高效率, 尤其考虑用电池供电的设备;
:YTxi/F4c.]0(6)、由于要在互联网上应用, 安全性也是重要因素。
51Testing软件测试网hE+|{#u5_'e9u{!E-g
以Java手机软件测试为例潜在的测试问题和解决办法51Testing软件测试网 d? y
D1^Uw
rf"EF]&NU!Lp i0Java有移植性好和其它很多优势, 但用在手机上, 速率和功耗仍是个瓶颈。 Java带来的新问题是执行速度慢, 消耗功率大。 与PC不同的是, 手机资源有限, 一般流行的手机中CPU的速率为26MHz, 或52MHz,带128M闪存, 8Mb, 16M 或64Mb内存, 没有硬盘, 由电池供电, 体积小, 空间窄。 系统慢的原因是:51Testing软件测试网zFya}y p
51Testing软件测试网oc+cD_`/Q_
(1) 系统必须同时运行两套软件: Java应用和虚拟机JVM;
7@z}+PD4}2rMx0(2) Java软件需要被翻译成自然CPU指令;
;s!F$['n.G+MP`0(3) Java平台是基于栈(相对于寄存器)结构的, 导致更多的内存存取。51Testing软件测试网Ror/l)K$j
'|mg Iu,P*nf:H"^0
|k oot
X3qiAc0因而, 如何对执行 Java加速成为关键。 加速处理数据和图形, 这对手机上互联网和多媒体的应用具有重要意义。 要克服这些问题, 提高Java软件性能, 可能的方法有四种:
3z&qD-K6o0
'DI8mK3wh.]qC(^0(1) 提高微处理器速率。 然而Java软件性能与时钟频率并不成线性关系, 微处理器运行一般比内存存取时间高2-10倍, 增加时钟频率只会增加等待周期。51Testing软件测试网*]lj)NN:|/t
(2) 对JVM软件进行优化。 这可能涉及到要用汇编语言对字节码翻译环路进行编程, 而这会导致JRE变得与微处理器类别有关。 而与可移植相抵触;
"qU!eSuR0(3) 编译。 将软件直接编译到微处理器的自然机器语言。 但是这会增加内存的开销, 也不节省能量的消耗。
]+q7uW{0(4) 采用基于硬件的加速器。 这可以做到提高性能, 保障能量和成本的有效性。 被手机设计厂商认为是较理想的措施。 通用型Java加速芯片于今年年初问世。51Testing软件测试网G)MV3CH
S0?
3u&g*D8Tf+N4|E3Ud7T051Testing软件测试网;p"aJ-QLO
3.2 分析Web/Wap应用服务在客户端性能的测试51Testing软件测试网:kP.X#a3o&x_&Z]d
jx~%j~^x8B_
m051Testing软件测试网/byU[X"K(K-N
Web/Wap应用服务在客户端性能测试的目的是考察客户端应用的性能,测试的入口是客户端。它主要包括并发性能测试、大数据量测试和速度测试等,其中并发性能测试是重点。51Testing软件测试网4{G;]_o3n_
并发性能测试的过程是一个负载测试和压力测试的过程,即逐渐增加负载,直到系统的瓶颈或者不能接收的性能点,通过综合分析交易执行指标和资源监控指标来确定系统并发性能的过程。负载测试(Load Testing)是确定在各种工作负载下系统的性能,目标是测试当负载逐渐增加时,系统组成部分的相应输出项,例如通过量、响应时间、CPU负载、内存使用等来决定系统的性能。负载测试是一个分析软件应用程序和支撑架构、模拟真实环境的使用,从而来确定能够接收的性能过程。压力测试(Stress Testing)是通过确定一个系统的瓶颈或者不能接收的性能点,来获得系统能提供的最大服务级别的测试。
51Testing软件测试网sI'DB
y*R8Dj
并发性能测试的目的主要体现在三个方面:以真实的业务为依据,选择有代表性的、关键的业务操作设计测试案例,以评价系统的当前性能;当扩展应用程序的功能或者新的应用程序将要被部署时,负载测试会帮助确定系统是否还能够处理期望的用户负载,以预测系统的未来性能;通过模拟成百上千个用户,重复执行和运行测试,可以确认性能瓶颈并优化和调整应用,目的在于寻找到瓶颈问题。51Testing软件测试网 U
m%G\!h\/`fp#xY
8_;P!a7io.Q0pI051Testing软件测试网E,?7NF E
我们公司自己组织力量同时委托第三方软件HG公司开发Hawa网站的一套应用Avatar形象系统的时候, Avatar形象在网站业务中占有着重要的位置,网站上的很多业务都是围绕Avatar开展。 这套系统能不能承受大量的并发用户同时访问? 成为这个网站能否成功的关键,也是这次两个公司合做开发能否顺利完成的关键。这类问题最常见于采用联机事务处理(OLTP)方式数据库应用、Web浏览和视频点播等系统。这种问题的解决要借助于科学的软件测试手段和先进的测试工具。
51Testing软件测试网7ahs
C\ m4]g1I
Web软件测试实例说明:哈哇网站Avatar形象系统软件。Avatar形象系统在上线试运行三个月后,所有的功能测试顺利完成,软件功能缺陷也修改完毕。但是,性能问题越来越成为项目经理关心的焦点,我们测试部门借助比较熟悉的压力测试工具Web Stress 实施客户端性能测试进行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,也是影响用户服务的关键因素之一。
r!z5ma7hK0
y0|(Y.r
o]b
~!\0这个性能问题经过HG公司开发人员近三个月改进,/index.jsp页面的1000个用户并发响应时间10秒左右。对于我方采用的Web Stress性能测试工具HG公司也认同其测试结果的客观性,公司因为该软件性能问题推迟支付对方经费200万圆三个月,更重要的是软件的性能问题得到很好解决,并与HG公司的关系很好保持。另外一个更大的收获是测试部门在Web 产品部门有个很好的形象,他们每次新软件产品需求提出、产品上线都主动要求测试部门参与并实施严格测试。51Testing软件测试网kXOU;E
XdO(qo+m JWk0如何模拟实际情况呢? 找若干台电脑和同样数目的操作人员在同一时刻进行操作,然后拿秒表记录下反应时间? 这样的手工作坊式的测试方法不切实际,且无法捕捉程序内部变化情况,这样就需要压力测试工具的辅助。51Testing软件测试网7A*G6EEU`#X^[
51Testing软件测试网"k0i6H0S%o4j
测试的基本策略是自动负载测试,通过在一台或几台PC机上模拟成百或上千的虚拟用户同时执行业务的情景,对应用程序进行测试,同时记录下每一事务处理的时间、中间件服务器峰值数据、数据库状态等。通过可重复的、真实的测试能够彻底地度量应用的可扩展性和性能,确定问题所在以及优化系统性能。预先知道了系统的承受力,就为最终用户规划整个运行环境的配置提供了有力的依据。
51Testing软件测试网uX)]JF*Qz/D
并发性能测试前的准备工作51Testing软件测试网Zey V4h1U(@
51Testing软件测试网\5le%G A\8HU
测试环境:配置测试环境是测试实施的一个重要阶段,测试环境的适合与否会严重影响测试结果的真实性和正确性。测试环境包括硬件环境和软件环境,硬件环境指测试必需的服务器、客户端、网络连接设备以及打印机/扫描仪等辅助硬件设备所构成的环境;软件环境指被测软件运行时的操作系统、数据库及其他应用软件构成的环境。51Testing软件测试网Mw,O!wwB-ar
$g6n T zy)a-M0一个充分准备好的测试环境有三个优点:一个稳定、可重复的测试环境,能够保证测试结果的正确;保证达到测试执行的技术需求;保证得到正确的、可重复的以及易理解的测试结果。
Fr U+@YrI;Da3w.RS0
5[5bE }lf\0测试工具:成熟的并发性能测试工具有很多,选择的依据主要是测试需求和性能价格比。著名的并发性能测试工具有QALoad、LoadRunner、Benchmark Factory、 Webstress和AB-Apache等。这些测试工具都是自动化负载测试工具,通过可重复的、真实的测试,能够彻底地度量应用的可扩展性和性能,可以在整个开发生命周期、跨越多种平台、自动执行测试任务,可以模拟成百上千的用户并发执行关键业务而完成对应用程序的测试。51Testing软件测试网O{{T{X%EL&lg/H
51Testing软件测试网`fb$`/omC3r!buk1V
测试数据:在初始的测试环境中需要输入一些适当的测试数据,目的是识别数据状态并且验证用于测试的测试案例,在正式的测试开始以前对测试案例进行调试,将正式测试开始时的错误降到最低。在测试进行到关键过程环节时,非常有必要进行数据状态的备份。制造初始数据意味着将合适的数据存储下来,需要的时候恢复它,初始数据提供了一个基线用来评估测试执行的结果。
0}3Tm/j{)b}kF0 51Testing软件测试网;|qm.I9F W
在测试正式执行时,还需要准备业务测试数据,比如测试并发查询业务,那么要求对应的数据库和表中有相当的数据量以及数据的种类应能覆盖全部业务。
9T7rvJaQw+\X0模拟真实环境测试,有些软件,特别是面向大众的商品化软件,在测试时常常需要考察在真实环境中的表现。如测试杀毒软件的扫描速度时,硬盘上布置的不同类型文件的比例要尽量接近真实环境,这样测试出来的数据才有实际意义。
Iq Yi-V0|0
uk3ND@.y0并发性能测试的关键的是测试过程中对监控对象的灵活应用,例如目前三层结构的运行模式广泛使用,对中间件的并发性能测试作为问题被提到议事日程上来,许多系统都采用了国产中间件,选择Java scrīpt监控对象,手工编写脚本,可以达到测试目的。51Testing软件测试网%krHI#LV&A
51Testing软件测试网 ]8Ww
BG{&Qi ^
采用自动化负载测试工具执行的并发性能测试,基本遵循的测试过程有:测试需求与测试内容,测试案例制定,测试环境准备,测试脚本录制、编写与调试,脚本分配、回放配置与加载策略,测试执行跟踪,结果分析与定位问题所在,测试报告与测试评估。
Xau:?&ma:p8|P0 51Testing软件测试网 qO}Y4{!n
3.3 应用在网络上性能的测试
5{7S4qC|0
j-MiB$W
o7t0应用在网络上性能的测试重点是利用成熟先进的自动化技术进行网络应用性能监控、网络应用性能分析和网络预测。
5dF_9l%D0P$q0 51Testing软件测试网3Qo/P F6n0ox
K?6q!I
网络应用性能分析51Testing软件测试网0x6za:k0n
q}6B
C+`
3S
|+cA[0j;wE0网络应用性能分析的目的是准确展示网络带宽、延迟、负载和TCP端口的变化是如何影响用户的响应时间的。利用网络应用性能分析工具,例如Application Expert,能够发现应用的瓶颈,我们可知应用在网络上运行时在每个阶段发生的应用行为,在应用线程级分析应用的问题。可以解决多种问题:客户端是否对数据库服务器运行了不必要的请求?当服务器从客户端接受了一个查询,应用服务器是否花费了不可接受的时间联系数据库服务器?在投产前预测应用的响应时间;利用Application Expert调整应用在广域网上的性能;Application Expert能够让你快速、容易地仿真应用性能,根据最终用户在不同网络配置环境下的响应时间,用户可以根据自己的条件决定应用投产的网络环境。51Testing软件测试网'^p&_nAh
51Testing软件测试网/q*P
QjTU!i0|o
网络应用性能监控51Testing软件测试网!{/i&z%?;b
u`&to0N
;F mW,kYyC0在系统试运行之后,需要及时准确地了解网络上正在发生什么事情;什么应用在运行,如何运行;多少PC正在访问LAN或WAN;哪些应用程序导致系统瓶颈或资源竞争,这时网络应用性能监控以及网络资源管理对系统的正常稳定运行是非常关键的。利用网络应用性能监控工具,可以达到事半功倍的效果,在这方面我们可以提供的工具是Network Vantage。通俗地讲,它主要用来分析关键应用程序的性能,定位问题的根源是在客户端、服务器、应用程序还是网络。在大多数情况下用户较关心的问题还有哪些应用程序占用大量带宽,哪些用户产生了最大的网络流量,这个工具同样能满足要求。51Testing软件测试网"Wt5qBjp?
%c*Zr-U4RBf0网络预测51Testing软件测试网{o|
z4t
51Testing软件测试网U(])Y(OF
考虑到系统未来发展的扩展性,预测网络流量的变化、网络结构的变化对用户系统的影响非常重要。根据规划数据进行预测并及时提供网络性能预测数据。我们利用网络预测分析容量规划工具PREDICTOR可以作到:设置服务水平、完成日网络容量规划、离线测试网络、网络失效和容量极限分析、完成日常故障诊断、预测网络设备迁移和网络设备升级对整个网络的影响。51Testing软件测试网d1?4ut(d
u1{k
51Testing软件测试网$e3k
U|MV7k+W7T
从网络管理软件获取网络拓扑结构、从现有的流量监控软件获取流量信息(若没有这类软件可人工生成流量数据),这样可以得到现有网络的基本结构。在基本结构的基础上,可根据网络结构的变化、网络流量的变化生成报告和图表,说明这些变化是如何影响网络性能的。 PREDICTOR提供如下信息:根据预测的结果帮助用户及时升级网络,避免因关键设备超过利用阀值导致系统性能下降;哪个网络设备需要升级,这样可减少网络延迟、避免网络瓶颈;根据预测的结果避免不必要的网络升级。
2oKQqb2U0
"OSoeo"UGH}0mb\"t03.4 应用在服务器上性能的测试51Testing软件测试网3`WblQ
:JUbNc#e&s0首先分析服务器的类型,服务器的划分起码可以依据四大部分进行。一是根据整个架构,可分为IA服务器和RISC服务器;二是按照硬件配置的差别可分为工作组级、部门级、企业级;三是按照具体安装的应用软件可分为Web服务器、文件服务器、FTP服务器、E-mail服务器、数据库服务器等等;四是根据操作系统分为WINDOWS阵营、UNIX阵营。这四大分类有所关联,但其中按应用分类是最能给用户清晰概念的。因为用户在采购选型时,总是先想好了拿它做什么用的。Intel最近所提出的前端(用于接入等)、中端(用于各种应用和中间件)和后端(用于数据库、在线分析等)的分类办法,这也是从应用角度考虑的。
V-C1ZD?"U.b051Testing软件测试网qP6^ M/s3z9U S)v4`
分析服务器性能指标莫不聚焦于三大指标:CPU、I/O及Web。如果大家还记得图灵机的话,应该对计算单元和输入输出的重要不会抱什么怀疑的态度。至于选择Web作为衡量服务器性能的要点,只能说是网络的力量。Internet的大行其道让我们很难想象有服务器孤岛出现。工程师往往通过给与被测服务器不断增加的并发式文件读写、数据库操作以及HTTP访问来取得其最大的潜值。
c*f0E&d&gb;XY0
-dB1qmqe?0以Web测试为例,衡量Web性能一般有下列几个重要指标:HTTP 每秒交易数(Transaction Per Second);每秒会话数(Sessions Per Second);当前用户数(Concurrent users);吞吐量(Throughput)。HTTP TPS通常也叫做每秒的点击数;每秒会话数是每秒到达Web服务器的用户数;当前用户数是特定时间在Web 站点上的用户数;吞吐量是在特定时间由Web站点发出的数据流量带宽,它与服务器提供服务的内容和交易数相关。以上将是我们对测试结果进行评述与点评的重要技术基础。
&U~
\aN,W0
4.项目管理开发环节的测试任务
1E;V&H(v:`w+M051Testing软件测试网nO yo)^/XgF51Testing软件测试网 ~,A tx c:xh1L
51Testing软件测试网0~fwi:l8zpf#\
tQO/`}6M,fE0当公司构架了合理的组织结构并制定了缜密的计划后,就进入了产品的开发阶段。 下面以已经实施完成的CYB项目一期为例,分析华友公司在项目管理上的正在推广的具体 项目管理细节的优缺点和测试工作改进探讨:51Testing软件测试网F0V7w&fo!B3tId4n
n|z-M*N)q/iB0CYB项目一期需求:由于华友各类业务(SMS和WAP等)在不同运营商(中国联通、中国移动、中国电信等)的不同平台和在网站www.hawa.cn 的WEB门户中向用户提供服务,各类业务的相互独立,为了统一管理用户信息、业务和计费等信息,并汇总进行统计分析处理,同时也为了整合各类业务系统的资源,建立公司的业务运营支撑系统。
GOY*Rm;O@&L
Os Z051Testing软件测试网eqzv
`j/f+mCg
4.1 开发阶段和项目周期51Testing软件测试网hKS"e'YoO
51Testing软件测试网wt/N?G%OD*w4rNy(s
开发阶段比较明显,注重各阶段应完成的功能,对本阶段应完成的工作不能留到下一阶段。明确项目经理为D,项目组开发程序员六人,项目第一阶段周期3个月,项目需要完成的功能:51Testing软件测试网@2p xOK.ie|W#M
1)实现用户信息的统一管理,包括:用户基本信息,用户使用业务的积分,用户的定制/退定信息的管理51Testing软件测试网i0C0D_%p
2)实现各类业务信息的集中管理,包括:短信业务、WAP1.2、WAP2.0、JAVA、彩铃等各种业务51Testing软件测试网n3u*?k [/s SR@
3)实现计费信息的统一管理
2o^/J?Y6k$~@0q7Ey04)提供客服功能
\Ep,{3r?I]4@05)提供统计分析功能51Testing软件测试网K8Cx5e0p?IZ*a
6)提供统一的标准接口,分别与各业务子系统及运营商的系统相连接
!_AW4t7GY07)提供网络管理、监控等功能51Testing软件测试网3\&j-o.J