白盒测试方法解析课件.ppt

上传人(卖家):三亚风情 文档编号:3304908 上传时间:2022-08-18 格式:PPT 页数:69 大小:425.50KB
下载 相关 举报
白盒测试方法解析课件.ppt_第1页
第1页 / 共69页
白盒测试方法解析课件.ppt_第2页
第2页 / 共69页
白盒测试方法解析课件.ppt_第3页
第3页 / 共69页
白盒测试方法解析课件.ppt_第4页
第4页 / 共69页
白盒测试方法解析课件.ppt_第5页
第5页 / 共69页
点击查看更多>>
资源描述

1、1一、一、白盒测试白盒测试二、动态测试二、动态测试基本概念基本概念三、三、逻辑覆盖逻辑覆盖四、四、路径分析路径分析第四部分(章)白盒测试方法第四部分(章)白盒测试方法 2 此方法把测试对象看做一个透明的盒把测试对象看做一个透明的盒子子,它允许测试人员利用程序内部的逻辑结构及有关信息,设计或选择测试用例,对程序所有逻辑路径进行测试。通过在不同点检查程序的状态,确定实际的状态是否与预期的状态一致。因此白盒测试又称为结构测试或逻辑驱动测试。3(一)静态白盒测试 静态白盒测试是在不执行的条件下有条理地仔细审查软件设计、体系结构和代码,从而找出软件缺陷的过程。好处:尽早发现软件缺陷。为黑盒测试员提供思路

2、。4(一)静态白盒测试审查是正式、严格、具有深度的技术评审,以便尽可能准确地确定问题之所在。审查过程的目的:在软件开发过程中尽可能早地发现问题。确保对需要重做部分达成一致意见。验证任何重做部分满足预先定义的准则。此阶段主要进行代码评审此阶段主要进行代码评审5(一)静态白盒测试为什么要坚持编码标准和规范?为什么要坚持编码标准和规范?可靠性。可读性/维护性 移植性6(一)静态白盒测试通用代码审查清单通用代码审查清单数据引用错误;数据声明错误;计算错误;比较错误;控制流程错误;子程序参数错误;输入/输出错误;其他检查。7(一)静态白盒测试数据引用错误数据引用错误 是否引用了未初始化的变量?数组和字符

3、串的下标是整数值吗?是否在应该使用常量的地方使用了变量?变量是否被赋予不同类型的值?为引用的指针分配内存了吗?、8(一)静态白盒测试数据声明错误数据声明错误 所有变量都赋予正确的长度和类型了吗?变量是否在声明的同时进行了初始化?存在声明过、但从未引用或者只引用过一次的变量吗?在特定模块中所有变量都显示声明了吗?9(一)静态白盒测试计算错误计算错误 计算中是否使用了不同数据类型的变量?计算中是否了解和考虑到编译器对类型或长度不一致的变量的转换规则?在数值计算过程中是否可能出现溢出?除数/模是否可能为零?变量的值是否超过有意义的范围?对于包含多个操作数的表达式,求值的次序是否混乱,运算优先级对吗?

4、10(一)静态白盒测试比较错误比较错误 比较的正确吗?存在分数或者浮点值之间的比较吗?如果有,精确问题会影响比较吗?每一个逻辑表达式都正确表达了吗?逻辑计算如期进行了吗?求值次序有疑问吗?逻辑表达式的操作是逻辑值吗?11(一)静态白盒测试控制流程错误控制流程错误 如果程序包含beginend和 do while 等语句组,end是否对应?程序、模块、子程序和循环能否终止?可能存在永远不停的循环吗?循环可能从不执行吗?12(一)静态白盒测试子程序参数错误子程序参数错误 子程序接受的参数类型和大小与调用代码发送的匹配吗?如果子程序有多个入口点,引用的参数是否与当前入口点没有关联?常量是否当作形参传

5、递,意外在子程序中改动?13(一)静态白盒测试输入输入/输出错误输出错误 软件是否严格遵守外部设备读写数据的专用格式?文件或者外部不存在或者未准备好的错误情况有处理吗?软件是否处理外部设备未连接、不可用,或者读写过程中存储空间占满等情况?14(二)动态白盒测试 动态白盒测试是指利用查看代码功能和实现方式得到的信息来确定哪些要测试,哪些不要测试,如何开展测试。动态白盒测试的另一个常用名称是结构测试,因为软件测试员可以查看并使用代码的内部结构,从而设计和执行测试。15 软件人员使用白盒测试方法,主要想对程序模块进行如下的检查:对程序模块的至少测试一次;对,;在循环的边界和运行界限内执行循环体;测试

6、,等。16 对一个具有的程序,。给出一个小程序的流程图,它包括了一个执行20次的循环。包含的不同执行路径数达520条,对每一条路径进行测试需要1毫秒,假定一年工作365 24小时,要想把所有路径测试完,需3170年。1718二、动态测试基本概念控制流图环形复杂性图矩阵19 符号为控制流图的一个结点,表示一个或多个无分支的语句。箭头为边,表示控制流的方向。20 在选择或多分支结构中,分支的汇聚处应有一个汇聚结点。边和结点圈定的部分叫做区域,当对区域计数时,图形外的区域也应记为一个区域。如果判断中的条件表达式是由一个或多个逻辑运算符(OR,AND,NAND,NOR)连接的复合条件表达式,则需要改为

7、一系列。212223 程序的环形(圈)复杂性给出了,这是确保程序中每个可执行语句至少执行一次所必需的测试用例数目的上界。从控制流图来看,一条独立路径是从入口到出口至少包含有一条在其它独立路径中从未有过的边的路径。24 例如,在图示的控制流图中,一组独立的路径是path1:1-11path2:1-2,3-4,5-10-1-11path3:1-2,3-6-8-9-10-1-11path4:1-2,3-6-7-9-10-1-11 路径 path1,path2,path3,path4组成了控制流图的一个基本路径集。25环形复杂性的三种计算方法1)、流图G的环形复杂性V(G)=流图中区域的数量2)、流图

8、G的环形复杂性V(G)E-N+2,E是流图中边的数量,N是流图中节点的数量3)、流图G的复杂性V(G)P1,P是流图中判定节点的数量26 为便于在机器上表示和处理控制流图,开发辅助基本路径测试的软件工具,可把流图转化为矩阵形式,即图矩阵。图矩阵是一个正方形矩阵,其大小等于流图的节点数。1 1 2 2 4 4 5 5 3 3a a c cb b d df fe e节点123451a2cb3d4e5f27逻辑覆盖是以的设计测试用例的技术。它属白盒测试。语句覆盖判定覆盖条件覆盖判定条件覆盖条件组合覆盖路径覆盖2829L1L1L2L2L3L3L4L430L1(ace)A B A XA1021andan

9、dorA B A A B X A102101andandorandandA B A B X A20101andorandand31L2(abd)=A B A X1021andandorA B A X1021orandand=A A X B A X121021andandorandandA X B A X11021a n do ra n da n d32L3(abc)A B A X1021a n da n do r A B A X1021o ra n do r A1 and X1 o r B0 and A2 o r B0 and X1 A X B A B X110201a n do ra n d

10、o ra n d 33L4(acd)A B A X A1021andandorA B A X A1021andandand34 语句覆盖就是设计若干个测试用例,运行被测程序,使得。在图例中,正好所有的可执行语句都在上,所以选择设计测试用例,就可以覆盖所有的可执行语句。35 测试用例的设计格式如下【输入的(A,B,X),输出的(A,B,X)】为图例设计满足的测试用例是:【(2,0,4),(2,0,3)】覆盖 ace【L1】A B A B X A20101andorandand如果将第一个条件中的如果将第一个条件中的andand改为改为oror,或将第二个条件中的或将第二个条件中的oror改为改为

11、andand,该测试用例测试不出错误。该测试用例测试不出错误。36 判定覆盖就是设计若干个测试用例,运行被测程序,使得。判定覆盖又称为。对于图例,如果选择和,就可得满足要求的测试用例:37【(2,0,4),(2,0,3)】覆盖 ace【L1】【(1,1,1),(1,1,1)】覆盖 abd【L2】A X B A X11021andorandandA B A B X A20101andorandand38 如果选择路径L3和L4,还可得另一组可用的测试用例:【(2,1,1),(2,1,2)】覆盖 abe【L3】【(3,0,3),(3,0,1)】覆盖 acd【L4】391X 0B 2A 0B 1X

12、1Aandorandorand1AX 2A 0B 1Aandandand【(2,1,1),(2,1,2)】覆盖 abe【L3】【(3,0,3),(3,0,1)】覆盖 acd【L4】上述两组测试用例不仅满足了上述两组测试用例不仅满足了“判定覆盖判定覆盖”,同时还做到了,同时还做到了“语句覆盖语句覆盖”.但如但如果第二个判定条件果第二个判定条件X1X1,错写成,错写成X1,X0 and B=0 S1 S24950覆盖种类需满足的条件测试数据期望结果判定覆盖A1,B=0A=2,B=0执行S1A1,B0或A1,B=0或A1,B0A=2,B=1或A=1,B=0或A=1,B=1执行S2条件覆盖以下四种情况

13、各出现一次A1B=0A=2,B=0执行S1A1B0A=1,B=1执行S2条件组合覆盖A1,B=0A=2,B=0执行S1A1,B0A=2,B=1执行S2A1,B=0A=1,B=0执行S2A1,B0A=1,B=1执行S251 当程序中判定多于一个时,形成的分支结构可以分为两类:和。对于,若有n个判定语句,需要n+1个测试用例;对于,若有n个判定语句,需要有2n个测试用例,覆盖它的2n条路径。当n较大时将无法测试。5253 循环分为4种不同类型:、和。零次循环:从循环入口到出口 一次循环:检查循环初始值 二次循环:检查多次循环 m次循环:检查在多次循环 最大次数循环、比最大次数多一次、少一次的循环。

14、54 55abecj=nk=j j+56循环 i n Ai Ai+1 Ai+2 k 路 径 0 1 2 1 1 i ac 1 2 1 2 i abefc 2 1 i+1 abdfc 1 3 1 2 3 i abefefc 2 3 1 i+2 abefdfc 3 2 1 i+2 abdfdfc 3 1 2 i+1 abdfefc d 改 k 的值,e 不改 k 的值57 对最内层循环做简单循环的全部测试。所有其它层的循环变量置为最小值;逐步外推,对其外面一层循环进行测试。测试时保持所有外层循环的循环变量取最小值,所有其它嵌套内层循环的循环变量取“典型”值。反复进行,直到所有各层循环测试完毕。58

15、59 对全部各层循环同时取最小循环次数,或者同时取最大循环次数如果各个循环互相独立,则可以用与简单循环相同的方法进行测试。但如果几个循环不是互相独立的,则需要使用测试嵌套循环的办法来处理。这一类循环应该使用结构化程序设计方法重新设计测试用例。60 基本路径测试方法把覆盖的路径数压缩到一定限度内,。它是在程序控制流图的基础上,方法。设计出的测试用例要保证在测试中,程序的每一个可执行语句至少要执行一次。61 符号为控制流图的一个结点,表示一个或多个无分支的PDL语句或源程序语句。箭头为边,表示控制流的方向。62 在选择或多分支结构中,分支的汇聚处应有一个汇聚结点。边和结点圈定的区域叫做区域,当对区

16、域计数时,图形外的区域也应记为一个区域。如果判断中的条件表达式是由一个或多个逻辑运算符(OR,AND,NAND,NOR)连接的复合条件表达式,则需要改为一系列。636465 程序的环路复杂性给出了,这是确保程序中每个可执行语句至少执行一次所必需的测试用例数目的上界。从控制流图来看,一条独立路径是至少包含有一条在其它独立路径中从未有过的边的路径。66 例如,在图示的控制流图中,一组独立的路径是path1:1-11path2:1-2-3-4-5-10-1-11path3:1-2-3-6-8-9-10-1-11path4:1-2-3-6-7-9-10-1-11 路径 path1,path2,path

17、3,path4组成了控制流图的一个基本路径集。67 导出测试用例,。根据判断结点给出的条件,选择适当的数据以保证某一条路径可以被测试到 。68 每个,。如果所有测试用例都执行完毕,则可以确信程序中所有的可执行语句至少被执行了一次。必须注意,一些独立的路径(如例中的路径1),往往不是完全孤立的,有时它是程序正常的控制流的一部分,这时,这些路径的测试可以是另一条路径测试的一部分。69小结 静态黑盒测试是指检查产品描述,并在投入软件编写之前查找问题。动态黑盒测试是指在不了解软件如何工作的前提下进行测试。静态白盒测试是指通过正式审查和检验检查代码的细节。动态白盒测试是指在看到软件的工作方式时,根据获得的信息对软件进行测试。

展开阅读全文
相关资源
猜你喜欢
相关搜索

当前位置:首页 > 办公、行业 > 各类PPT课件(模板)
版权提示 | 免责声明

1,本文(白盒测试方法解析课件.ppt)为本站会员(三亚风情)主动上传,163文库仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对上载内容本身不做任何修改或编辑。
2,用户下载本文档,所消耗的文币(积分)将全额增加到上传者的账号。
3, 若此文所含内容侵犯了您的版权或隐私,请立即通知163文库(发送邮件至3464097650@qq.com或直接QQ联系客服),我们立即给予删除!


侵权处理QQ:3464097650--上传资料QQ:3464097650

【声明】本站为“文档C2C交易模式”,即用户上传的文档直接卖给(下载)用户,本站只是网络空间服务平台,本站所有原创文档下载所得归上传人所有,如您发现上传作品侵犯了您的版权,请立刻联系我们并提供证据,我们将在3个工作日内予以改正。


163文库-Www.163Wenku.Com |网站地图|