《第05课-黑盒测试4-因果图错误推测场景法概要.ppt》由会员分享,可在线阅读,更多相关《第05课-黑盒测试4-因果图错误推测场景法概要.ppt(52页珍藏版)》请在taowenge.com淘文阁网|工程机械CAD图纸|机械工程制图|CAD装配图下载|SolidWorks_CaTia_CAD_UG_PROE_设计图分享下载上搜索。
1、软件测试孙旭光防 灾 科 技 学 院复 习n黑盒测试黑盒测试把程序看作一个不能打开的黑盒子,只把程序看作一个不能打开的黑盒子,只检查程序功能是否按照需求规格说明书的规定正常使检查程序功能是否按照需求规格说明书的规定正常使用用。也叫做功能测试或者也叫做功能测试或者基于规格说明的测试基于规格说明的测试。n黑盒测试用例设计主要有以下几种方法:黑盒测试用例设计主要有以下几种方法:n等价类划分法等价类划分法n边界值分析法边界值分析法n因果图法因果图法n决策表法决策表法经常组合起来使用经常组合起来使用复习决策表法n基于决策表的测试是最严格,最具有逻辑性的黑盒测基于决策表的测试是最严格,最具有逻辑性的黑盒测
2、试方法。试方法。n决策表决策表是把作为条件的所有输入的各种组合值以及对是把作为条件的所有输入的各种组合值以及对应输出值都罗列出来而形成的表格。应输出值都罗列出来而形成的表格。n它能够将复杂的问题按照各种可能的情况全部列举出来,简明它能够将复杂的问题按照各种可能的情况全部列举出来,简明并避免遗漏。并避免遗漏。n因此,利用决策表能够设计出完整的测试用例集合。因此,利用决策表能够设计出完整的测试用例集合。n决策表适合处理:针对不同逻辑条件的组合值,分别决策表适合处理:针对不同逻辑条件的组合值,分别执行不同的操作这样的问题。执行不同的操作这样的问题。复习决策表法n决策表的组成:决策表的组成:n构造决策
3、表可采用以下构造决策表可采用以下5个步骤:个步骤:n列出所有的条件桩和动作桩。列出所有的条件桩和动作桩。n确定规则的个数。确定规则的个数。n填入条件项。填入条件项。n填入动作项,得到初始决策表。填入动作项,得到初始决策表。n简化决策表,合并相似规则。简化决策表,合并相似规则。第二章 黑盒测试n2.1 黑盒测试的基本概念黑盒测试的基本概念n2.2 等价类划分等价类划分n2.3 边界值分析法边界值分析法n2.4 因果图法因果图法n2.5 决策表法决策表法n2.6 黑盒测试方法的比较与选择黑盒测试方法的比较与选择n2.7 黑盒测试工具介绍黑盒测试工具介绍因果图法n当程序输入之间有关系,例如:约束关系
4、、组合关系时,用等价当程序输入之间有关系,例如:约束关系、组合关系时,用等价类划分和边界值分析是很难描述的,测试效果难以保障。类划分和边界值分析是很难描述的,测试效果难以保障。n因此必须考虑使用一种适合于描述对于多种条件的组合,产生多因此必须考虑使用一种适合于描述对于多种条件的组合,产生多个相应动作的测试方法个相应动作的测试方法因果图法。因果图法。n因果图法因果图法就是一种利用图解法分析输入的各种组合情况,从就是一种利用图解法分析输入的各种组合情况,从而设计测试用例的方法,它适合于检查程序输入条件的各种情况而设计测试用例的方法,它适合于检查程序输入条件的各种情况的组合。的组合。n如果开发项目在
5、设计阶段就采用的决策表,就不必再画因果图,如果开发项目在设计阶段就采用的决策表,就不必再画因果图,可以直接利用决策表设计测试用例。可以直接利用决策表设计测试用例。因果图法n因果图法的原理因果图法的原理n因果图:以直线连接左右结点,左结点表示输入状态因果图:以直线连接左右结点,左结点表示输入状态(因),右结点表示输出状态(果)。(因),右结点表示输出状态(果)。因果图法n在实际问题中,输入状态之间可能存在某些依赖关系,在实际问题中,输入状态之间可能存在某些依赖关系,称为称为约束约束。约束的含义n输入条件的约束:输入条件的约束:nE(异或):(异或):a和和b中最多只能有一个为中最多只能有一个为1
6、,即,即a和和b不能不能同时为同时为1。nI(或):(或):a、b和和c中至少有一个为中至少有一个为1,即,即a、b和和c不能不能同时为同时为0。nO(唯一):(唯一):a和和b必须有一个,且仅有一个为必须有一个,且仅有一个为1.nR(要求):(要求):a是是1时,时,b必须是必须是1,n输出条件的约束:输出条件的约束:nM(强制):如果结果(强制):如果结果a是是1,则结果,则结果b强制为强制为0.因果图法n因果图法测试用例的设计步骤:因果图法测试用例的设计步骤:n确定软件规格中的原因和结果。确定软件规格中的原因和结果。n分析规格说明中哪些是原因(即输入条件或输入条件的等价类)分析规格说明中
7、哪些是原因(即输入条件或输入条件的等价类),哪些是结果(即输出条件),并给每个原因和结果赋予一个,哪些是结果(即输出条件),并给每个原因和结果赋予一个标识符。标识符。n确定原因和结果之间的逻辑关系。确定原因和结果之间的逻辑关系。n分析软件规格说明中的语义,找出原因与结果之间、原因与原分析软件规格说明中的语义,找出原因与结果之间、原因与原因之间对应的关系,根据这些关系画出因果图。因之间对应的关系,根据这些关系画出因果图。n确定因果图中的各个约束。确定因果图中的各个约束。n在因果图上用一些记号表明有些原因与原因之间、原因与结果在因果图上用一些记号表明有些原因与原因之间、原因与结果之间不可能出现的组
8、合情况,即约束或限制条件。之间不可能出现的组合情况,即约束或限制条件。n把因果图转换为决策表。把因果图转换为决策表。n根据决策表设计测试用例。根据决策表设计测试用例。因果图法n因果图法的测试运用因果图法的测试运用n程序的规格说明要求:输入的第一个字符必须是程序的规格说明要求:输入的第一个字符必须是#或或*,第二个字符必须是一个数字,在此情况下进行文件,第二个字符必须是一个数字,在此情况下进行文件的修改;如果第一个字符不是的修改;如果第一个字符不是#或或*,则给出信息,则给出信息N;如果第二个字符不是数字,则给出信息如果第二个字符不是数字,则给出信息M。n1.将原因和结果分开。将原因和结果分开。
9、n原因:原因:nc1第一个字符是第一个字符是#nc2第一个字符是第一个字符是*nc3第二个字符是一个数字第二个字符是一个数字n结果:结果:ne1给出信息给出信息Nne2修改文件修改文件ne3给出信息给出信息M因果图法n2.绘制因果图。其中编号为绘制因果图。其中编号为10的中间节点是导出结果的中间节点是导出结果的进一步原因。的进一步原因。n画出约束条件。因为画出约束条件。因为c1和和c2不可能同时为不可能同时为1,即第一个字符不,即第一个字符不可能既是可能既是#又是又是*,在因果图上可对其施加,在因果图上可对其施加E约束,得到具有约约束,得到具有约束的因果图。束的因果图。c1c2c310e3e2
10、e1因果图表示c1c2c310e3e2e1E具有E约束的因果图表示或或非非与与因果图法n3.将因果图转换成决策表将因果图转换成决策表根根 据据 因因 果果 图图 建建 立立 的的 决决 策策 表表 规则规则选项选项12345678条件:条件:c111110000c211001100c31010101010111100动作:动作:e1e2e3不可能不可能因果图法n4.设计测试用例。根据上一步中的决策表,最左面的设计测试用例。根据上一步中的决策表,最左面的两列两列c1和和c2同时为同时为1是不可能的,需要排除。所以,可是不可能的,需要排除。所以,可设计出设计出6个测试用例:个测试用例:n1:输入数
11、据:输入数据#3 预期结果预期结果修改文件修改文件n2:输入数据:输入数据#A 预期结果预期结果给出信息给出信息Mn3:输入数据:输入数据*6 预期结果预期结果修改文件修改文件n4:输入数据:输入数据*B 预期结果预期结果给出信息给出信息Mn5:输入数据:输入数据A1 预期结果预期结果给出信息给出信息Nn6:输入数据:输入数据GT 预期结果预期结果给出信息给出信息M和和N例如,有一个处理单价为例如,有一个处理单价为 5 角钱的饮料自动售角钱的饮料自动售货机,软件测试用例的设计规格说明如下:货机,软件测试用例的设计规格说明如下:若投入若投入 5 角钱或角钱或 1 元钱的硬币,押下元钱的硬币,押下
12、橙汁橙汁或或啤酒啤酒的按钮,则相应的饮料就送出来。的按钮,则相应的饮料就送出来。若售货机没有零钱找,则一个显示若售货机没有零钱找,则一个显示零钱找完零钱找完的红灯亮,这时在投入的红灯亮,这时在投入 1 元硬币并押下按钮元硬币并押下按钮后,饮料不送出来而且后,饮料不送出来而且 1 元硬币也退出来;若元硬币也退出来;若有零钱找,则显示有零钱找,则显示零钱找完零钱找完的红灯灭,在的红灯灭,在送出饮料的同时退还送出饮料的同时退还 5 角硬币。角硬币。”练习1)分析这一段说明,列出原因和结果分析这一段说明,列出原因和结果:1.售货机有零钱找售货机有零钱找 2.投入投入 1 元硬币元硬币 3.投入投入 5
13、 角硬币角硬币 4.押下橙汁按钮押下橙汁按钮 5.押下啤酒按钮押下啤酒按钮 结果:结果:21.售货机售货机零钱找完零钱找完灯亮灯亮 22.退还退还 1 元硬币元硬币 23.退还退还 5 角硬币角硬币 24.送出橙汁饮料送出橙汁饮料 25.送出啤酒饮料送出啤酒饮料2)画出因果图所有原因结点列在左,所有结果结画出因果图所有原因结点列在左,所有结果结点列在右。建立中间结点,表示中间状态点列在右。建立中间结点,表示中间状态:3)11.投入投入 1 元硬币且押下饮料按钮元硬币且押下饮料按钮4)12.押下押下橙汁橙汁或或啤酒啤酒的按钮的按钮5)13.应当找应当找 5 角零钱并且售货机有零钱角零钱并且售货机
14、有零钱找找6)14.钱已付清钱已付清7)由于由于 2 与与 3,4 与与 5 不能同时发生,分别加上不能同时发生,分别加上约束条件约束条件 E。8)因果图转换成判定表。因果图转换成判定表。9)在判定表中选择测试用例。在判定表中选择测试用例。练习n某电力公司有某电力公司有A、B、C、D四类收费标准,规定如四类收费标准,规定如下图。请用因果图法设计测试用例。下图。请用因果图法设计测试用例。用电类别用电额度用电期间收费标准居民用电100度/月A类100度/月B类动力用电10000度/月非高峰B类10000度/月非高峰C类10000度/月高峰C类10000度/月高峰D类n将原因和结果分开:将原因和结果
15、分开:n原因:原因:n 1居民用电;居民用电;n 2动力用电;动力用电;n 3100度度/月;月;n 410000度度/月;月;n 5高峰用电;高峰用电;n 结果:结果:n AA类计费;类计费;n BB类计费;类计费;n CC类计费;类计费;n DD类计费。类计费。n加上几个加上几个中间节点中间节点:n n I 1民用且民用且100度度/月;月;n I 2动力、非高峰且动力、非高峰且10000度度/月;月;n I 3动力、非高峰且动力、非高峰且 10000度度/月;月;n I 4动力、高峰且动力、高峰且10000度度/月。月。因果图规则规则选项选项123456条件:条件:11100002001
16、1113104101050011动作:动作:ABCDn设计测试用例:设计测试用例:n1:输入数据:输入数据居民电,居民电,90度度/月;预期结果月;预期结果An2:输入数据:输入数据居民电,居民电,110度度/月;预期结果月;预期结果Bn3:输入数据:输入数据动力电,非高峰,动力电,非高峰,8000度度/月;预月;预期结果期结果Bn4:输入数据:输入数据动力电,非高峰,动力电,非高峰,12000度度/月;预月;预期结果期结果Cn5:输入数据:输入数据动力电,高峰,动力电,高峰,9000度度/月;预期月;预期结果结果Cn6:输入数据:输入数据动力电,高峰,动力电,高峰,11000度度/月;预期月
17、;预期结果结果D黑盒测试法概述黑盒测试法概述1等价类划分等价类划分2边界值分析边界值分析3基于决策表的测试基于决策表的测试4主主要要内内容容因果图法因果图法5第二章第二章 黑盒测试技术黑盒测试技术其它方法其它方法6黑盒测试黑盒测试1 13 35 54 42 2边界值法边界值法等价类划分法等价类划分法其它其它决策表法决策表法因果图法因果图法v定义定义 基于经验和直觉推测程序中可能存在的各种错误,针对这些错误设计相应的测试用例常作为一种补充测试用例的设计方法vSteps错误猜测设计法是一个在很大程度上凭直觉进行的比较随意的过程1.用列表举出程序中可能有的错误和容易发生错误的特殊情况2.基于该列表构
18、造测试用例2.6 错误推测法v现在的软件几乎都是用事件触发来控制流程的,事件触发时的情景便形成了场场景景,而同一事件不同的触发顺序和处理结果就形成事件流。事件流。v这种在软件设计方面的思想也可以引入到软件测试中,可以比较生动地描绘出事件触发时的情景,有利于测试设计者设计测试用例,同时使测试用例更容易理解和执行。v场场景景法法就是通过用例场景描述用例执行的路径,从用例开始到结束遍历这条路径上所有基本流和备选流。2 2.7 7 场景法场景法使用用例进行需求建模使用用例进行需求建模 v利用用例(利用用例(use case)进行需求建模的输出物,包括)进行需求建模的输出物,包括用例模型术语表补充规格说
19、明用例模型(用例模型(Use Case Model)v用例模型用例模型使用用例(Use Case)描述系统功能系统功能的模型,包含1.用例图(Use Case Diagram)2.每个用例的规格说明(Use case Specification)用例规格说明用例规格说明 v用例规格说明用例规格说明是文本描述,利用结构化自然语言事件流事件流 v事件流组成事件流组成基本流(Basic Flow)仅有一个基本流,如图中的白色箭头是经过用例的最简单的路径,指每个步骤都“正常”运作时所发生的事情备选流(Alternative Flow)可以有多个,描述基本流步骤1.可选的或备选的情况2.异常事件流程事件
20、流的结构 场景场景 v定义定义场景是事件流的一个实例,由基本流或基本流和备选流中的步骤组成,表明了用户执行系统的操作序列。从事件流到场景从事件流到场景 v从事件流到场景从事件流到场景场景可以遍历所有从用例开始到结束的包含基本流和备选流的路径 1.场景1:基本流;2.场景2:基本流、备选流1;3.场景3:基本流、备选流1、备选流2;4.场景4:基本流、备选流3;5.场景5:基本流、备选流3、备选流1;6.场景6:基本流、备选流3、备选流1、备选流2;7.场景7:基本流、备选流4;8.场景8:基本流、备选流3、备选流4。注:为简单起见,场景5、6和8只考虑了备选流3循环执行一次的情况 某用例的基本
21、流和备选流 从事件流到场景从事件流到场景 v从事件流到场景从事件流到场景场景可以遍历所有从用例开始到结束的包含基本流和备选流的路径 1.场景1:基本流0;2.场景2:基本流0、备选流1;3.场景3:基本流0、备选流1、备选流2;4.场景4:基本流0、备选流1、备选流4;5.场景5:基本流0、备选流3;6.场景6:基本流0、备选流3、备选流1;7.场景7:基本流0、备选流3、备选流1、备选流2;8.场景8:基本流0、备选流3、备选流4;9.场景9:基本流0、备选流3、备选流5;10.场景9:基本流0、备选流4;012354场景法场景法 v测试思想测试思想 根据需求规格说明书中的用例所包含的事件流
22、信息构造场景并设计相应的测试用例使每个场景至少发生一次v步骤步骤1.构造场景列表。根据说明,描述出程序的基本流和备选流,针对每个用例,构造该用例的所有场景2.构造测试用例设计矩阵。针对每个场景,至少设计一个可以让该场景发生的测试用例3.为每一个测试用例选择相应的测试输入案例案例 v课程注册用例的事件流课程注册用例的事件流基本流的描述 如表1所示备选流的描述 如表2所示课程注册系统案例案例 课程注册用例基本流步 骤说 明登陆当学生访问Wylie大学Web站点时,本用例开始。系统提示学生输入学号和密码选择课程系统显示若干学生可以使用的功能,学生选择其中的“课表生成”功能获取课程信息系统从课程目录系
23、统中检索可选的课程信息列表并将结果显示给学生选课学生从系统提供的课程信息列表中选择四门首选课程和两门备选课程提交选课请求学生提供系统选课完成。系统对学生所选课程一一核实是否满足课程所需的先修条件显示选课结果系统显示最终的选课及其课程安排结果并且确认选课编号表1 “选课”用例的基本流案例案例 备选流步 骤说 明备选流:学生无法识别在基本流步注册中,如果系统确定学生学号和密码无效则会显示一个错误的信息备选流:退出课程注册系统允许学生在选课过程的任何时刻退出。在退出前,学生可以选择保存一个不完整的课表。课表中所有没有标记为“已登录”的课程将被标记为“已选择”。这个课表由系统保存。本用例结束备选流:不
24、满足先修条件、选课人数已满和课程时间冲突在基本流的第步提交选课请求中,如果系统确定学生不满足选择课程的先修条件或者选课人数已满或者课程安排有冲突,系统将不接受学生的选课请求。此时,系统在提示学生选择一门不同课程的信息后回到基本流第步选课备选流:课程目录系统不可用在基本流第步获取课程信息中,如果课程目录系统宕机,系统在显示相应的提示信息后结束用例备选流:选课已经结束当用例开始时,如果发现课程注册已经结束的话,系统在显示相应的提示信息后结束用例表2 “选课”用例的备选流1.构造场景列表构造场景列表 v步骤步骤1.根据事件流描述,构造事件流图和场景列表。备选流备选流 5备选流备选流 4备选流备选流
25、3备选流备选流 1 备选流备选流 2事件流图构造场景列表构造场景列表 v场景列表(部分)场景列表(部分)备选流备选流 5备选流备选流 4备选流备选流 3备选流备选流 1 备选流备选流 2场景基本流备选流场景1成功的注册基本流场景2学生无法识别基本流备选流1 场景3用户退出基本流备选流2 场景4选课不成功基本流备选流3 场景5课程目录系统不可用基本流备选流4 场景6选课已经结束基本流备选流5 2.设计测试用例设计测试用例 v步骤:步骤:1.确定执行用例场景所需的数据元素2.构造矩阵确定列内容:确定列内容:除了需要包含执行场景所需的数据元素,还需要包含测试用例标识、被测场景标识或名称确定行内容:确
26、定行内容:p根据每一场景,确定与其相关的测试用例输入项p根据被测场景特征,补充相应测试用例设计测试用例设计测试用例 v对于课程注册用例,确定其列内容为:v确定行内容nV表示这个条件必须是有效的才可执行基本流,I表示条件无效,N/A表示这个条件不适用于测试用例 设计测试用例设计测试用例 v“选课”的测试用例矩阵3.填入测试数据填入测试数据 v步骤步骤根据设计的矩阵结果,选择相应的测试数据实例2v分析ATM自动取款机的“提款”用例场景流程并设计测试用例和测试数据v基本流:1.插入磁卡 2.ATM机验证帐户正确 3.输入密码正确,通过验证 4.输入取款金额 5.取出金额 6.取卡v备选流一:帐户不存
27、在或受限制v备选流二:密码不正确,还有输入机会v备选流三:密码不正确,没有输入机会v备选流四:卡中余额不足v备选流五:机中余额不足v备选流六:超过每日最大提款限额v备选流七:输入金额非100倍数场场景描述景描述基本流基本流备选备选流流场景1成功的提款基本流场景2帐户不存在/帐户受限基本流备选流1场景3密码不正确(还有输入机会)基本流备选流2场景4密码不正确(不再有输入机会)基本流备选流3场景5卡中余额不足基本流备选流4场景6机中余额不足基本流备选流5场景7超过每日提款上限基本流备选流6场景8输入金额非100倍数基本流备选流7TC(测试用例)ID号场景/条件PIN帐号输入的金额(或选择的金额)帐
28、面金额(元)ATM内的金额(元)预期结果CW1场景1:成功的提款4987809-498100500.002000成功的提款。帐户余额被更新为400CW2场景2:帐户不存在/帐户受限n/a809-497n/a500.002000提款选项不可用,用例结束CW3场景3:密码不正确(还有输入机会)4897809-498n/a500.0070.00警告消息,返回基本流步骤3输入密码CW4场景4:密码不正确(不再有输入机会)4897809-498n/a500.002000警告消息,吞卡CW5场景5:卡中余额不足4987809-498600500.002000警告消息,返回基本流步骤4,输入金额CW6场景6
29、:机中余额不足4987809-498400500.00300提示消息,返回基本流步骤4,输入金额CW7场景7:超过每日提款上限4987809-498(24小时内已取款1900)20020003000警告消息,返回基本流步骤4,输入金额CW8场景8:输入金额非100倍数4987809-498150500.002000警告消息,返回基本流步骤4,输入金额总 结n因果图法因果图法从程序规格说明书的描述中找出因和果从程序规格说明书的描述中找出因和果的关系,通过因果图转换为决策表,最后为决策表中的关系,通过因果图转换为决策表,最后为决策表中的每一列设计一个测试用例。的每一列设计一个测试用例。n错误推测法错误推测法依靠测试人员的经验与智慧依靠测试人员的经验与智慧n场景法场景法n设计步骤:设计步骤:n1、依据事件流构造场景列表、依据事件流构造场景列表n2、构造测试用例矩阵、构造测试用例矩阵n3、设计测试用例、设计测试用例