白盒测试用例设计技术课件_第1页
白盒测试用例设计技术课件_第2页
白盒测试用例设计技术课件_第3页
白盒测试用例设计技术课件_第4页
白盒测试用例设计技术课件_第5页
已阅读5页,还剩67页未读 继续免费阅读

下载本文档

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

文档简介

白盒测试用例设计技术,内容提要,静态白盒法 侵入式法 路径覆盖法 基本路径法 定义/使用法 程序片法 白盒测试的其他方法,白盒测试概念,白盒测试也称结构测试或逻辑驱动测试,通过了解软件系统的内部工作过程,设计测试用例来检测程序内部动作是否按照规格说明书规定的正常进行,按照程序内部的结构测试程序,检验程序中的每条通路是否都有能按预定要求正确工作。 白盒测试旨在使测试充分地覆盖软件系统的内部结构,并以软件结构中的某些元素是否都已得到测试为准则来判断测试的充分性。 目前,比较成熟的白盒测试技术方法有静态白盒法、侵入式法、控制流图法、基路径法、数据定义使用法、程序片法。,内容提要,静态白盒法 侵入式法 路径覆盖法 基本路径法 定义/使用法 程序片法 白盒测试的其他方法,静态白盒法,静态白盒测试是在不执行的条件下有条理地仔细审查软件设计、体系结构和代码,从而找出软件缺陷的过程。 好处: 尽早发现软件缺陷。 为黑盒测试员提供思路。,静态白盒测试法分类,静态白盒测试法一般根据审查的严格程度分为三种: 同行评审 走查 评审,同行评审,也称为伙伴审查,这种方法大体类似于“如果你给我看你的,我也给你看我的”类型的讨论。同行评审常常仅在编写代码或设计体系结构的程序员,以及充当审查者的其他一两个程序员和测试员之间进行。,走查,走查是正式、严格、具有深度的技术评审,以便尽可能准确地确定问题之所在。 走查过程的目的: 在软件开发过程中尽可能早地发现问题。 确保对重要部分达成一致意见。,评审是最正式的审查类型,具有高度组织化,要求每一个参与者都接受训练。评审与同行评审和走查的不同之处在于陈述代码的人陈述者或者宣读者不是原来的程序员。这就迫使他们学习和了解要陈述的材料,从而有可能在检验会议上提出不同的看法和解释。其余的参与者称为评审员,其职责是从不同的角度,例如用户、测试员或者产品支持人员的角度审查代码。这有助于对产品的全面审查,通常可以找出不同的软件缺陷。 召开评审会议之后,要准备一份书面报告,明确解决问题所必需重做的工作。然后程序员进行修改,由会议协调员验证修改结果。根据修改的范围和规模以及软件的关键程序,可能还需要进行重新评审,以便找到其余的软件缺陷。评审经证实是所有软件交付过程中,特别是设计文档和代码中发现软件缺陷非常有效的方法。,静态白盒法应该具备的基本要素,确定问题。静态白盒测试的目的是找出软件的问题,全部的批评应该直指代码或设计,而不是其设计实现者。参与者之间不应该相互指责,应该把自我意识、个人情绪和敏感丢在一边。 遵守规则。静态白盒测试要遵守一套固定的规则,如哪些内容要做评价等。其重要性在于参与者了解自己的角色、目标是什么。这有助于使审查进展的更加顺利。 充分准备。每一个参与者都尽自己的力量为审查做准备。根据审查的类型,参与者可能扮演不同的角色。他们需要了解自己的责任和义务,并积极参与审查。在审查过程中找出的问题大部分是在准备期间发现的,而不是实际审查期间。 编写报告。审查小组必须做出审查结果的书面总结报告,并使报告便于开发小组的成员使用。,内容提要,静态白盒法 侵入式法 路径覆盖法 基本路径法 定义/使用法 程序片法 白盒测试的其他方法,侵入式法,侵入式法白盒测试指的是在软件测试过程中需要对软件系统的代码进行修改的测试方法。按照修改的目的不同分为:程序插桩测试、断言测试和缺陷种植法。,程序插桩技术,借助往被测程序中插入操作,来实现测试目的的方法。 在调试程序中,常常要在程序中插入一些打印语句。 通过打印信息了解执行过程中程序的一下动态特性。,程序插桩图,插桩程序中插入的语句,设计插桩程序要考虑的问题,探测哪些信息; 在程序的什么部位设置探测点; 需要设置多少个探测点。,断言测试,断言测试用于检查在程序运行过程出现的一些本“不应该”发生的情况。也就是在一个应该正确的地方,加一条判断来验证程序运行时,它是否真正如当初预料的那样,具有预期的正确性。 断言测试就是在程序中插入断言,插入断言的根本目的是用于帮助程序的调试与排错,因此本质上它是属于测试代码,是一种特殊的插桩语句,而不是属于真正的应用程序模块的一部分。,缺陷种植测试,是一种用来估计驻留在程序中的缺陷数量的技术。工作原理是向一个软件中“种植”缺陷,然后运行测试集,以检查发现了多少个种植的缺陷,还有多少个种植的缺陷没有被发现,以及已经发现了多少个新的非种植的缺陷。然后就可以预测残留的缺陷数量。,案例,如果种植了100个种子缺陷,而在测试中只找到75个种植的缺陷,那么种子发现率为75%。如果已经发现了450个真实的缺陷,那么可以通过种子发现率,推出这450个真实的缺陷只代表了现在存在所有真实缺陷的75%。那么,真是的缺陷总数估计为600个。所以还有150个真实的缺陷需要测试出来。,内容提要,静态白盒法 侵入式法 路径覆盖法 基本路径法 定义/使用法 程序片法 白盒测试的其他方法,路径覆盖法,即设计出足够的测试用例来完成对被测试程序可执行路径进行全方位的执行覆盖。它一般主要包括逻辑路径覆盖和物理路径覆盖的两种方法,这是从两个不同的角度来实现代码覆盖,它们之间既有联系,也有区别。,白盒覆盖率分析,白盒测试最常用的基本技术是覆盖率分析,研究的内容包括:如何选择程序元素,如何生成指定程序元素的测试用例;程序元素的覆盖率;测试效果的评价。,逻辑路径覆盖度量标准,语句覆盖 判定覆盖 条件覆盖 判定/条件覆盖 条件组合覆盖,逻辑与物理区别,逻辑路径覆盖主要是从由于各种逻辑判定条件所形成的复杂的程序执行路径这个角度入手,来进行分析。可以说逻辑路径覆盖必然涉及到程序的逻辑结构。物理路径覆盖是从图论的角度来测试所有可执行的物理路径。,语句路径覆盖,语句路径覆盖是一个比较弱的逻辑路径覆盖标准。它的涵义是指通过选择足够的测试用例,使得运行这些测试用例时,被测程序的每个语句至少被执行一次。,语句路径覆盖的测试用例,判定路径覆盖,判定路径覆盖又称为分支路径覆盖,判定路径覆盖比语句路径覆盖的标准稍强一些,它是指通过设计足够的测试用例,使得程序中的每一个判定至少都获得一次“真值”和“假值”,或者说使得程序中的每一个分支都至少通过一次。,判定路径覆盖的测试用例,条件路径覆盖,条件路径覆盖的涵义是指,对于每个判定中所包含的若干个条件,应设计足够多的测试用例,使得判定中的每个条件都至少取到一次“真值”和“假值”的机会,也就是说,判定中的每个条件的所有可能结果至少出现一次。,条件路径覆盖的测试用例,判定/条件路径覆盖,判定/条件路径覆盖是指通过设计足够多的测试用例,使得运行这些测试用例时,判定中的每个条件的所有可能结果至少出现一次,并且每个判定本身的所有可能结果也至少出现一次。,判定/条件路径覆盖的测试用例,条件组合路径覆盖,条件组合路径覆盖是指,通过设计足够多的测试用例,使得运行这些测试用例时,每个判定中条件结果的所有可能组合至少出现一次。,条件组合路径覆盖的测试用例,物理路径覆盖,物理路径覆盖是指,通过设计足够多的测试用例,使得运行这些测试用例时,程序的每条可能执行的物理路径都至少经过一次(如果程序中有环路,则要求每条环路至少经过一次)。,物理路径覆盖的测试用例,内容提要,静态白盒法 侵入式法 路径覆盖法 基本路径法 定义/使用法 程序片法 白盒测试的其他方法,基本路径法,向量空间的基是相互独立的一组向量,基“覆盖”整个向量空间,使得该空间中的任何其他向量都可以用基向量来表示。 因此,一组基向量在一定程度上可表示整个向量空间的本质:空间中的一切都可以用基表示,并且如果一个基元素被删除了,则这种覆盖特性也会丢失。,基本路径法,基对测试的潜在意义是: 如果可以把程序看做是一种向量空间,则这种空间的基就是要测试的非常有意义的元素集合。如果基没有问题,则可以希望能够用基表达的一切都是没有问题的。,基本路径法,基本路径法是在程序控制流图的基础上,通过分析控制结构的环路复杂性,导出基本可执行路径集合,从而设计测试用例的方法。 基本路径法包括以下几个部分: 程序的控制流图:描述程序控制流的一种图示方法。 程序环路复杂性:McCabe复杂性度量;从程序的环路复杂性可导出程序基本路径集合中的独立路径条数,这是确定程序中每个可执行语句至少执行一次所必需的测试用例数目的上界,也即应该设计的测试用例的数目。 确定线性无关的路径的基本集。 准备测试用例,确保测试基本路径集中的每一条路径的执行。,控制流图,McCabe的基路径方法,McCabe认为强连接图的圈数量就是图中线性独立环路数的数量。,McCabe的基路径方法,通过定义加法和标量乘法的概念,强制使其看起来像向量空间:路径加法就是一条路径后接另一条路径,乘法对应于路径的重复。,McCabe的基路径方法,McCabe开发了一种算法过程,用于确定基路径集合。 这种方法首先选择一个基线路径,应该对应某个“正常案例”程序的执行。 接下来重复回溯基线路径,依次“翻转”每个判断点,即当节点的外度2时,必须取不同的边。,McCabe的基路径方法,定义:图G的圈数由V(G)=e-n2p给定,其中: e是G中的边数。 n是G中的节点数。 p是G中的组件数。 V(G)是图中不同区域的个数。,McCabe的控制图,五个线性独立路径,P1:A,B,C,G P2:A,B,C,B,C,G P3:A,B,E,F,G P4:A,D,E,F,G P5:A,D,F,G,McCabe的基路径方法,McCabe的基路径方法,弱点: 一、测试基路径集合是充分的(它不是) 二、向量运算用于程序路径的表达上,没有意义。,内容提要,静态白盒法 侵入式法 路径覆盖法 基本路径法 定义/使用法 程序片法 白盒测试的其他方法,数据流测试,早期的数据流分析常常集中于现在叫做定义/引用异常的缺陷: 变量被定义,但是从来没有使用。 所使用的变量没有被定义。 变量在使用之前被定义两次。,定义/使用测试,定义 节点nG(P)是变量vV的定义节点,记做DEF(v,n),当且仅当变量v的值由对应节点n的语句片段处定义。,定义/使用测试,定义 节点nG(P)是变量vV的使用节点,记做USE(v,n),当且仅当变量v的值由对应节点n的语句片段处使用。,定义/使用测试,定义 使用节点USE(v,n)是一个谓词使用(记做P-use),当且仅当语句n是判断语句;否则,USE(v.n)是计算使用(记做C-use)。,定义/使用测试,定义 关于变量v的定义-使用路径(记做du-path)是PATHS(P) 中的路径,使得对某个vV,存在定义和使用节点DEF(v,m)和USE(v,n),使得m和n是该路径的最初和最终节点。,定义/使用测试,定义 关于变量v的定义清除路径(记做dc-path),是具有最初和最终节点DEF(v,m)和USE(v,n)的PATHS(P)中的路径,使得该路径中没有其他节点是v的定义节点。,内容提要,静态白盒法 侵入式法 路径覆盖法 基本路径法 定义/使用法 程序片法 白盒测试的其他方法,程序片法,程序片是确定或影响某个变量在程序某个点上的取值的一组程序语句。,程序片法,定义 给定一个程序P和P中的一个变量集合V,变量集合V在语句n上的一个片,记做S(V,n),是P中对V中的变量值做出贡献的所有语句集合。,程序片法,定义 给定一个程序P和一个给出语句及语句片段编号的程序图G(P),以及P 中的一个变量集合V,变量集合V在语句片段n上的一个片,记做S(V,n),是P中在n以前对V中的变量值作出贡献的所有语句片段编号的集合。,程序片法,五种形式的使用 谓词使用 用在谓词(判断)中。 计算使用 用在计算中。 输出使用 用于输出。 定位使用 用于定位(指针、下标)。 迭代使用 迭代(内部计数器、循环指示)。,程序片法,标识两种定义节点: 输入定义 通过输入定义 赋值定义 通过赋值定义,程序片法,现在先假设片S(V,n)是一个变量的片,即集合V由单一变量v组成。 如果语句片段n是v的一个定义节点,则n包含在该片中。 如果语句片段n是v的一个使用节点,则n不包含在该片中。 其他变量的谓词使用和计算使用,要包含其执行会影响变量v取值的节点。,原程序,变量Z的值在语句12的切片,变量total的值在语句12的切片,格的定义,定义 如果偏序集合中,任何两个元素构成的子集a,b都有最小上界和最大上界,则这个偏序集合是格(lattice)。,内容提要,静态白盒法 侵入式法 路径覆盖法 基本路径法 定义/使用法 程序片法 白盒测试的其他方法,白盒测试的其他方法,域测试 域测试是一种基于程序结构的测试方法。 程序变异测试 程序变异测试是一种基于程序错误的测试方法,它的目的是要说明程序中不含有某些特定的错误。 符号测试 符号测试是基于代数运算的一种结构测试方法。它的基本思想是允许程序的输入不仅仅是数值数据,而且包括符号值。,白盒测试方法总结,白盒测试也称结构测试或逻辑驱动测试,通过了解软件系统的内部工作过程,设计测试用例来检测程序内部动作是否按照规格说明书规定的正常进行,按照程序内部的结构测试程序,检验程序中的每条通路是否都有能按预定要求正确工作。 比较

温馨提示

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

评论

0/150

提交评论