测试用例撰写练习题汇总

测试用例撰写练习题汇总
测试用例撰写练习题汇总

1.计算器测试用例

2.自动取款机取款测试用例

此用例完成用户利用自动取款机取款的全部流程,分为以下流程:插卡,输入密码,选择金额,取款,取卡等操作。

事件流:

该用例在用户插卡之后启动

1. 系统提示用户插卡;

2. 提示客户输入密码信息;

3. 密码输入完毕后,客户选择“确认”,向系统提交信息;

4. 系统验证客户输入的密码信息,确认正确后,进入选择系统主界面;

5. 用户选择取款选项;

6. 系统进入取款金额界面并提示用户输入金额;

7. 系统验证可以取款并输出钱款;

8. 系统提示用户取卡,操作完成。

基本流:

用户取款。

备选流:

1.用户密码错误

2.取款金额不符合要求。

前置条件:

用户必须插入正确的银行卡才能开始执行用例。

后置条件:

如果系统确认用户信息正确,成功登陆,则系统启动主界面,等待用户发送消息,进行查询和取款等操作。

事件流系统用户

1 系统提示用户插卡插入银行卡

2 提示客户输入密码信息输入密码

3 如果密码错误,提示密码不正确,并返回到2

4 如果密码正确,转入主界面

5 提示用户选择选项选择取款选项

6 系统进入取款金额界面并提示用户输入金额输入取款金额

7 如果金额符合则输入钱款

8 如果金额小于余额则提示取款失败并返回7

9 如果金额不是整百则提示不符合规范,取款失败并返回7。

10 提示用户取款取出钱款

11 提示用户取卡取出银行卡

测试用例:

事件用户操作覆盖等价类系统反应

1 插入正确银行卡功能测试提示输入密码

2 密码正确功能测试进入主界面,提示用户选择

3 密码不正确功能测试提示密码错误重新输入

4 输入金额<余额功能检查提示用户金额不足,重新输入或取卡

5 输入金额为150 功能检查提示用户取款金额不符和规范,重新输入或退出

6 输入正确金额功能检查输出钱款

7 用户未按时取款错误处理自动收回钱款

8 用户未按时取卡错误处理自动吞卡

9 用户按时取卡功能测试返回到主页面

3.实例:测试案例是以一个B/S结构的登录功能点位被测对象, 该测试用例为黑盒测试用例。假设用户使用的浏览器为IE6.0 SP4。

功能描述如下:

1). 用户在地址栏输入相应地址,要求显示登录界面;

2). 输入用户名和密码,登录,系统自动校验,并给出相应提示信息;

3). 如果用户名或者密码任一信息未输入,登录后系统给出相应提示信息;

4). 连续3次未通过验证时,自动关闭IE。

登录界面测试用例

功能测试:硬度:是否达到设计标准

装载能力:在杯子内分别装入少量的、半杯的、满杯的,看其装载量是否达到设计标准装载种类:1 开水(是否产生异味);2.温水; 3 冷水;4 冰水; 5 咖啡…

界面测试(GUI测试):

1 看其形状、大小设计是否适合人方便拿起;

2 外观是否吸引人(广告嘛),赏心悦目;

3 带广告的图案沾水后是否掉色、模糊。

易用性测试:

1 看其形状、大小设计是否适合人方便拿起;

2 残疾人士用此杯去喝水的容易程度

3杯子设计是否上大下小,在运输过程中可以套在一起有效利用空间,在使用时也容易拿开

稳定性测试( 24*7测试):装入液体后记录其多久以后漏水

安全性测试:杯子所用的材料(包括纸基、涂层和广告颜料)是否符合食品卫生标准,在内外温度等环境因素下是否会与所盛各种饮料反应,而产生对人体有害的物质

本地化测试:为国际化和本地化的需要,广告图案和文字是否在**、宗教和文化方面具有广泛的适用性

对需求设计的测试:“如果是一次性杯子,能否标示已使用(比如变色)”和“杯子是否有使用者标贴(多人使用时防止混淆)”

5.逻辑覆盖是通过对程序逻辑结构的遍历实现程序的覆盖,是设计白盒测试用例的主要方法之一。以下代码由C语言书写,请按要求回答问题。

void cal( int n )

{

int g, s, b, q;

if ( ( n > 1000 ) && ( n < 2000 ) )

{

g = n % 10;

s = n % 100 / 10;

b = n / 100 % 10;

q = n / 1000;

if( ( q + g ) == ( s + b ) )

{

printf("%-5d", n);

}

}

printf("\n");

return;

}

[问题1](3分)

请找出程序中所有的逻辑判断语句。

[问题2](4分)

请分析并给出分别满足100%DC(判定覆盖)和100%CC(条件覆盖)时所需的逻辑条件。

[问题3](3分)

假设n的取值范围是0 < n < 3000,请用逻辑覆盖法为n的取值设计测试用例,使用例集满足基本路径覆盖标准。

6.输入三个数a、b、c分别作为三边的边长构成三角形。通过程序判定所构成的三角形是一

般三角形、等腰三角形还是等边三角形时。用等价类划分方法为该程序设计测试用例。

A.三角形等价类列表

判定类型有效等价类无效等价类

一般三角形((a>0) Λ(b>0) Λ(c>0))Λ(a<=0 V b<=0 V c<=0) Λ

(((a+b)>c) V ((a+c)>b) V ((b+c)>a)) (1) (((a+b)<=c) V ((a+c)<=b) V ((b+c)<=a)) (2) 等腰三角形(1) Λ (a=b V a=c V b=c)(3) (2) V (a!=b Λ b!=c Λ a!=c)(4) 等边三角形(1) Λ (a=b=c )(5) (2) V (a!=b!=c) (6)

根据上表组成的测试用例:

三角形等价类测试用例

ID 输入数据覆盖测试用例输出结果

a b c

1 3 4 5 (1) 一般三角形

2 0 4 5 (2) 非(一般)三角形

3 3 0 5 (2)

4 3 4 0 (2)

5 1 4 5 (2)

6 3 8 5 (2)

7 3 2 1 (2)

8 3 3 5 (3) 等腰三角形

9 3 4 3

10 3 4 4

11 3 4 9 (4) 非等腰三角形

12 3 3 3 (5) 等边三角形

13 -1 0 1 (6) 非等边三角形

三角形程序的测试用例:

序号测试内容测试数据预期结果

1 等边5,5,5 4,5,5 等边

2 等腰4,4,5 5,4,4 等腰

3 任意3,4,5 任意

4 非三角形9,4,4 4,9,4 4,4,9 No

5 退化三角形8,4,4 4,8,4 4,4,8 No

6 零数据0,4,5 4,0,5 4,5,0 No

7 零数据0,0,0 No

8 负数据-3,4,5 3,-4,5 3,4-5 运行出错

9 负数据-3,-4,-5 运行出错

10 遗漏数据3,4 运行出错

11 非整数 3.3,4,5 运行出错

12 非数字符A,4,5 (类型不符)

B.程序规定;输入三个整数作为三边的边长构成三角形。当此三角形为一般三角形、等腰三角形、等边三角形时,分别作计算。用等价类划分方法为该程序进行测试用例设计。

解:设a、b、c代表三角形的三条边。

1)分析题目中给出的和隐含的对输入条件的要求:

a) 整数

b) 3个数

c) 非零数

d) 正数

e) 两边之和大于第三边

f) 等腰

g) 等边

2)列出等价类表并编号

3)列出覆盖上述等价类的测试用例,如下表

7.一道笔试题测试notepad的文件保存功能,就是file/save弹出对话框的功能,从那几个方面写测试用例

8.针对以下问题:某一种8位计算机,其十六进制常数的定义是以0x或0X开头的十六进制整数,其取值范围为-7f~7f(不区分大小写字母),如0x13、0x6A、-0x3c。请采用等价类划分的方法设计测试用例。

用例1:0x7F,覆盖等价类(1)(4)(6)(8)

用例2:-0Xb,覆盖等价类(1)(4)(6)(8)

用例3:0X0,覆盖等价类(1)(4)(6)(8)

用例4:0x,覆盖等价类(1)(7)

用例5:A7,覆盖等价类(2)

用例6:-1A,覆盖等价类(3)

用例7:0X8h,覆盖等价类(1)(5)

用例8:0x80,覆盖等价类(1)(4)(10)

用例9:-0XaB,覆盖等价类(1)(4)(9)

2006年上半年软件评测师试题及答案(下)

试题一(15分)

阅读下列说明,回答问题1至问题3,将解答填入答题纸的对应栏内。

[说明]

基本路径法设计出的测试用例能够保证在测试中程序的每一条可执行语句至少执行一次。以下代码由C什语言书写,请按要求回答问题。

void ReadPara( CString temp)

{

if ( temp == ">=")

m_oper.SetCurSel(0);

else

{

if (temp == ">")

m_oper.SetCurSel(1);

else

{

if ( temp == "==")

m_oper.SetCurSel(2);

else

{

if( temp == "<=")

m_oper.SetCurSel(3);

else

{

if ( temp == "<")

m_oper.SetCurSel(4);

else

m_oper.SetCurSel(5);

}

}

}

}

return;

}

[问题1](6分)

请画出以上代码的控制流图。

[问题2](3分)

请计算上述控制流图的环路复杂度V(G)。

[问题1](3分)

简述软件系统交易执行响应时间(“RT”,ResponseTime)的概念。

[问题2](3分)

分析案例1的测试结果数据;指出满足系统的性能指标需求时,系统能够承受的并发用户登录的最大数量,并说明理由。

[问题3](4分)

分析案例1的测试结果数据,说明服务器CPU资源使用率是否合理,以及带宽是否是系统瓶颈,并陈述理由。

[问题4](4分)

分析案例2的测试结果数据,说明服务器CPU资源使用率是否合理,以及增加带宽是否是提高系统性能的有效方法,并陈述理由。

[问题5](6分)

论述CPU使用率成为系统性能瓶颈时,如何制定解决方案?论述网络带宽成为系统性能瓶颈时,如何制定解决方案?

[问题3](3分)

假如每升油4元人民币,用户的账户金额为1000元,加油机内油量足够,那么在A4输入油量的过程中,请运用边界值分析方法为A4选取合适的输入数据(即油量,单位;升)。

[问题4](3分)

试题二

[问题1]

响应时间是系统完成事务执行准备后所采集的时间戳和系统完成待执行事务后所采集的时间戳之间的时间间隔,是衡量特定类型应用事务性能的重要指标,标志了用户执行一项操作大致需要多长时间。[问题2]

系统能够承受的并发用户登录的最大数量为50

题中指出"通常情况下,交易操作合理的响应时间为5秒以内"。此案例中,登录响应时间随虚拟并发用户数增加而增长。在50个虚拟并发用户的负载下,登录响应时间达到5秒(注意图形中响应时间指标的比例为10)。当负载超过50个虚拟并发用户,响应时间超过5秒。所以此案例中最合理的并发用户数为50。

[问题3]

服务器CPU资源使用率是合理的。

2M带宽是系统处理业务的瓶颈。

理由是对比"4M带宽登录"案例,4M带宽下,系统每秒处理完成的登录个数固定在13.5个左右,登录响应时间随虚拟用户数增加而增长。在60个虚拟用户的压力下,登录响应时间在4.2秒左右(注意图形中响应时间指标的比例为10)。在80个虚拟用户的压力下,登录响应时间在5.8秒左右,所以在合理登录响应时间(5秒)内预计同时登录用户数是70左右。服务器CPU使用率成为系统处理的瓶颈。说明随着带宽的提高,系统的处理能力进一步提高,同时高吞吐量造成了系统资源的紧张,带来了新的系统性能瓶颈。

[问题4]

服务器CPU资源使用率不合理,其平均值超过85%。

4M带宽的网络测试环境与2M带宽的网络测试环境相比,带来了新的系统瓶颈(CPU资源使用率平均值超过85%),所以增加带宽不是提高系统性能的有效方法。在此基础上,继续提高带宽,系统的处理能力将进一步提高,高的处理能力会使服务器的资源瓶颈进一步加重,带来更加严重的后果。

[问题5]

当CPU资源使用成为系统瓶颈时的解决方案可以概括为:

1. 增加CPU的个数;

2. 提高CPU的主频;

3. 将web服务器与数据库服务器分开部署;

[问题3]

1. 0升

2. 250升

3. 251升

[问题4]

DDP=Bugstester(Bugstester+ Bugscustomer)=(20+100)(20+100+30)=80%(0.8)

其中,Bugstester为测试者发现的错误数;

Bugscustomer为客户发现并反馈技术支持人员进行修复的错误数。

正交法设计测试用例实例分析

目的

本文以一个转帐功能为例介绍了测试例估计和设计的方法。

例子说明

进行测试例估计和设计的依据是需求规格说明书和设计说明书。一般的步骤如下:

1. 分析影响测试对象的要素;

2. 为每个要素确定取值;

3. 使用标准直角矩阵生成初始测试例集;

4. 在初始测试例集上依据对测试对象的分析来进行测试例集的修改;

5. 把测试例转化为可以测试执行使用的测试例。

例如在对某一应用系统的转账功能进行测试过程中,利用正交矩阵生成测试用例步骤如下:1.约束条件分析:P5L4

图表1

注:P表示影响测试规格要素个数;L表示影响测试规格要素的最大取值个数在本例中P=5,L=4

2.生成标准测试例集矩阵:

根据以上约束条件分析得出的P、L值,对应直角矩阵测试例生成工具得出以下测试例矩阵

图表2

说明:首先分析第一个要素“用户权限”,其取值只有2个,即“用户权限”的值只有可能是1或2,这样3和4的取值所在的情况就可以删除,之后在考虑“用户权限”的2个取值的具体情况,一个是用户权限有效(1),另一个是用户权限无效(2),当取值为有效时,所有的情况都可以保留,当取值为无效时,只保留一个就可以了(一旦最高优先级的条件不能满足,那么其他低优先级的条件就不需要考虑),然后用同样的方法判断其他的条件,最后等到一个临时结果(编号1,2,5),这时可以从最后一个要素开始分析,要使最后一个要素有意义那前4个要素必须都成立(值为1),而要素“转帐方式”有4种取值而现在的结果中有效情况只有一种(No1),所以可以增加3种(即,见表4中No2,3,4)。现在考虑要素“转帐金额”,可以增加在前3个要素都成立时,“转帐金额”取值为大于用户实际金额的情况(即,见表4中No5)。接着考虑要素“帐号”,可以增加在前2个要素都成立时,“帐号”取值为帐号无效的情况(即,见表4中No6)。接着考虑要素“票据号”,可以增加在第一个要素都成立时,“票据号”取值为票据号无效的情况(即,见表4中No7)。这样就补齐了所有的情况,从而得到最终结果(表5)

3.筛选测试矩阵:

注:由于测试例矩阵是根据影响要素条件最大取值个数得出,因此不是所有影响要素的取值个数都与最大值相等,因此应将矩阵中不存在的测试例条件删除。

图表3

4.修改测试矩阵:

注:由于测试例矩阵是根据影响要素条件最大取值个数得出的,因此在删除测试例时应将因此导致测试矩阵范围不完整的测试例补充完整。

说明:编号5,6,7,8的情况中有“-”,其意义为“取任何值都不影响结果”

游戏测试用例编写方法浅谈87

游戏软件功能测试——测试用例的编写方法浅谈 一、游戏软件与通用软件的区别 a)通用软件的需求明确,游戏软件需求理想化 i.通用软件中用户每步操作的预期结果都是明确且有规范可参考的,而网游中并 不是所有的需求都有一个明确的预期结果,拿技能平衡性来说,我们所谓的平 衡也只是相对的平衡,而非绝对的平衡。没有什么明确的参考参数。只能根据 以往游戏的经验获得一个感知的结果。 ii.网络游戏中的某些功能是有预期结果可参考的。例如组队、交易,而另外一些带有策划创意的功能,却是根据策划个人的理解,来确定其预期结果的。人的 思考力都是有限的,所以不能保证在他的创意中会考虑到各种各样复杂的细 节。也不能够保证这个创意就可以完全被用户所接受。 当你作为游戏测试人员时,很多时候你需要做的不仅仅是验证功能。也需要帮助开发者和用户找到一个互相容忍的平衡点。游戏软件的测试员带有对策划需求的怀疑,力求通过自己的努力在玩家和开发者之间将可能产生的矛盾减小。 b)通用软件开发过程中需求变更少,游戏软件开发过程中需求便更快 i.通用软件的使用人群和软件的功能针对性,决定软件从开始制作就很少再有新 的需求变更。而游戏软件,为了满足玩家对游戏的认可度,策划需要不断的揣 摩玩家的喜好,进行游戏功能的改进。加之网游制作本身就是一个庞大复杂的 工程,开发者不可能做到在开发的前期,就对游戏架构及扩展性做出最好的评 估。所以导致为了满足用户的需求而不断的进行一些基础架构的修改,基础架 构的修改必然导致某些功能的颠覆。所以就出现了,游戏开发过程中的一个恶 性循环,当基础架构修改到满意了,玩家的需求又有了新的变化,随之而来的 又要进行新的调整,再进行新的修改。最终导致了游戏软件的开发周期不断加 长。任何一个有经验的团队,对于每一个影响基础的改动都应该做出正确的评 估。 二、网游有哪些测试内容 a)性能 i.客户端性能 ii.服务器端性能 1.服务器 2.数据库 iii.网络 b)功能 i.从运行完game.exe打开游戏界面后可进行的各种操作、玩法 ii.界面 iii.音乐 c)自动化 i.测试工作组织实施中需要的工具、软件、平台的开发 ii.自动化的回归测试作用:游戏中基础的、变动不大的、出错率高的、可进行checklist重复测试的功能、性能等自动化是一个好方法 iii.任何时候自动化都取代不了人脑,它只是将一些重复性的劳动从我们测试人员身上去掉,让我们有更多的时间做更有意义的事情,如果你觉得你做一件事情 是重复的,且有规律可行的,不防考虑自动化 三、游戏中针对功能性测试测试用例编写浅谈

软件测试-白盒测试用例练习题,DOC

白盒测试用例练习 一、为以下所示的程序段设计一组测试用例,要求分别满足语句覆盖、判定覆盖、条件覆盖、判定/条件覆盖、组合覆盖和路径覆盖,并画出相应的程序流程图。 voidDoWork(intx,inty,intz) { intk=0,j=0; if((x>3)&&(z<10)) {k=x*y-1; j=sqrt(k);//语句块1 } if((x==4)||(y>5)) { j=x*y+10; }//语句块2 j=j%3;//语句块3 } a Y c N b e Y N d 由这个流程图可以看出,该程序模块有4条不同的路径: P1:(a-c-e)P2:(a-c-d) P3:(a-b-e)P4:(a-b-d) 将里面的判定条件和过程记录如下: 判定条件M ={x>3andz<10} 判定条件N={x=4ory>5} 1、 语句覆盖 测试用例输入 输出 判定M 的取值 判定N 的取值 覆盖路径 x=4,z=5,y=8 k=31,j=0 T T P1(a-c-e) 2、判定覆盖 x>3 and z<10 x=4 or y>5 j=j%3 j=x*y+10 k=x*y-1 j=sqrt(k ) k=0 j=0

p1和p4可以作为测试用例,其中p1作为取真的路径,p4作为取反的路径。 测试用例输入输出判定M的取 值 判定N的取值覆盖路径 x=4,z=5,y=8 k=31,j=0 T T P1(a-c-e) x=2,z=11,y= 5 k=0,j=0 F F P4(a-b-d) 也可以让测试用例测试路径P2和P3。相应的两组输入数据如下: 测试用例输入输出判定M的取 值 判定N的取 值 覆盖路径 x=5,z=5,y=4 k=19,j=sqrt(1 9)%3 T F P2(a-c-d) x=4,z=11,y= 6 k=0,j=1 F T P3(a-b-e) 3、条件覆盖 对于M:x>3取真时T1,取假时F1; z<10取真时T2,取假时F2; 对于N:x=4取真时T3,取假时F3; y>5取真时T4,取假时F4。 条件:x>3,z<10,x=4,y>5 条件:x<=3,z>=10,x!=4,y<=5 根据条件覆盖的基本思路,和这8个条件取值,组合测试用例如表所示: 测试用例输 入 输出取值条件具体取值条件覆盖路径 x=4,z=5,y=8 k=31,j= 0 T1,T2,T3, T4 x>3,z<10,x=4,y>5 P1(a-c-e) x=3,z=11,y= 5 k=0,j=0 F1,F2,F3, F4 x<=3,z>=10,x!=4, y<=5 P4(a-b-d) 4、判定/条件覆盖 测试用例输 入 输出取值条件具体取值条件覆盖路径 x=4,z=5,y=8 k=31,j= 0 T1,T2,T3, T4 x>3,z<10,x=4,y>5 P1(a-c-e) x=3,z=11,y= 5 k=0,j=0 F1,F2,F3, F4 x<=3,z>=10,x!=4, y<=5 P4(a-b-d) 5、组合覆盖 条件组合 1)x>3,z<102)x>3,z>=10 3)x<=3,z<104)x<=3,z>=10 5)x=4,y>56)x=4,y<=5 7)x!=4,y>58)x!=4,y<=5 测试用例输入输出覆盖条件取值覆盖条件组覆盖路径

功能测试用例说明书

功能测试用例说明书 功能测试用例说明书 作者 发布范围HPTCA-MS 整个生命周期 版本V1.0 发布日期2008-6-12 修订历史记录

发布日期版本说明作者2008-6-12 1.O考勤系统测试用例 目录 1.引言 4 1.1 编写的目的4 1.2 编写范围4 1.3 参考文献4 1.4 术语与缩略语4 2.接口测试用例 4 2.1被测试对象的介绍4 2.2测试范围与目的 4 2.3测试环境与测试辅助工具的描述4 2.4测试驱动程序的设计4 2.5接口测试用例 5 3.功能测试用例 5 3.1被测试对象的介绍5 3.2测试范围与目的 5 3.3测试环境与测试辅助工具的描述5 3.4测试驱动程序的设计5 3.5功能测试用例 5 4.评审意见 6 5.其它需要说明的问题: 6 需求说明书

1.引言 1.1编写的目的 本手册是基于项目已经基本完成,作为项目测试人员对项目功能进行测试。测试各项功能是否达标! 1.2编写范围 功能测试用例编号名称责任人备注AT001登录(包括身份验证,页面跳转)王挺 AT002考勤基本操作(包括上班,下班,请假申请,出差申请)刘红杰 AT003员工考勤信息管理(包括修改密码,段时间考勤信息查询)毛凌波 AT004消息服务(包括收发短信息,网站留言)夏天梁 AT005员工个人信息管理(包括员工信息查询,添加员工,生成富强 AT006Excel 表格) 手动考勤(包括手动上下班,手动请假,手动出差)张耿耿 AT007节假日管理(包括添加节假日,修改节假日)王杰 AT008申请管理(包括请假申请,出差申请)薛纪表 AT009人性化和网站安全周碧文 1.3参考文献 编号资料名称简介作者日期出版单位 01《数据库设计说明书》数据库设计资料薛纪表2008.05.10软件( 4)班 2 组02《需求规格说明书》需求规格资料周碧文2008.05.02软件( 4)班 2 组03《概要设计说明书》概要设计资料王杰2008.05.23软件( 4)班 2 组04《详细设计说明书》详细设计资料周碧文软件( 4)班 2 组https://www.360docs.net/doc/199307765.html,技术支持,解答/// 1.4术语与缩略语 术语、缩略语 ST ? 解释系统测试, System Test ?

软件测试-白盒测试用例练习题

软件测试-白盒测试用例练 习题 本页仅作为文档页封面,使用时可以删除 This document is for reference only-rar21year.March

白盒测试用例练习 一、为以下所示的程序段设计一组测试用例,要求分别满足语句覆盖、判定覆盖、条件覆盖、判定/条件覆盖、组合覆盖和路径覆盖,并画出相应的程序流程图。 void DoWork (int x,int y,int z) { int k=0,j=0; if ( (x>3)&&(z<10) ) { k=x*y-1; j=sqrt(k); //语句块1 } if ( (x==4)||(y>5) ) { j=x*y+10; } //语句块2 j=j%3; //语句块3 }

由这个流程图可以看出,该程序模块有4条不同的路径: P1:(a-c-e) P2:(a-c-d) P3:(a-b-e) P4:(a-b-d) 将里面的判定条件和过程记录如下: 判定条件M={x>3 and z<10} 判定条件N={x=4 or y>5} 1、语句覆盖 2、判定覆盖 p1和p4可以作为测试用例,其中p1作为取真的路径,p4作为取反的路径。 也可以让测试用例测试路径P2和P3。相应的两组输入数据如下: 3、条件覆盖 对于M:x>3取真时T1,取假时F1; z<10取真时T2,取假时F2; 对于N:x=4取真时T3,取假时F3; y>5取真时T4,取假时F4。

条件:x>3,z<10,x=4,y>5 条件:x<=3,z>=10,x!=4,y<=5 根据条件覆盖的基本思路,和这8个条件取值,组合测试用例如表所示: 4、判定/条件覆盖 5、组合覆盖 条件组合 1)x>3,z<10 2)x>3,z>=10 3) x<=3,z<10 4)x<=3,z>=10 5)x=4,y>5 6)x=4,y<=5 7)x!=4,y>5 8)x!=4,y<=5

测试用例设计方法

测试用例设计方法 一、等价类划分 等价类划分主要适用于单个输入条件,输入为数值型的情况,如果输入规定了输入区间,可划分出一个有效等价类,两个无效等价类;如果输入只规定了输入范围,可划分出一个有效等价类,一个无效等价类。 二、边界值 边界值方法也是适用于单个输入条件的情况,输入类型可以数值、字符等,要测试的边界包括上点、下点、离点。 三、错误推测法 错误推测法主要是测试设计人员的测试经验相关,测试经验不同,设计出来的测试用例也区别很大。 四、因果图法 因果图方法考虑输入的组合,特别适用于多个输入条件相关有关联又相互约束的情况。 设计步骤: 1)罗列出输入与输出; 2)根据输入与输出画出因果图; 3)标出约束跟限制; 4)把因果图转化成判定表; 5)根据判定表的每一列设计测试用例。 五、判定表驱动法 判定表适合于解决多个逻辑条件的组合。将各种逻辑的组合罗列出来,避免遗漏。不能表达重复的操作。 判定表包括条件桩、条件项、动作桩、动作项。 条件桩:列出所有条件,次序无关; 条件项:列出所对应条件的所有可能情况下的取值,如Y或N; 动作桩:列出可能采取的操作,次序无关; 动作项:列出条件项各种取值情况下采取的操作,如X表示。 设计步骤: 1)确定规则个数,条件及各条件取值的组合; 2)列出条件桩、动作桩; 3)列出条件项;

4)列出动作项; 5)初始化判定表; 6)规则简化、合并。 实践方法: Step1:确定规则的个数(假如有n个条件,每个条件有两个取值(0,1),固有2的n 次方种规则); Step2:列出所有的条件桩和动作桩; Step3:填入条件项(如Y或N); Step4:填入动作项(X); Step5:简化合并相似规则(整列) 合并原则一般为:1、以相同动作项出发;2、相同的条件项直接合并;3、相反的条件忽略(注:此处为一般情况,需结合业务再次明确其必要性,否则不予合并) 判定表的优点和缺点: 1)优点:它能把复杂的问题按各种情况一一列举出来,简明而易于理解,也可避免遗漏; 2)缺点:不能表达重复执行的动作,例如循环结构。 选择黑盒测试用例设计方法的综合策略 小贝书屋 | 2016-03-16 22:00 具体的黑盒测试用例设计方法包括等价类划分法、边界值分析法、错误推测法、因果图法、判定表驱动法、正交试验设计法、功能图法、场景法等。这些方法都是比较实用的,但在具体工作中要采用什么方法,需要针对项目的特点加以适当的选择。在实际高水平的测试中,往往需要综合使用各种方法以有效的提高测试效率和测试覆盖度。 以下介绍的是各种测试用例设计方法选择的综合策略,供大家参考。 (1)首先进行等价类划分,包括输入条件和输出条件的等价划分,将无限测试变成有限测试,这是减少工作量和提高测试效率最有效的方法。 (2)在任何情况下,都必须使用边界值分析法。经验表明,用这种方法设计出的测试用例发现程序错误的的能力最强。 (3)可以使用错误推测法追加一些测试用例,这需要依靠测试工程师的智慧和经验。 (4)对照程序逻辑,检查已设计出的测试用例的逻辑覆盖程度。如果没有达到要求的覆盖标准,应当再补充足够的测试用例。 (5)如果程序的功能说明中含有输入条件的组合情况,则一开始就可以选用因果图法和判定表驱动法。(6)对于参数配置类的软件,要用正交试验法选择较少的组合方式达到最佳效果。 (7)利用功能图法,我们可以通过不同时期条件的有效性设计不同的测试数据。 (8)对于业务流清晰的系统,可以利用场景法贯穿整个测试案例设计过程,在案例中综合使用各种测试方法。

白盒测试用例练习题(1)

白盒测试用例练习 1.为以下所示的程序段设计一组测试用例,要求分别满足语句覆盖、判定覆盖、条件覆盖、判定/条件覆盖、组合覆盖和路径覆盖,并画出相应的程序流程图。 void DoWork (int x,int y,int z) { int k=0,j=0; if ( (x>3)&&(z<10) ) { k=x*y-1; j=sqrt(k); //语句块1 } if ( (x==4)||(y>5) ) { j=x*y+10; } //语句块2 j=j%3; //语句块3 } a Y c N b e Y N d x>3 and z<10 x=4 or y>5 j=j%3 j=x*y+10 k=x*y-1 j=sqrt(k) k=0 j=0

由这个流程图可以看出,该程序模块有4条不同的路径: P1:(a-c-e) P2:(a-c-d) P3:(a-b-e) P4:(a-b-d) 将里面的判定条件和过程记录如下: 判定条件M={x>3 and z<10} 判定条件N={x=4 or y>5} 1、语句覆盖 测试用例输入输出判定M的取值判定N的取值覆盖路径x=4,z=5,y=8 k=31,j=0 T T P1(a-c-e) 2、判定覆盖 p1和p4可以作为测试用例,其中p1作为取真的路径,p4作为取反的路径。 测试用例输入输出判定M的取值判定N的取值覆盖路径x=4,z=5,y=8 k=31,j=0 T T P1(a-c-e) x=2,z=11,y=5 k=0,j=0 F F P4(a-b-d) 也可以让测试用例测试路径P2和P3。相应的两组输入数据如下: 测试用例输入输出判定M的取值判定N的取值覆盖路径x=5,z=5,y=4 k=19,j=sqrt(19)%3 T F P2(a-c-d) x=4,z=11,y=6 k=0,j=1 F T P3(a-b-e) 3、条件覆盖 对于M:x>3取真时T1,取假时F1; z<10取真时T2,取假时F2; 对于N:x=4取真时T3,取假时F3; y>5取真时T4,取假时F4。 条件:x>3,z<10,x=4,y>5 条件:x<=3,z>=10,x!=4,y<=5 根据条件覆盖的基本思路,和这8个条件取值,组合测试用例如表所示: 测试用例输入输出取值条件具体取值条件覆盖路径x=4,z=5,y=8 k=31, j=0 T1,T2,T3,T4 x>3,z<10,x=4,y>5 P1(a-c-e) x=3,z=11,y=5 k=0, j=0 F1,F2,F3,F4 x<=3,z>=10,x!=4,y<=5 P4(a-b-d) 4、判定/条件覆盖 测试用例输入输出取值条件具体取值条件覆盖路径x=4,z=5,y=8 k=31, j=0 T1,T2,T3,T4 x>3,z<10,x=4,y>5 P1(a-c-e) x=3,z=11,y=5 k=0, j=0 F1,F2,F3,F4 x<=3,z>=10,x!=4,y<=5 P4(a-b-d)

测试用例规范说明

测试用例规范约定 一、用例设计书写的标准规范 1.用例标题 描述清楚该用例所要达到的测试目的,不是单纯的描述所在模块或; 正确示例: 未登录状态下发布动态能否成功 或 登录状态下只发布文字动态内容能否成功 2.前置条件 用例必须清晰地描述此用例所需的前提条件; 正确示例: 1、用户已登录云转诊APP; 2、用户已进入动态页面; 3.用例步骤 测试用例编写要步骤明确,输入输出要素(输入数据值)清晰,并且无疑义; 输入数据值:指当前用例输入值的具体范围及明确值; 正确示例: 1、点击动态下的(发动态)按钮 2、输入文字:我很享受音乐 3、点击(发送)按钮 4.预期结果 预期结果必须具有可判定性,即测试步骤执行后,结果是可判定的,每一个测试用例的步骤都应有相应的唯一的预期结果,预期结果中不能包含步骤; 正确示例: 发布动态成功,页面跳转至动态页面 错误示例: 1.云转诊APP成功打开 2.显示我的页面 3.打开编辑页面 4.弹出性别选择窗口 5.测试用例集 一条用例内多个用例步骤对应多个预期结果时,禁止使用编号内附加子级编号形式编写测试用例,需要单独表述。测试用例可以使用单条用例或测试用例集的方式编写,单条用例需要把同一情况下的测试用例整合在一条内编写,预期结果与操作步骤相互对应。测试用例集需要操作步骤与预期结果编号相对应,完整的表达操作与结果之间的关系

真实示例如下图所示: 二、用例设计书写的颗粒度描述 要求:验证一个功能点一条用例,没有重复、冗余的测试用例。 功能测试用例需要从用户层面来设计用户使用场景和使用流程。 1.冒烟测试 验证系统正向功能流程通畅及验证系统正向必填项(系统要求验证项)输入值、单选项、下拉框、按钮等符合系统要求; 2.功能测试 用例中需要合理的使用测试用例编写方法设计反向用例、容错性用例、三方交互用例等场景,以确保覆盖业务操作的基本路径和异常路径,以及对其他模块/功能的影响和必填项(系统要求验证项),保证达到系统规定; 3.UI测试 对系统UI页面进行检查,确保UI布局合理、文字统一、易用性(易操作、易理解和易学习)、友好性等达到系统要求(同一页面没有操作整体时,页面检查算一个功能点); 三、用例执行规范 1.出现非Pass的用例必须标记对应的状态,Fail的用例必须提交缺陷; 2.由于某个Bug缺少测试条件导致用例不能执行,标为Block添加备注信息; 3.功能模块没有设计好,或者不适用于本轮测试的用例,标为N/A加备注信息; 四、用例测试执行突发状况处理

软件测试练习2

一、判断题(每题2分,正确的“√”,错误的“╳”) 1.软件测试的目的是尽可能多的找出软件的缺陷。(√) 2.Beta 测试是验收测试的一种。(√) 3.验收测试是由最终用户来实施的。(╳) 4.项目立项前测试人员不需要提交任何工件。(√) 5.单元测试能发现约80%的软件缺陷。(√) 6.代码评审是检查源代码是否达到模块设计的要求。(╳) 7.自底向上集成需要测试员编写驱动程序。(√) 8.负载测试是验证要检验的系统的能力最高能达到什么程度。(╳) 9.测试人员要坚持原则,缺陷未修复完坚决不予通过。(╳) 10.代码评审员一般由测试员担任。(╳) 11.我们可以人为的使得软件不存在配置问题。(╳) 12.集成测试计划在需求分析阶段末提交。(╳) 13 、好的测试员不懈追求完美。(√) 14、测试程序仅仅按预期方式运行就行了。(╳) 15、不存在质量很高但可靠性很差的产品。(╳) 16、软件测试员可以对产品说明书进行白盒测试。(╳) 17、静态白盒测试可以找出遗漏之处和问题。(√) 18、总是首先设计白盒测试用例。(╳) 19、可以发布具有配置缺陷的软件产品。(√) 20、所有软件必须进行某种程度的兼容性测试。(√) 21、所有软件都有一个用户界面,因此必须测试易用性。(╳) 22、测试组负责软件质量。(╳) 二、简答题 1、什么是软件测试? 答:软件测试是为了发现错误而执行程序的过程。或者说,软件测试是根据软件开发各阶段的规格说明和程序的内部结构而精心设计一批测试用例(即输入数据及其预期的输出结果),并利用这些测试用例去运行程序,以发现程序错误的过程。 2、软件测试的目的? 答:测试的目的是想以最少的人力、物力和时间找出软件中潜在的各种错误和缺陷,通过修正种错误和缺陷提高软件质量,回避软件发布后由于潜在的软件缺陷和错误造成的隐患带来的商业风险。 3、白盒测试有哪几种方法? 答:白盒测试也称结构测试或逻辑驱动测试,它是知道产品内部工作过程,可通过测试来检测产品内部动作是否按照规格说明书的规定正常进行,按照程序内部的结构测试程序,检验程序中的每条通路是否都有能按预定要求正确工作,而不顾它的功能,白盒测试的主要方法有逻辑驱动、基路测试等,主要用于软件验证。“白盒”法全面了解程序内部逻辑结构、对所有逻辑路径进行测试。“白盒”法是穷举路径测试。

常见的测试用例设计方法都有哪些

常见的测试用例设计方法都有哪些 常见的测试用例设计方法都有哪些? 请分别以具体的例子来说明这些方 法在测试用例设计工作中的应用。 1. 等价类划分常见的软件测试面试题划分等价类: 等价类是指某个输入域的子集合.在该子集合中,各个输入数据对于揭露程序中的错误都是等效的.并 合理地假定:测试某等价类的代表值就等于对这一类其它值的测试.因此,可以把全部输入数据合理划分为若干等价类,在每一个等价类中取一个数据作为测试的输入条件,就可以用少量代表性的测试数据.取得较好的测试结果.等价类划分可有两种不同的情况:有效等价类和无效等价类. 2. 边界值分析法边界值分析方法是对等价类划 分方法的补充。测试工作经验告诉我,大量的错误是发生在输入或输出范围的边界上,而不是发生在输入

输出范围的内部.因此针对各种边界情况设计测试用例,可以查出更多的错误. 使用边界值分析方法设计测试用例,首先应确定边界情况.通常输入和输出等价类的边界,就是应着重测试的边界情况.应当选取正好等于,刚刚大于或刚刚小于边界的值作为测试数据,而不是选取等价类中的典型值或任意值作为测试数据. 3. 错误推测法基于经验和直觉推测程序中所有可能存在的各种错误, 从而有针对性的设计测试用例的方法. 错误推测方法的基本思想: 列举出程序中所有可能有的错误和容易发生错误的特殊情况根据他们选择测试用例. 例如, 在单元测试时曾列出的许多在模块中常见的错误. 以前产品测试中曾经发现的错误等, 这些就是经验的总结。还有, 输入数据和输出数据为0 的情况。输入表格为空格或输入表格只有一行. 这些都是容易发生错误的情况。可选择这些情况下的例子作为测试用例. 4. 因果图方法前面介绍的等价类划分方法和边界值分析方法,都是着重考虑输入条件,但未考虑输入条件之间的联系, 相互组合等. 考虑输入条件之间的相互组合,可能会产生一些新的情况. 但要检查

软件测试练习题及答案

一、判断 (01)测试是为了验证软件已正确地实现了用户的要求。错 (02)白盒测试仅与程序的内部结构有关,完全可以不考虑程序的功能要求。对 (03)白盒测试不仅与程序的内部结构有关,还要考虑程序的功能要求。错 (04)程序员兼任测试员可以提高工作效率。错 (05)黑盒测试的测试用例是根据应用程序的功能需求设计的。对 (06)当软件代码开发结束时,软件测试过程才开始。错 (07)据有关数据统计,代码中60%以上的缺陷可以通过代码审查发现出来。对(08)无效等价类是无效的输入数据构成的集合,因此无需考虑无效的等价类划分。错(09)软件本地化就是将一个软件产品按特定国家或语言市场的需要翻译过来。错(10)在压力测试中通常采用的是黑盒测试方法。对 (11)软件测试员无法对产品说明书进行白盒测试。对 (12)功能测试工具主要适合于回归测试。对 (13)测试人员说:“没有可运行的程序,我无法进行测试工作”。错 (14)自底向上集成需要测试员编写驱动程序。对 (15)测试是可以穷尽的。错 (16)自动化测试相比手工测试而言,能发现更多的错误。错 (17)软件测试自动化可以提高测试效率,可以代替手工测试。错 (18)语句覆盖法的基本思想是设计若干测试用例,运行被测程序,使程序中的每个可执行语句至少被执行一次。对 (19)Beta测试是验收测试的一种。对 (20)软件开发全过程的测试工作都可以实现自动化。错 (21)软件只要经过严格严谨的内部测试之后,可以做到没有缺陷。错 (22)结构性测试是根据软件的规格说明来设计测试用例。错 (23)软件测试工具可以代替软件测试员。错 (24)通过软件测试,可以证明程序的正确性。错 (25)在单元测试中,驱动程序模拟被测模块工作过程中所调用的下层模块。错(26)软件缺陷可能会被修复,可能会被保留或者标识出来。对 (27)测试用例是由测试输入数据和对应的实际输出结果这两部分组成。错(28)单元测试通常由开发人员进行。对 (29)现在人们普遍认为软件测试不应该贯穿整个软件生命周期,而应在编程完毕之后再进行,这样可以降低成本。错 (30)文档的错误不是软件缺陷。错 (31)Junit只是单元测试工具,并不能进行现回归测试。错 (32)判定表法是一种白盒测试方法。错 (33)白盒测试不考虑程序内部结构。错 (34)在单元测试中,桩程序模拟被测模块工作过程中所调用的下层模块。对(35)在测试中发现缺陷多的地方,还有更多的缺陷将会被发现。对

测试用例(新手必看)

测试用例 一、定义 测试用例(Test Case )是指对一项特定的软件产品进行测试任务的描述,体现测试方案、方法、技术和策略。内容包括测试目标、测试环境、输入数据、测试步骤、预期结果、测试脚本等,并形成文档。 二、测试用例的分类 根据测试过程中具体涉及到问题类型及测试需求,可将测试用例分为如下: ●功能性测试用例 ●界面测试用例:适用于所有测试阶段中的界面测试 ●数据处理测试用例:适用于所有测试阶段中的数据处理测试 ●操作流程测试用例:适用于所有流程性的测试 ●安装测试用例:适用于所有安装测试 三、测试用例管理 ●编写用例:测试工程师根据需求规约、概要设计、详细设计等文档编写测试用例。 ●用例评审:原则上用例象程序一样,要经过多次的修改才可以通过,实际工作中通常进行一次。 ●用例修改:评审结束后,您需要根据评审意见进行修改,修改后通常不再进行评审。 ●使用用例:执行测试用例,并记录到测试用例执行报告中。 ●用例升级/ 维护:随着软件产品不断修改、升级,对应的用例也需要升级维护。针对同一个项目,可以根据需求的变更不断进行维护;如果是产品,用例的维护更加重要,要达到用例和产品的版本一一对应。 四、测试用例的编制及使用 1 、设计测试用例 每个具体测试用例都将包括下列详细信息:编制人、审定人、编制日期、版本、用例类型、设计说明书编号、用例编号、用例名称、输入说明、期望结果(含判断标准)、环境要求、备注等。 测试用例 编制人 审定人 编制日期 版本 测试用例类型 设计说明书编号 测试用例编号 测试用例名称 输入说明(列出选用的输入项,覆盖正常、异常情况): 期望结果(逐条与输入项对应,列出预期输出): 环境要求(测试要求的软、硬件、网络要求): 备注: ●“测试用例名称”可以是不涉及到具体模块的功能描述,如“日期格式”,“非空检验”等。 ●“输入说明”是功能模块接受的数据或各种操作描述,如“输入非法的日期格式”等。 ●“期望结果”是模块接受输入后应有的正常输出描述,如“提示用户修改”等,期望结果应与输入说明一一对应。 ●测试用例用于指导执行操作,但某些意外操作也可导致程序错误,这些操作称为非预

用户名密码测试用例编写方法

用户名密码测试用例编 写方法 标准化管理处编码[BBX968T-XBB8968-NNJ668-MM9N]

别小看了这个用户名密码这么简单的输入框。可测试的内容还是很多的,并且引发的问题也有很多种类。下面就说一说他的测试方法。? 一、用户注册 只从用户名和密码角度写了几个要考虑的测试点,如果需求中明确规定了安全问题,Email,出生日期,地址,性别等等一系列的格式和字符要求,那就都要写用例测了~ 以等价类划分和边界值法来分析 1.填写符合要求的数据注册:用户名字和密码都为最大长度(边界值分析,取上点) 2.填写符合要求的数据注册:用户名字和密码都为最小长度(边界值分析,取上点) 3.填写符合要求的数据注册:用户名字和密码都是非最大和最小长度的数据(边界值分析,取内点)

4.必填项分别为空注册 5.用户名长度大于要求注册1位(边界值分析,取离点) 6.用户名长度小于要求注册1位(边界值分析,取离点) 7.密码长度大于要求注册1位(边界值分析,取离点) 8.密码长度小于要求注册1位(边界值分析,取离点) 9.用户名是不符合要求的字符注册(这个可以划分几个无效的等价类,一般写一两个就行了,如含有空格,#等,看需求是否允许吧~) 10.密码是不符合要求的字符注册(这个可以划分几个无效的等价类,一般写一两个就行了) 11.两次输入密码不一致(如果注册时候要输入两次密码,那么这个是必须的)

12.重新注册存在的用户 13.改变存在的用户的用户名和密码的大小写,来注册。(有的需求是区分大小写,有的不区分) 14.看是否支持tap和enter键等;密码是否可以复制粘贴;密码是否以* 之类的加秘符号显示 备注:边界值的上点、内点和离点大家应该都知道吧,呵呵,这里我就不细说了~~ 二、修改密码 当然具体情况具体分析哈~不能一概而论~ 实际测试中可能只用到其中几条而已,比如银行卡密码的修改,就不用考虑英文和非法字符,更不用考虑那些TAP之类的快捷键。而有的需要根据需求具体分析了,比如连续出错多少次出现的提示,和一些软件修改密码要求一定时间内有一定的修改次数限制等等。

软件测试白盒测试用例练习题

白盒测试用例练习 一、为以下所示的程序段设计一组测试用例,要求分别满足语句覆盖、判定覆盖、条件覆盖、判定/条件覆盖、组合覆盖和路径覆盖,并画出相应的程序流程图。 void DoWork (int x,int y,int z) { int k=0,j=0; if ( (x>3)&&(z<10) ) { k=x*y-1; j=sqrt(k); //语句块1 } if ( (x==4)||(y>5) ) { j=x*y+10; } //语句块2 j=j%3; //语句块3 }

由这个流程图可以看出,该程序模块有4条不同的路径: P1:(a-c-e) P2:(a-c-d) P3:(a-b-e) P4:(a-b-d) 将里面的判定条件和过程记录如下: 判定条件M={x>3 and z<10} 判定条件N={x=4 or y>5} 1、语句覆盖 2、判定覆盖 p1和p4可以作为测试用例,其中p1作为取真的路径,p4作为取反的路径。 也可以让测试用例测试路径P2和P3。相应的两组输入数据如下:

3、条件覆盖 对于M:x>3取真时T1,取假时F1; z<10取真时T2,取假时F2; 对于N:x=4取真时T3,取假时F3; y>5取真时T4,取假时F4。 条件:x>3,z<10,x=4,y>5 条件:x<=3,z>=10,x!=4,y<=5 根据条件覆盖的基本思路,和这8个条件取值,组合测试用例如表所示: 4、判定/条件覆盖

5、组合覆盖 条件组合 1)x>3,z<10 2)x>3,z>=10 3) x<=3,z<10 4)x<=3,z>=10 5)x=4,y>5 6)x=4,y<=5 7)x!=4,y>5 8)x!=4,y<=5 6、路径覆盖

软件测试方案模板(by LJ.)

测试方案模板 Edit by LJ. 1 概述 1.1 编写目的 [说明编写本测试方案的目的是为软件开发项目管理者、软件工程师、系统维护工程师、测试工程师提供关于**系统整体系统功能和性能的测试指导。] 1.2 读者对象 [本测试方案可能的合法读者对象为软件开发项目管理者、软件工程师、测试组、系统维护工程师] 1.3 项目背景 [可以如下那样简单说明,根据项目的具体情况,方案编写者也可以进行详细说明 项目名称:*** 简称:*** 项目代号:*** 委托单位:*** 开发单位:*** 主管部分:***] 1.4 测试目标 [说明进行项目测试的目标或所要达到的目的] 1.5 参考资料 [列出编写本测试方案时参考的资料和文献]

2 测试配置要求 2.1 网络环境 [在此说明应用系统的网络环境,如果应用系统是网络版的,必须具有本节内容。] 2.1.1 网络硬件 [此处给出网络硬件的拓扑图、名称、规格、数量、配置等信息。] 2.1.2 网络软件 [此处给出网络软件的名称、协议、通讯和连接方式等信息。] 2.2 服务器环境 2.2.1 服务器硬件 [此处给出服务器硬件的名称、规格、数量、配置等信息。] 2.2.2 服务器软件 [此处给出服务器软件名称、协议和版本等信息。] 2.3 工作站环境 2.3.1 工作站硬件 [此处给出工作站硬件的拓扑图、名称、规格、数量、配置等信息。] 2.3.2 工作站软件 [此处给出工作站软件的名称、协议和版本等信息。] 2.4 测试手段 [在此参照《测试计划》说明测试方法和工具,注明执行测试时,必须同时填写《测试记录表》]

2.5 测试数据 [在此简要说明测试数据的形成,如以客户单位具体的业务规则和《***系统需求分析说明书》,参考《***系统概要设计说明书》、《***系统详细设计说明书》和《数据规格说明书》中规定的运行限制,设计测试用例,作为整个**系统的测试数据。] 2.6 测试策略 [在此说明测试策略,可以如下这样说明: 测试过程按三个步骤进行,即单元测试、组装、系统测试,根据不同阶段测试的侧重点不同,分别介绍测试策略: A)单元测试 首先按照系统、子系统和模块进行划分,但最终的单元必须是功能模块,或面向对象过程中的若干个类。单元测试是对功能模块进行正确检验的测试工作,也是后续测试的基础。目的是在于发现各模块内部可能存在的各种差错,因此需要从程序的内部结构出发设计测试用例,着重考虑以下五个方面: 1)模块接口:对所测模块的数据流进行测试。 2)局部数据结构:检查不正确或不一致的数据类型说明、使用尚未附值或尚未初始化的变量、错误的初始值或缺省值。 3)路径:虽然不可能做到穷举测试,但要设计测试用例查找由于不正确的计算(包括算法错、表达式符号表示不正确、运算精度不够等)、不正确的比较或不正常的控制流(包括不同数据类型量的相互比较、不适当地修改了循环变量、错误的或不可能的循环终止条件等)而导致的错误。 4)错误处理:检查模块有没有对预见错误的条件设计比较完善的错误处理功能,保证其逻辑上的正确性。 5)边界:注意设计数据流、控制流中刚好等于、大于或小于确定的比较值的用例。 B)集成测试 集成测试也叫组装测试或联合测试。通常,在单元测试的基础上需要将所有的模块按照设计要求组装成系统,这时需要考虑的问题: 1)在把各个模块连接起来的时候,穿越模块接口的数据是否会丢失。

软件测试-白盒测试用例练习题

、 白盒测试用例练习 一、为以下所示的程序段设计一组测试用例,要求分别满足语句覆盖、判定覆盖、条件覆盖、判定/条件覆盖、组合覆盖和路径覆盖,并画出相应的程序流程图。 void DoWork (int x,int y,int z) { int k=0,j=0; if ( (x>3)&&(z<10) ) { k=x*y-1; j=sqrt(k); //语句块1 ' } if ( (x==4)||(y>5) ) { j=x*y+10; } //语句块2 j=j%3; //语句块3 } ]

e @ 由这个流程图可以看出,该程序模块有4条不同的路径: P1:(a-c-e) P2:(a-c-d) ' P3:(a-b-e) P4:(a-b-d) 将里面的判定条件和过程记录如下: 判定条件M={x>3 and z<10} 判定条件N={x=4 or y>5} 1、语句覆盖 2、判定覆盖 - p1和p4可以作为测试用例,其中p1作为取真的路径,p4作为取反的路径。

] 也可以让测试用例测试路径P2和P3。相应的两组输入数据如下: ( 3、条件覆盖 对于M :x>3取真时T1,取假时F1; z<10取真时T2,取假时F2; 对于 N :x=4取真时T3,取假时F3; y>5取真时T4,取假时F4。 条件:x>3,z<10,x=4,y>5 条件:x<=3,z>=10,x!=4,y<=5 根据条件覆盖的基本思路,和这8个条件取值,组合测试用例如表所示:

4、判定/条件覆盖 5、组合覆盖 、 条件组合 1)x>3,z<10 2)x>3,z>=10 3) x<=3,z<10 4)x<=3,z>=10 5)x=4,y>5 6)x=4,y<=5 7)x!=4,y>5 8)x!=4,y<=5

测试方案

测试方案模板 1概述 1.1编写目的 [说明编写本测试方案的目的是为软件开发项目管理者、软件工程师、系统维护工程师、测试工程师提供关于**系统整体系统功能和性能的测试指导。] 1.2读者对象 [本测试方案可能的合法读者对象为软件开发项目管理者、软件工程师、测试组、系统维护工程师] 1.3项目背景 [可以如下那样简单说明,根据项目的具体情况,方案编写者也可以进行详细说明 项目名称:*** 简称:*** 项目代号:*** 委托单位:*** 开发单位:*** 主管部分:***] 1.4测试目标 [说明进行项目测试的目标或所要达到的目的] 1.5参考资料

[列出编写本测试方案时参考的资料和文献] 2测试配置要求 2.1网络环境 [在此说明应用系统的网络环境,如果应用系统是网络版的,必须具有本节内容。] 2.1.1网络硬件 [此处给出网络硬件的拓扑图、名称、规格、数量、配置等信息。] 2.1.2网络软件 [此处给出网络软件的名称、协议、通讯和连接方式等信息。] 2.2服务器环境 2.2.1服务器硬件 [此处给出服务器硬件的名称、规格、数量、配置等信息。] 2.2.2服务器软件 [此处给出服务器软件名称、协议和版本等信息。] 2.3工作站环境 2.3.1工作站硬件 [此处给出工作站硬件的拓扑图、名称、规格、数量、配置等信息。] 2.3.2工作站软件 [此处给出工作站软件的名称、协议和版本等信息。] 2.4测试手段

[在此参照《测试计划》说明测试方法和工具,注明执行测试时,必须同时填写《测试记录表》] 2.5测试数据 [在此简要说明测试数据的形成,如以客户单位具体的业务规则和《***系统需求分析说明书》,参考《***系统概要设计说明书》、《***系统详细设计说明书》和《数据规格说明书》中规定的运行限制,设计测试用例,作为整个**系统的测试数据。] 2.6测试策略 [在此说明测试策略,可以如下这样说明: 测试过程按三个步骤进行,即单元测试、组装、系统测试,根据不同阶段测试的侧重点不同,分别介绍测试策略: A)单元测试 首先按照系统、子系统和模块进行划分,但最终的单元必须是功能模块,或面向对象过程中的若干个类。单元测试是对功能模块进行正确检验的测试工作,也是后续测试的基础。目的是在于发现各模块内部可能存在的各种差错,因此需要从程序的内部结构出发设计测试用例,着重考虑以下五个方面: 1)模块接口:对所测模块的数据流进行测试。 2)局部数据结构:检查不正确或不一致的数据类型说明、使用尚未附值或尚未初始化的变量、错误的初始值或缺省值。 3)路径:虽然不可能做到穷举测试,但要设计测试用例查找由于不正确的计算(包括算法错、表达式符号表示不正确、

软件测试规范一(控件测试用例编写规范)

软件测试规范一(控件测试用例编写规范) 【编写说明】 以集成性功能测试为主,针对测试用例的编写规范进行说明。重点突出了各种控件、网站/软件的常用业务功能和界面及外部接口的测试。 第一章功能测试——控件测试用例编写规范 一、文本框控件 1.输入的字符类型: 根据需求/设计说明,或者当前设计程序的使用功能默认,确定输入字符要求: ①全中文; ②全英文; ③全数字; ④全其他字符`~!@#$%^&*()-=_+[]\{}|;’:”,./<>?等; ⑤中英文混合; ⑥中文和数字/其他字符混合; ⑦英文和数字/其他字符混合; ⑧包含空格。 2.输入长度测试: 根据需求/设计说明,或者当前设计程序的使用功能默认,确定输入长度要求: ①正常的长度输入; ②临界值长度输入; ③临界值范围内、紧临临界值长度输入; ④临界值范围外,紧临临界值长度输入。 3.输入格式测试: 根据需求/设计说明,或者当前设计程序的使用功能默认,确定输入内容的格式: ①正常格式、正常值范围输入; ②非正常输入格式; ③允许输入值的临界值输入(最小值,最大值); ④允许输入值的临界值范围内紧邻临界值的输入(最小值内,最大值内); ⑤允许输入值的临界值范围外紧邻临界值的输入(大于最大值、小于最小值); ⑥是否允许输入空格。 上述测试要覆盖字符类型、长度和格式的各种组合。 4.复制、粘贴: ①进行一次复制、一次粘贴操作; ②进行一次复制、多次粘贴操作。 5.普通文本框的测试用例(如:企业名称、姓名、设备名称等)

允许输入的内容一般分为以下几种:全中文(如姓名)、全英文、全数字(如数量)、全其他字符、中英文混合、中英文数字混合、英文数字混合、英文数字其他字符混合、数字其他字符混合。 全中文测试: 1)考虑一个正常长度的全中文输入; 2)考虑一个最小长度的全中文输入; 3)考虑一个比最小长度多一个的全中文输入; 4)考虑一个比最小长度少一个的全中文输入; 5)考虑一个最大长度的全中文输入; 6)考虑一个比最大长度多一个的全中文输入; 7)考虑一个比最大长度少一个的全中文输入; 全英文测试: 8)考虑一个正常长度的全英文输入; 9)考虑一个最小长度的全英文输入; 10)考虑一个比最小长度多一个的全英文输入; 11)考虑一个比最小长度少一个的全英文输入; 12)考虑一个最大长度的全英文输入; 13)考虑一个比最大长度多一个的全英文输入; 14)考虑一个比最大长度少一个的全英文输入; 全数字测试: 15)考虑一个正常长度的全数字输入; 16)考虑一个最小长度的全数字输入; 17)考虑一个比最小长度多一个的全数字输入; 18)考虑一个比最小长度少一个的全数字输入; 19)考虑一个最大长度的全数字输入; 20)考虑一个比最大长度多一个的全数字输入; 21)考虑一个比最大长度少一个的全数字输入; 全其他字符测试: 22)考虑一个正常长度的全其他字符输入;限制禁止输入其他字符。 23)考虑一个最小长度的全其他字符输入; 24)考虑一个比最小长度多一个的全其他字符输入; 25)考虑一个比最小长度少一个的全其他字符输入; 26)考虑一个最大长度的全其他字符输入; 27)考虑一个比最大长度多一个的全其他字符输入; 28)考虑一个比最大长度少一个的全其他字符输入; 29)考虑一个正常长度的中英文混合输入;限制禁止输入其他字符。 30)考虑一个最小长度的中英文混合输入; 31)考虑一个比最小长度多一个的中英文混合输入; 32)考虑一个比最小长度少一个的中英文混合输入; 33)考虑一个最大长度的中英文混合输入; 34)考虑一个比最大长度多一个的中英文混合输入; 35)考虑一个比最大长度少一个的中英文混合输入; 36)考虑一个正常长度的中文和数字混合输入; 37)考虑一个最小长度的中文和数字混合输入;

相关文档
最新文档