软件测试2-黑盒测试-(下)_第1页
软件测试2-黑盒测试-(下)_第2页
软件测试2-黑盒测试-(下)_第3页
软件测试2-黑盒测试-(下)_第4页
软件测试2-黑盒测试-(下)_第5页
已阅读5页,还剩58页未读 继续免费阅读

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

主要内容第一页1第二页,共67页。判定表法黑盒测试第二页2第三页,共67页。判定表法判定表判定表的原理判定表的组成规则规则合并判定表建立的步骤基于判定表的测试案例:三角形问题,NextDate问题第三页第四页,共67页。1.判定表的原理判定表判定表(DecisionTable),又叫决策表判定表是分析和表达多逻辑条件下执行不同操作的工具。在一些数据处理问题当中,某些操作的实施依赖于多个逻辑条件的组合,即:针对不同逻辑条件的组合值,分别执行不同的操作。判定表很适合于处理这类问题。在程序设计发展的初期,判定表被当作编写程序的辅助工具。在所有的黑盒测试方法中,基于判定表的测试是最为严格、最具有逻辑性的测试方法。第四页第五页,共67页。2.判定表的组成条件桩(ConditionStub)列出问题的所有条件动作桩(ActionStub)列出可能采取的操作条件项(ConditionEntity)列出条件桩的取值动作项(ActionEntity)列出条件项各种取值下应该采取的动作第五页第六页,共67页。规则任何一个条件组合的特定取值及其相应要执行的操作称为规则;在判定表中贯穿条件项和动作项的一列就是一条规则;判定表中列出多少组条件取值,也就有多少条规则,即条件项和动作项有多少列。第六页第七页,共67页。规则示例:三角形问题第七页第八页,共67页。规则合并规则合并规则合并就是判定表的简化。有两条或多条规则具有相同的动作,并且其条件项之间存在着极为相似的关系,就可以将规则合并。第八页第九页,共67页。(1)两条规则合并成一条条件项“—”表示与取值无关。第九页第十页,共67页。(2)两条规则的进一步合并条件项“—”在逻辑上包含其它的条件。第十页第十一页,共67页。3.判定表建立步骤根据软件规格说明①列出所有的条件桩和动作桩;②确定规则的个数;假如有n个条件,每个条件有两个取值(0,1),则有2n

种规则;③填入条件项;④填入动作项,得到初始决策表;⑤简化,合并相似规则(相同动作)。第十一页第十二页,共67页。举例:维修机器问题问题描述:“……对于功率大于50马力的机器,并且维修记录不全或已运行10年以上的机器,应给予优先的维修处理……”请建立判定表。第十二页第十三页,共67页。举例:维修机器问题(续)第十三页第十四页,共67页。举例:维修机器问题(续)

功率大于50马力吗维修记录不全吗运行超过10年吗第十四页第十五页,共67页。举例:维修机器问题(续)12345678条件功率大于50马吗?YYYYNNNN维修记录不全吗?YYNNYYNN运行超过10年吗?YNYNYNYN动作进行优先处理作其他处理利用集合的笛卡尔积计算条件项的取值第十五页第十六页,共67页。举例:维修机器问题(续)12345678条件功率大于50马力吗?YYYYNNNN维修记录不全吗?YYNNYYNN运行超过10年吗?YNYNYNYN动作进行优先处理

作其他处理

1,2合并,5,7合并,6,8合并第十六页第十七页,共67页。举例:维修机器问题(续)(1)(2)(3)(4)(5)条件功率大于50马力吗?YYYNN维修记录不全吗?YNN——运行超过10年吗?—YNYN动作进行优先处理

作其他处理

第十七页第十八页,共67页。基于判定表的测试第十八页第十九页,共67页。案例:三角形问题问题描述

输入三个正整数a、b、c,分别作为三角形的三条边,通过程序判断三条边是否能构成三角形?如果能构成三角形,判断三角形的类型(等边三角形、等腰三角形、一般三角形)。请用基于判定表的方法设计测试用例。第十九页第二十页,共67页。一、设计判定表(1)列出条件桩C1:a,b,c构成三角形?C2:a=b?C3:a=c?C4:b=c?(2)确定规则个数共有四个条件,每个条件的取值为“是”或“否”,因此有24=16条规则。(3)列出动作桩

A1:非三角形;

A2:不等边三角形;

A3:等腰三角形;

A4:等边三角形;

A5:不可能;注意:

条件的选择可以大大扩展判定表的规模。例如:“a,b,c构成三角形吗?”可以扩展为三个条件:a<b+c?b<a+c?c<a+b?第二十页第二十一页,共67页。一、设计判定表(续)123456789条件a,b,c构成三角形FTTTTTTTTa=b?—TTTTFFFFa=c?—TTFFTTFFb=c?—TFTFTFTF动作非三角形

不等边三角形

等腰三角形

等边三角形

不可能

填写判定表(4)第二十一页第二十二页,共67页。一、设计判定表(续)填写判定表(4)1⑴⑵⑶⑷⑸⑹⑺⑻条件a,b,c构成三角形FFFFFFFFFa=b?—FFFTFTTTa=c?—FFTFTFTTb=c?—FTFFTTFT动作非三角形

不等边三角形等腰三角形等边三角形不可能第二十二页第二十三页,共67页。条件桩修改后的判定表其中包含了另外的25-1+24-1+23-1=53个组合第二十三页第二十四页,共67页。a=b,a=c,b≠c二、设计测试用例第二十四页第二十五页,共67页。课后练习登陆功能说明书:(用户输入和密码输入)1)管理员用户名为“admin”,密码为“123456”,正常登陆2)用户名和密码输入为空,提示“用户和密码不允许为空”在用户名和密码非空的情况下:3)要求用户名必须输入字母,否则提示“输入非法”4)要求密码必须输入数字,否则提示“输入非法”在输入合法的情况下:5)用户名错误,提示“用户名和密码输入错误”,用户名和密码清空6)用户名正确,密码错误,提示“用户名和密码输入错误”,用户名保留,密码清空第二十五页第二十六页,共67页。案例:NextDate函数问题描述

程序有三个输入变量month、day、year,并且满足:1≤month≤12、1≤day≤31、1900≤year≤2050。它们分别作为输入日期的月份、日、年份,通过程序可以输出该输入日期在日历上下一天的日期。例如,输入为2011年8月8日,则该程序的输出为2011年8月9日。第二十六页第二十七页,共67页。第一次尝试M1={月份:每月有30天}M2={月份:每月有31天}M3={月份:此月是2月}D1={日期:1≤日期≤28}D2={日期:日期=29}D3={日期:日期=30}D4={日期:日期=31}Y1={年:年是闰年}Y2={年:年是平年}第二十七页第二十八页,共67页。有256条规则的第一次尝试年变量对应的等价类收缩为表中的一个条件第二十八页第二十九页,共67页。第二次尝试(重点考虑闰年)M1={月份:每月有30天}M2={月份:每月有31天}M3={月份:此月是2月}D1={日期:1≤日期≤28}D2={日期:日期=29}D3={日期:日期=30}D4={日期:日期=31}Y1={年:年是平年}Y2={年:年是闰年}第二十九页第三十页,共67页。第三次尝试(关注日期和月份)M1={月份:每月有30天}M2={月份:每月有31天,12月除外}M3={月份:此月是12月}M4={月份:此月是2月}D1={日期:1≤日期≤27}D2={日期:日期=28}D3={日期:日期=29}D4={日期:日期=30}D5={日期:日期=31}Y1={年:年是闰年}Y2={年:年不是闰年}第三十页第三十一页,共67页。NextDate函数的判定表每月30天每月31天,12月除外第三十一页第三十二页,共67页。此月是12月此月是2月此年是闰年第三十二页第三十三页,共67页。NextDate函数的精简判定表第三十三页第三十四页,共67页。NextDate函数的精简判定表续第三十四页第三十五页,共67页。NextDate函数的测试用例第三十五页第三十六页,共67页。指导方针和观察判定表技术适用的应用程序的特征:if-then-else逻辑很突出输入变量之间存在逻辑关系涉及输入变量子集的计算输入与输出之间存在因果关系很高的McCabe圈复杂度第三十六页第三十七页,共67页。判定表的优点判定表的优点能把复杂的问题按各种可能的情况一一列举出来简明而易于理解可避免遗漏因此,利用决策表能够设计出完整的测试用例集合。第三十七页第三十八页,共67页。判定表的缺点及解决方法判定表的缺点不能表达重复执行的动作,例如循环结构判定表不能很好地伸缩有n个条件的决策表有2n

个规则。解决方法使用扩展条目判定表、代数简化表,将大表“分解”为小表,查找条件项的判定表式第三十八页第三十九页,共67页。因果图法黑盒测试第三十九页第四十页,共67页。因果图法的简介因果图法产生的背景:等价类划分法和边界值分析方法都是着重考虑输入条件,但没有考虑输入条件的各种组合、输入条件之间的相互制约关系。这样虽然各种输入条件可能出错的情况已经测试到了,但多个输入条件组合起来可能出错的情况却被忽视了。如果在测试时必须考虑输入条件的各种组合,则可能的组合数目将是天文数字,因此必须考虑采用一种适合于描述多种条件的组合、相应产生多个动作的形式来进行测试用例的设计,这就需要利用因果图(逻辑模型)。

第四十页第四十一页,共67页。因果图法的简介(续)因果图法是基于这样的一种思想:一些程序的功能可以用判定表(或称决策表)的形式来表示,并根据输入条件的组合情况规定相应的操作。因果图法的定义:是一种利用图解法分析输入的各种组合情况,从而设计测试用例的方法,它适合于检查程序输入条件的各种组合情况。采用因果图法设计测试用例的步骤:(1)根据程序规格说明书描述,分析并确定因(输入条件)和果(输出结果或程序状态的改变),画出因果图。(2)将得到的因果图转换为判定表。(3)为判定表中每一列所表示的情况设计一个测试用例。第四十一页第四十二页,共67页。因果图法的简介(续)使用因果图法的优点:(1)考虑到了输入情况的各种组合以及各个输入情况之间的相互制约关系。(2)能够帮助测试人员按照一定的步骤,高效率的开发测试用例。(3)因果图法是将自然语言规格说明转化成形式语言规格说明的一种严格的方法,可以指出规格说明存在的不完整性和二义性。第四十二页第四十三页,共67页。4种因果关系因果图中使用了简单的逻辑符号,以直线联接左右结点。左结点表示输入状态(或称原因),右结点表示输出状态(或称结果)。

Ci表示原因,通常置于图的左部;ei表示结果,通常在图的右部。Ci和ei均可取值0或1,0表示某状态不出现,1表示某状态出现。

①恒等:若ci是1,则ei也是1;否则ei为0。②非:若ci是1,则ei是0;否则ei是1。③或:若c1或c2或c3是1,则ei是1;否则ei为0。“或”可有任意个输入。④与:若c1和c2都是1,则ei为1;否则ei为0。“与”也可有任意个输入。与的其它表示第四十三页第四十四页,共67页。因果图中的约束在实际问题中输入状态相互之间、输出状态相互之间可能存在某些依赖关系,称为“约束”。对于输入条件的约束有E、I、O、R四种约束,对于输出条件的约束只有M约束。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。M约束(强制):若结果a为1,则结果b强制为0。第四十四页第四十五页,共67页。因果图(续)因果图法最终生成的是判定表。利用因果图生成测试用例的基本步骤如下:(1)分析软件规格说明中哪些是原因(即输入条件或输入条件的等价类),哪些是结果(即输出条件),并给每个原因和结果赋予一个标识符。(2)分析软件规格说明中的语义,找出原因与结果之间、原因与原因之间对应的关系,根据这些关系画出因果图。(3)由于语法或环境的限制,有些原因与原因之间、原因与结果之间的组合情况不可能出现。为表明这些特殊情况,在因果图上用一些记号表明约束或限制条件。(4)把因果图转换为判定表。(5)根据判定表中的每一列设计测试用例。第四十五页第四十六页,共67页。因果图法实例1某电力公司有A、B、C、D四类收费标准,并规定:居民用电<100度/月按A类收费≥100度/月按B类收费动力用电<10000度/月,非高峰,B类收费≥10000度/月,非高峰,C类收费<10000度/月,高峰,C类收费≥10000度/月,高峰,D类收费第四十六页第四十七页,共67页。列出原因和结果原因:1——居民用电2——动力用电3——<100度/月3——≥100度/月4——非高峰4——高峰5——<10000度/月5——≥10000度/月结果:A——按A类收费

B——按B类收费

C——按C类收费

D——按D类收费第四十七页第四十八页,共67页。用因果图表明输入和输出间的逻辑关系居民用电<100度/月按A类收费≥100度/月按B类收费动力用电<10000度/月,非高峰,B类收费≥10000度/月,非高峰,C类收费<10000度/月,高峰,C类收费≥10000度/月,高峰,D类收费第四十八页第四十九页,共67页。把因果图转换为判定表组合条件条件(原因)动作(结果)ABC123123456101100011000110000100001104101050011D000110010000测试用例1表示条件成立或动作出现0表示条件不成立或动作不出现第四十九页第五十页,共67页。条件测试用例预期结果组合(输入数据)(输出动作)1列居民电,90度/月A2列居民电,110度/月B3列动力电,非高峰,8000度/月B4列动力电,非高峰,1.2万度/月C5列动力电,高峰,0.9万度/月C6列动力电,高峰,1.1万度/月D

把判定表的每一列写成一个测试用例第五十页第五十一页,共67页。因果图法实例2:自动售货机问题描述有一个处理单价为5角钱的饮料的自动售货机软件测试用例的设计。其规格说明如下:若投入5角钱或1元钱的硬币,押下〖橙汁〗或〖啤酒〗的按钮,则相应的饮料就送出来。若售货机没有零钱找,则一个显示〖零钱找完〗的红灯亮,这时再投入1元硬币并押下按钮后,饮料不送出来而且1元硬币也退出来;若有零钱找,则显示〖零钱找完〗的红灯灭,在送出饮料的同时退还5角硬币。”第五十一页51第五十二页,共67页。实例2步骤原因:

1.售货机有零钱找2.投入1元硬币3.投入5角硬币4.押下橙汁按钮5.押下啤酒按钮建立中间结点,表示处理中间状态11.投入1元硬币且押下饮料按钮12.押下〖橙汁〗或〖啤酒〗的按钮13.应当找5角零钱并且售货机有零钱找14.钱已付清结果21.售货机〖零钱找完〗灯亮22.退还1元硬币23.退还5角硬币24.送出橙汁饮料25.送出啤酒饮料(1)列出原因和结果(2)画出因果图。所有原因结点列在左边,所有结果结点列在右边。(3)由于2与3,4与5不能同时发发生,分别加上约束条件E。(4)因果图(5)转换成判定表第五十二页第五十三页,共67页。因果图第五十三页第五十四页,共67页。判定表第五十四页第五十五页,共67页。因果图法测试举例3实例

用因果图法测试以下程序。程序的规格说明要求:输入的第一个字符必须是#或*,第二个字符必须是一个数字,此情况下进行文件的修改;如果第一个字符不是#或*,则给出信息N,如果第二个字符不是数字,则给出信息M。解题步骤:(1)分析程序的规格说明,列出原因和结果。(2)找出原因与结果之间的因果关系、原因与原因之间的约束关系,画出因果图。(3)将因果图转换成决策表。(4)根据(3)中的决策表,设计测试用例的输入数据和预期输出。第五十五页第五十六页,共67页。因果图法测试举例(续)原因结果c1:第一个字符是#e1:给出信息Nc2:第一个字符是*e2:修改文件c3:第二个字符是一个数字e3:给出信息M(1)分析程序规格说明中的原因和结果:(2)画出因果图(编号为10的中间结点是导出结果的进一步原因):c1c2c3e110e2e3~∨E~∧第五十六页第五十七页,共67页。因果图法测试举例(续)(3)将因果图转换成如下所示的决策表:12345678条件:C1C2C310111110101110010111010100100000动作:e1e2e3不可能√√√√√√√√√测试用例#3#A*6*BA1GT规则选项第五十七页第五十八页,共67页。因果图法测试举例(续)测试用例编号输入数据预期输出1#3修改文件2#A给出信息M3*6修改文件4*B给出信息M5A1给出信息N6GT给出信息N和信息M(4)根据决策表中的每一列设计测试用例:第五十八页第五十九页,共67页。习题1、使用因果图法为三角形问题设计测试用例。2、某软件的一个模块的需求规格说明书中描述:(1)年薪制员工:严重过失,扣年终风险金的4%;过失,扣年终风险金的2%。(2)非年薪制员工:严重过失,扣当月薪资的8%;过失,扣当月薪资的4%。请绘制出因果图和判定表,并给出相应的测试用例。第五十九页第六十页,共67页。其它测试法错误推测法(猜错法)正交试验法场景测试……第六十页60第六十一页,共67页。错误推测法错误推测法的概念:基于经验和直觉推测程序中所有可能存在的各种错误,从而有针对性的设计测试用例的方法。错误推测方法的基本思想:列举出程序中所有可能有的错误和容易发生错误的特殊情况,根据它们选择测试用例。例如:在单元测试时曾列出的许多在模块中常见的错误、以前产品测试中曾经发现的错误等,这些就是经验的总结。还有,输入数据和输出数据为0的情况、输入表格为空格或输入表格只有一行等。这些都是容易发生错误的情况,可选择这些情况下的例子作为测试用例。第六十一页第六十二页,共67页。测试方法的选择通常,在确定测试方法时,应遵循以下原则:根据程序的重要性和一旦发生故障将造成的损失来确定测试等级和测试重点。认真选择测试策略,以便能尽可能

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论