C1/C1/C2 カバレッジについて

■いつも忘れてしまうカバレッジの違いについて

C0/C1/C2

検査網羅率(テストカバレージ) ── どれだけテストしたか、の指標。

例:

void function(...) {if ( 条件A || 条件B ) {処理1} else {処理2}if ( 条件C ) {処理3} else {処理4}
}

C0: 命令網羅 ステートメント・カバレージ
通っていない処理がなくなればC0は100%となる。
この例では 処理1,2,3,4 を少なくとも1度通るべきであるということ。
つまり

  • 処理1, 処理3 を通るケース
  • 処理2, 処理4 を通るケース

のふたつ。

C1:分岐網羅 ブランチ・カバレージ
分岐の全組み合わせをテストすればC1は100%となる。
この例では

  • 処理1, 処理3 を通るケース
  • 処理1, 処理4 を通るケース
  • 処理2, 処理3 を通るケース
  • 処理2, 処理4 を通るケース

の4つ。

C2:条件網羅 コンディション・カバレージ
条件式の全組み合わせをテストすればC2は100%となる。
この例では、条件A,B,C があるので

  • 条件A = false, 条件B= false, 条件C= false となるケース
  • 条件A = false, 条件B= false, 条件C= true となるケース
  • 条件A = false, 条件B= true, 条件C= false となるケース
  • 条件A = false, 条件B= true, 条件C= true となるケース
  • 条件A = true, 条件B= DC, 条件C= false となるケース
  • 条件A = true, 条件B= DC, 条件C= true となるケース

の6つ。
※ (DC: Don't Care = どうでもいいということ)

実コードでは条件式の数がかなり大きくなると思われるので、
C2カバレッジは現実的ではないかも。


条件式が10個あったらC2を100%にしようとすれば、
最大1024通りのテストケースが必要となってしまう
しかしたとえば条件式5つずつの二本のコードに分割できるなら、
C2を100%にするには32通りをふたつで
64通りのテストケースとなり、これなら全件テストも現実的になってきた?

関数を分割するメリットがここにも出てくる。

C1/C1/C2 カバレッジについて相关推荐

  1. c程序设计语言中printf,编程序 用getchar函数读入两个字符c1和c2,然后分别用putchar和printf函数输出这两个字符。请问...

    编程序,用getchar函数读入两个字符给c1和c2,然后分别用putchar和printf函数输出这两个字符.请问: 1. 变量C1,C2应定义为字符型或整型?或二者皆可? 答:在这个题目里,变量C ...

  2. SAP QM 采样方案的c1 d1 c2 d2 --多重采样

    SAP QM 采样方案的c1 d1 c2 d2 --多重采样 使用QDP1创建采样方案的时候为什么只要填写c1 d1不用填写c2 d2等等呢? 首先,C1/C2-C7代表接受数 D1/D2-D7代表拒 ...

  3. 有一批共n个集装箱要装上2艘载重量分别为C1和C2的轮船,其中集装箱i的重量为wi,且 装载问题要求确定,是否有一个合理的装载方案可将这n

    一.问题描述 有一批共n个集装箱要装上2艘载重量分别为C1和C2的轮船,其中集装箱i的重量为wi,且 ∑i=1nwi≤c1+c2\sum _{i=1}^{n} wi\leq c1+c2∑i=1n​wi ...

  4. c1和c2语言水平,为什么驾校不建议考C2,驾驶证C1和C2的区别

    加盟滴滴请猛戳这里>> 最近几年学车的人群剧增,这跟大伙儿的生活水平的提升有脱离不了的干系.学车面临的第一个问题就是学什么车,因为驾驶证有C1和C2的区别.很多驾校都不建议学员考C2,其中 ...

  5. 1、定义一个复数类Complex,使得下面的代码能够工作。 Complex c1(3,5); Complex c2=4.5; c1.add(c2); c1.show();

    一.问题描述 1.定义一个复数类Complex,使得下面的代码能够工作. Complex c1(3,5); Complex c2=4.5; c1.add(c2); c1.show(); #includ ...

  6. 计算机绘图c2是什么,Cad里c2表示(cad中C1(C2)这样的符号是什么意思)

    CAD倒角标注里面的C1 C2是表示是什么? C1表示1 X 45°倒角:C2表示 1 X 45°倒角. CAD全称计算机辅助设计指利用计算机及其图形设备帮助设计人员进行设计工作. 在设计中通常要用计 ...

  7. mysql字连接查询实现至少选修C1和C2两门课的学生和一个都没有被选中的课程

    至少选修C1和C2两门课的学生 一个都没有被选中的课程 至少被一个同学选中的课程 select cno,cname from C where exists(select * from sc where ...

  8. c语言中abcd的大小,技巧总结:驾照中ABCD什么意思区别 应该学C1还是C2

    驾照中ABCD什么意思区别 驾照类别:A1.A2.A3.B1.B2.C1.C2.C3.C4.D.E.F.M.N.P,共15个类别 驾照里A表示大型客车,B表示大型货车,C表示小型汽车 A1 大型载客汽 ...

  9. C++:重载运算符“+”,用于复数加法运算。(如c1+c2,i+c1,c1+i(i为整数))

    题目概述: 分别求两个复数之和,整数与复数之和. 编程: #include< iostream> using namespace std; class Complex { private: ...

最新文章

  1. Linux下多线程编程中信号量介绍及简单使用
  2. GSVA包进行基因集变异分析
  3. Linux RPM 相关
  4. CString, BSTR, LPCTSTR之间得关系和区别
  5. VTK:重采样折线用法实战
  6. 配置普通用户可以运行saltstack的模块
  7. mysql 取 浮点运算_mysql 浮点型运算误差原因分析及解决方法
  8. jax-ws和jax-rs_JAX-RS和OpenAPI对Hypermedia API的支持:任重而道远
  9. UNIX(多线程):22---几种常见的线程池
  10. 详细分析Apple macOS 6LowPAN 漏洞(CVE-2020-9967)
  11. 安卓 4.3 no such colum
  12. 文件服务器 标签,别再「新建文件夹」了,这个标签管理器可以让你的硬盘更整洁...
  13. VulnHub-noob打靶记录
  14. fpga板子怎么和电脑连_[笔记].怎样正确插拔FPGA开发板的JTAG仿真器,如USB-Blaster等?...
  15. 【巷子】---flux---【react】
  16. 关于独立DFS和域DFS板书
  17. android实时监控屏幕代码,Android 屏幕切换监听的实例代码
  18. java放3个按钮_java编写三个按钮
  19. vue指令模式 添加埋点
  20. 内网渗透神器CobaltStrike之DNS Beacon(四)

热门文章

  1. Kong 网关 | Rate Limiting 限流
  2. 晒弟弟考取的教资证写的朋友圈文案
  3. 条码防伪检测技术介绍,如何通过扫描商品条码判断产品的真伪-鸿顺捷条码防伪技术介绍
  4. 8个常见的研究者认知偏误陷阱(转载)
  5. 1.js基础01-计算机基础
  6. Linux下让程序后台运行
  7. 推荐一款在线免费共享云桌面
  8. 随机梯度下降法 SGD
  9. vue项目中使用@babel/plugin-proposal-optional-chaining的?.语法,防止字段没有报错
  10. qq公众号消息是发送到自己服务器,qq公众号屏蔽后还发消息 qq消息被屏蔽了怎么办...