如何设计测试用例状态图和场景法.docx

上传人:b****5 文档编号:3370954 上传时间:2022-11-22 格式:DOCX 页数:13 大小:141.08KB
下载 相关 举报
如何设计测试用例状态图和场景法.docx_第1页
第1页 / 共13页
如何设计测试用例状态图和场景法.docx_第2页
第2页 / 共13页
如何设计测试用例状态图和场景法.docx_第3页
第3页 / 共13页
如何设计测试用例状态图和场景法.docx_第4页
第4页 / 共13页
如何设计测试用例状态图和场景法.docx_第5页
第5页 / 共13页
点击查看更多>>
下载资源
资源描述

如何设计测试用例状态图和场景法.docx

《如何设计测试用例状态图和场景法.docx》由会员分享,可在线阅读,更多相关《如何设计测试用例状态图和场景法.docx(13页珍藏版)》请在冰豆网上搜索。

如何设计测试用例状态图和场景法.docx

如何设计测试用例状态图和场景法

状态图和场景法

 

1.1  状态图法的应用

1.1.1 需求分析

如图1.1所示的货币转换器程序可将人民币转换为四种货币的任何一种:

美元、加元、欧元和日元。

图1.1 “货币转换器“界面

货币种类选择由单选按钮控制,这些按钮相互排斥。

当选择了一个国家时,系统会使标签句子变得完整。

例如,如果选中了“加拿大”单选按钮,则标签“等价于…”会变成“等价于加元”。

选择国家之前或之后,用户输入人民币金额。

一旦两个输入都完成,用户可以单击“计算”按钮、“清除”按钮或“退出”按钮。

单击“计算”按钮会将人民币金额转换为所选货币的等量金额。

单击“清除”按钮,可重新设置货币选择、人民币金额和等量货币金额及相关的标签。

单击“退出”按钮,结束该应用程序。

1.1.2 列出系统的所有状态

(1)列出被测系统的输入事件。

如果系统比较复杂,不能一次性列出系统所有的输入,则分别在分析每一个状态时列出该状态所有可能的输入。

通过需求分析可以得到系统所有可能的输入,如表1.1所示。

表1.1 输入事件

输入代号

输入事件

ip1

输入人民币金额

ip2

按下国家按钮

ip2.1

选中“美国”

ip2.2

选中“加拿大”

ip2.3

选中“欧共体”

ip2.4

选中“日本”

ip3

单击“计算”按钮

ip4

单击“清除”按钮

ip5

单击“退出”按钮

ip6

单击错误消息对话框上的“确定”按钮

图1.2 对空闲状态加所有可能的输入

(2)对空闲状态(程序刚启动时的状态)加所有可能的输入,会产生一些新状态,如图 1.2所示。

在空闲状态下,对照输入事件表,从ip1开始施加以下输入事件。

空闲+ip1(输入人民币金额):

人民币金额已输入(新状态)。

空闲+ip2(按下国家按钮,为了简化分析,不把ip2细分成ip2.1~ip2.4):

国家已选择(新状态)。

空闲+ip3(单击“计算”按钮):

国家未选择人民币未输入(新状态)。

空闲+ip4(单击“清除”按钮):

空闲。

空闲+ip5(单击“退出”按钮):

退出(新状态)。

空闲+ip6:

空闲状态下不可以施加ip6输入。

经过以上步骤,共产生了人民币金额已输入、国家已选择、国家未选择人民币未输入和退出四个新状态。

(3)对第二步产生的每个新状态分别加所有可能的输入,判断产生哪些新状态。

在人民币金额已输入状态下,对照输入事件表,从ip1开始施加以下输入事件。

人民币金额已输入+ip1(输入人民币金额):

人民币金额已输入。

人民币金额已输入+ip2(按下国家按钮):

国家已选择人民币已输入(新状态)。

人民币金额已输入+ip3(单击“计算”按钮):

国家未选择(新状态)。

人民币金额已输入+ip4(单击“清除”按钮):

空闲。

人民币金额已输入+ip5(单击“退出”按钮):

退出。

人民币金额已输入+ip6:

人民币金额已输入状态下不可以施加ip6输入。

经过以上操作后,产生国家已选择人民币已输入、国家未选择两个新状态,如图1.3所示。

图1.3 对人民币金额已输入状态加所有可能的输入

在国家已选择状态下,对照输入事件表,从ip1开始施加以下输入事件。

国家已选择+ip1(输入人民币金额):

国家已选择人民币已输入。

国家已选择+ip2(按下国家按钮):

国家已选择。

国家已选择+ip3(单击“计算”按钮):

人民币未输入(新状态)。

国家已选择+ip4(单击“清除”按钮):

空闲。

国家已选择+ip5(单击“退出”按钮):

退出。

国家已选择+ip6:

国家已选择状态下不可以施加ip6输入。

经过以上操作后,产生人民币未输入一个新状态,如图1.4所示。

图1.4 对国家已选择状态加所有可能的输入

在国家未选择人民币未输入状态下,对照输入事件表,只能有ip6输入。

国家未选择人民币未输入+ip6:

空闲。

在退出状态下,没有输入。

在国家未选择人民币未输入状态、退出状态下加输入,均未产生新状态,如图1.5所示。

图1.5 对国家未选择人民币未输入、退出两个状态加所有可能的输入

综合该步,共产生了国家已选择人民币已输入、国家未选择、人民币未输入三个状态。

(4)对第三步产生的每个新状态分别加所有可能的输入,判断产生哪些新状态。

在国家已选择人民币已输入状态下,对照输入事件表,从ip1开始施加以下输入事件。

国家已选择人民币已输入+ip1(输入人民币金额):

国家已选择人民币已输入。

国家已选择人民币已输入+ip2(按下国家按钮):

国家已选择人民币已输入。

国家已选择人民币已输入+ip3(单击“计算”按钮):

显示金额(新状态)。

国家已选择人民币已输入+ip4(单击“清除”按钮):

空闲。

国家已选择人民币已输入+ip5(单击“退出”按钮):

退出。

国家已选择人民币已输入+ip6:

国家已选择人民币已输入状态下,不可以施加ip6输入。

经过以上步骤,又产生了显示金额一个新状态,如图1.6所示。

图1.6 对国家已选择人民币已输入状态加所有可能的输入

在国家未选择、人民币未输入两个状态下,对照输入事件表,只能有ip6输入。

国家未选择+ip6:

人民币金额已输入。

人民币未输入+ip6:

国家已选择。

在国家未选择、人民币未输两个状态下加输入,均未产生新状态,如图1.7所示。

图1.7 对国家未选择、人民币未输入两个状态加所有可能的输入

综合该步,产生了显示金额一个状态。

(5)对第四步产生的每个新状态分别加所有可能的输入,判断产生哪些新状态。

在显示金额状态下,对照输入事件表,加所有可能的输入,经分析,不再有新的状态产生,至此系统有如下九个状态。

空闲。

国家未选择人民币未输入。

国家已选择。

人民币金额已输入。

人民币未输入。

国家未选择。

国家已选择人民币已输入。

显示金额。

退出。

1.1.3 编写测试用例

通过上面的状态图分析,得知系统共有九个状态,再根据系统流程关系,可以设计出多种流程组合的测试用例。

如表1.2给出了六个流程的状态转换用例,当然,还有许多其他的流程用例可以设计。

注意,根据状态图设计测试用例的最低要求如下。

测试用例必须覆盖所有的状态。

用户常用的工作流程必须设计测试用例。

表中的编号表示测试用例经过不同状态的顺序,如用例 3 的状态顺序是空闲(输入是:

启动程序)、国家已选择(输入是:

按下国家按钮)、人民币未输入(输入是:

单击“计算”按钮)、国家已选择(输入是:

在错误消息中单击“确定”按钮)、国家已选择人民币已输入(输入是:

输入人民币金额)、显示金额(输入是:

单击“计算”按钮)。

表1.2 状态转换用例表

状态

用例1

用例2

用例3

用例4

用例5

用例6

空闲

1

1

1

1

1

1

国家未选择人民币未输入

 

 

 

 

 

2

国家已选择

 

2

2,4

 

 

4

人民币金额已输入

 

 

 

2

2,4

3

人民币未输入

 

 

3

 

 

 

续表

状态

用例1

用例2

用例3

用例4

用例5

用例6

国家未选择

 

 

 

 

3

 

国家已选择人民币已输入

 

3

5

3

5

 

显示金额

 

4

6

4

6

5

退出

2

 

 

 

7

6

表1.2的测试用例设计满足了状态图设计测试用例的最低要求,测试的覆盖率比较低,应该结合其他设计测试用例的方法编写出更多的测试用例。

根据表1.2所示的状态转换用例表设计的测试用例(预置条件:

启动程序)如表1.3所示。

表1.3 测试用例

用例编号

用例说明

预期结果

测试结果

1

1.单击“退出”按钮

程序正常退出

 

2

1.选中“美国”

2.输入人民币:

100

3.单击“计算”按钮

显示等价美元:

14

 

3

1.选中“日本”

2.单击“计算”按钮

3.单击“确定”按钮

4.输入人民币:

1000

5.单击“计算”按钮

程序提示错误消息:

必须输入人民币金额;

显示等价日元:

10000

 

4

1.输入人民币:

100

2.选中“欧共体”

3.单击“计算”按钮

显示等价欧元:

10

 

5

1.输入人民币:

500

2.单击“计算”按钮

3.单击“确定”按钮

4.选中“加拿大”

5.单击“计算”按钮

程序提示错误消息:

必须选择国家

显示等价加元:

80

 

6

1.单击“计算”按钮

2.输入人民币:

200

3.选中“美国”

4.单击“计算”按钮

5.单击“退出”按钮

程序提示错误消息:

必须输入人民币金额和选择国家

显示等价美元:

28

 

7

……

……

 

 

 

 

 

1.1.4 状态图法小结

使用状态图法设计测试用例的步骤如下。

(1)列出被测系统的输入事件。

(2)对空闲状态(程序刚启动时的状态)加所有可能的输入,判断产生哪些新状态。

(3)对上一步产生的每个新状态分别加所有可能的输入,判断产生哪些新状态。

(4)列出所有的状态,根据系统流程,设计测试用例表。

(5)把测试用例表转换成测试用例。

1.2  场景法的应用

1.2.1 场景法

现在的大多数办公软件几乎都是用事件触发来控制流程的,事件触发时的情景便形成了场景,而对事件不同的触发顺序和处理结果就形成了事件流。

这种在软件设计方面的思想也可以引入到软件测试中,可以比较生动地描绘出事件触发时的情景,有利于测试设计者设计用例,同时使测试用例更加容易理解和执行。

如果说状态图法关注的是程序所处的不同状态的话,场景法关注的是程序所执行的流程,也就是触发状态变化的事件顺序。

1.2.2 基本流和备选流

一个场景是利用基本流和备选流来确定的。

如图 1.8 所示,图中经过用例的每条路径都用基本流和备选流来表示,最中间的直黑线表示基本流,是经过用例的最简单的路径,其他均为备选流。

一个备选流可能从基本流开始,在某个特定条件下执行,然后重新加入基本流中(如备选流1和3);也可能起源于另一个备选流(如备选流2),或者终止用例而不再加入到某个流(如备选流2和4)。

图1.8 基本流和备选流

在这个图中,有一个基本流和四个备选流。

每个经过用例的可能路径,可以确定不同的用例场景。

从基本流开始,再将基本流和备选流结合起来,可以确定以下用例场景。

场景1:

基本流。

场景2:

基本流、备选流1。

场景3:

基本流、备选流1、备选流2。

场景4:

基本流、备选流3。

场景5:

基本流、备选流3、备选流1。

场景6:

基本流、备选流3、备选流1、备选流2。

场景7:

基本流、备选流4。

场景8:

基本流、备选流3、备选流4。

1.2.3 用场景法设计用例

下面是场景法的基本设计步骤。

(1)根据说明,描述出程序的基本流及各项备选流。

(2)根据基本流和各项备选流生成不同的场景。

(3)对每一个场景生成相应的测试用例。

(4)对生成的所有测试用例重新复审,去掉多余的测试用例,测试用例确定后,对每一个测试用例确定测试数据值。

通过前面介绍的一些场景法的基本概念和设计方法,想必已经有了一些了解,接下来以一个在线购物系统案例说明场景法的应用。

在线购物系统的需求如下。

用户进入在线购物网站进行购物,选购物品后,如果想购买,需要使用账号登录;登录成功后,进行付钱交易;交易成功后,生成订购单,完成整个购物过程。

(1)确定基本流和备选流,如表1.4所示。

表1.4 基本流和备选流

场景流

描述

基本流

进入购物网站,选择物品,登录账号,付款交易,生成订单

备选流1

账号不存在

备选流2

账号或密码错误

备选流3

用户账号余额不足

备选流4

用户退出系统

(2)根据基本流和备选流来确定场景,如表1.5所示。

表1.5 确定的测试场景

场景

场景描述

流程组成

场景1

成功购物

基本流

场景2

账号不存在

基本流、备选流1

场景3

账号或密码错误

基本流、备选流2

场景4

用户账号余额不足

基本流、备选流3

(3)设计用例。

对于每一个场景,可以采用矩阵来确定和管理测试用例,如表1.6所示。

从确定执行用例场景所需的数据元素入手构建矩阵,然后对于每个场景,至少要确定包含执行场景所需的适当条件的测试用例。

例如,在下面的矩阵中,V(有效)用于表明这个条件必须是Valid(有效的)才可执行基本流,而I(无效)用于表明这种条件下将激活所需备选流。

表1.6中使用的“N/A”(不适用)表明这个条件不适用于测试用例。

表1.6 测试用例

ID

场景

场景描述

账号

密码

余额

预期结果

1

场景1

成功购物

V

V

V

成功购物

2

场景2

账号不存在

I

N/A

N/A

提示账号不存在

3

场景3

账号正确,密码错误

V

I

N/A

提示账号或密码错误,返回基本流

4

场景4

用户账号余额不足

V

V

I

提示账号余额不足

(4)设计数据,把数据填入用例表中,完成真正有效的测试用例,如表1.7所示。

表1.7 有效的测试用例

ID

场景

场景描述

账号

密码

余额

预期结果

1

场景1

成功购物

Mike

123

500

成功购物

2

场景2

账号不存在

Mika

N/A

N/A

提示账号不存在

3

场景3

账号正确,密码错误

Mike

124

N/A

提示账号或密码错误,返回登录模块

4

场景4

用户账号余额不足

Mike

123

0

提示账号余额不足

以上仅仅以一个最简单的例子说明了场景法的应用,所写的测试用例只是在线购物的一部分测试用例,可以参考几个大型购物网站的购物流程进行补充和扩展,在此不再赘述。

展开阅读全文
相关资源
猜你喜欢
相关搜索

当前位置:首页 > 小学教育 > 学科竞赛

copyright@ 2008-2022 冰豆网网站版权所有

经营许可证编号:鄂ICP备2022015515号-1