软件测试方法-黑盒测试练习题.ppt

上传人:xt****7 文档编号:15573785 上传时间:2020-08-21 格式:PPT 页数:111 大小:1.53MB
收藏 版权申诉 举报 下载
软件测试方法-黑盒测试练习题.ppt_第1页
第1页 / 共111页
软件测试方法-黑盒测试练习题.ppt_第2页
第2页 / 共111页
软件测试方法-黑盒测试练习题.ppt_第3页
第3页 / 共111页
资源描述:

《软件测试方法-黑盒测试练习题.ppt》由会员分享,可在线阅读,更多相关《软件测试方法-黑盒测试练习题.ppt(111页珍藏版)》请在装配图网上搜索。

1、软件黑盒测试,软件测试,概览,在本章中,我们将学习: 功能性概述 等价类划分 边界值分析 因果图与决策表法 其他测试法,目标,完成此课程之后,学员将具备以下能力: 理解功能性测试的含义 使用等价类划分的方法设计测试用例 使用边界值分析的方法设计测试用例 使用因果图的方法设计测试用例 使用决策表的方法设计测试用例,课程目录,功能性测试概述 功能分解 等价类划分 边界值分析 因果图法 决策表法 其他测试方法,功能性测试概述,任何程序都可以看作是将从输入定义域取值映射到输出值域的函数 将系统看成黒盒,又称为黒盒测试 黒盒的实现是不需要了解的,只需要知道输入和预期输出 软件功能性测试就是通过大量的测试

2、用例来检验软件的运行效果。,功能性测试模型,输入,输出,黒盒,内部实现不可见,测试用例,测试用例定义,测试用例的定义: (1)测试用例是为特定的目的而设计的一组测试输入、 执行条件和预期的结果。 (2)测试用例是执行的最小实体。 测试用例的特征: (1)最有可能抓住错误的; (2)不是重复的、多余的; (3)一组相似测试用例中最有效的; (4)既不是太简单,也不是太复杂。,测试用例定义,测试用例的代表性 能够代表并覆盖各种合理的和不合理的、合法的和非法的、边界的和越界的以及极限的输入数据、操作和环境设置等。 测试结果的可判定性 即测试执行结果的正确性是可判定的,每一个测试用例都应有相应的期望结

3、果。 测试结果的可再现性 即对同样的测试用例,系统的执行结果应当是相同的。,功能性测试的优点,功能性测试与软件如何实现无关,如果实现发生变化,功能性测试用例仍然可用(可重用性,面向回归测试) 测试用例开发可以与软件开发同时进行,可节省软件开发时间,通过软件的用例(use case)就可以设计出大部分功能性测试用例,功能性测试的缺点,测试用例数量较大 测试用例可能产生很多冗余 功能性测试的覆盖范围不可能达到100%,功能性测试的方法,黑盒测试主要是通过将“功能分解”,然后再按照以下方法来设计测试用例。 等价类划分 边界值分析 因果图法 决策表法 其他测试方法,黑盒测试方法,课程目录,功能性测试概

4、述 功能分解 等价类划分 边界值分析 因果图法 其他测试方法,功能分解,含义 把软件分解为相对独立的功能单元 目的 通过功能分解可以明确软件功能性测试的内容 使软件功能性测试可度量,有利于测试监督和管理,功能分解,功能分解应把握好度 不能分解得过粗 不能分解得过细 可提高软件功能性测试度量的准确性 最好按照功能的需求程度分解,要求高的分解的细一点,要求低的,可以测试的粗糙一点。,课程目录,功能性测试概述 功能分解 等价类划分 边界值分析 因果图与决策表法 其他测试方法,等价类划分,等价类是指某个输入域的子集合 在该子集合中,各个输入数据对于揭露程序中的错误都是等效的,子集合中包含的元素要么全部

5、被正确处理,要么全部都没有被正确处理。因此,可以把全部的输入数据划分成若干的等价类,在每一个等价类中取一个数据来进行测试。这样就能以较少的具有代表性的数据进行测试,而取得较好的测试效果。,等价类划分,等价类划分是将程序的输入域(较多见)或输出域(较少见)的不同区间划分为不同的数据类,以便导出测试用例 每个等价类所揭示的程序错误都是等价的 要求此方法的测试用例能各自发现一类错误,从而减少必须开发的测试用例数 测试某等价类的代表值就是等效于对于这一类其它值的测试。 例如:程序在输入小于4的数得到结果5,那么使用2还是3或者都是一样的,等价类划分,等价类划分法是一种重要的、常用的黑盒测试方法,它将不

6、能穷举的测试过程进行合理分类,从而保证设计出来的测试用例具有完整性和代表性。 举例:设计这样的测试用例,来实现一个对所有实数进行开平方运算( y = sqrt(x) )的程序的测试。 思考方向: 由于开平方运算只对非负实数有效,这时需要将所有的实数(输入域x)进行划分,可以分成:正实数、0 和 负实数。假设我们选定+1.4444代表正实数,-2.345代表负实数,则为该程序设计的测试用例的输入为+1.4444、 0 和 -2.345。,等价类分类,有效等价类 对于程序的需求说明来说是合理的,有意义的输入数据所构成的集合 利用它可以检验程序是否实现了预期的功能和性能(确认过程) 无效等价类 对于

7、程序的需求说明来说是不合理的,没有意义的输入数据所构成的集合 利用它可以检验程序对于无效数据的处理能力(验证过程),等价类划分,数学含义 A=x=B C=y=D,问题1:例子中共有多少个等价类?有效的几个,无效的几个? 问题2:写出这些等价类,这些等价类是否可以合并? 问题3:最好用多少个数据来测试?测试数据是否可以减少?,确立等价类的原则,严格的,可以按照变量来划分有效和无效等价类。即: -1-先按照X来划分有效等价类和无效等价类,然后再按照Y来划分有效等价类和无效等价类 -2-最后再形成相应的测试用例。 X: 有效等价类为: A=x=B ; 无效等价类为:xA和Bx两个无效等价类 Y: 有

8、效等价类为:C=y=D ; 无效等价类为:yC和Dy两个无效等价类,确立等价类的原则,如果输入条件规定了取值范围,或者值的个数,则可以确立一个有效等价类和两个无效等价类,例如: 数据范围是150 有效等价类为“=1 0100 ; 0Y=100; Y=0 思考3:这个等价类划分是否测试充分?漏掉了什么情况? 思考4:如果按照输出结果划分等价类,效果如何? 思考5: 应用输入结果的等价类划分测试与边界值分析相比,哪一个更简便,哪一个有效?如何协调?,边界值分析主题思想,采用边界值分析测试的基本思想是:故障往往出现在输入变量的边界值附近。 因此,边界值分析法利用输入变量的最小值(min)、略大于最小

9、值(min+)、输入值域内的任意值(nom)、略小于最大值(max-)和最大值(max)来设计测试用例。 边界值分析法是基于可靠性理论中称为“单故障”的假设,即有两个或两个以上故障同时出现而导致软件失效的情况很少,也就是说,软件失效基本上是由单故障引起的。 因此,在边界值分析法中获取测试用例的方法是: (1) 每次保留程序中一个变量,让其余的变量取正常值,被保留的变量依次取min、min+、nom、max-和max。 (2) 对程序中的每个变量重复 (1) 。,边界值分析法测试用例,例:有两个输入变量x1(ax1b)和x2(cx2d)的程序F的边界值分析测试用例如下: , , , , , ,

10、, , ,边界值分析法测试用例,例2:有二元函数f(x,y),其中x1,12,y1,31。 则采用边界值分析法设计的测试用例是: , , , , , , , , 推论:对于一个含有n个变量的程序,采用边界值分析法测试程序会产生4n+1个测试用例。 练习:有函数f(x,y,x),其中x1900,2100,y1,12,z1,31的。请写出该函数采用边界值分析法设计的测试用例。 , , , , , , , , , , , , ,健壮性测试用例,健壮性测试是作为边界值分析的一个简单的扩充,它除了对变量的5个边界值分析取值外,还需要增加一个略大于最大值(max+)以及略小于最小值(min-)的取值,检查

11、超过极限值时系统的情况。因此,对于有n个变量的函数采用健壮性测试需要6n+1个测试用例。 前面例1中的程序F的健壮性测试如下图所示:,等价类划分与边界值分析的结合,回到等价类划分的例子 结合边界值分析和等价类划分,可以达到更好的测试目的,举例(三角形问题 ),输入3个数:1=a、b、c=100 测试是否为等边三角形、等腰三角形、一般三角形或非三角形 思考:如何按照等价类划分和边界值分析相结合设计测试用例?,举例(三角形问题 ),1、按照输出结果来划分等价类,分为等边三角形、等腰三角形、一般三角形、非三角形 2、边界值分析: a取值:1、2、50、99、100 b取值:1、2、50、99、100

12、 c取值:1、2、50、99、100 a、b、c分别增加健壮性测试0和101等测试取值。 测试用例共有多少个?,等价类划分与边界值分析的结合,思考:有效等价类和边界值分析主要是基于什么原则来设计测试用例的? 它们都没有考虑到变量的相关性。,课程目录,功能性测试概述 功能分解 等价类划分 边界值分析 因果图与决策表法 其他测试方法,因果图法介绍,因果图法产生的背景: 等价类划分法和边界值分析方法都是着重考虑输入条件,但没有考虑输入条件的各种组合、输入条件之间的相互制约关系。这样虽然各种输入条件可能出错的情况已经测试到了,但多个输入条件组合起来可能出错的情况却被忽视了。 因果图法能够帮助测试人员按

13、照一定的步骤,高效率的开发测试用例,以检测程序输入条件的各种组合情况,它是将自然语言转化为形式语言规格说明的一种严格方法,可以指出规格说明存在的不完整性和二义性。,因果图法介绍,因果图法是基于这样的一种思想:一些程序的功能可以用判定表(或称决策表)的形式来表示,并根据输入条件的组合情况规定相应的操作。即:因果图法不过是决策表法的前期阶段。我们也可以直接应用决策表。 因果图法的定义:是一种利用图解法分析输入的各种组合情况,从而设计测试用例的方法,它适合于检查程序输入条件的各种组合情况。 采用因果图法设计测试用例的步骤: (1)根据程序规格说明书描述,分析并确定因(输入条件)和果(输出结果或程序状

14、态的改变),画出因果图。 (2)将得到的因果图转换为判定表。 (3)为判定表中每一列所表示的情况设计一个测试用例。,判定表介绍,在一些数据处理问题中,某些操作依赖多个逻辑条件的取值。处理这类问题的一个非常有力的分析和表达工具是判定表 一些软件的功能需求可用判定表表达得非常清楚,在检验程序的功能时判定表也就成为一个非常有力的工具,判定表介绍,决策表通常由以下4部分组成: 条件桩列出问题的所有条件 条件项针对条件桩给出的条件列出所有可能的取值 动作桩列出问题规定的可能采取的操作 动作项指出在条件项的各组取值情况下应采取的动作,将任何一个条件组合的特定取值及相应要执行的动作称为一条规则。在决策表中贯

15、穿条件项和动作项的一列就是一条规则。,判定表图示,1:表示为是或者取该值;0:表示为否或者不取该值;:表示该值取什么都可以。,判定表举例,条件桩,动作桩,条件项,动作项,因果图法步骤,分析软件规格说明描述中的因果关系(输入与输出的因果关系) 找出原因与结果、原因与原因之间的对应关系,画出因果图 在因果图上标记约束或限制条件 把因果图转化为判定表 将判定表中的每一列拿出来设计测试用例,因果图介绍,因果图中使用4种因果关系符号来表达因果关系:,因果图介绍,因果图中的4种基本关系 在因果图的基本符号中,图中的左结点ci表示输入状态(或称原因),右结点ei表示输出状态(或称结果)。ci 与 ei 取值

16、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。,因果图介绍,因果图中的约束 在实际问题中输入状态相互之间、输出状态相互之间可能存在某些依赖关系,称为“约束”。对于输入条件之间的约束有E(Exclusive or)、I(In)、O(Only)、R(Request)四种约束,对于输出条件的约束只有M(Mandate)约束。 (1)原因与原因之间

17、的约束 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。,因果图介绍,因果图中用来表示约束关系的约束符号:,因果图法主题思想,因果图法最终生成的是决策表。利用因果图生成测试用例的基本步骤如下: (1)分析软件规格说明中哪些是原因(即输入条件或输入条件的等价类),哪些是结果(即输出条件),并给

18、每个原因和结果赋予一个标识符。(即:找出原因和结果) (2)分析软件规格说明中的语义,找出原因与结果之间、原因与原因之间对应的关系, 根据这些关系画出因果图。 (即:标定因果关系) (3)由于语法或环境的限制,有些原因与原因之间、原因与结果之间的组合情况不可能出现。为表明这些特殊情况,在因果图上用一些记号表明约束或限制条件。 (4)把因果图转换为决策表。 (5)根据决策表中的每一列设计测试用例。,因果图法案例,第一列字符必须是#或*,第二列字符必须是一个数字,在此情况下进行文件的修改。但如果第一列字符不正确,则给出信息L;如果第二列字符不是数字,则给出信息M。 解题步骤 (1)分析程序的规格说

19、明,列出原因和结果。 (2)找出原因与结果之间的因果关系、原因与原因之间的约束关系,画出因果图。 (3)将因果图转换成决策表。 (4)根据(3)中的决策表,设计测试用例的输入数据和预期输出。,因果分析,原因: c1第一列字符是# c2第一列字符是* c3第二列字符是一数字 10 第一列字符是#或是* 结果: e1给出信息L e2修改文件 e3给出信息M,因果分析,(1)分析程序规格说明中的原因和结果: (2)画出因果图(编号为10的中间结点是导出结果的进一步原因):,不可能同时存在,由因果图建立的判定表,(3)将因果图转换成如下所示的决策表:,规则,选项,从决策表中得到测试用例,(4)根据决策

20、表中的每一列设计测试用例:,思考,1、什么情况下按照因果图和决策表法来设计测试用例?是否可以不用因果图,不画因果图直接来设计测试用例,这一般是在什么情况下? 2、因果图与决策表法在我们编程过程中对哪些模块比较有效?为什么? A、录入模块;B、查询模块;C、报表模块;D、算法模块;E、逻辑处理模块。,课堂练习(中国象棋走马下法),1、以中国象棋中马的走法为例子,具体说明:1、如果落点在棋盘外,则不移动棋子;2、如果落点与起点不构成日字型,则不移动棋子;3、如果落点处有自己方棋子,则不移动棋子;4、如果在落点方向的邻近交叉点有棋子(绊马腿),则不移动棋子;5、如果不属于1-4条,且落点处无棋子,则

21、移动棋子;6、如果不属于1-4条,且落点处为对方棋子 (非老将) ,则移动棋子并除去对方棋子;7、如果不属于1-4条,且落点处为对方老将,则移动棋子,并提示战胜对方,游戏结束。 请绘制出因果图和判定表,并给出相应的测试用例。,课堂练习(中国象棋走马下法),第一步:分析原因和结果原因:1、落点在棋盘外;2、不构成日字;3、落点有自方棋子;4、绊马腿;5、落点无棋子;6、落点为对方棋子;7、落点为对方老将。结果:21、不移动;22、移动;23、移动己方棋子消除对方棋子;24、移动并战胜对方。,课堂练习(中国象棋跳马下法),第二步:画出因果图,可以判定程序中应该包括12个函数或方法,课堂练习(中国象

22、棋走马下法),第三步:转换成判定表,课堂练习(自动售货机),2、有一个处理单价为5角钱的饮料的自动售货机,其规格说明如下:(1)若投入5角钱或1元钱的硬币,押下橙汁或啤酒的按钮,则相应的饮料就送出来。(2)若售货机没有零钱找,则一个显示零钱找完的红灯亮,这时在投入1元硬币并押下按钮后,饮料不送出来而且1元硬币也退出来;(3)若有零钱找,则显示零钱找完的红灯灭,在送出饮料的同时退还5角硬币。 请绘制出因果图和判定表,并给出相应的测试用例。,课堂练习(自动售货机),第一步:分析原因和结果原因:1、售货机有零钱找2、投入1元硬币3、投入5角硬币4、押下橙汁按钮5、押下啤酒按钮结果:21、售货机零钱找

23、完灯亮22、退还1元硬币23、退还5角硬币24、送出橙汁饮料25、送出啤酒饮料,课堂练习(自动售货机),第二步:画出因果图,课堂练习(自动售货机),第二步:画出因果图所有原因结点列在左边,所有结果结点列在右边。建立中间结点,表示处理的中间状态。中间结点:11、投入1元硬币且押下饮料按钮12、押下橙汁或啤酒的按钮13、应当找5角零钱并且售货机有零钱找14、钱已付清,课堂练习(自动售货机),第三步:转换成判定表,因果图法总结,优点1、因果图法能够帮助我们按照一定步骤,高效的选择测试用例,设计多个输入条件组合用例2、因果图分析还能为我们指出,软件规格说明描述中存在的问题 3、可以依据因果图检验需求的

24、逻辑和程序未来应包含的函数或方法。 缺点1、输入条件与输出结果的因果关系,有时难以从软件需求规格说明书得到。2、即时得到了这些因果关系,也会因为因果关系复杂导致因果图非常庞大,测试用例数目极其庞大(需要使用正交表法简化)。,思考,1、因果图法设计测试用例最关键的步骤是什么? (1)找出原因和结果;(2)画出正确的因果图。 2、如果原因众多,我们怎么办? 按照原因与原因或结果之间的关联关系,将原因和结果之间的因果图细分来分成更小的因果图来测试。,习题,1、某软件的一个模块的需求规格说明书中描述: (1)年薪制员工:严重过失,扣年终风险金的4%;过失,扣年终风险金的2%。 (2)非年薪制员工:严重

25、过失,扣当月薪资的8%;过失,扣当月薪资的4%。 请绘制出因果图和判定表,并给出相应的测试用例。,课程目录,功能性测试概述 功能分解 等价类划分 边界值分析 因果图法 其他测试方法,随机测试,使用随机数生成器选取测试用例值 避免测试偏见(只选取边界值) 存在问题:测试用例是否充分,错误推测法,错误推测法是基于经验和直觉推测程序中所有可能存在的各种错误,从而有针对性地设计测试用例,错误推测法基本思想,列举出程序中所有可能有的错误和容易发生错误的特殊情况来设计测试用例 例如: 以前测试时曾出现过错误的地方,包括单元测试、集成测试、系统测试、前几次回归测试 输入数据的问题,如是否可为空,是否可以有特

26、殊字符,是否可以小于0、等于0等等 一些问题的范围或边界,测试方法的选择,通常在确定测试策略时,有以下5条参考原则: (1)在任何情况下都必须采用边界值分析法。这种方法设计出的测试用例发现程序错误的能力最强。 (2)必要时采用等价类划分法补充测试用例。 (3)采用错误推断法再追加测试用例。 (4)对照程序逻辑,检查已设计出的测试用例的逻辑覆盖 程度。如果没有达到要求的覆盖标准,则应当再补充更多的测试用例。 (5)如果程序的功能说明中含有输入条件的组合情况,则应一开始就选用因果图法。,测试方法的选择,通常在确定测试策略时,有以下5条参考原则: (1)在任何情况下都必须采用边界值分析法。这种方法设

27、计出的测试用例发现程序错误的能力最强。 (2)必要时采用等价类划分法补充测试用例。 (3)采用错误推断法再追加测试用例。 (4)对照程序逻辑,检查已设计出的测试用例的逻辑覆盖 程度。如果没有达到要求的覆盖标准,则应当再补充更多的测试用例。 (5)如果程序的功能说明中含有输入条件的组合情况,则应一开始就选用因果图法。,习题,1、某城市电话号码由三部分组成,分别是: 地区码 空白或三位数字; 前 缀 非0或1开头的三位数字; 后 缀 4位数字。 假定被测程序能接受一切符合上述规定的电话号码, 拒绝所有不符合规定的电话号码。要求: (1)请选择适当的黑盒测试方法,写出选择该方法的原因,并使用该方法的

28、步骤,给出测试用例表。 (2)如果所生成的测试用例不够全面,请考虑用别的测试 方法生成一些补充的测试用例。,3,4,1 2,5 6 7,8 9 10 11 12,13 14 15,使用等价类划分法,本课补充,1、正交试验设计法设计测试用例 2、正交试验设计法的有利之处,本课总结,功能性测试方法主要有三种:等价类划分、边界值分析、因果图法、正交矩阵法等方法 四种方法各有优势,应灵活使用,课后习题,第一题: 总结各种黑盒测试方法的应用场景及其优缺点。 第二题: 分析什么时候输入进行等价类划分;什么时候应用输出做等价类划分测试。,课后习题,第三题: 使用等价类划分方法,选择一个程序实例进行测试。 第四题: 查询网络资源,进一步深化理解因果图法在需求分析、系统设计、软件测试中的应用。,Thanks!,

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

copyright@ 2023-2025  zhuangpeitu.com 装配图网版权所有   联系电话:18123376007

备案号:ICP2024067431-1 川公网安备51140202000466号


本站为文档C2C交易模式,即用户上传的文档直接被用户下载,本站只是中间服务平台,本站所有文档下载所得的收益归上传人(含作者)所有。装配图网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对上载内容本身不做任何修改或编辑。若文档所含内容侵犯了您的版权或隐私,请立即通知装配图网,我们立即给予删除!