51Testing软件测试网d!nCPA1mNaW 利用现代的设计技术和正式的技术复审可以减少代码中存在的初始错误,但是错误总是存在的,如果开发者找不到错误,那么,客户就会找到它们。越来越多的软件组织认识到软件测试是软件质量保证的重要元素之一,很多软件开发组织将30%—40%甚至更多的项目资源用在测试上,软件测试技术和软件测试策略受到了高度的重视和广泛的应用。
@0V
Q[+YFH051Testing软件测试网4d(Ir-F@ 本文不想就软件测试技术和软件测试策略作深入的理论分析,而是列举一个在软件系统测试阶段进行的压力测试实例,希望能通过这个实例与从事软件测试相关工作的朋友进行交流。
i0T#W*jx5j*x-F:k0B0.tC@R cc
]N+E0 首先介绍一下实例中软件的项目背景,该软件是一个典型的三层C/S架构的MIS系统(客户端/应用服务器/数据库管),中间层是业务逻辑层,应用服务器处理所有的业务逻辑,但应用服务器本身不提供负载均衡的能力,而是利用开发工具提供的ORB(对象请求代理)软件保证多个应用服务器间的负载均衡。本次测试的目的是:进行单个应用服务器的压力测试,找出单个应用服务器能够支持的最大客户端数。测试压力估算的依据是:假定在实际环中,用户只启用一个应用服务器进行所有的业务处理。方法是:按照正常业务压力估算值的1~10倍进行测试,考察应用服务器的运行情况。51Testing软件测试网7I7z%I4U6{[H:k:v.[
51Testing软件测试网_V+r!`'s4fZ 压力测试的详细计划如下:51Testing软件测试网7R&Y+W
X7x+q"X%QF|u
O;h.l#H`0 压力测试计划
6Y LGI)vo
c;Z6{0"\ f n`2s3uI'P0 1、测试计划名称
qYmY9u$|O s&e+c051Testing软件测试网6\I H
@#ZB 河北省公安交通管理信息系统压力测试计划。51Testing软件测试网
?G?1C)\2j%f
_3Z:lA1Y"u7l0 2、测试内容51Testing软件测试网2V(x ` W
n
R2^x
PF
]0 2.1背景51Testing软件测试网#xq*\)Z-R}
U
U-E^3bP0 本次测试中的压力测试是指模拟实际应用的软硬件环境及用户使用过程的系统负荷,长时
Cr8b"b@1P`
Id
e051Testing软件测试网*^G\"?z,Jc$H f 间运行测试软件来测试被测系统的可靠性,同时还要测试被测系统的响应时间。
r~I6tYR*x0re }zK `0 用户的实际使用环境:51Testing软件测试网Y1E7e'Y ?F!|
51Testing软件测试网7X \
F^:j*WG ◇由两台IBM XSeries250 PC Server组成的Microsoft Cluster;
-v4TK [ f:]PUq%H051Testing软件测试网1[0ZlYB$J0ce+F#~ ◇数据库管理系统采用Oracle8.1.6;
V2B"Zy'P4QC udhz G051Testing软件测试网8sk?$L`8h ◇应用服务器程序和数据库管理系统同时运行在Microsoft Cluster上。51Testing软件测试网[u'J:M)e&dw
51Testing软件测试网_{9JR q0K%Rn-D ◇有200个用户使用客户端软件进行业务处理,每年通过软件进行处理的总业务量为:150万笔业务/年。
l w*C%Ht,BCe1[Kz0)po8H/e!p E0 2.2测试项
zP\"t1_
^0Je!|u.HT0 应用服务器的压力测试;51Testing软件测试网c|%n$^0Fr7a
z&GdRU`0 2.3不被测试的特性51Testing软件测试网R3{t/C
[#H
51Testing软件测试网Jb(\s:r'bQ/cg ◇系统的客户端应用程序的内部功能;
(t |"Fe`M+OND8U(?;e051Testing软件测试网/H5O-^jhd:xX
{ ◇数据库中的数据量对程序性能的影响。51Testing软件测试网E*gZ
z~9n'K6C
51Testing软件测试网9Y;~1E;x*H&eV)? 3、测试计划
J;K2HO8u a07|SM|,X!Oh\-d`~0 3.1测试强度估算
c?f`Ke051Testing软件测试网:G"J
TX d"PW+p 测试压力估算时采用如下原则:51Testing软件测试网-E
KV#FO5?)^`R\
51Testing软件测试网U$D!Lrj.| ◇全年的业务量集中在8个月完成,每个月20个工作日,每个工作日8个小时;
&l+Cps-H2np051Testing软件测试网!gu\r3v1]L}5LM-bl ◇采用80—20原理,每个工作日中80%的业务在20%的时间内完成,即每天80%的业务在1.6小时内完成;
qbc0R'b0k0QZj&D$EP
GwQT0 测试压力的估算结果:
}H|2B5Bx051Testing软件测试网l^nw$J 去年全年处理业务约100万笔,其中15%的业务处理每笔业务需对应用服务器提交7次请求;70%的业务处理每笔业务需对应用服务器提交5次请求;其余15%的业务每笔业务向应用服务器提交3次请求。根据以往统计结果,每年的业务增量为15%,考虑到今后三年业务发展的需
0P(U8~tM}#Rq`1Q0m| Ns2GE*M0 要,测试需按现有业务量的2倍进行。51Testing软件测试网a`M*]iA'MZ
51Testing软件测试网.Ybb5x-noK] 每年总的请求数量为:(100*15%*7+100*70%*5+100*15%*3)*2=300万次/年。51Testing软件测试网'['k-p,X
Dl;^;W
51Testing软件测试网,\
N8e:E%j
V-aDV 每天的请求数量为:300/160=1.875万次/天。
gC'f0@]&[n T051Testing软件测试网[:v8f#a%k&?ITU 每秒的请求数量为:(18750*80%)/(8*20%*3600)=2.60次/秒。51Testing软件测试网9},n7AE2u
51Testing软件测试网 zP7?D/Y/q/bl 正常情况下,应用服务器处理请求的能力应达到:3次/秒。
&ff*ajT4Q
?03e'eyP*M-|7F6YzF"r0 3.2测试环境准备
gUeh s7XZ051Testing软件测试网~;l2g3O\'J\m2a 3.2.1基本硬件及软件环境的准备
`&b:C|;b0ta0 |am] b\La*t/x9U0 1)网络环境:公司内部的以太网,与服务器的连接速率为100M,与客户端的连接速率为10/100M自适应。
I
w vvV9zP/^0-KR'Kr:BB a} v0 2)使用两台IBM XSeries250(1G内存)PC Server作Microsoft Cluster,安装系统软件
qToztcl?I051Testing软件测试网%[
h/T^^lOv(_b!@ Windows 2000 Advance Server及Microsoft Cluster Server(MSCS)。51Testing软件测试网/s:EF'I;L7f;fZ}A
51Testing软件测试网 t
pYKz/`&] 3)数据库管理系统的安装及配置:在测试用的IBM XSeries服务器上安装Oracle8.1.6,数据 库采用Oracle51Testing软件测试网RejbSH~
T%eZ_7Gk0 Fail Safe(ofs)的Active/Passive配置。 安装数据库管理系统及支撑软件(包括VisiBroker和BDE51Testing软件测试网O-E^)A w LS
Ww.u%F4ZB*ybB0 Administrator)。
,_p'~'y1en|,Lt|051Testing软件测试网&o
bVe mt[ 4)安装被测的应用服务器程序。51Testing软件测试网$l p]Rv-Y|uA)~
51Testing软件测试网*m6MP*d|0U&~+] 5)客户端的PC机:10台(PⅢ600/128M RAM)。51Testing软件测试网^M6pvH S0J#A/]
51Testing软件测试网$l
w)pl
s/w 3.2.2系统客户端测试程序的编写系统客户端测试程序使用Delphi编写,要求测试程序实现如下功能:51Testing软件测试网o+S n
RsdV6td
X[Ii\0 1)模拟一个主要的向应用服务器发送请求并接收响应信息的功能。要求交替模拟两种情况:第一种,发送的请求至少包括10个参数,参数类型涵盖字符、日期、数字种类型;接收的
bMRupP?(x;m0Vve[i0 响应信息不少于1个参数;第二种,发送的请求不少于1个参数;接收的响应信息至少包括10个参数,参数类型涵盖字符、日期、数字种类型。51Testing软件测试网g#D,c Tx1b
tQ6Wn;j6I0 2)必须能够通过参数设定在每台PC机上运行的客户端测试程序个数、请求的时间间隔(单位:毫秒)、运行时间(单位:小时)。51Testing软件测试网*cAH
x&B`~
51Testing软件测试网'pXY&Q
`ye~ 3)在数据库中建立测试记录表,生成测试记录,向数据库写入测试记录的功能不通过被测的应用服务器实现。日志内容包括:发送测试请求的机器名、客户端测试程序序号、发出请求时间、收到响应时间、处理是否成功。表名:TEST_LOG,字段名:MACHINE、ID、START_TIME、END_TIME、FLAG。51Testing软件测试网9?T6T+T;p
Xp9C
3\7F+`p1O7W(d0 3.2.3系统本底数据的准备51Testing软件测试网Y'gZllv
t|v
51Testing软件测试网
J;v7w~!x'H 为考察系统运行一段时间后系统的响应性能,参照实际运行情况及发展进行系统的本底数据准备。业务处理中涉及到的业务表中都要求按设计规模进行本底数据的准备。要求准备的数据记录的有效性符合系统要求,数据有效性的具体要求参见数据库设计及系统设计文档。51Testing软件测试网HkH@5g1p#Yuu1m
H6bSv)E'X!d0 3.3破坏性测试
kg
w,`P$C;{051Testing软件测试网6nf0R`$D3k(H;F 按照设计连接的客户端连接数量进行测试,把应用服务器处理请求的设计频度增加1-10倍,分别测试出现错误的状态和和出现错误的比率,考察是否出现不可恢复错误,系统设计要考
V5f1?WkD051Testing软件测试网v)z/\3p(B/C1@h 虑出现严重错误情况下负荷减轻错误自动恢复的实现方法。51Testing软件测试网#u2~Oe{'yU ~
3t\c$G Y0 计划时间:2天;这个时间包括破坏性的修复和自动恢复的实现需要的时间。51Testing软件测试网/xT"l
ii4HD+W[
d8h7m2~$dDt:`;H4_0 在测试过程中每10分钟记录一次IBM Xseries PC
5H?}rx&G^F'`(B051Testing软件测试网)y0w,[-Qd e.E/o.V Server的内存及CPU使用情况,包括被测程序的内存占用百分比、数据库管理系统的内存占用百分比、操作系统的内存占用百分比。
j/V8g&z.}'x)X051Testing软件测试网8OQ5w*}*dbJ E
b8| 3.4强度稳定性测试51Testing软件测试网a.N i4mb6T8_
51Testing软件测试网{]"wAz3v
S5v-l,p;l 选择一种负荷比设计负荷重的情况(应用服务器处理请求的频度为应用服务器处理请求的 设计频度的1.5倍),进行24小时稳定性测试。51Testing软件测试网1_"Gc?c
[Pq&~`9{Hf0 3.5测试方法和工具
3[tb:OJ$O051Testing软件测试网Lw^*dN-J 黑盒测试
tQ3Uil
YUI n#t051Testing软件测试网G3J)Di%{pP:n 测试工具:无外购的测试工具,自己编制的测试工具。51Testing软件测试网;?zZ0w?7K,X
51Testing软件测试网*mR8v3M6_ 3.6测试时间计划
{ {5zhn2f051Testing软件测试网"NdSN%M 3.6.1环境准备:2天。
v8~ O'a,L1`'SO ?
A051Testing软件测试网/xyzrv
K;J/j-k 其中:基本硬件、软件环境及系统本底数据的准备:1天,51Testing软件测试网$YtN@h+p6Ih?
(PU RN1`$R0 系统客户端测试程序的编写及测试:1天。
BIVHxDZ9oC#W0n(@SSo4z0 3.6.2破环性测试:2天。51Testing软件测试网.C0xP*@ ]
xYMj]0 3.6.3强度稳定性测试:1天。51Testing软件测试网'N|a.IYd
,W?"]5{f)?3^z,aB&l0 3.7测试中的问题及处理51Testing软件测试网6q!t.mX8]Y+sD
51Testing软件测试网$_@ Kz]|D 3.7.1暂停标准和再启动要求51Testing软件测试网C
r
h"q0G,@:e
O
51Testing软件测试网$X"D^
F}&O
|T 暂停标准:被测试软件在强度稳定性测试中频繁出现异常(每小时出现1次以上)时。用户或公司要求暂停测试时。
c'^2?S~051Testing软件测试网:| o5eG3R Z 再启动要求:通过调试后,预计被测试软件的可靠性有所提高时,可再次启动测试。
])t1K'M@m:?1}A0~"wu!C!q6M"@0 3.7.2不可预见问题51Testing软件测试网FjLsE#M#G
51Testing软件测试网B}fQ#V 不可预见问题包括:
#Ak-ekIA_\0V"Qr@2_y6S1D0 ◇测试环境被破坏而导致测试无法进行;
Dc/sFo#_051Testing软件测试网+Wu*k u\uU ◇当出现上述不可预见问题时,测试终止,就已完成的测试内容编制测试总结报告,并在报告中说明测试终止的原因。51Testing软件测试网;vVP"W1N'z4bm
51Testing软件测试网9LioP4m0~cbS 3.8测试报告 2002.06.21
!O3dK-{9Ex![ z.r1a3z051Testing软件测试网$ll*Z I5d
yZ 测试总结报告提交日期:2002.06.21。
1w[5],bc-T6K051Testing软件测试网+T} fS]!C9e 3.8.1应生成的测试文件51Testing软件测试网lXL$`\$|m'k3T)| N6\
51Testing软件测试网gL3v{'q3g Q,O 测试记录(测试负责人和参与测试的人员签字);
!`+J!np
r
P
Y%S051Testing软件测试网Q*~{A,}{0M,X3oQ 测试总结报告。
,U{aWXJ#Gs051Testing软件测试网P-_JN9L:RrQ 3.8.2测试总结报告中必须包含的内容
+d US1J]'zr?051Testing软件测试网AJ*T^ij5yL 被测试软件名称、测试项、测试环境;
6J"M6F/Sw#n]:fHY8B051Testing软件测试网 Eu;y4X&{)o]%Rh:t/z 被测试软件的压力测试结论:响应时间、最大/最小并发数、失败的次数、正常连续运行的最长/最短时间,并发数与失败的关系。51Testing软件测试网 Fl|0@ i
51Testing软件测试网Z'[*J,w&Iw,AXs5gw 4、人员和职责
~'M_}$Jd&YG&L0*Mx+c8p
ca(f7^ t0 4.1职责
0_{*P5R+@z0
ys a3w`&K-[4R%w0 测试工程师:负责编写测试计划,组织测试,对测试过程进行记录,收集、整理测试记录数据,对测试结果进行分析,编写测试总结报告。51Testing软件测试网)d\
c;XTm8G
XpS}
_8@{qJ0 软件工程师:负责编写、调试客户端测试软件;数据库管理系统的安装、ofs配置及系统的本底数据准备。51Testing软件测试网^(Fm}aO){+i|-G/e&v
51Testing软件测试网%cz3WK.i4K 系统工程师:负责测试用的硬件维护及操作系统安装、MSCS配置。51Testing软件测试网,?0t:xN+_v0y
51Testing软件测试网4G`MVYzR*~)Av 总工程师:负责对测试计划及测试总结报告进行批准。
:mS~&P+x!C0+\\uROe/G0 用户:必要时可参加测试,并提出具体的测试要求;可要求暂停测试。51Testing软件测试网fO5XY-yt U[]-od
R;Hs'[9y{ gqE^^V0 4.2人员和训练要求51Testing软件测试网`
I:x+v9il2@a5`
't4dV:EQ(QhJe0 本次测试无特别的人员及培训要求。51Testing软件测试网
M}.jcQyl1p/U
^R
N$wl"@0 5、批准51Testing软件测试网h6D"v6c'L^
51Testing软件测试网4W2A(s*~q#R? 本测试计划必须经过总工程师批准后才能开始实施。
t*M-i`_
Rz8H0