《软件测试与质量保证 (10).pdf》由会员分享,可在线阅读,更多相关《软件测试与质量保证 (10).pdf(15页珍藏版)》请在taowenge.com淘文阁网|工程机械CAD图纸|机械工程制图|CAD装配图下载|SolidWorks_CaTia_CAD_UG_PROE_设计图分享下载上搜索。
1、2018-5-171白盒测试技术知识点2:代码逻辑覆盖测试2内容代码逻辑覆盖概念代码逻辑覆盖的测试方法2018-5-172覆盖率覆盖率是用来度量测试完整性的一个手段。分为逻辑覆盖和功能覆盖两大类。覆盖率可以通过一个比率公式来表示:覆盖率=(至少被执行一次的item数)/item的总数u通过覆盖率数据,可以知道测试的是否充分,测试的弱点在哪些方面,进而指导设计能够增加覆盖率的测试用例。2018-5-173逻辑覆盖是以程序内部的逻辑结构为基础的测试方法,属“白盒”测试这一方法是一系列测试过程的总称,它要求测试人员对程序的逻辑结构有清楚的了解从覆盖源程序的各个方面考虑,大致可以分为 语句覆盖、判定覆
2、盖、条件覆盖、判定/条件覆盖、条件组合覆盖和路径覆盖2018-5-174语句覆盖(1)语句覆盖即每个语句至少能执行一次2018-5-175问题:若AND错写为OR,或X1错写为X 1AND B=0TA=2OR X 1TX=X/AX=X+1返回FFTest case:A=2,B=0,X=4.语句覆盖(1)语句覆盖为了暴露程序中的错误,语句覆盖是最起码的测试要求,要求设计足够多的测试用例,使得每一条语句至少被执行一次它对程序的逻辑覆盖很少,是很弱的逻辑覆盖标准 为了更充分地测试程序,需要采用后边讲述的其他逻辑覆盖方法语句覆盖的优点 检查所有语句 结构简单的代码的测试效果较好 容易实现自动测试 代码
3、覆盖率高 如果是程序块覆盖,则不用考虑程序块中的源代码语句覆盖不能检查出的错误有 条件语句错误、逻辑运算错误、循环语句错误2018-5-176判定覆盖(2)判定覆盖判定覆盖又叫分支覆盖,含义是:每个判定的分支至少执行一次。2018-5-177Test cases:A=3,B=0,X=3A=2,B=1,X=1入口A 1AND B=0TA=2OR X 1TX=X/AX=X+1返回FF问题:若X1错写为X1,B=0;A=2,X1)A=1,B=1,X=1(满足满足A 1,B 0;A 2,X 1)问:条件覆盖?判定覆盖 答:不一定。反例:A=2,B=0,X=1 A=1,B=1,X=2 入口A 1AND
4、B=0TA=2OR X 1TX=X/AX=X+1返回FF条件覆盖(3)条件覆盖不仅每一个语句至少执行一次,使得判定中的每个条件获得各种可能结果判定覆盖只关心整个判定表达式的结果,条件覆盖关心的则是每个条件各种取值的结果条件覆盖的利弊 能够检查所有的条件错误 不能实现对每个分支的检查 用例数增加2018-5-1710判断/条件覆盖(4)判断/条件覆盖选取足够多的测试数据,使判断中每个条件都取得各种可能值,并使每个判断表达式也取到各种可能的结果。2018-5-1711Test cases:A=2,B=0,X=4(满足满足A1,B=0;A=2,X1)A=1,B=1,X=1(满足满足A 1,B 0;A
5、 2,X 1)入口A 1AND B=0TA=2OR X 1TX=X/AX=X+1返回FF判断/条件覆盖(4)判断/条件覆盖设计足够多的测试用例,使得判定中每个条件的所有可能取值至少能够获取一次,同时每个判断的所有可能的判定结果至少执行一次 用于解决条件覆盖不一定包括判定覆盖,判定覆盖也不一定包括条件覆盖的问题分支-条件覆盖的利弊:既考虑了每一个条件,又考虑了每一个分支,发现错误能力强于分支覆盖和条件覆盖 并不能全面覆盖所有路径 用例数量的增加2018-5-1712条件组合覆盖(5)条件组合覆盖使得每个判断中条件的各种可能组合都至少出现一次。2018-5-1713全部可能的条件组合为:A1,B=
6、0 A1,B 0 A1,B=0 A1,B 0 A=2,X1 A=2,X 1 A 2,X1 A 2,X 1 Test cases:A=2,B=0,X=4 (T T)A=2.B=1,X=1 (F T)A=1,B=0,X=2 (F T)A=1,B=1,X=1 (F F)问题:没有测试到问题:没有测试到(T F)的情形的情形入口A 1AND B=0TA=2OR X 1TX=X/AX=X+1返回FF条件组合覆盖(5)条件组合覆盖要求设计足够多的测试用例,使得每个判定中条件的各种组合至少出现一次满足条件组合覆盖标准的测试用例,也一定满足判定覆盖、条件覆盖和判定/条件覆盖标准 条件组合覆盖是前面几种覆盖标准中最强的 但是,满足条件组合覆盖要求的测试用例并不一定能使程序中的每条路径都执行到谢 谢15