8白盒测试方法.ppt

上传人:s****8 文档编号:69824702 上传时间:2023-01-09 格式:PPT 页数:69 大小:425.50KB
返回 下载 相关 举报
8白盒测试方法.ppt_第1页
第1页 / 共69页
8白盒测试方法.ppt_第2页
第2页 / 共69页
点击查看更多>>
资源描述

《8白盒测试方法.ppt》由会员分享,可在线阅读,更多相关《8白盒测试方法.ppt(69页珍藏版)》请在taowenge.com淘文阁网|工程机械CAD图纸|机械工程制图|CAD装配图下载|SolidWorks_CaTia_CAD_UG_PROE_设计图分享下载上搜索。

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

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

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

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

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

6、取“假”的两种情况都至少测试一次;在循环的边界和运行界限内执行循环体;测试内部数据结构的有效性,等。15对一个具有多重选择和循环嵌套的程序,不同的路径数目可能是天文数字。给出一个小程序的流程图,它包括了一个执行20次的循环。包含的不同执行路径数达520条,对每一条路径进行测试需要1毫秒,假定一年工作365 24小时,要想把所有路径测试完,需3170年。1617二、动态测试基本概念控制流图环形复杂性图矩阵181.程序的控制流图符号为控制流图的一个结点,表示一个或多个无分支的语句。箭头为边,表示控制流的方向。19在选择或多分支结构中,分支的汇聚处应有一个汇聚结点。边和结点圈定的部分叫做区域,当对区

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

8、-6-8-9-10-1-11path4:1-2,3-6-7-9-10-1-11路径 path1,path2,path3,path4组成了控制流图的一个基本路径集。24环形复杂性的三种计算方法1)、流图G的环形复杂性V(G)=流图中区域的数量2)、流图G的环形复杂性V(G)E-N+2,E是流图中边的数量,N是流图中节点的数量3)、流图G的复杂性V(G)P1,P是流图中判定节点的数量253.图矩阵图矩阵为便于在机器上表示和处理控制流图,开发辅助基本路径测试的软件工具,可把流图转化为矩阵形式,即图矩阵。图矩阵是一个正方形矩阵,其大小等于流图的节点数。1 1 2 2 4 4 5 5 3 3a a c

9、cb b d df fe e节点123451a2cb3d4e5f26三、逻辑覆盖三、逻辑覆盖逻辑覆盖是以程序内部的逻辑结构为基础的设计测试用例的技术。它属白盒测试。语句覆盖判定覆盖条件覆盖判定条件覆盖条件组合覆盖路径覆盖2728L1L1L2L2L3L3L4L4293031e e3233语句覆盖语句覆盖语句覆盖就是设计若干个测试用例,运行被测程序,使得每一可执行语句至少执行一次。在图例中,正好所有的可执行语句都在路径L1上,所以选择路径 L1设计测试用例,就可以覆盖所有的可执行语句。34测试用例的设计格式如下【输入的(A,B,X),输出的(A,B,X)】为图例设计满足语句覆盖的测试用例是:【(2

10、,0,4),(2,0,3)】覆盖 ace【L1】如如果果将将第第一一个个条条件件中中的的andand改改为为oror,或或将将第第二二个个条条件件中中的的oror改改为为andand,该测试用例测试不出错误。该测试用例测试不出错误。35 判定覆盖判定覆盖判定覆盖就是设计若干个测试用例,运行被测程序,使得程序中每个判断的取真分支和取假分支至少经历一次。判定覆盖又称为分支覆盖。对于图例,如果选择路径L1和L2,就可得满足要求的测试用例:36【(2,0,4),(2,0,3)】覆盖 ace【L1】【(1,1,1),(1,1,1)】覆盖 abd【L2】37如果选择路径L3和L4,还可得另一组可用的测试用

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

12、,B=1执行S2条件覆盖以下四种情况各出现一次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执行S250条条 件件 测测 试试 路路 径径 选选 择择当程序中判定多于一个时,形成的分支结构可以分为两类:嵌套型分支结构和连锁型分支结构。对于嵌套型分支结构,若有n个判定语句,需要n+1个测试用例;对于连锁型分支结构,若有n个判定语句,需要有2n个测试用例,覆盖它的2n条路径。当n较大时将无法测试。5152循环测试路径选择循环测试路径选择循环分为4种

13、不同类型:简单循环、连锁循环、嵌套循环和非结构循环。(1)简单循环 零次循环:从循环入口到出口 一次循环:检查循环初始值 二次循环:检查多次循环 m次循环:检查在多次循环 最大次数循环、比最大次数多一次、少一次的循环。53例:求最小值k=i;for(j=i+1;j=n;j+)if(Aj Ak)then k=j;54abecj=nk=j j+55测试用例选择测试用例选择56(2)嵌套循环 对最内层循环做简单循环的全部测试。所有其它层的循环变量置为最小值;逐步外推,对其外面一层循环进行测试。测试时保持所有外层循环的循环变量取最小值,所有其它嵌套内层循环的循环变量取“典型”值。反复进行,直到所有各层

14、循环测试完毕。5758 对全部各层循环同时取最小循环次数,或者同时取最大循环次数(3)连锁循环连锁循环如果各个循环互相独立,则可以用与简单循环相同的方法进行测试。但如果几个循环不是互相独立的,则需要使用测试嵌套循环的办法来处理。(4)非结构循环这一类循环应该使用结构化程序设计方法重新设计测试用例。59四四、路路 径径 分分 析析基本路径测试基本路径测试基本路径测试方法把覆盖的路径数压缩到一定限度内,程序中的循环体最多只执行一次。它是在程序控制流图的基础上,分析控制构造的环路复杂性,导出基本可执行路径集合,设计测试用例的方法。设计出的测试用例要保证在测试中,程序的每一个可执行语句至少要执行一次。

15、601.程序的控制流图符号为控制流图的一个结点,表示一个或多个无分支的PDL语句或源程序语句。箭头为边,表示控制流的方向。61在选择或多分支结构中,分支的汇聚处应有一个汇聚结点。边和结点圈定的区域叫做区域,当对区域计数时,图形外的区域也应记为一个区域。如果判断中的条件表达式是由一个或多个逻辑运算符(OR,AND,NAND,NOR)连接的复合条件表达式,则需要改为一系列只有单个条件的嵌套的判断。6263642.程序环路复杂性程序环路复杂性程序的环路复杂性给出了程序基本路径集中的独立路径条数,这是确保程序中每个可执行语句至少执行一次所必需的测试用例数目的上界。从控制流图来看,一条独立路径是至少包含

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

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

当前位置:首页 > 生活休闲 > 生活常识

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

工信部备案号:黑ICP备15003705号© 2020-2023 www.taowenge.com 淘文阁