逻辑覆盖 测试题

使用逻辑覆盖测试方法测试以下程序段:

Public void sort(int IR,int It)
{
    Int x=0, y=10;
    While(IR>0)
    {
        If(It==0)
        X=y+2;
    }
    Else{
        If(It==1)
        {
            X=y+5;
        }
        Else{
            X=y+10;
        }
    }
    IR- -;
}

说明:程序段中每行开头的数字(1~10)是对每条语句的编号。

(1)  画出程序的控制流图(用题中给出的语句编号表示)。

(2)  简述什么是测试用例。白盒测试的动态测试要根据程序的控制结构设计测试用例简述其原则。

(3)  分别以语句覆盖、判定覆盖、条件覆盖、判定/条件覆盖、条件组合覆盖、路径覆盖方法设计测试用例,并写出每个测试用例的执行路径(用题中给出的语句编号表示)。

参考答案:

(1)  程序控制流图

(2)  测试用例:

就是将软件测试的行为活动作一个科学化的组织归纳。测试用例是为特定的目的而设计的一组测试输入、执行条件和预期的结果。执行的最小实体。

测试用例应包括:测试目标和被测功能、测试环境和其他条件、测试数据和测试步骤。

白盒测试的动态测试要根据程序的控制结构设计测试用例,原则是

1)、保证一个模块中的所有独立路径至少被使用一次

2)、对所有逻辑值均需测试true和false

3)、在上下边界及可操作范围内运行所有循环

4)、检查内部数据结构以确保其有效性。

(3)  设计的测试用例如下:

覆盖策略

测试用例

执行路径

语句覆盖(SC)

X=4    y=5   z=5

2→45→7→8→9

判定覆盖(DC)

X=4    y=5   z=5 X=2    y=5   z=5

2→45→7→8→9 2→7→9

条件覆盖(CC)

X=2    y=6   z=5 X=4    y=5   z=15

2→7→8→9 2→7→8→9

判定/条件覆盖(CDC)

X=4    y=6   z=5 X=2    y=5   z=15

2→45→7→8→9 2→7→9

条件组合覆盖(MCC)

X=4    y=6   z=5 X=4    y=5   z=15 X=2    y=6   z=5 X=2    y=5   z=15

2→45→7→8→9 2→7→8→9 2→7→8→9 2→7→9

路径覆盖

X=4    y=6   z=5 X=4    y=5   z=15 X=5    y=5   z=5 X=2    y=5   z=15

2→45→7→8→9 2→7→8→9 2→45→7→9 2→7→9

(x>3)&&(z<10)

x>3

z<10

(x==4)||(y>5)

x==4

y>5

T

X=4

Z=5

T

T

F(Y=5)

SC

T

T F

X=4 X=2

Z=5 Z=5

T T

T F

F(Y=5) F(Y=5)

DC

T F

F(T F) F(F T) F(F T) F(T F)

X=4 X=2 X=2 X=4

Z=15 Z=5 Z=5 Z=15

T(T F) T(F T) T(F T) T(T F)

T F F T

F(Y=5) T(Y=6) T(Y=6) F(Y=5)

CC

A&&(B||C),A||(B||C) A=T,B=F,C=T A=F,B=T,C=F

T(TT) F(FF)

X=4 X=2

Z=5 Z=15

T(T T) F(F F)

T F

T(Y=6) F(Y=5)

CDC

A&&(B||C),A||(B||C) A=T,B=T,C=T A=F,B=F,C=F

T(TT) F(TF) F(FT) F(FF)

X=4 X=4 X=2 X=2

Z=5 Z=15 Z=5 Z=15

T(TT) F(TF) T(TF) F(FF)

T T F F

T(Y=6) F(Y=5) T(Y=6) F(Y=5)

MCC

A&&(B||C),A||(B||C) A------B--------C T------T--------T T----- T------- F T------F--------T T------F--------F F------F--------F F------F--------T F------T--------F F------T--------T

T(TT) F(TF) T(TT) F(FF)

X=4      X=4       X=5       X=2

z=5 z=15 z=5 z=15

T(TT) T(TF) F(FF) F(FF)

T T F F

T(y=6 ) F(y=5) F(y=5) F(y=5)

DD路径覆盖

2→45→7→8→9 2→7→8→9 2→45→7→9 2→7→9

本文参与腾讯云自媒体分享计划,欢迎正在阅读的你也加入,一起分享。

发表于

我来说两句

0 条评论
登录 后参与评论

相关文章

来自专栏飞扬的花生

微信开发扫一扫功能并且屏蔽分享菜单

1.引入JS   <script language="javascript" type="text/javascript" src="http://res.wx...

289110
来自专栏代码世界

Flask之wtforms

WTForms是一个支持多个web框架的form组件,主要用于对用户请求数据进行验证。

17130
来自专栏JAVA高级架构开发

一个分布式java爬虫框架JLiteSpider

A lite distributed Java spider framework. 这是一个轻量级的分布式java爬虫框架

65700
来自专栏人工智能LeadAI

TensorFlow的Debugger调试实例

之前有翻译整理过关于TensofFlow的Debugger的简单教程,具体内容见这里(https://www.jianshu.com/p/9fd237c7fda...

45090
来自专栏高性能服务器开发

libevent源码深度剖析(六) 初见事件处理框架

(1)libevent源码深度剖析一 序 (2)libevent源码深度剖析二 Reactor模式 (3)libevent源码深度剖析三 libevent基...

26120
来自专栏性能与架构

快速理解linux文本分析利器awk

awk是什么 如果工作中需要操作linux比较多,那么awk是非常值得学习的 awk是一个极其强大的文本分析工具,把文件逐行的读入,以指定分隔符将每行切片,切...

40880
来自专栏代码世界

Flask之wtforms

WTForms是一个支持多个web框架的form组件,主要用于对用户请求数据进行验证。

19150
来自专栏大内老A

从数据到代码——基于T4的代码生成方式

在之前写一篇文章《从数据到代码》(上篇、下篇)中,我通过基于CodeDOM+Custom Tool的代码生成方式实现了将一个XML表示的消息列表转换成了相应的C...

33580
来自专栏云瓣

探寻 webpack 插件机制

webpack 可谓是让人欣喜又让人忧,功能强大但需要一定的学习成本。在探寻 webpack 插件机制前,首先需要了解一件有意思的事情,webpack 插件机制...

33670
来自专栏玄魂工作室

PYTHON黑帽编程 4.1 SNIFFER(嗅探器)之数据捕获--补充

荒废了一个多月了,重新捡起来,手生了不少。发现在《4.1下》的文章里没有 提到pcap库,实在是不应该。 在网络数据分析的工具中,tcpdump绝对是大名鼎鼎,...

42070

扫码关注云+社区

领取腾讯云代金券