在面向对象的软件开发中,事件触发机制是编程中经常遇到的。
转自:http://blog.sina.com.cn/s/blog_4aa1f1570100acvb.html
(一)场景法原理
现在的软件几乎都是用事件触发来控制流程的。象GUI软件、游戏等。事件触发时的情景并形成了场景,而同一事件不同的触发顺序和处理结果就形成了事件流。这种在软件设计方面的思想可以引入到软件测试中,可以生动地 描绘出事件触发时的情景,有利于设计测试用例,同时使测试用例更容易理解和执行。
在测试一个软件的时候,在场景法中,测试流程是软件功能按照正确的事件流实现的一条正确流程,那么我们把这个成为该软件的基本流;而凡是出现故障或缺陷的过程,就用备选流加以标注,这样的话,备选流就可以是从基本流来的,或是由备选流中引出的。所以在进行图示的时候,就会发现每个事件流的颜色是不同的。
基本流和备选流:如下图所示,图中经过用例的每条路径都用基本流和备选流来表示,直黑线表示基本流,是经过用例的最简单的路径。备选流用不同的色彩表示,一个备选流可能从基本流开始,在某个特定条件下执行,然后重新加入基本流中(如备选流1和3);也可能起源于另一个备选流(如备选流2),或者终止用例而不再重新加入到某个流(如备选流2和4)。
在这个图中,有一个基本流和四个备选流。
每个经过用例的可能路径,可以确定不同的用例场景。从基本流开始,再将基本流和备选流结合起来,可以确定以下用例场景:
场景 1 基本流
场景 2 基本流 备选流 1
场景 3 基本流 备选流 1 备选流 2
场景 4 基本流 备选流 3
场景 5 基本流 备选流 3 备选流 1
场景 6 基本流 备选流 3 备选流 1 备选流 2
场景 7 基本流 备选流 4
场景 8 基本流 备选流 3 备选流 4
下面是场景法的基本设计步骤:
根据说明,描述出程序的基本流及各项备选流
根据基本流和各项备选流生成不同的场景
对每一个场景生成相应的测试用例
对生成的所有测试用例重新复审,去掉多余的测试用例,测试用例确定后,对每一个测试用例确定测试数据值
(二)场景法例子
1、在线购物系统
我们都在当当网或china-pub华章网上书店都订购过书籍,整个订购过程为:用户登录到网站后,进行书籍的选择,当选好自己心仪的书籍后进行订购,这时把所需图书放进购物车,等进行结帐的时候,用户需要登录自己注册的帐号,登录成功后,进行结帐并生成订单,整个购物过程结束。
那么我们通过以上的描述,从中确定哪是基本流,哪些是备选流:
基本流 |
用户登录到网站,书籍的选择,进行订购,把所需图书放进购物车,等进行结帐的时候,登录自己的帐号,登录成功后,生成订单 |
备选流1 |
帐号不存在 |
备选流2 |
帐号错误 |
备选流3 |
密码错误 |
备选流4 |
无选购书籍 |
备选流x |
退出系统 |
根据基本流和备选流来确定场景:
场景1-购物成功 |
基本流 |
|
场景2-帐号不存在 |
基本流 |
备选流1 |
场景3-帐号错误 |
基本流 |
备选流2 |
场景4-密码错误 |
基本流 |
备选流3 |
场景5-无选购书籍 |
基本流 |
备选流4 |
我们来设计用例
对于每一个场景都需要确定测试用例。可以采用矩阵或决策表来确定和管理测试用例。
下面显示了一种通用格式,其中各行代表各个测试用例,而各列则代表测试用例的信息。
本例中,对于每个测试用例,存在一个测试用例ID、条件(或说明)、测试用例中涉及的所有数据元素(作为输入或已经存在于数据库中)以及预期结果。
通过从确定执行用例场景所需的数据元素入手构建矩阵。然后,对于每个场景,至少要确定包含执行场景所需的适当条件的测试用例。例如,在下面的矩阵中,V(有效)用于表明这个条件必须是 VALID(有效的)才可执行基本流,而 I(无效)用于表明这种条件下将激活所需备选流。下表中使用的“n/a”(不适用)表明这个条件不适用于测试用例。
测试用例ID |
场景/条件 |
帐号 |
密码 |
选购书籍 |
预期结果 |
1 |
场景1:购物成功 |
V |
V |
V |
成功购物 |
2 |
场景2:帐号不存在 |
I |
n/a |
n/a |
提示帐号不存在 |
3 |
场景3:帐号错误 |
I |
V |
n/a |
提示帐号错误,返回基本流步骤2 |
4 |
场景4:密码错误 |
V |
I |
n/a |
提示密码错误,返回基本流步骤3 |
5 |
场景5:无选购书籍 |
V |
V |
I |
提示选购书籍,返回基本流步骤5 |
我们看到以上表中,是把每个场景成立的条件进行了分析,基本上已经明确了测试用例的数量,现在只要把真实数据填充上,那么整个测试用例就完成了。
测试用例ID |
场景/条件 |
帐号 |
密码 |
选购书籍 |
预期结果 |
1 |
场景1:购物成功 |
xu |
123456 |
《软件测试艺术》与 《软件测试自动化》 |
成功购物 |
2 |
场景2:帐号不存在 |
zhang |
n/a |
n/a |
提示帐号不存在 |
3 |
场景3:帐号错误 |
zhou |
123456 |
n/a |
提示帐号错误,返回基本流步骤2 |
4 |
场景4:密码错误 |
xu |
123$%^ |
n/a |
提示密码错误,返回基本流步骤3 |
5 |
场景5:无选购书籍 |
xu |
123456 |
空 |
提示选购书籍,返回基本流步骤5 |
相关推荐
软件测试之场景法设计测试用例 软件测试是软件开发中不可或缺的一部分,测试用例的设计是软件测试的关键步骤之一。场景法是一种常用的测试用例设计方法,在面向对象的软件开发中,事件触发机制是编程中经常遇到的。...
场景法设计测试用例推荐.pdf
### 场景法设计测试用例——以在线购物系统为例 #### 一、场景法概述 场景法是一种基于用户操作流程的设计方法,主要用于测试软件在实际使用中的逻辑流程是否正确。这种方法通过模拟用户的行为,结合基本流和备选...
### 场景法设计测试用例最佳实践 #### 一、引言 随着软件开发的不断进步和技术的迭代更新,确保软件质量变得尤为重要。在众多的测试方法中,场景法因其能够有效地模拟真实用户操作流程而备受推崇。本文旨在探讨...
本文主要介绍了如何使用场景法来设计测试用例,以提高测试效率和发现潜在错误的能力。 首先,测试用例是对软件进行有效验证的精心选择的数据集合,目的是揭示程序中的错误。由于资源和时间的限制,我们无法进行全面...
"场景法设计测试用例" 场景法是一种常用的测试设计方法,它通过对系统的功能点或业务流程的描述,来提高测试的效果。场景法通常包含基本流和备用流,从一个流程开始,通过描述经过的路径来确定的过程,经过遍历所有...
测试用例设计方法(场景法设计测试用例)个人学习材料,仅供学习参考
在软件测试领域,场景法是一种常用的设计测试用例的方法,尤其在黑盒测试中非常实用。本实验“4实验四 场景法设计测试用例1”旨在帮助学生理解和运用场景法来创建针对ATM机取款功能的测试用例。下面我们将详细探讨...
### 使用用例场景设计测试用例 #### 一、引言 在软件开发过程中,测试环节至关重要,良好的测试能够确保产品的稳定性和可靠性。测试用例的设计则是实现这一目标的关键手段之一。本文将以自动取款机(ATM)为例,...
### 正交分析法在设计测试用例中的应用 #### 一、正交分析法简介 正交分析法是一种统计学方法,在软件测试领域被广泛应用于优化测试用例的设计过程。传统的测试用例设计方法往往涉及到大量的组合情况,这不仅耗时...
等价类划分法是软件测试中一种常用的设计测试用例的方法,它旨在高效地覆盖代码可能的执行路径,确保程序的各个部分都能得到充分的测试。在这个实验中,我们将探讨如何利用等价类划分法来设计针对不同场景的测试用例...
在本实验“5实验五 状态转换法设计测试用例1”中,我们将深入理解这一方法并应用它来设计针对特定场景的测试用例。 一、状态转换法的理解与应用 状态转换法基于系统的状态模型,通过分析系统在不同状态下可能的行为...
5. **因果图法**:当程序的功能说明中包含了输入条件的组合情况时,可以使用因果图法来设计测试用例,以确保各种输入组合都能被正确处理。 #### 二、测试用例的设计步骤 按照上述综合策略,我们可以按照以下步骤来...
### 高效设计测试用例 #### 一、软件测试用例的概念与作用 测试用例是指为了实施测试,向被测试系统提供的输入数据、操作、环境设置以及预期结果的一个特定集合。它在软件测试中扮演着至关重要的角色,不仅有助于...
本文将聚焦于"用例场景法"这一设计策略,这是一种常用且有效的测试用例设计方法,旨在帮助我们准确地监测软件的质量。 用例场景法设计是一种基于用户实际操作流程的测试方法,它通过模拟用户可能遇到的各种场景来...
以下是对正交试验设计法设计测试用例的详细解析。 正交试验设计法的核心在于“正交性”,它意味着不同因素之间的相互影响最小,使得每个因素的效果可以独立地被评估。在测试用例设计中,这意味着我们可以系统地考虑...
总结来说,利用用例场景设计测试用例是一种高效且系统的方法,它可以帮助我们更全面地覆盖功能,确保系统测试的质量。而测试工作流程图则为我们提供了一个可视化工具,便于理解和优化测试过程。在进行系统测试时,应...
5. 错误猜测法:基于经验和直觉预测可能出现错误的场景,设计针对性的测试用例。 6. 基于风险的测试:根据系统的业务风险来确定测试优先级和测试用例设计。 四、测试用例的编写 测试用例通常包括以下几个部分: 1. ...