软件测试-测试用例及黑盒测试方法

上传人:飞*** 文档编号:57473069 上传时间:2018-10-22 格式:PPT 页数:25 大小:1.51MB
返回 下载 相关 举报
软件测试-测试用例及黑盒测试方法_第1页
第1页 / 共25页
软件测试-测试用例及黑盒测试方法_第2页
第2页 / 共25页
软件测试-测试用例及黑盒测试方法_第3页
第3页 / 共25页
软件测试-测试用例及黑盒测试方法_第4页
第4页 / 共25页
软件测试-测试用例及黑盒测试方法_第5页
第5页 / 共25页
点击查看更多>>
资源描述

《软件测试-测试用例及黑盒测试方法》由会员分享,可在线阅读,更多相关《软件测试-测试用例及黑盒测试方法(25页珍藏版)》请在金锄头文库上搜索。

1、软件测试技术,黑盒测试方法及测试用例 Numen Hao ,内容,软件测试基本概念 黑盒测试方法 等价类划分法 边界值分析法 错误推测法 因果图法 判定表驱动法 功能图法 测试用例,什么是软件测试,软件测试的经典定义:在规定条件下对软件进行操作,以发现错误,对软件质量进行评估的过程。 但事实上软件是由文档、数据以及程序组成的,软件测试不仅仅只包括对程序本身的测试,而应该包括对软件形成过程中的文档、数据以及程序的测试。有资料表明60%以上的软件错误并不是程序错误,而是分析和设计错误。,软件测试的目的,早期的软件测试定义指出软件测试的目的是寻找bug,并且尽最大可能找出最多的bug。 测试是一个为

2、了寻找错误而运行程序的过程。 一个好的测试用例是指很可能找到迄今为止尚未发现的错误的用例。 一个成功的测试是指揭示了迄今为止尚未发现的错误的测试。 软件测试的目的是想以最少的人力、物力和时间找出软件中潜在的各种错误和缺陷,通过修正各种错误和缺陷来提高软件质量,回避软件发布后由于潜在的bug造成的隐患所带来的商业风险。 软件测试是对软件质量的度量和评估,以验证软件的质量满足用户的需求的程度,并且通过最终的验收测试,可以证明软件满足了用户的需求,树立用户使用软件的信心。,软件测试的内容,软件测试主要工作内容是验证(verification)和确认( validation ) 验证(verifica

3、tion)是保证软件正确地实现了一些特定功能的一系列活动,即保证软件做了你所期望的事情。(Do the right thing) 1.确定软件生存周期中的一个给定阶段的产品是否达到前阶段确立的需求的过程; 2.程序正确性的形式证明,即采用形式理论证明程序符号设一计规约规定的过程; 3.评审、审查、测试、检查、审计等各类活动,或对某些项处理、服务或文件等是否和规定的需求相一致进行判断和提出报告。 确认(validation)是一系列的活动和过程,目的是想证实在一个给定的外部环境中软件的逻辑正确性。即保证软件以正确的方式来做了这个事件(Do it right) 1.静态确认,不在计算机上实际执行程

4、序,通过人工或程序分析来证明软件的正确性; 2.动态确认,通过执行程序做分析,测试程序的动态行为,以证实软件是否存在问题。,软件测试的基本原则,尽早地并不断地进行软件测试 程序员或程序设计机构应避免测试自己设计的程序 测试用例中不仅要有输入数据,还要有与之对应的预期结果 测试用例的设计不仅要有合法的输入数据,还要有非法的输入数据 在对程序修改之后要进行回归测试 程序中尚未发现的错误的数量通常与该程序中已发现的错误的数量成正比 妥善保留测试计划、全部测试用例、出错统计和最终分析报告,并把它们作为软件的组成部分之一,为维护提供方便 应当对每一个测试结果做全面检查 严格执行测试计划,排除测试的随意性

5、 所有软件测试都应该追溯到用户需求,黑盒测试技术,黑盒测试 通过软件外部表现来发现其缺陷和错误,黑盒测试把测试对象看作一个黑盒子,完全不考虑程序内部结构和处理过程,只是检查测试对象是否按照需求规格说明书的规定正常实现: 等价类划分法 边界值分析法 错误推测法 因果图法 判定表驱动法 功能图法,黑盒 内部实现不可见,输入,输出,黑盒测试技术优点与缺点,优点: 对较大的代码单元来说,黑盒测试比白盒测试的效率高 测试人员不需要了解实现得细节,包括特定的编程语言 测试人员和编程人员是相互独立的 从用户的角度进行测试,很容易被接受和理解 有助于暴露任何与设计不一致或者歧异的地方 测试用例可以在设计完成后

6、马上进行 缺点: 不能测试程序内部特定部位 只有一小部分可能的输入被测试到,要测试每个可能的输入流几乎是不可能的 没有清晰的和简明的需求和设计文档,测试用例很难被设计,等价类划分,等价类划分:就是把输入数据的可能值划分为若干等价类(等价类是指某个输入域的子集合。 在该集合中,各个输入数据对于揭露程序中的错误都是等价的)。 因此,可以把全部输入数据合理地划分为若干等价类,在每一个等价类中取一个数据作为测试的输入条件,这样就可以少量的代表性测试数据,来取得较好的测试结果。 有效等价类:是指对于程序的规格说明来说,是合理的有意义的输入数据构成的集合。利用它可以检验程序是否实现预先规定的功能和性能。

7、无效等价类:是指对于程序的规格说明来说,是不合理的,是无意义的输入数据构成的集合。程序员主要利用这一类测试用例来检查程序中功能和 性能的实现是否不符合规格说明要求。,等价类划分实例,测试一个判断三条边能构成什么三角形的函数:F (int a, int b, int c),如果a、b、c三条边能构成三角形的三条边就必须满足:a0,b0,c0,且a+bc,b+ca,c+ab,如果是等腰的,还要判断a=b或b=c或a=c,如果是等边的,则需判断是否a=b且b=c且a=c,列出等价类表:,等价类划分法,设计测试用例输入数据:输入顺序是a、b、c,11,边界值分析法,边界值分析法就是对输入或输出的边界值

8、进行测试的一种黑盒测试方法。通常边界值分析法做为对等价类划分法的补充。这种情况下,期测试用例来自等价类的边界。 三角形问题的边界值分析测试用例 在三角形问题描述中,除了要求边长是整数外,没有给出其它的限制条件。在此,我们将三角形每边边长的取范围值设值为1, 100 。,边界值分析法 用例设计原则,对于使用边界值分析法进行测试用例 设计应遵循以下几条原则: 1、如果输入条件规定了值的范围,则应该取刚达到这个范围的边界的值,以及刚刚超越这个范围边界的值作为测试输入数据。 2、如果输入条件规定了值的个数,则用最大个数、最小个数、比最小个数少1、比最大个数多1的数作为测试数据。 3、根据设计书说明的每

9、个输出条件,使用规则(1)。 4、根据设计书说明的每个输出条件,使用规则(2)。 5、如果程序的规格说明给出的输入域或输出域是有序集合,则应选取集合的第一个元素和最后一个元素进行测试。 6、如果程序中使用了一个内部数据结构,则应当选择这个内部数据结构边界上的值进行测试。 7、分析设计书,找出其他可能存在的边界条件。,边界值分析法 NextDate函数,在NextDate函数中,隐含规定了变量mouth和变量day的取值范围为1mouth12和1day31,并设定变量year的取值范围为1912year2050,错误推测法,错误推测法就是基于经验和直觉推测程序中所有可能存在的各种错误,有针对性地

10、设计测试用例的方法,基本思想是列举出程序中所有可能有的错误和容易发生错误的特殊情况,根据它们选择测试用例。 例如:设计一些非法、错误、不正确和垃圾数据进行输入测试是很有意义的。如果模块要求输入数字,就输入字母。如果模块只接受正整数,就输入负数,小数等,因果图法,因果图(Cause-Effect Graphing)提供了一个把规格转化为判定表的系统化方法,从该图中可以产生测试数据。其中原因是表示输入条件,结果是对输入执行的一系列计算后得到的输出。 因果图方法最终生成的就是判定表,它适合于检查程序输入条件的各种组合情况。 4种符号分别表示了规格说明中向4种因果关系 因果图中使用了简单的逻辑符号,以

11、直线联接左右结点。左结点表示输入状态(或称原因),右结点表示输出状态(或称结果)。 ci表示原因,通常置于图的左部;ei表示结果,通常在图的右部。ci和ei均可取值0或1,0表示某状态不出现,1表示某状态出现。,因果图法 约束,输入状态相互之间还可能存在某些依赖关系,称为约束。例如,某些输入条件本身不可能同时出现。输出状态之间也往往存在约束。在因果图中,用特定的符号标明这些约束。,因果图实例,某软件规格说明书包含这样的要求:第一列字符必须是A或B,第二列字符必须是一个数字,在此情况下进行文件的修改,但如果第一列字符不正确,则给出信息L;如果第二列字符不是数字,则给出信息M。 一、对说明进行分析

12、,得到原因和结果: 原因: 1:第一列字符是A; 2:第一列字符是B; 3:第二列字符是一数字。 结果: 21:修改文件; 22:给出信息L; 23:给出信息M。 二、其对应的因果图如下:11为中间节点;考虑到原因1和原因2不可能同时为1,因此在因果图上施加E约束 三、根据因果图建立判定表。 表中8种情况的左面两列情况中,原因和原因同时为1,这是不可能出现的,故应排除这两种情况。 四、把判定表的每一列拿出来作为依据,设计测试用例 我们把表的最下一栏给出了6种情况的测试用例,这是我们所需要的数据。,因果图法设计测试用例,因果图法设计测试用例步骤 1、分析待测得系统规格,找出原因与结果 分析软件规

13、格说明描述中,那些是原因(即输入条件或输入条件的等价类),那些是结果(即输出条件), 并给每个原因和结果赋予一个标识符。 2、画出因果图 分析软件规格说明描述中的语义。找出原因与结果之间,原因与原因之间对应的关系。根据这些关系,画出因果图。 3、标记约束或限制条件 由于语法或环境限制,有些原因与原因之间,原因与结果之间的组合情况下不可能出现。 为表明这些特殊情况,在因果图上用一些记号表明约束或限制条件。 4、把因果图转换为判定表。 5、用判定表中的每一项生成测试用例。,判定表法,判定表是分析和表达多逻辑条件下执行不同操作的情况的工具。它是一个表格,分为四个部分,其左部是条件或数组元素的名称,右

14、上部是所有条件的组合,左下部是处理中活动的名称,右下部标明条件组合和相应的活动的对应关系。 优点能够将复杂的问题按照各种可能的情况全部列举出来,简明并避免遗漏。因此,利用判定表能够设计出完整的测试用例集合。在一些数据处理问题当中,某些操作的实施依赖于多个逻辑条件的组合,即:针对不同逻辑条件的组合值,分别执行不同的操作。判定表很适合于处理这类问题。 判定表通常由四个部分组成如: 1)条件桩(Condition Stub):列出了问题得所有条件。通常认为列出的条件的次序无关紧要。 2)动作桩(Action Stub):列出了问题规定可能采取的操作。这些操作的排列顺序没有约束。 3)条件项(Cond

15、ition Entry):列出针对它左列条件的取值。在所有可能情况下的真假值。 4)动作项(Action Entry):列出在条件项的各种取值情况下应该采取的动作,判定表的建立步骤及优缺点,判定表的建立步骤:(根据软件规格说明) 1)确定规则的个数.假如有n个条件。每个条件有两个取值(0,1),故有2n种规则。 2)列出所有的条件桩和动作桩。 3)填入条件项。 4)填入动作项。等到初始判定表。 5)简化.合并相似规则(相同动作)。 判定表的优点和缺点 I. 优点:它能把复杂的问题按各种可能的情况一一列举出来,简明而易于理解,也可避免遗漏。 II. 缺点:不能表达重复执行的动作,例如循环结构。

16、适合使用判定表设计测试用例的条件: 规格说明以判定表形式给出,或很容易转换成判定表。 条件的排列顺序不会也不影响执行哪些操作。 规则的排列顺序不会也不影响执行哪些操作。 每当某一规则的条件已经满足,并确定要执行的操作后,不必检验别的规则。 如果某一规则得到满足要执行多个操作,这些操作的执行顺序无关紧要。,判定表 示例,1.两规则动作项一样,条件项类似,在1、2条件项分别取Y、N时,无论条件3取何值,都执行同一操作。即要执行的动作与条件3无关。于是可合并。“”表示与取值无关。 2. 无关条件项“”可包含其他条件项取值,具有相同动作的规则可合并。 规则及规则合并 1)规则:任何一个条件组合的特定取

17、值及其相应要执行的操作称为规则。在判定表中贯穿条件项和动作项的一列就是一条规则。显然,判定表中列出多少组条件取值,也就有多少条规则,既条件项和动作项有多少列。 2)化简:就是规则合并有两条或多条规则具有相同的动作,并且其条件项之间存在着极为相似的关系,23,功能图法(状态迁移法),功能图设计方法是用功能图形象地表示程序的功能说明,并机械地生成功能图的测试用例。功能图模型由状态迁移图和逻辑功能模型构成。1、状态迁移图用于表示输入数据序列以及相应的输出数据,在状态迁移图中,由输入数据和当前状态决定输出数据和后续状态。2、逻辑功能模型用于表示在状态中输入条件和输出条件之间的对应关系。 功能图法实际上是一种黑盒、白盒混合用例设计方法。 例:机票预约的状态迁移图 然后我们根据上面这张功能图,生成局部测试用例,每个状态中从因果图生成局部测试用例。接着利用上面的规则生成从初始状态到最后状态的测试路径。合成测试路径和功能图中每个状态的局部测试用例,于是合成了我们需要的测试用例。,

展开阅读全文
相关资源
相关搜索

当前位置:首页 > 行业资料 > 其它行业文档

电脑版 |金锄头文库版权所有
经营许可证:蜀ICP备13022795号 | 川公网安备 51140202000112号