16.16 -基于结构的测试技术历年下午题型考点

一、考点:基于控制流的设计用例

        阅读下列C程序,回答问题1至问题3,将解答填入答题纸的对应栏内。
        能被400整除,或者能被4整除但不能被100整除的都是闰年,其余的年份均为平年。

【问题1】

        请针对上述C程序给出满足100%DC(判定覆盖)所需的逻辑条件。(6分)
PS:100%DC(判定覆盖)意味着所有判定结果的真假都要被测试用例覆盖。
解题思路:
(1)找出所有判定;
(2)使得每个判定条件的每个结果(真和假)在程序中都被覆盖到。
答:

【问题2】

        请画出上述程序的控制流图,并计算其环路复杂度V(g)。(9分)
V(g)=10+1=11
28-19+2

二、控制流程图绘制注意事项

1、复合条件表达式要拆成嵌套的单条件结构;

  • “ 与(&&) ”是在为真的条件中嵌套第二个条件;
  • “ 或(||) ”是在为假的条件中嵌套第二个条件;
  • 如下图所示

2、建议先绘制逻辑与为真的情况、逻辑或为假的情况

3、控制流图一定是起于一个节结点终于一个节点的

4、汇聚结点

  • 当一段程序代码在执行的过程中没有共同执行的部分,就需要在程序的控制流图后加一个汇聚结点(一个空圈圈);
  • 例如程序控制流在分叉之后直接结束了,没有这两个分叉共同执行的后续代码,就需要加一个空圈圈作为汇聚结点( 分叉之后没有闭合就需要加一个汇聚结点);
  • 当控制流分叉之后还有分叉(if...else...语句后还有并行的if...else...语句),控制流图中不需要汇聚结点,直接将上一个分叉的控制流连到下一个分叉的控制流即可。

三、McCabe圈复杂度计算方法

推荐使用第三种
  • V(g)=边的数量-结点数量+2;
  • V(g)=判断节点数+1
  • V(g)=封闭区域数+1
  • 0
    点赞
  • 7
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值