黑盒测试举例
黑盒测试用例设计实例

黑盒测试用例设计实例引言黑盒测试是一种软件测试的方法,它从用户的角度出发,不考虑内部的实现细节,仅仅根据软件的输入和输出来进行测试。
黑盒测试用例的设计是黑盒测试的关键环节之一,本文将通过一个实例来详细介绍如何进行黑盒测试用例的设计。
任务概述本文将以一个电子商务网站为例,以说明如何进行黑盒测试用例的设计。
电子商务网站通常包含用户注册、商品浏览、购物车管理、下单支付等功能模块。
我们将分别设计这些功能模块的黑盒测试用例。
电子商务网站功能模块1.用户注册2.商品浏览3.购物车管理4.下单支付用户注册功能模块测试输入验证测试1.输入有效的用户名、密码、邮箱和手机号,验证是否成功注册。
2.输入无效的用户名,如为空、包含特殊字符或长度超过限制,验证是否提示相应的错误信息。
3.输入无效的密码,如长度过短、仅由数字组成,验证是否提示相应的错误信息。
4.输入无效的邮箱,如格式不符合要求,验证是否提示相应的错误信息。
5.输入无效的手机号,如格式不符合要求,验证是否提示相应的错误信息。
功能测试1.验证成功注册后,是否能够正常登录。
2.验证注册后的用户信息在数据库中是否正确保存。
3.验证重复注册同一用户名是否被拒绝。
商品浏览功能模块测试页面加载测试1.验证首页是否正确加载,包括顶部导航栏、商品分类、轮播图等元素是否显示正常。
2.验证商品详情页是否正确加载,包括商品名称、价格、图片、评价等元素是否显示正常。
搜索功能测试1.在搜索框中输入关键字,验证是否能够正确展示相关的商品结果。
2.输入不存在的关键字,验证是否能够提示“未找到相关商品”的信息。
列表排序测试1.验证按价格升序排序时,商品列表是否按价格由低到高的顺序排列。
2.验证按价格降序排序时,商品列表是否按价格由高到低的顺序排列。
分类过滤测试1.选择一个商品分类,验证筛选后的商品列表是否只显示该分类的商品。
2.选择多个商品分类,验证筛选后的商品列表是否包含这些分类的商品。
黑盒测试经典例题(精选8篇)

黑盒测试经典例题(精选8篇)【篇一】黑盒测试经典例题实验一黑盒测试(一)实验目的1.掌握用边界值方法设计测试用例和执行测试的过程;2.掌握用等价划分方法设计测试用例和执行测试的过程;3.掌握用决策表方法设计测试用例和执行测试的过程。
(二)实验内容测试“Ne某tDate”函数。
Ne某tDate返回输入日期后面的那个日期。
变量年、月、日都具有整数值,且满足如下条件:C1:1912≤年份≤2050C2:1≤月份≤12C3:1≤日期≤31(三)实验步骤用熟悉的语言(如C语言)编写实现该函数的功能,并用如下方法设计测试用例,进行黑盒测试。
参考源代码:#includeintne某tDate(intyear,intmonth,intday);voidmain(){/intyear,month,day;ne某tDate(2051,12,30);}intne某tDate(intyear,intmonth,intday) {/某如果还有明天,返回1;如果输入不合法,返回-1;某/witch(month){cae1:cae3:cae5:cae7:cae8:cae10:if(day==31){day=1;month=month+1;}eleday=day+1;break;cae4:cae6:cae9:cae11: if(day==30){day=1;month=month+1;}eleday=day+1;break;cae12:if(day==31){day=1;month=1;year=year+1;if(year==2022)printf("2022iover");}eleif(day=1912&&year12||month31||day【篇二】黑盒测试经典例题常用黑盒测试的方法黑盒测试(Black-bo某Teting,又称为功能测试或数据驱动测试)是把测试对象看作一个黑盒子。
利用黑盒测试法进行动态测试时,需要测试软件产品的功能,不需测试软件产品的内部结构和处理过程。
黑盒测试方法举例说明

黑盒测试方法举例说明黑盒测试是一种软件测试方法,测试人员不需要了解内部代码或程序逻辑,而是专注于测试输入和输出的正确性。
本文将介绍几种常见的黑盒测试方法,并通过具体的案例来说明其应用。
等价类划分等价类划分是一种常用的黑盒测试方法,将输入数据划分成有效等价类和无效等价类,只需测试每个等价类的一个代表值即可。
例如,对于一个要求输入1到100之间的整数的程序,我们可以选择一个小于1的数、一个在1和100之间的数和一个大于100的数进行测试。
边界值分析边界值分析是在等价类划分的基础上,对边界数值进行测试的一种方法。
通常情况下,程序在处理边界值时容易出现错误。
以编辑器的字数统计功能为例,如果规定最多输入1000个字,我们会测试999个字和1000个字的情况,以确保程序能够正确统计。
因果图法因果图法是一种通过绘制因果图来描绘可能的输入和输出关系的黑盒测试方法。
以一个购物网站为例,我们可以绘制用户点击购买按钮后的流程图,包括选择商品、填写地址、付款等步骤。
通过因果图法,我们可以发现潜在的问题,并设计相应的测试用例。
决策表驱动测试决策表驱动测试是一种根据不同条件的组合来设计测试用例的黑盒测试方法。
以一个银行取款程序为例,我们可以根据取款金额、账户余额和取款时间等条件,设计不同的测试用例。
这样能够覆盖不同的可能情况,提高测试的全面性。
边界盒测试边界盒测试是一种结合边界值分析和等价类划分的测试方法,旨在测试系统的边界条件。
以一个电子邮箱地址输入框为例,我们可以测试最短长度、最长长度和超过最长长度的情况,以确保系统在处理边界条件时能够正确响应。
以上是几种常见的黑盒测试方法,每种方法都有其适用的场景和优势。
在实际测试过程中,可以根据具体的需求选择合适的方法或组合多种方法进行测试,以确保软件质量和稳定性。
黑盒测试虽然不涉及具体代码实现,但却是保证软件功能正确性和稳定性的重要手段之一。
黑盒测试具体例子

黑盒测试具体例子黑盒测试是一种软件测试方法,测试人员主要关注软件的输入与输出,而不考虑内部结构或代码实现细节。
在黑盒测试中,测试人员通过分析需求规格说明书等文档,设计测试用例来验证软件功能的正确性。
下面将介绍几个黑盒测试的具体例子。
1. 登录功能测试假设我们要测试一个网站的登录功能,我们可以设计以下测试用例来进行黑盒测试:•测试用例1:输入正确的用户名和密码,验证是否能成功登录;•测试用例2:输入错误的用户名,验证是否提示“用户名不存在”的错误信息;•测试用例3:输入错误的密码,验证是否提示“密码错误”的错误信息;•测试用例4:输入超长的用户名或密码,验证系统是否做了长度限制处理;•测试用例5:在登录界面不输入任何信息,验证系统是否能识别为空的输入并给出相应提示。
通过以上测试用例可以验证登录功能在不同情况下的表现,保证其在各种情况下都能正常运作。
2. 购物车功能测试假设我们要测试一个电商网站的购物车功能,我们可以设计以下测试用例进行黑盒测试:•测试用例1:向购物车添加商品,验证商品数量是否正确增加;•测试用例2:修改购物车中商品的数量,验证价格是否正确计算;•测试用例3:删除购物车中的商品,验证删除后购物车是否为空;•测试用例4:尝试向购物车中添加数量超过库存的商品,验证系统是否给出相应提示;•测试用例5:尝试在未登录状态下进行购物车操作,验证系统是否要求用户先登录。
通过以上测试用例可以验证购物车功能在各种操作下的正确性,避免在实际使用中出现问题。
3. 搜索功能测试假设我们要测试一个搜索引擎的搜索功能,我们可以设计以下测试用例进行黑盒测试:•测试用例1:输入关键词进行搜索,验证搜索结果的相关性和准确性;•测试用例2:输入特殊字符进行搜索,验证系统是否能正确处理这些特殊字符;•测试用例3:输入不存在的关键词进行搜索,验证系统是否能给出“无结果”提示;•测试用例4:在搜索结果页面尝试使用筛选功能,验证筛选条件是否有效;•测试用例5:在搜索过程中断网重连,验证系统是否能正确处理这种情况。
黑盒测试案例

黑盒测试案例黑盒测试是一种测试方法,旨在检验软件或系统的功能性,而不考虑其内部的实现细节。
下面是一个黑盒测试的案例,以展示如何设计和执行一个黑盒测试。
案例:网上购物系统1. 注册功能测试测试目标:验证用户能够成功注册一个新账户。
测试步骤:a. 打开网上购物系统主页。
b. 点击注册按钮。
c. 输入一个有效的用户名、密码和电子邮件地址。
d. 点击提交按钮。
e. 检查系统是否显示注册成功的提示信息。
f. 尝试使用新账户登录系统,检查是否成功登录。
预期结果:系统应该成功注册新账户并允许用户使用该账户登录。
2. 商品搜索功能测试测试目标:验证用户能够成功搜索并找到所需商品。
测试步骤:a. 打开网上购物系统主页。
b. 在搜索框中输入一个商品关键词。
c. 点击搜索按钮。
d. 检查系统是否正确显示与关键词相关的商品列表。
预期结果:系统应该能够根据用户输入的关键词正确显示相关的商品列表。
3. 购物车功能测试测试目标:验证用户能够成功将商品添加到购物车并完成购买。
测试步骤:a. 打开网上购物系统主页。
b. 浏览商品列表,选择一个商品。
c. 点击“加入购物车”按钮。
d. 检查系统是否将商品添加到购物车中。
e. 点击“去结算”按钮。
f. 输入有效的配送地址和支付信息。
g. 点击“提交订单”按钮。
h. 检查系统是否显示订单成功提交的提示信息。
预期结果:系统应该能够正确添加商品到购物车,并在用户完成订单时显示成功提交订单的提示信息。
4. 优惠券功能测试测试目标:验证用户能够成功使用优惠券并享受相应折扣。
测试步骤:a. 打开网上购物系统主页。
b. 选择需要购买的商品并添加到购物车。
c. 输入有效的优惠券编号。
d. 点击“应用优惠券”按钮。
e. 检查系统是否正确计算并显示优惠后的价格。
预期结果:系统应该能够根据用户输入的优惠券编号正确计算并显示折扣后的价格。
5. 支付功能测试测试目标:验证用户能够成功完成支付流程。
测试步骤:a. 打开网上购物系统主页。
软件测试黑盒测试实例

软件测试黑盒测试实例在软件测试领域中,黑盒测试是一种测试方法,旨在检查软件功能的正确性而不考虑内部结构或代码逻辑。
黑盒测试通过输入某些值,检查输出结果是否符合预期来评估软件系统。
本文将通过一个实例来说明黑盒测试的过程和重要性。
实例介绍假设我们有一个简单的登录系统,其中包含用户名和密码输入框以及登录按钮。
我们的任务是对这个登录系统进行黑盒测试,确保系统在各种情况下都能正确运行。
测试用例设计1.正常登录: 输入正确的用户名和密码,点击登录按钮,预期系统应成功登录。
2.错误的用户名: 输入错误的用户名,正确的密码,点击登录按钮,预期系统应提示用户名错误。
3.错误的密码: 输入正确的用户名,错误的密码,点击登录按钮,预期系统应提示密码错误。
4.空用户名: 不输入用户名,输入正确的密码,点击登录按钮,预期系统应提示用户名不能为空。
5.空密码: 输入正确的用户名,不输入密码,点击登录按钮,预期系统应提示密码不能为空。
测试过程1.针对每个测试用例,创建一个测试计划,包括输入值、预期输出和实际输出。
2.依次执行测试用例,记录实际输出。
3.检查实际输出是否符合预期输出,如果不符合,则说明系统在该情况下存在问题。
4.将测试结果进行归档和整理,编写测试报告。
测试结果经过上述测试用例的执行,我们得出以下结论:•正常登录:系统成功登录。
•错误的用户名:系统正确提示用户名错误。
•错误的密码:系统正确提示密码错误。
•空用户名:系统正确提示用户名不能为空。
•空密码:系统正确提示密码不能为空。
结论通过黑盒测试实例,我们发现系统在各种情况下都表现出良好的功能性和健壮性。
黑盒测试作为软件测试的重要手段之一,能够有效地发现系统的潜在问题,提高软件质量和用户体验。
因此,在软件开发过程中,黑盒测试是必不可少的一环。
黑盒测试和白盒测试区别及测试案例

什么是黑盒测试和白盒测试?任何工程产品(注意是任何工程产品)都可以使用以下两种方法之一进行测试。
黑盒测试:已知产品的功能设计规格,可以进行测试证明每个实现了的功能是否符合要求。
白盒测试:已知产品的内部工作过程,可以通过测试证明每种内部操作是否符合设计规格要求,所有内部成分是否以经过检查。
软件的黑盒测试意味着测试要在软件的接口处进行。
这种方法是把测试对象看做一个黑盒子,测试人员完全不考虑程序内部的逻辑结构和内部特性,只依据程序的需求规格说明书,检查程序的功能是否符合它的功能说明。
因此黑盒测试又叫功能测试或数据驱动测试。
黑盒测试主要是为了发现以下几类错误:1、是否有不正确或遗漏的功能?2、在接口上,输入是否能正确的接受?能否输出正确的结果?3、是否有数据结构错误或外部信息(例如数据文件)访问错误?4、性能上是否能够满足要求?5、是否有初始化或终止性错误?软件的白盒测试是对软件的过程性细节做细致的检查。
这种方法是把测试对象看做一个打开的盒子,它允许测试人员利用程序内部的逻辑结构及有关信息,设计或选择测试用例,对程序所有逻辑路径进行测试。
通过在不同点检查程序状态,确定实际状态是否与预期的状态一致。
因此白盒测试又称为结构测试或逻辑驱动测试。
白盒测试主要是想对程序模块进行如下检查:1、对程序模块的所有独立的执行路径至少测试一遍。
2、对所有的逻辑判定,取“真”与取“假”的两种情况都能至少测一遍。
3、在循环的边界和运行的界限内执行循环体。
4、测试内部数据结构的有效性,等等。
以上事实说明,软件测试有一个致命的缺陷,即测试的不完全、不彻底性。
由于任何程序只能进行少量(相对于穷举的巨大数量而言)的有限的测试,在未发现错误时,不能说明程序中没有错误。
白盒测试白盒测试也称结构测试或逻辑驱动测试,它是按照程序内部的结构测试程序,通过测试来检测产品内部动作是否按照设计规格说明书的规定正常进行,检验程序中的每条通路是否都能按预定要求正确工作。
白盒测试黑盒测试区别举例

白盒测试和黑盒测试的区别举例在软件测试领域,白盒测试和黑盒测试是两种常见的测试方法,它们在测试目的、实施方式和适用场景上有着明显的区别。
本文将从具体举例分析白盒测试和黑盒测试的差异,帮助读者更好地理解两者之间的区别。
白盒测试白盒测试又称为结构化测试或逻辑驱动测试,是一种基于程序内部逻辑和结构进行测试的方法。
它侧重于理解代码的内部工作原理和逻辑结构,通过检查程序的代码、路径覆盖率等方面来评估测试质量。
举例来说,假设有一个简单的函数用于计算两个数的和:def add(x, y):result = x + yreturn result在白盒测试中,测试人员会针对上述函数编写测试用例,覆盖不同的路径和边界条件,以保证程序的逻辑正确性。
比如,测试用例可以包括输入两个正数、两个负数、一个正数一个负数等情况。
黑盒测试黑盒测试又称为功能测试或行为驱动测试,是一种基于软件需求和规格说明进行测试的方法。
测试人员不需要了解程序的内部工作原理,而是通过输入输出的观察来评估程序的正确性。
继续以上述加法函数的例子,黑盒测试则关注函数的功能是否符合预期需求。
测试人员会编写测试用例,根据输入和输出的关系来验证函数的正确性,而不考虑函数内部的实现细节。
例如,黑盒测试的测试用例可能包括输入两个正数、两个负数、一个正数一个负数等情况,观察输出结果是否符合预期的加法运算结果。
白盒测试和黑盒测试的区别1.测试对象不同:白盒测试关注程序的内部结构和逻辑,而黑盒测试关注程序的功能和用户需求。
2.测试重点不同:白盒测试侧重于路径覆盖和代码执行逻辑,黑盒测试侧重于功能是否符合需求。
3.测试用例设计方法不同:白盒测试需要了解程序内部结构,设计测试用例以覆盖不同路径和边界条件;黑盒测试则通过需求规格设计测试用例,验证程序的功能是否正确。
4.测试人员角色不同:白盒测试需要有编程和代码理解能力的测试人员,而黑盒测试相对更容易上手,适合非技术人员进行测试。
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
软件测试分类及介绍:软件测试是一项复杂的系统工程,从不同的角度考虑可以有不同的划分方法,对测试进行分类是为了更好的明确测试的过程,了解测试究竟要完成哪些工作,尽量做到全面测试。
1,按是否需要执行被测软件的角度按是否需要执行被测软件的角度,可分为静态测试和动态测试,前者不利用计算机运行待测程序而应用其他手段实现测试目的,如代码审核。
(我认为主要是让测试人员对编译器发现不了的潜在错误进行分析,如无效的死循环,多余的变量等),而动态测试则通过运行被测试软件来达到目的。
2、按阶段划分:1 单元测试单元测试是对软件中的基本组成单位进行的测试,如一个模块、一个过程等等。
它是软件动态测试的最基本的部分,也是最重要的部分之一,其目的是检验软件基本组成单位的正确性。
因为单元测试需要知道内部程序设计和编码的细节知识,一般应由程序员而非测试员来完成,往往需要开发测试驱动模块和桩模块来辅助完成单元测试。
因此应用系统有一个设计很好的体系结构就显得尤为重要。
一个软件单元的正确性是相对于该单元的规约而言的。
因此,单元测试以被测试单位的规约为基准。
单元测试的主要方法有控制流测试、数据流测试、排错测试、分域测试等等。
2 集成测试集成测试是在软件系统集成过程中所进行的测试,其主要目的是检查软件单位之间的接口是否正确。
它根据集成测试计划,一边将模块或其他软件单位组合成越来越大的系统,一边运行该系统,以分析所组成的系统是否正确,各组成部分是否合拍。
集成测试的策略主要有自顶向下和自底向上两种。
3 系统测试系统测试是对已经集成好的软件系统进行彻底的测试,以验证软件系统的正确性和性能等满足其规约所指定的要求,检查软件的行为和输出是否正确并非一项简单的任务,它被称为测试的“先知者问题”。
因此,系统测试应该按照测试计划进行,其输入、输出和其他动态运行行为应该与软件规约进行对比。
软件系统测试方法很多,主要有功能测试、性能测试、随机测试等等。
4 验收测试验收测试旨在向软件的购买者展示该软件系统满足其用户的需求。
它的测试数据通常是系统测试的测试数据的子集。
所不同的是,验收测试常常有软件系统的购买者代表在现场,甚至是在软件安装使用的现场。
这是软件在投入使用之前的最后测试。
5 回归测试回归测试是在软件维护阶段,对软件进行修改之后进行的测试。
其目的是检验对软件进行的修改是否正确。
这里,修改的正确性有两重含义:一是所作的修改达到了预定目的,如错误得到改正,能够适应新的运行环境等等;二是不影响软件的其他功能的正确性。
6 Alpha 测试:在系统开发接近完成时对应用系统的测试;测试后,仍然会有少量的设计变更。
这种测试一般由最终用户或其他人员员完成,不能由程序员或测试员完成。
7 Beta 测试:当开发和测试根本完成时所做的测试,而最终的错误和问题需要在最终发行前找到。
这种测试一般由最终用户或其他人员员完成,不能由程序员或测试员完成。
3、按测试方法划分:1 白盒测试白盒测试也称结构测试或逻辑驱动测试,是指基于一个应用代码的内部逻辑知识,即基于覆盖全部代码、分支、路径、条件的测试,它是知道产品内部工作过程,可通过测试来检测产品内部动作是否按照规格说明书的规定正常进行,按照程序内部的结构测试程序,检验程序中的每条通路是否都有能按预定要求正确工作,而不顾它的功能,白盒测试的主要方法有逻辑驱动、基路测试等,主要用于软件验证。
“白盒”法全面了解程序内部逻辑结构、对所有逻辑路径进行测试。
“白盒”法是穷举路径测试。
在使用这一方案时,测试者必须检查程序的内部结构,从检查程序的逻辑着手,得出测试数据。
贯穿程序的独立路径数是天文数字。
但即使每条路径都测试了仍然可能有错误。
第一,穷举路径测试决不能查出程序违反了设计规范,即程序本身是个错误的程序。
第二,穷举路径测试不可能查出程序中因遗漏路径而出错。
第三,穷举路径测试可能发现不了一些与数据相关的错误。
白盒测试可以借助一些工具来完成如Junit Framework,Jtest等。
2 黑盒测试黑盒测试是指不基于内部设计和代码的任何知识,而基于需求和功能性的测试,黑盒测试也称功能测试或数据驱动测试,它是在已知产品所应具有的功能,通过测试来检测每个功能是否都能正常使用,在测试时,把程序看作一个不能打开的黑盆子,在完全不考虑程序内部结构和内部特性的情况下,测试者在程序接口进行测试,它只检查程序功能是否按照需求规格说明书的规定正常使用,程序是否能适当地接收输入数锯而产生正确的输出信息,并且保持外部信息(如数据库或文件)的完整性。
黑盒测试方法主要有等价类划分、边值分析、因—果图、错误推测等,主要用于软件确认测试。
“黑盒”法着眼于程序外部结构、不考虑内部逻辑结构、针对软件界面和软件功能进行测试。
“黑盒”法是穷举输入测试,只有把所有可能的输入都作为测试情况使用,才能以这种方法查出程序中所有的错误。
实际上测试情况有无穷多个,人们不仅要测试所有合法的输入,而且还要对那些不合法但是可能的输入进行测试。
黑盒测试也可以借助一些工具,如WinRunner,QuickTestPro,Rational Robot 等。
3 ALAC(Act-like-a-customer)测试ALAC测试是一种基于客户使用产品的知识开发出来的测试方法。
ALAC测试是基于复杂的软件产品有许多错误的原则。
最大的受益者是用户,缺陷查找和改正将针对哪些客户最容易遇到的错误。
软件测试举例:ATM机操作用例:一台ATM 机器的主角和用例。
下表包含了上图中提款用例的基本流和某些备用流:本用例的开端是ATM 处于准备就绪状态。
准备提款- 客户将银行卡插入ATM 机的读卡机。
验证银行卡- ATM 机从银行卡的磁条中读取帐户代码,并检查它是否属于可以接收的银行卡。
输入PIN - ATM 要求客户输入PIN 码(4 位)验证帐户代码和PIN - 验证帐户代码和PIN 以确定该帐户是否有效以及所输入的PIN 对该帐户来说是否正确。
对于此事件流,帐户是有效的而且PIN 对此帐户来说正确无误。
可以从这个用例生成下列场景注:为方便起见,备选流3 和6(场景3 和7)内的循环以及循环组合未纳入上表。
对于这7 个场景中的每一个场景都需要确定测试用例。
可以采用矩阵或决策表来确定和管理测试用例。
下面显示了一种通用格式,其中各行代表各个测试用例,而各列则代表测试用例的信息。
本示例中,对于每个测试用例,存在一个测试用例ID、条件(或说明)、测试用例中涉及的所有数据元素(作为输入或已经存在于数据库中)以及预期结果。
通过从确定执行用例场景所需的数据元素入手构建矩阵。
然后,对于每个场景,至少要确定包含执行场景所需的适当条件的测试用例。
例如,在下面的矩阵中,V(有效)用于表明这个条件必须是VALID(有效的)才可执行基本流,而I(无效)用于表明这种条件下将激活所需备选流。
下表中使用的“n/a”(不适用)表明这个条件不适用于测试用例。
在上面的矩阵中,六个测试用例执行了四个场景。
对于基本流,上述测试用例CW1 称为正面测试用例。
它一直沿着用例的基本流路径执行,未发生任何偏差。
基本流的全面测试必须包括负面测试用例,以确保只有在符合条件的情况下才执行基本流。
这些负面测试用例由CW2 至6 表示(阴影单元格表明这种条件下需要执行备选流)。
虽然CW2 至6 对于基本流而言都是负面测试用例,但它们相对于备选流2 至4 而言是正面测试用例。
而且对于这些备选流中的每一个而言,至少存在一个负面测试用例(CW1 - 基本流)。
每个场景只具有一个正面测试用例和负面测试用例是不充分的,场景4 正是这样的一个示例。
要全面地测试场景4 - PIN 有误,至少需要三个正面测试用例(以激活场景4):* 输入了错误的PIN,但仍存在输入机会,此备选流重新加入基本流中的步骤3 - 输入PIN。
* 输入了错误的PIN,而且不再有输入机会,则此备选流将保留银行卡并终止用例。
* 最后一次输入时输入了“正确”的PIN。
备选流在步骤5 - 输入金额处重新加入基本流。
注:在上面的矩阵中,无需为条件(数据)输入任何实际的值。
以这种方式创建测试用例矩阵的一个优点在于容易看到测试的是什么条件。
由于只需要查看V 和I(或此处采用的阴影单元格),这种方式还易于判断是否已经确定了充足的测试用例。
从上表中可发现存在几个条件不具备阴影单元格,这表明测试用例还不完全,如场景6 - 不存在的帐户/帐户类型有误和场景7 - 帐户余额不足就缺少测试用例。
一旦确定了所有的测试用例,则应对这些用例进行复审和验证以确保其准确且适度,并取消多余或等效的测试用例。
测试用例一经认可,就可以确定实际数据值(在测试用例实施矩阵中)并且设定测试数据:以上测试用例只是在本次迭代中需要用来验证提款用例的一部分测试用例。
需要的其他测试用例包括:* 场景6 - 帐户不存在/帐户类型有误:未找到帐户或帐户不可用* 场景6 - 帐户不存在/帐户类型有误:禁止从该帐户中提款* 场景7 - 帐户余额不足:请求的金额超出帐面金额在将来的迭代中,当实施其他事件流时,在下列情况下将需要测试用例:* 无效卡(所持卡为挂失卡、被盗卡、非承兑银行发卡、磁条损坏等)* 无法读卡(读卡机堵塞、脱机或出现故障)* 帐户已消户、冻结或由于其他方面原因而无法使用* ATM 内的现金不足或不能提供所请求的金额(与CW3 不同,在CW3 中只是一种币值不足,而不是所有币值都不足)* 无法联系银行系统以获得认可* 银行网络离线或交易过程中断电在确定功能性测试用例时,确保满足下列条件:* 已经为每个用例场景确定了充足的正面和负面测试用例。
* 测试用例可以处理用例所实施的所有业务规则,确保对于业务规则,无论是在内部、外部还是在边界条件/值上都存在测试用例。
* 测试用例可以处理所有事件或动作排序(如在设计模型的序列图中确定的内容),还应能处理用户界面对象状态或条件。
* 测试用例可以处理为用例所指定的任何特殊需求,如最佳/最差性能,有时这些特殊需求会与用例执行过程中的最小/最大负载或数据容量组合在一起。
对于负载测试:对于强度测试:为安全性/访问控制测试生成测试用例,在ATM 用例中,如果主角“银行客户”的卡和帐户有的属于拥有这个ATM 机的银行,有的是竞争银行的银行卡(和帐户),或是企图使用该ATM不支持的银行卡,则将对该主角“银行客户”执行不同的用例事件流。
对于功能性测试用例,请同样遵循上面列举的指南。
关于安全性和访问控制测试用例的示例:手机软件测试举例:一、等价类分析法等价类划分方法针对手机状态大致可以归几个大类:1.按键类(等价法):有效输入和无效输入(有效输入指UM和菜单指示;无效输入指测试菜单功能此时没有定义的按键和用户动作);2. 外部中断类(等价法):常用、不常用及无效2.1. 常用:来电和来消息(短信、彩信、push消息);掀合盖;侧键;耳机&FM;情景模式;电量不足2.2. 不常用:充电;闹钟&记事本&关机时间&整点报时提示;Icon&动画显示;Icon&动画刷新;编辑界面&pop显示框输入为空或满;编辑界面&pop显示框状态输入法默认&字符编码默认;失效SIM卡;大容量等SIM卡兼容;排序;号码识别;2.3. 无效:“资料读取中…”;“复制中…”;“请稍后再试”3. 存储器类3.1. 等价法分类:读或写;不读或不写。