软测3Word文件下载.docx
- 文档编号:6212879
- 上传时间:2023-05-06
- 格式:DOCX
- 页数:25
- 大小:2.13MB
软测3Word文件下载.docx
《软测3Word文件下载.docx》由会员分享,可在线阅读,更多相关《软测3Word文件下载.docx(25页珍藏版)》请在冰点文库上搜索。
(a-b-e-f)
P3:
(a-c-d-f)
P4:
(a-c-e-f)
P1包含了所有可执行的语句,按照语句覆盖的测试用例设计原则:
设计若干测试用例,运行被测程序,使程序中的每个可执行语句至少执行一次。
可以使用P1来设计测试用例。
覆盖P1路径:
输入{x=4,y=6,z=8},输出{k=23,j=1}
2)判定覆盖
按照判定覆盖的基本思路:
设计若干用例,运行被测程序,使得程序中每个判断的取真和取假分支至少经历一次,即判断真假值均曾被满足。
P1和P4可以作为测试用例,其中:
P1作为取真的路径:
输入{x=4,y=6,z=7},输出{k=23,j=1}
P4作为取假的路径:
输入{x=3,y=3,z=13},输出{k=0,j=0}
3)条件覆盖
对于第一个判定条件2,可以分割如下:
条件x>
0:
取真(TRUE)时为T1,取假(FALSE)时为F1;
条件z<
10:
取真(TRUE)时为T2,取假(FALSE)时为F2;
条件x==4:
取真(TRUE)时为T3,取假(FALSE)时为F3;
条件y>
5:
取真(TRUE)时为T4,取假(FALSE)时为F4;
根据条件覆盖的基本思想:
设计若干用例,执行被测程序后要使每个判断中每个条件的可能取值至上满足一次。
和这8个条件取值,组合成测试用例,如表:
测试用例
取值条件
具体取值条件
通过路径
输入:
x=4,y=4,z=12
输出:
k=0,j=2
T1,F2,T3,F4
x>
0,z>
=10,x=4,y<
=5
P3
x=-2,y=7,z=8
k=0,j=-1
F1,T2,F3,T4
x<
=0,z<
10,x!
=4y>
5
4)判定-条件覆盖
按照判定-条件覆盖的设计思想:
设计足够多的测试用例,使得判断条件中的所有条件可能至少执行一次取值同时,所有的判断的可能结果至少执行执行一次。
保证8个条件取值至少执行一次,同时判定条件2、3各取真假至少一次。
判定条件
x=4,y=8,z=2
k=31,j=0
T1,T2,T3,T4
0,z<
10,x=4,y>
2,3
P1
x=-2,y=3,z=14
k=0,j=0
F1,F2,F3,F4
=0,z>
=10,x!
=4,y<
/2,/3
P4
5)条件组合覆盖
按照条件组合覆盖的基本思想:
设计足够的测试用例,使得判断中每个条件的所有可能至少出现一次,并且每个判断本身的判定结果也至少出现一次。
设计组合条件表如下:
组合编号
覆盖条件取值
判段条件取值
判定-条件组合
1
T1,T2
2
10,2为真
T1,F2
/2
0,z>
=10,2为假
3
F1,T2
10,2为假
4
F1,F2
=10,2为假
T3,T4
7
x==4,y>
5,7为真
6
T3,F4
x==4,y<
=5,7为真
F3,T4
x!
=4,y>
8
F3,F4
/7
=5,7为假
设计覆盖这些组合的测试用例如下:
覆盖条件
覆盖路径
覆盖组合
x=4,y=6,z=7
k=23,j=1
1,5
x=4,y=3,z=12
k=0,j=1
2,6
x=-3,y=8,z=8
k=0,j=-2
3,7
x=-4,y=2,z=14
k=0,j=0
4,8
6)路径覆盖
按照路径覆盖的设计思想:
设计所有的测试用例覆盖程序中的所有可能执行路径。
测试用例如下表:
1,5
x=4,y=3,z=3
k=11,j=1
T1,T2,F3,F4
P2
1,8
3,7
4,8
为三角形程序设计测试用例
通过实验主要掌握黑盒法和白盒法设计测试用例的技术。
为以下的三角形程序设计一组测试用例。
这个程序的功能是,读入代表三角形边长的3个整数,判断他们能否组成三角形。
如果能够组成,则输出三角形是等边,等腰或任意三角形的识别信息。
先用黑盒法设计测试用例,然后用白盒法进行检验与补充。
用某种高级语言写出程序代码,然后将选好的测试用例输入,给出打印输出结果。
该程序的流程图如下
源程序:
importjava.io.*;
publicclassTest_triangle{
publicvoidisTriangle(inta,intb,intc){
if(a<
b+c){
if(b<
c+a){
if(c<
a+b){
if(a==b){
if(b==c){
System.out.println("
等边三角形!
"
);
}
else{
等腰三角形!
}
elseif(a==c){
System.out.println("
elseif(b==c){
else{
不等腰三角形(一般三角形)!
}
else{
System.out.println("
不能组成三角形!
}
}
publicbooleanisInt(Strings){
charch[]=s.toCharArray();
for(inti=0;
i<
ch.length;
i++){
if(ch[i]<
'
0'
||ch[i]>
9'
)returnfalse;
returntrue;
publicstaticvoidmain(String[]args)throwsIOException{
Stringx,y,z;
inta,b,c;
Test_triangletest=newTest_triangle();
BufferedReaderread=newBufferedReader(newInputStreamReader(System.in));
System.out.println("
----请输入要判断的三个边长,输入Q或q退出----"
while(true){
System.out.print("
第1个边长="
x=read.readLine().trim();
第2个边长="
y=read.readLine().trim();
第3个边长="
z=read.readLine().trim();
if(x.equals("
q"
)||x.equals("
Q"
)||y.equals("
)
||y.equals("
)||z.equals("
))
System.exit(0);
if(!
test.isInt(x)||!
test.isInt(y)||!
test.isInt(z))
----输入有误重新输入----"
else{
a=Integer.parseInt(x);
b=Integer.parseInt(y);
c=Integer.parseInt(z);
if(a==0||b==0||c==0)
else
test.isTriangle(a,b,c);
\n---------继续测试------------"
}
}
划分的等价类表如下:
输入条件
有效等价类
无效等价类
是否三角形的三条边
(A>
0),
(1)
(B>
0),
(2)
(C>
0),(3)
(A+B>
C),(4)
(B+C>
A),(5)
(A+C>
B),(6)
(A≤0),(7)
(B≤0),(8)
(C≤0),(9)
(A+B≤C),(10)
(B+C≤A),(11)
(A+C≤B),(12)
是否等腰三角形
(A=B),(13)
(B=C),(14)
(C=A),(15)
(A≠B)and
(B≠C)and
(C≠A)(16)
是否等边三角形
(A=B)and
(B=C)and
(C=A)(17)
(A≠B),(18)
(B≠C),(19)
(C≠A),(20)
测试用例:
序号
[A,B,C]
覆盖等价类
输出
[3,4,5]
(1),
(2),(3),(4),(5),(6)
一般三角形
[0,1,2]
(7)
不能构成三角形
[1,-1,2]
(8)
[1,2,-5]
(9)
[1,2,3]
(10)
[6,3,2]
(11)
[3,8,2]
(12)
[3,3,4]
(1),
(2),(3),(4),(5),(6),(13)
等腰三角形
9
[3,4,4]
(1),
(2),(3),(4),(5),(6),(14)
10
[3,4,3]
(1),
(2),(3),(4),(5),(6),(15)
11
[6,8,9]
(1),
(2),(3),(4),(5),(6),(16)
非等腰三角形
(一般三角形)
12
[8,8,8]
(1),
(2),(3),(4),(5),(6),(17)
等边三角形
13
[3,2,2]
(1),
(2),(3),(4),(5),(6),(14),(18)
非等边三角形
(等腰三角形)
14
[9,4,9]
(1),
(2),(3),(4),(5),(6),(15),(19)
15
[5,5,4]
(1),
(2),(3),(4),(5),(6),(13),(20)
运行结果:
使用LoaderRunner对web应用进行测试分析
通过本实验掌握LoadRunner测试工具的使用,对Website应用中至关重要的负载/压力进行测试分析。
通过LoadRunner提供的功能对Website的并发用户数,事务平均响应时间,网络吞吐量以及带宽等性能进行测试。
自己编写开发测试脚本,创建运行场景,分析测试结果并找出错误位置和原因,写出测试结果报告。
使用LoadRunner进行测试的过程可以用下图表示
1制定负载测试计划
在任何类型的测试中,测试计划都是必要的步骤。
测试计划是进行成功的负载测试的关键。
任何类型的测试的第一步都是制定比较详细的测试计划。
一个比较好的测试计划能够保证LoadRunner能够完成负载测试的目标。
制定负载测试计划一般情况下需要三个步骤,可以用下图表示
1.1分析应用程序(AnalyzetheApplication)
制定负载测试计划的第一步是分析应用程序。
你应该对系统的软硬件以及配置情况非常的熟悉,这样才能保证你使用LoadRunner创建的测试环境真实的反映实际运行的环境。
●确定系统的组成
画出系统的组成图。
组成图要包括系统中所有的组件,以及相互之间是如何通讯的。
●描述系统配置
画出系统组成图后,试着回答以下问题,对组成图进行完善。
√预计有多少用户会连到系统
√客户机的配置情况(硬件、内存、操作系统、软件工具等)
√服务器使用什么类型的数据库以及服务器的配置情况
√客户机和服务器之间如何通讯
√还有什么组件会影响ResponseTime指标(比如Modem等)
√通讯装置(网卡、路由器等)的吞吐量是多少?
每个通讯装置能够处理多少并发用户
●分析最普遍的使用方法
了解该系统最常用的功能,确定那些功能需要优先测试、什么角色使用该系统以及
每个角色会有多少人、每个角色的地理分布情况等,从而预测负载的最高峰出现的情况。
1.2确定测试目标(DefiningTestingObjectives)
在这里还要确定何时开始负载测试,在不同的阶段进行什么内容的负载测试。
1.3计划怎样执行LoadRunner
确定要使用LoadRunner度量那些性能参数,根据测量结果计算那些参数,从而可以确定Vusers(虚拟用户)的活动,最终可以确定那些是系统的瓶颈等。
在这里还要选择测试环境,测试机器的配置情况等等。
2开发测试脚本
LoadRunner使用虚拟用户的活动来模拟真实用户来操作Web应用程序,而虚拟用户的活动就包含在测试脚本中,所以说测试脚本对于测试来说是非常重要的。
开发测试脚本要使用VuGen组件。
测试脚本要完成的内容有:
◆每一个虚拟用户的活动
◆定义结合点
◆定义事务
开发测试脚本需要几个步骤,可以用右图来表示
创建用户脚本需要用到VuGen。
提示:
运行VuGen最好在1024*768的分辨率下,否则有些工具栏会看不到。
2.1录制基本的用户脚本
启动VisualUserGenerator后,通过菜单新建一个用户脚本,选择系统通讯的协议。
这里我们需要测试的是Web应用,所以我们需要选择Web(HTTP/HTML)协议,确定后,进入主窗体。
通过菜单来启动录制脚本的命令。
◆在URL中添入要测试的Web站点地址,这里http:
//localhost:
8080/long_test/来进行录制。
◆选择要把录制的脚本放到哪一个部分,默认情况下是“Action”。
◆点“Options”按钮,进入录制的设置窗体,这里一般情况下不需要改动。
录制完成后,按下“结束录制”按钮,VuGen自动生成用户脚本,退出录制过程。
2.3Run-TimeSetting
当完善了测试脚本后,需要对VuGen的Run-TimeSetting进行配置。
2.4单机运行测试脚本
经过以上的各个步骤后,脚本就可以运行了。
运行脚本可以通过菜单或者工具栏来操作。
执行“运行”命令后,VuGen先编译脚本,检查是否有语法等错误。
如果有错误,VuGen将会提示错误。
双击错误提示,VuGen能够定位到出现错误的那一行。
为了验证脚本的正确性,我们还可以调试脚本,比如在脚本中加断点等,操作和在VC中完全一样。
如果编译通过,就会开始运行。
然后会出现运行结果。
3创建运行场景
运行场景描述在测试活动中发生的各种事件。
一个运行场景包括一个运行虚拟用户活动的LoadGenerator机器列表,一个测试脚本的列表以及大量的虚拟用户和虚拟用户组。
创建运行场景使用Controller。
在开始菜单中,启动Controller程序,出现“NewScenario”窗口。
如果没有出现,可以在菜单或者工具栏中点击“New”。
3.1选择场景类型为ManualScenario
3.1.1选择VuserGroups
把脚本添加到场景操作很简单。
如果在已经打开的场景中,添加脚本
3.1.2添加LoadGeneratorMachines
点右边的“Generators”按钮,出现LoadGenerators窗口
添加LoadGenerator后,执行“Connect”操作,使Status为Ready,表示该机器联接正常,如果为Failed,表示该机器不能联接,请检查原因。
可以把这个列表保存下来,执行菜单命令即可。
3.1.3添加虚拟用户
首先设置虚拟用户总数。
点右边的“VUsers”按钮即可设置,该虚拟用户将在那个LoadGenerators上运行。
3.1.4设置Schedule
这里的设置是非常重要的,也是三种场景类型最重要的区别之处。
点EditSchedule按钮,即可进入Schedule设置窗口。
3.1.6设置结果文件保存路径
通过菜单操作
调出结果文件的保存路径
4运行测试
一切配置妥当,开始运行测试。
5监视场景
在运行过程中,可以监视各个服务器的运行情况(DataBaseServer、WebServer等)。
监视场景通过添加性能计数器来实现。
这一章非常的重要,确定系统瓶颈全靠它了。
下面重点讲讲需要添加那些计数器,以及那些计数器代表什么意思。
由于Win2000Professional、Server以及AdvancedServer提供的计数器不完全相同,这里我们讨论将以Server为基准。
监视场景需要在Run视图中设置然后,出现添加计数器的对话框其他的操作就和控制面板“性能”中添加性能计数器的操作一样。
6分析测试结果
所有前面的准备都是为了这一步。
我们需要分析大量的图表,生成各种不同的报告,最后会得出结论。
Q1事务响应时间是否在可接受的时间内?
哪个事务用的时间最长?
看TransactionResponseTime图,可以判断每个事务完成用的时间,从而可以判断出那个事务用的时间最长,那些事务用的时间超出预定的可接受时间。
下图可以看出,随着用户数的不断增加,login事务的响应时间增长的最快!
Q2网络带宽是否足够?
“Throughput”图显示在场景运行期间的每一秒钟,从WebServer上接受到的数据量的值。
拿这个值和网络带宽比较,可以确定目前的网络带宽是否是瓶颈。
如果该图的曲线随着用户数的增加,没有随着增加,而是呈比较平的直线,说明目前的网络速度不能够满足目前的系统流量。
Q3硬件和操作系统能否处理高负载?
“WindowsResources”图实时地显示了WebServer系统资源的使用情况。
利用该图提供的数据,可以把瓶颈定位到特定机器的某个部件。
7利用Analysis分析结果
场景运行结束后,需要使用Analysis组件分析结果。
Analysis组件可以在“开始程序”菜单中启动,也可以在Controller中启动。
7.1分析事务的响应时间
第一步,看“TransactionPerformanceSummary”图,确认那个事务的响应时间比较大,超出了我们的标准。
然后我们再看“AverageTransactionResponseTime”,观察login在整个场景运行中每一秒的情况。
从图中可以看出,login事务的响应时间并不是一直都比较高,只是随着用户数的增加,响应时间才明显增加的。
为了定位问题,明白为什么login事务的响应时间比较长,现在我们要分解login事务,分析该页面上每一个元素的性能。
在上图中,选择要分解的事务曲线,然后点鼠标右键,选择“WebPageBreakdownforlogin”
7.2分解页面
通过分解页面可以得到:
比较大的响应时间到底是页面的哪个组件引起的?
问题出在服务器上还是网络传输上。
这里为了解说各个时间(比如:
DNS解析时间、连接时间、接受时间等)下面简单说一下浏览器从发送一个请求到最后显示的全过程。
1.浏览器向WebServer发送请求,一般情况下,该请求首先发送到DNSServer把DNS名字解析成IP地址。
解析的过程的时间就是
。
这个度量时间可以确定DNS服务器或者DNS服务器的配置是否有问题。
如果DNSServer运行情况比较好,该值会比较小。
2.解析出We
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- 软测
![提示](https://static.bingdoc.com/images/bang_tan.gif)