《黑盒测试3(因果图).ppt》由会员分享,可在线阅读,更多相关《黑盒测试3(因果图).ppt(38页珍藏版)》请在三一办公上搜索。
1、黑盒测试,因果图法,因果图法介绍,因果图法产生的背景:等价类划分法和边界值分析方法都是着重考虑输入条件,但没有考虑输入条件的各种组合、输入条件之间的相互制约关系。这样虽然各种输入条件可能出错的情况已经测试到了,但多个输入条件组合起来可能出错的情况却被忽视了。因果图法能够帮助测试人员按照一定的步骤,高效率的开发测试用例,以检测程序输入条件的各种组合情况,它是将自然语言转化为形式语言规格说明的一种严格方法,可以指出规格说明存在的不完整性和二义性。,因果图法介绍,因果图法是基于这样的一种思想:一些程序的功能可以用判定表(或称决策表)的形式来表示,并根据输入条件的组合情况规定相应的操作。即:因果图法不
2、过是决策表法的前期阶段。我们也可以直接应用决策表。因果图法的定义:是一种利用图解法分析输入的各种组合情况,从而设计测试用例的方法,它适合于检查程序输入条件的各种组合情况。,因果图法介绍,采用因果图法设计测试用例的步骤:(1)根据程序规格说明书描述,分析并确定因(输入条件)和果(输出结果或程序状态的改变),画出因果图。(2)将得到的因果图转换为判定表。(3)为判定表中每一列所表示的情况设计一个测试用例,判定表介绍,在一些数据处理问题中,某些操作依赖多个逻辑条件的取值。处理这类问题的一个非常有力的分析和表达工具是判定表一些软件的功能需求可用判定表表达得非常清楚,在检验程序的功能时判定表也就成为一个
3、非常有力的工具,判定表介绍,决策表通常由以下4部分组成:条件桩列出问题的所有条件条件项针对条件桩给出的条件列出所有可能的取值动作桩列出问题规定的可能采取的操作动作项指出在条件项的各组取值情况下应采取的动作,将任何一个条件组合的特定取值及相应要执行的动作称为一条规则。在决策表中贯穿条件项和动作项的一列就是一条规则。,判定表图示,判定表举例,条件桩,动作桩,条件项,动作项,因果图法步骤,分析软件规格说明描述中的因果关系(输入与输出的因果关系)找出原因与结果、原因与原因之间的对应关系,画出因果图在因果图上标记约束或限制条件把因果图转化为判定表将判定表中的每一列拿出来设计测试用例,因果图介绍,因果图中
4、使用4种因果关系符号来表达因果关系:,因果图介绍,因果图中的4种基本关系 在因果图的基本符号中,图中的左结点ci表示输入状态(或称原因),右结点ei表示输出状态(或称结果)。ci 与 ei 取值0或1,0表示某状态不出现,1则表示某状态出现。恒等:若 c1 是1,则 e1 也为1,否则 e1 为0。非:若 c1 是1,则 e1 为0,否则e1为1。或:若 c1 或 c2 或 c3 是1,则 e1 为1,否则 e1 为0。与:若 c1 和 c2 都是1,则 e1 为1,否则 e1 为0。,因果图介绍,因果图中的约束 在实际问题中输入状态相互之间、输出状态相互之间可能存在某些依赖关系,称为“约束”
5、。对于输入条件之间的约束有E(Exclusive or)、I(In)、O(Only)、R(Request)四种约束,对于输出条件的约束只有M(Mandate)约束。(1)原因与原因之间的约束E约束(异):输入a和b中最多有一个可能为1,即a和b不能同时 为1。I 约束(或):输入a、b、c中至少有一个必须为1,即 a、b、c不能同时为0。O约束(唯一):输入a和b必须有一个且仅有一个为1。R约束(要求):输入a是1时,输入b必须是1,即a为1时,b不能为0。(2)结果与结果之间的约束M约束(强制):若结果a为1,则结果b强制为0。,因果图介绍,因果图中用来表示约束关系的约束符号:,因果图法主题
6、思想(具体),因果图法最终生成的是决策表。利用因果图生成测试用例的基本步骤如下:(1)分析软件规格说明中哪些是原因(即输入条件或输入条件的等价类),哪些是结果(即输出条件),并给每个原因和结果赋予一个标识符。(即:找出原因和结果)(2)分析软件规格说明中的语义,找出原因与结果之间、原因与原因之间对应的关系,根据这些关系画出因果图。(即:标定因果关系)(3)由于语法或环境的限制,有些原因与原因之间、原因与结果之间的组合情况不可能出现。为表明这些特殊情况,在因果图上用一些记号表明约束或限制条件。(4)把因果图转换为决策表。(5)根据决策表中的每一列设计测试用例。,因果图法案例,第一列字符必须是#或
7、*,第二列字符必须是一个数字,在此情况下进行文件的修改。但如果第一列字符不正确,则给出信息L;如果第二列字符不是数字,则给出信息M。解题步骤(1)分析程序的规格说明,列出原因和结果。(2)找出原因与结果之间的因果关系、原因与原因之间的约束关系,画出因果图。(3)在因果图上标记约束或限制条件。(4)将因果图转换成决策表。(5)根据(4)中的决策表,设计测试用例的输入数据和预期输出。,因果分析,原因:c1第一列字符是#c2第一列字符是*c3第二列字符是一数字10 第一列字符是#或是*结果:e1给出信息Le2修改文件e3给出信息M,因果分析,(1)分析程序规格说明中的原因和结果:(2)画出因果图(编
8、号为10的中间结点是导出结果的进一步原因):,由因果图建立的判定表,(3)将因果图转换成如下所示的决策表:,规则,选项,从决策表中得到测试用例,(4)根据决策表中的每一列设计测试用例:,课堂练习(中国象棋走马下法),1、以中国象棋中马的走法为例子,具体说明:1、如果落点在棋盘外,则不移动棋子;2、如果落点与起点不构成日字型,则不移动棋子;3、如果落点处有自己方棋子,则不移动棋子;4、如果在落点方向的邻近交叉点有棋子(绊马腿),则不移动棋子;5、如果不属于1-4条,且落点处无棋子,则移动棋子;6、如果不属于1-4条,且落点处为对方棋子(非老将),则移动棋子并除去对方棋子;7、如果不属于1-4条,
9、且落点处为对方老将,则移动棋子,并提示战胜对方,游戏结束。请绘制出因果图和判定表,并给出相应的测试用例。,课堂练习(中国象棋走马下法),第一步:分析原因和结果原因:1、落点在棋盘外;2、不构成日字;3、落点有自方棋子;4、绊马腿;5、落点无棋子;6、落点为对方棋子(非老将);7、落点为对方老将。结果:21、不移动;22、移动;23、移动己方棋子消除对方棋子;24、移动并战胜对方。,课堂练习(中国象棋跳马下法),第二步:画出因果图,可以判定程序中应该包括12个函数或方法,课堂练习(中国象棋走马下法),第三步:转换成判定表,课堂练习(自动售货机),2、有一个处理单价为5角钱的饮料的自动售货机,其规
10、格说明如下:(1)若投入5角钱或1元钱的硬币,按下橙汁或啤酒的按钮,则相应的饮料就送出来。(2)若售货机没有零钱找,则一个显示零钱找完的红灯亮,这时在投入1元硬币并押下按钮后,饮料不送出来而且1元硬币也退出来;(3)若有零钱找,则显示零钱找完的红灯灭,在送出饮料的同时退还5角硬币。请绘制出因果图和判定表,并给出相应的测试用例。,课堂练习(自动售货机),第一步:分析原因和结果原因:1、售货机有零钱找2、投入1元硬币3、投入5角硬币4、押下橙汁按钮5、押下啤酒按钮结果:21、售货机零钱找完灯亮22、退还1元硬币23、退还5角硬币24、送出橙汁饮料25、送出啤酒饮料,课堂练习(自动售货机),第二步:
11、画出因果图,课堂练习(自动售货机),第二步:画出因果图所有原因结点列在左边,所有结果结点列在右边。建立中间结点,表示处理的中间状态。中间结点:11、投入1元硬币且押下饮料按钮12、押下橙汁或啤酒的按钮13、应当找5角零钱并且售货机有零钱找14、钱已付清,课堂练习(自动售货机),第三步:转换成判定表,因果图法总结,优点1、因果图法能够帮助我们按照一定步骤,高效的选择测试用例,设计多个输入条件组合用例2、因果图分析还能为我们指出,软件规格说明描述中存在的问题3、可以依据因果图检验需求的逻辑和程序未来应包含的函数或方法。缺点1、输入条件与输出结果的因果关系,有时难以从软件需求规格说明书得到。2、即时
12、得到了这些因果关系,也会因为因果关系复杂导致因果图非常庞大,测试用例数目极其庞大。,思考,1、因果图法设计测试用例最关键的步骤是什么?(1)找出原因和结果;(2)画出正确的因果图。2、如果原因众多,我们怎么办?按照原因与原因或结果之间的关联关系,将原因和结果之间的因果图细分来分成更小的因果图来测试。,习题,1、某软件的一个模块的需求规格说明书中描述:(1)年薪制员工:严重过失,扣年终风险金的4%;过失,扣年终风险金的2%。(2)非年薪制员工:严重过失,扣当月薪资的8%;过失,扣当月薪资的4%。请绘制出因果图和判定表,并给出相应的测试用例。,错误推测法,错误推测法是基于经验和直觉推测程序中所有可
13、能存在的各种错误,从而有针对性地设计测试用例,错误推测法基本思想,列举出程序中所有可能有的错误和容易发生错误的特殊情况来设计测试用例例如:以前测试时曾出现过错误的地方,包括单元测试、集成测试、系统测试、前几次回归测试输入数据的问题,如是否可为空,是否可以有特殊字符,是否可以小于0、等于0等等一些问题的范围或边界,测试方法的选择,通常在确定测试策略时,有以下5条参考原则:(1)在任何情况下都必须采用边界值分析法。这种方法设计出的测试用例发现程序错误的能力最强。(2)必要时采用等价类划分法补充测试用例。(3)采用错误推断法再追加测试用例。(4)对照程序逻辑,检查已设计出的测试用例的逻辑覆盖 程度。如果没有达到要求的覆盖标准,则应当再补充更多的测试用例。(5)如果程序的功能说明中含有输入条件的组合情况,则应一开始就选用因果图法。,习题,1、某城市电话号码由三部分组成,分别是:地区码 空白或三位数字;前 缀 非0或1开头的三位数字;后 缀 4位数字。假定被测程序能接受一切符合上述规定的电话号码,拒绝所有不符合规定的电话号码。要求:(1)请选择适当的黑盒测试方法,写出选择该方法的原因,并使用该方法的步骤,给出测试用例表。(2)如果所生成的测试用例不够全面,请考虑用别的测试 方法生成一些补充的测试用例。,