软件工程白盒测试

上传人:ni****g 文档编号:420386557 上传时间:2023-05-04 格式:DOCX 页数:7 大小:35.74KB
返回 下载 相关 举报
软件工程白盒测试_第1页
第1页 / 共7页
软件工程白盒测试_第2页
第2页 / 共7页
软件工程白盒测试_第3页
第3页 / 共7页
软件工程白盒测试_第4页
第4页 / 共7页
软件工程白盒测试_第5页
第5页 / 共7页
点击查看更多>>
资源描述

《软件工程白盒测试》由会员分享,可在线阅读,更多相关《软件工程白盒测试(7页珍藏版)》请在金锄头文库上搜索。

1、白盒测试白盒测试以程序的结构为依据,所有又称为结构测试。早期的白盒测试把注 意力放在流程图的各个判定框,使用不同的逻辑覆盖标准来表达对程序进行测试 的详尽程度。随着测试技术的发展,人们越来越重视对程序执行路径的考察,并 且用程序图代替流程图来设计测试用例。为了区分这两种白盒测试技术,以下把 前者称为逻辑覆盖测试,后者称为路径测试。一、逻辑覆盖测试逻辑覆盖测试法(Logic Coverage Testing)考察的重点是图中的判定框(菱 形框)。因为这些判定若不是与选择结构有关,就是与循环结构有关,是决定程 序结构的关键成分。按照对被测程序所作测试的有效程度,逻辑覆盖测试可由弱到强区分为 5 种

2、覆盖标准:发现错误的能力弱强语句覆盖每条语句至少执行次判定覆盖每判定的每个分支至少执行次条件覆盖每一判定中的每个条件,分别按“真”、“假”至少 各执行一次判定/条件覆盖同时满足判定覆盖和条件覆盖的要求条件组合覆盖求出判定中所有条件的各种可能组合值,每一可能 的条件组合至少执行次举例说明: 有一个程序段如下(a) 语句覆盖:设计若干个测试用例,运行被测程序,使得每一个可执行语句至 少执行一次。例如在上图所给出的例子中,正好所有的可执行语句都在路径L1 (a-c-e)上,所以选择路径L1设计测试用例,就可以覆盖所有的可 执行语句。L1 ( a- c- e)= (A1) and (B=0) and

3、(A=2) or (x/Al)=(A=2) and (B=0) or (A1) and (B=0) and (x/A1)测试用例可以设计为:【(2, 0,4),(2,0,3)】覆盖ace【L1】 从程序中每个可执行语句都得到执行这一点来看,语句覆盖的方法似乎能够 比较全面的检验每一个可执行语句。但与后面介绍的其它覆盖相比,语句覆 盖是最弱的逻辑覆盖准则。(b) 判定覆盖所谓判定覆盖就是设计若干个测试用例,运行被测试程序,使得程序中每个 判断的取真分支和取假分支至少经历一次。判定覆盖又称为分支覆盖。如上 例如果选择路径L1 (a-c-e)和L2 (a-b-d),可得满足要求得测试 用例:L2(

4、a- b- d)= (Av=1) or (BHO) and (AH2) and (x=1)=(A=1) and (x=1) or ( BH0) and (AH 2) and (xb-e)和 L4 (a-c-d)L3( a- b- e)= (Av=1) or (BH0) and (A = 2) or (x1)=( A1) or ( BH 0) and (A=2) or ( BH 0) and (x1) L4( a- c- d)= (A1) and (B=0) and (AH2) and (x/A1错写成x1取真值为T1,取假值为T1条件B=1取真值为T2,取假值为T2对于第二个判断:条件A=2取

5、真值为T3,取假值为T3条件x1取真值为T4,取假值为T4则可选取测试用例如下:测试用例通过路径条件取值覆盖分支【(2, 0,4),(2,0,3)】ace(L1)T1 T2 T3 T4c,e【(1, 0,1),(1,0,1)】abd(L2)T1 T2T3 T4b,d【(2, 1,1),(2,1,2)】abe(L3)T1T2T3T4b,e或测试用例通过路径条件取值覆盖分支【(1, 0,3),(1,0,4)】abe(L3)T1 T2T3 T4c,e【(2, 1,1),(2,1,2)】abe(L3)T1 T2 T3 T4b,d注意,前一组测试用例不但覆盖了所有判断得取真分支和取假分支,而且覆 盖了判

6、断中所有条件得可能取值。但是后一组测试用例虽满足了条件覆盖, 但只覆盖了第一个判断得取假分支和第二个判断得取真分支,不满足判定覆 盖得要求。为了解决这一矛盾,需要对条件和分支兼顾,有必要考虑以下得 判定条件覆盖。(d) 判定一条件覆盖所谓判定条件覆盖就是设计足够的测试用例,使得判断中每个条件得所有 可能取值至少执行一次,同时每个判断本身的所有可能判断结果至少执行一 次。上例中可以设计如下测试用例:测试用例通过路径条件取值覆盖分支【(2, 0,4),(2,0,3)】ace(L1)T1 T2 T3 T4c,e【(1, 1,1),(1,1,1)】abd(L2)T1 T2 T3 T4b,d判定一条件覆

7、盖也有缺陷。从表面上来看,它测试了所有条件得取值, 但是事实并非如此。因为往往某些条件掩盖了另一些条件。对于条件表达式 A1) and (B=0)来说,若(A1)的测试结果为真,则还有测试(B=0),才能 决定表达式得值;而若(A1)的测试结果为假,可以立刻确定表达式得结果 为假。这时往往就不再测试(B=0)的取值了。因此,条件(B=0)就没有检查。同样,对于条件表达式(A=2) or (X1)来说,若(A=2)得测试结果为真, 就可以立即确定表达式的结果为真。这时,条件(X1)就没有检查。因此,采 用判定条件覆盖,逻辑表达式中的错误不一定能够查得出来。(e) 条件组合覆盖所谓条件组合覆盖就是

8、设计足够得测试用例,运行被测程序,使得每个判断 得所有可能得条件取值组合至少执行一次。上例中,先对各个判断得条件取 值组合加以标记。如下:记A1,B=0作T1 T2,属第一个判断得取真分支; A1,BHO作T1T2,属第一个判断得取假分支; A1,B=0作T1 T2,属第一个判断得取假分支; A1,BH0作T1 T2,属第一个判断得取假分支; A=2,x1 作T3 T4,属第二个判断得取真分支; A=2,x1作T3T4,属第二个判断得取真分支; AH2,x1作T3 T4,属第二个判断得取真分支; A2,x1作T3 T4,属第二个判断得取假分支;对于每个判断,要求所有可能得条件取值得组合都必须取

9、到。测试用例如下测试用例通过路径条件取值覆盖分支【(2,0,4),(2,0,3)】ace(L1)T1 T2 T3 T4,【(2,1,1),(2,1,2)】abe(L3)T1 T2 T3T4,【(1,0,3),(1,0,4)】abe(L3)T1 T2 T3 T4,【(1,1,1),(1,1,1)】abd(L2)T1 T2 T3 T4,这组测试用例覆盖了所有条件得可能取值的组合,覆盖了所有判断得可取分 支,但路径漏掉了 L4。测试还不完全。六种白盒子测试方法:语句覆盖、判定覆盖、条件覆盖、判定条件覆盖、条件组. 白盒测试的概述由于逻辑错误和不正确假设与一条程序路径被运行的可能性成反比。由于我们经常

10、相信 某逻辑路径不可能被执行, 而事实上,它可能在正常的情况下被执行。由于代码中的笔误是随 机且无法杜绝的,因此我们要进行白盒测试。白盒测试又称结构测试,透明盒测试、逻辑驱动测试或基于代码的测试。白盒测试是一 种测试用例设计方法,盒子指的是被测试的软件,白盒指的是盒子是可视的,你清楚盒子内 部的东西以及里面是如何运作的。白盒的测试用例需要做到:保证一个模块中的所有独立路径至少被使用一次对所有逻辑值均需测试true和false在上下边界及可操作范围内运行所有循环检查内部数据结构以确保其有效性 白盒测试的目的:通过检查软件内部的逻辑结构,对软件中的逻辑路径进行覆盖测试; 在程序不同地方设立检查点,

11、检查程序的状态,以确定实际运行状态与预期状态是否一致。白盒测试的特点:依据软件设计说明书进行测试、对程序内部细节的严密检验、针对特 定条件设计测试用例、对软件的逻辑路径进行覆盖测试。白盒测试的实施步骤:1. 测试计划阶段:根据需求说明书,制定测试进度。2. 测试设计阶段:依据程序设计说明书,按照一定规范化的方法进行软件结构划分和设计测 试用例。3. 测试执行阶段:输入测试用例,得到测试结果。4. 测试总结阶段:对比测试的结果和代码的预期结果,分析错误原因,找到并解决错误。白盒测试的方法:总体上分为静态方法和动态方法两大类。 静态分析是一种不通过执行程序而进行测试的技术。静态分析的关键功能是检查

12、软件的 表示和描述是否一致,没有冲突或者没有歧义。动态分析的主要特点是当软件系统在模拟的或真实的环境中执行之前、之中和之后 , 对软件系统行为的分析。动态分析包含了程序在受控的环境下使用特定的期望结果进行正式 的运行。它显示了一个系统在检查状态下是正确还是不正确。在动态分析技术中 ,最重要的技术是路径和分支测试。下面要介绍的六种覆盖测试方法属于动态分析方法。黑盒测试(blackbox tes ting)又称功能测试、数据驱动测试或基于规范的测 试。用这种方法进行测试时,被测程序被当作看不见内部的黑盒。在完全不考虑 程序内部结构和内部特性的情况下,测试者仅依据程序功能的需求规范考虑确定 测试用例

13、和推断测试结果的正确性。因此黑盒测试是从用户观点出发的测试,黑 盒测试直观的想法就是既然程序被规定做某些事,那我们就看看它是不是在任何 情况下都做的对。完整的“任何情况”是无法验证的,为此黑盒测试也有一套产 生测试用例的方法,以产生有限的测试用例而覆盖足够多的“任何情况”。由于 黑盒测试不需要了解程序内部结构,所以许多高层的测试如确认测试、系统测试、 验收测试都采用黑盒测试。黑盒测试首先是程序通常的功能性测试。要求:每个软件特性必须被一个测试用例或一个被认可的异常所覆盖;用数据 类型和数据值的最小集测试;用一系列真实的数据类型和数据值运行,测试超负 荷、饱和及其他“最坏情况”的结果;用假想的数据类型和数据值运行,测试排 斥不规则输入的能力;对影响性能的关键模块,如基本算法、应测试单元性能(包 括精度、时间、容量等)。不仅要考核“程序是否做了该做的?”还要考察“程序是否没做不该做的 2”同时还要考察程序在其他一些情况下是否正常。这些情况包括数据类型和数 据值的异常等等。下述几种方法:(a)等价类划分,(b)因果图方法,(c)边值分 析法,(d)猜错法,(e)随机数法,就是从更广泛的角度来进行黑盒测试。每一个 方法都力图能涵盖更多的“任何情况”,但又各有长处,综合使用这些方法,会 得到一个较好的测试用例集。1. 等价类划分

展开阅读全文
相关资源
正为您匹配相似的精品文档
相关搜索

最新文档


当前位置:首页 > 学术论文 > 其它学术论文

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