网站首页 收藏本站 联系我们
  • 首页
  • 关于望驰
    • 关于我们
    • 技术优势
    • 企业文化
  • Parasoft
    • Virtualize
    • Jtest™
    • Insure++™
    • SOAtest™
    • C++test™
    • dotTest™
  • Cybellum
    • Cybellum
  • beSTORM
    • beSTORM
  • Synopsys
    • Seeker
    • AppCheck
    • Coverity
  • 主营产品
    • Fortify
    • Security Fortify
    • CheckMarx
    • Deepkeep
  • Micro Focus
    • UFT
    • ALM Octane
    • WebInspect
    • LoadRunner
    • UFT Pro
    • Mobile Center
    • Service Virtualization
    • Network Virtualization
  • 测试仪器
    • CxCodebashing
  • 项目案例
    • 汽车解决方案
    • 金融解决方案
    • 工业控制系统
    • 医疗
    • 航空航天
    • 安全实验室
  • 行业新闻
    • 企业新闻
    • 行业动态
  • 联系我们
Parasoft
Virtualize
Jtest
Insure++
SOAtest
C/C++test™
dotTEST
  • 热门资讯
  • • Checkmarx:安卓又一严重漏洞!威胁着10亿人的..
  • • Checkmarx测评|物联网设备正在泄露你多少隐私..
  • • SlavaBronfman的访谈–Cybellum
  • • MISRAC++和AUTOSARC++的合并:软件开发行业专..
  • • 面向服务架构(SOA)的汽车软件分析和设计..
  • • 世界智能网联汽车大会
C/C++™首页 -> Parasoft -> C/C++™ -> 正文
如何使用C++test工具满足逻辑覆盖
摘要:Parasoft C++test 是美国公司 Parasoft 开发的一款专业白盒测试工具。 C++test 能够使团队开发更好的代码,实施更有效的测试,以及持续地监视实现 其质量目标的过程。使用 C++test 经时间验证的重要最佳实践--例如静态分析, 全面的代码审查,运行时错误检测,集成覆盖率分析的单元测试和组件测试能 够在开发周期的开始阶段,自动地在开发者的桌面上完成。能够通过命令行模 式自动化地执行回归和持续集成测试,为监测和分析质量趋势提供数据。针对 嵌入式和跨平台开发,C++test 可以用在基于宿主环境和目标环境的代码分析和 测试流程中。
如何使用 C++test 工具满足逻辑覆盖

逻辑覆盖

逻辑覆盖是白盒测试的一种覆盖标准。白盒测试法的覆盖标准有逻辑覆盖、循环覆盖和基本路径测试。其中逻辑覆盖包括语句覆盖、判定覆盖、条件 覆盖、判定/条件覆盖、条件组合覆盖和路径覆盖。

Parasoft C++test 工具

Parasoft C++test 是美国公司 Parasoft 开发的一款专业白盒测试工具。 C++test 能够使团队开发更好的代码,实施更有效的测试,以及持续地监视实现 其质量目标的过程。使用 C++test 经时间验证的重要最佳实践--例如静态分析, 全面的代码审查,运行时错误检测,集成覆盖率分析的单元测试和组件测试能 够在开发周期的开始阶段,自动地在开发者的桌面上完成。能够通过命令行模式自动化地执行回归和持续集成测试,为监测和分析质量趋势提供数据。针对 嵌入式和跨平台开发,C++test 可以用在基于宿主环境和目标环境的代码分析和测试流程中。

下面内容重点描述了 C++test 所包含的覆盖率类型以及如何使用

C++test 工具满足逻辑覆盖要求。


C++test 覆盖率类型

行覆盖

定义:指出多少源码的可执行行受控制流影响至少一次。如果所有可执行行受到影响至少 一次,将会获得完全的 100% 行覆盖率。



语句覆盖

定义:表示有多少可执行源代码语句是控制流至少一次能过到达的。如果所有 的可执行语句至少到达一次,将获得 100% 语句覆盖率。


块覆盖

定义:与行覆盖率类似(除了带有块覆盖率的测量代码单元是一个基本块), 表示源码中有多少基本块受到控制流影响至少一次。

























路径覆盖

定义:表明是否一个给定的函数中每条可能的路径随后有控制流。



判断(分支)覆盖

定义:表明源码中有多少分支控制流通过。当每一个判决在所有的分支点取得 所有可能的结果至少一次时,可获取完整的,100% 覆盖。


修正的条件/判断覆盖(MC/DC)

定义:MC/DC 与国际技术标准 DO-178B (RTCA) 一致,此标准详细说明了软 件证明的标准,包括实时嵌入式系统,危急任务设施和航空工业的系统。根据 DO -178B 标准必需满足下面三个条件才能获得全部的 (100%) MC/DC 覆盖 率:


a)    每个判断至少有一次已经产生所有可能的结果

b)    判断中的每一个条件至少有一次已经产生所有可能的结果。

c)    判断中每一个条件已经证明独立地影响判断结果。

由于 C++test 认为每一个条件和判断可能只有两个 MC/DC 覆盖率的结果--真或 假 -- C++test 只检查上面刚刚列出的第三个选项(c),因为(c)中暗含条件

(a)和(b)。 通过改变一些特殊条件,又固定所有其他可能的条件,来证明这种条件能

够独立地影响判决结果,因此,为了测试某个给定的条件,C++test 在下面这 些地方寻找测试用例:

Ø    测试条件有真和假两种结果

Ø    判断中的其他情况不改变(或者 C/C++ 中的算子逻辑短路)

Ø    判断结果发生改变

因此,为了计算 MD/DC 率,C++test 使用下面的公式:MC/DC = m/n,这 里 m 指独立影响判决结果的布尔条件数,n 指判决中条件的总数。

 

简单条件覆盖

定义:指明所有判断条件的结果覆盖率。判断结果的总数等于 2 * n,这里 n 指 判断条件的数目。因此,为了获取 100%的覆盖面,所有的条件必需获得所有可能的结果。

 


函数覆盖

定义:一次执行后源码中有多少函数被至少执行了一次。如果所有的函数都至少执行了一次,那么覆盖率就可以达到 100% 。 

 总结:

通过以上分析和说明,可以看到作为白盒测试的专业工具 Parasoft C++test 完全支持和满足逻辑覆盖的要求。

Cybellum  Parasoft  bestorm  Defensics  Appcheck  Coverity  如何使用 C++test 工具满足逻辑覆盖
上一页 返回列表 没有了
 
关于我们      |       产品展示      |       解决方案      |       经典案例      |       培训中心      |        新闻资讯      |        试用申请      |        联系我们
  • 上海望驰安防科技有限公司

    地址:上海市浦东灵山路958号5号楼2楼

    手机:18049824972

    电话:021-50150593

    邮箱: anying.ao@ruitde.com

CopyRight 2016 www.ruitde.com All Rights Reserved     版权所有:上海望驰安防科技有限公司   沪ICP备16034184号