软件测试 实验报告
题目:逻辑覆盖的测试 学号: 姓名: 教师:
东南大学成贤学院电子与计算机工程学院
2017年 10月 13 日
方案30%
1
设计30% 文字表述20% 分析与总结20% 总分 《软件测试》课程实验
实验题目
1、 实验内容
为以下流程图所示的程序段设计一组测试用例,要求分别满足语句覆盖、判定覆盖、条件覆盖、判定/条件覆盖、组合条件覆盖和路径覆盖。
2、 实验目的与要求
为流程图所示的程序段设计一组测试用例,要求分别满足语句覆盖、判定覆盖、条件覆盖、判定/条件覆盖、组合条件覆盖和路径覆盖。
3、 实验环境
操作系统:win10 测试工具:VS2010 测试语言:C++
4、 设计思路分析(包括需求分析、整体设计思路、概要设计)
语句覆盖
语句覆盖率的公式:语句覆盖率=被评价到的语句数量/可执行的语句总数 x 100% 语句覆盖的缺点:对程序执行逻辑的覆盖很低。 判定覆盖(分支覆盖)
判定覆盖的公式:判定覆盖率=被评价到的判定分支个数/判定分支的总数X100% 判定路径覆盖率(DDP)=被评价到的判定路径数量/判定路径的总数X100%
判定覆盖的缺点:判定覆盖虽然把程序所有分支均覆盖到了,但其主要对整个表达式最终取值进行度量,忽略了表达式内部取值。 条件覆盖
条件覆盖CC(Condition Coverage),设计足够多的测试用例,运行被测程序,使得每一判
2
《软件测试》课程实验
定语句中每个逻辑条件的可能取值至少满足一次。
条件覆盖率的公式:条件覆盖率=被评价到的条件取值的数量/条件取值的总数X100% 条件覆盖的缺点:只考虑到每个判定语句中的每个表达式,没有考虑到各个条件分支(或者涉及不到全部分支),即不能够满足判定覆盖 判定条件覆盖
判定条件覆盖率的公式:条件判定覆盖率=被评价到的条件取值和判定分支的数量/(条件取值总数+判定分支总数)
判定条件覆盖的缺点:没有考虑单个判定对整体结果的影响,无法发现逻辑错误。 补充:修正判定条件覆盖
修正判定条件覆盖单元的入口与出口必须至少被调用一次,程序中判断的每一个分支必须至少被执行一次。对于程序中通过逻辑运算(AND,OR等)组成判断的基本布尔条件,每个条件必须取遍所有可能的值且每一个条件对判断的结果具有的作用。 条件组合覆盖
条件组合覆盖,也称多条件覆盖MCC (Multiple Condition Coverage),设计足够多的测试用例,使得每个判定中条件的各种可能组合都至少出现一次(以数轴形式划分区域,提取交集,建立最少的测试用例)。这种方法包含了“分支覆盖”和“条件覆盖”的各种要求。满足条件组合覆盖一定满足判定覆盖、条件覆盖、判定条件覆盖。
条件组合覆盖率的公式:条件组合覆盖率=被评价到的条件取值组合的数量/条件取值组合的总数
条件组合覆盖的缺点:判定语句较多时,条件组合值比较多。 路径覆盖
路径覆盖测试步骤:
1. 将程序流程图转换成控制流图; 2. 经过语法分析求的路径表达式; 3. 生成路径图; 4. 进行路径编码;
5. 经过译码得到执行的路径;
6. 通过路径枚举产生特定路径测试用例; 7. 修正的条件判断覆盖率(MC/DC)。
5、 详细设计
(1)语句覆盖
语句覆盖是指设计足够的测试用例使得程序中的每一条可执行语句至少执行一次
3
《软件测试》课程实验
测试用例 X 7 0 1 Y 17 0 0 覆盖语句 执行语句3 执行语句1 执行语句2
(2)判定覆盖
判定覆盖又称为分支覆盖或所有边覆盖,测试控制结构中布尔表达式分别为真和假(例如if语句和while语句)。判定覆盖的基本思想是指设计的测试用例,使得程序中的每一个判定至少分别取“真”分支和取“假”分支至少经历一次,即判断真假值是否满足。
输入 执行语句 X 0 1 15 9
Y 0 0 5 12 判定1的N,2的N 判定1的Y,2的N 判定1的Y,3的N 判定1的Y,3的Y (3)条件覆盖
条件覆盖是设计测试用例,使每个判断中每个条件的可能取值至少满足一次。 对于第一个判定(X>8AND Y>5) 条件X>8取值记为T1,取假值记为F1 条件Y>5取值记为T2,取假值记为F2 对于第二个判定(X>0 OR Y>0) 条件X>0取值记为T3,取假值记为F3 条件Y>0取值记为T4,取假值记为F4 对于第三个判定(X>16OR Y>10) 条件X>16取值记为T5,取假值记为F5 条件Y>10取值记为T6,取假值记为F6
测试用例 X -2 17
覆盖条件 Y -2 F1 F2 F3 F4 F5 F6 T1 T2 T3 T4 T5 T6 4
执行语句 执行语句1 执行语句3 16 《软件测试》课程实验
(4)条件判定覆盖
条件判定覆盖的含义是通过设计足够的测试用例,使得判断条件中的所有可能至少执行一次取值,同时,所有判断的可能结果至少执行一次。因此,条件判定覆盖的测试用例满足如下条件。
测试用例 X -2 17 Y -2 16 覆盖条件 F1 F2 F3 F4 F5 F6 T1 T2 T3 T4 T5 T6 执行语句 执行语句1 执行语句3
(5)条件组合覆盖
设计测试用例使得判断中每个条件的所有可能至少出现一次,并且每个判断本身的判定结果也至少出现一次。 1、X>8,Y>5 记作T1 T2 2、X>8,Y<=5 记作T1 F2 3、X<=8,Y>5 记作F1 T2 4、X<=8,Y<=5 记作F1 F2 5、X>0,Y>0 记作T3 T4 6、X>0,Y<=0 记作T3 F4 7、X<=0,Y>0 记作F3 T4 8、X<=0,Y<=0 记作F3 F4 9、X>20,Y>20 记作T5 T6 10、X>16,Y<=10 记作T5 F6 11、X<=16,Y>10 记作F5 T6 12、X<=16,Y<=10 记作F5 F6
测试用例 X=16,Y=10 X=-3,Y=-4 X=-4,Y=10 X=15,Y=-4 覆盖条件 T1 T2 T3 T4 T5 T6 F1 F2 F3 F4 F5 F6 F1 T2 F3 T4 F5 T6 T1 F2 T3 F4 T5 F6 覆盖组合号 1,5,9 4,8,12 3,7,11 2,6,10
5
《软件测试》课程实验
(6)路径覆盖
选择足够的测试用例,使得程序中所有的可能路径都至少被执行一次。
测试用例 X= -3,y= -3 X=7,y=-1 X=6,y=8 X=10,y=6 路径 A1->A3->A7->A10 A1->A4->A8->A10 A2->A5->A10 A2->A6->A9->A10
6、 实验结果与分析
通过实验完成如上图所示的测试用例计划。 7、
实验体会与建议
通过本次实验,我掌握了逻辑覆盖法的设计测试用例、了解语句覆盖,判定覆盖,条件
覆盖,判定-条件覆盖,条件组合覆盖以及路径覆盖的基本测试用例设计。通过不同的测试方法,我对软件测试有了进更深入的了解,为今后的学习奠定了坚实的基础。
6
因篇幅问题不能全部显示,请点此查看更多更全内容
Copyright © 2019- yrrf.cn 版权所有 赣ICP备2024042794号-2
违法及侵权请联系:TEL:199 1889 7713 E-MAIL:2724546146@qq.com
本站由北京市万商天勤律师事务所王兴未律师提供法律服务