当前位置: 首页 > 软件库 > 开发工具 > 测试工具 >

logcover

轻量级覆盖率测试工具
授权协议 未知
开发语言 Python SHELL
所属分类 开发工具、 测试工具
软件类型 开源软件
地区 国产
投 递 者 隆选
操作系统 跨平台
开源组织 百度
适用人群 未知
 软件概览

logcover 是一款非常便捷的统计测试用例异常日志覆盖率的工具。可清晰地分析出程序源代码中异常日志的覆盖情况,检验测试充分度,指导测试用例完善。

使用场景: 度量异常分支测试覆盖率,覆盖单元测试、模块测试、集成测试 

背景:
 异常测试是软件测试中非常重要的一环,异常测试充分与否直接影响到测试质量和产品线上稳定性。
logcover是Baidu质量部推出的一款专门用于度量异常测试覆盖率的轻量级工具,通过度量异常日志的测试覆盖率来反应异常测试覆盖率,因为打印异常日志的程序分支往往更需要测试覆盖的异常分支。

原理:
 结合程序源代码和测试执行产生的日志,计算程序异常日志的测试覆盖率。
例如: 源代码中有100处异常日志(warning、fatal、error)打印点,程序在测试过程中,产生了100条日志,对应源代码中50处日志打印点,则异常日志覆盖率是50%,同时,logcover会给出覆盖日志和未覆盖日志的所有信息,包括文件名、行号等,便于快速识别未覆盖异常日志。

实现:
• 根据svn,对源代码进行轻量级静态分析,获得代码中异常日志打印的原始信息
• 收集单机/多机测试日志,并对日志文件进行parse、filter、merge等处理,得到实际覆盖的日志信息
• 根据代码中的原始日志信息和实际测试产生的日志信息,做diff计算,得出异常log覆盖率和覆盖信息
• 覆盖率报告邮件推送

logcover使用说明:
1: 下载logcover
2: 修改对应 logcover.cfg文件
   logcover_type =0 表示单机模式;logcover_type=1表示多机模式。
   选择多机模式时,对应填写 machines、user、password、log_paths和script_path
3: 执行 sh logcover.sh $svn $log_cover_log_dir $mail_list -s $mail_subject
   $svn : 被测程序svn源码路径
   $log_cover_log_dir: log文件存放路径
   $mail_list : 覆盖率报告推送邮件列表,多邮件中间以空格分隔。例如:zhangsan@xx.com li@xx.com
   -s $mail_subject : 推送邮件自定义主题

logcover执行环境依赖:
1: perl v5.8.5+
2: python v2.7+
3: svn client v1.6.5+
 

 相关资料
  • 11.3. 测试覆盖率 就其性质而言,测试不可能是完整的。计算机科学家Edsger Dijkstra曾说过:“测试能证明缺陷存在,而无法证明没有缺陷。”再多的测试也不能证明一个程序没有BUG。在最好的情况下,测试可以增强我们的信心:代码在很多重要场景下是可以正常工作的。 对待测程序执行的测试的程度称为测试的覆盖率。测试覆盖率并不能量化——即使最简单的程序的动态也是难以精确测量的——但是有启发式方法

  • 我已经成功地用Karma和Webpack为我的沙盒项目设置了测试。代码覆盖率指标由伊斯坦布尔仪器加载器收集。让我困扰的是,我只得到测试中导入的模块的报告覆盖率,所以报告的100%覆盖率实际上是一个肮脏的谎言。 寻找解决方案,我在伊斯坦布尔Instrumenter Loader的自述文件中找到了一段话: 要为所有组件创建代码覆盖率报告(即使是那些尚未进行测试的组件),您必须需要所有1)源代码和2)测

  • v2.0 Codecov报表 , 从2017-12-29后开始统计 测试覆盖率为 : , 可以从 https://codecov.io/gh/apache/dubbo 页面得到覆盖率报表 v1.0 基于 2.0.12 版本,统计于 2012-02-03

  • 问题内容: 我试图用来衡量我正在构建的服务的测试覆盖率。这是一个REST API,我通过旋转,测试HTTP请求和查看HTTP响应来对其进行测试。这些测试不是服务包的一部分,并且返回0%的测试覆盖率。有没有办法获得实际的测试覆盖率?我希望在给定的端点上进行最理想的方案测试,至少可以覆盖特定端点处理程序的代码的30-50%,并且可以通过添加更多针对常见错误的测试来进一步改善此情况。 问题答案: 有人向

  • 我在测试android以创建覆盖率测试报告时遇到问题。我使用./gradlew createDebugCoverageReport命令创建覆盖率报告。已创建报告,但所有测试的结果均为%0。第一个设备已植根,但第二个设备未植根。我们使用这两个设备测试勺子,并查看勺子输出。所以这两个设备一起使用。问题:当我们使用第一个设备(根设备)运行此命令时,将按预期创建所有覆盖率测试结果,但当我们同时使用两个设备

  • 我试图通过SonarQube API(Sonar Version4.1.2)检索单个类的单元测试代码覆盖率。一切都很好,当我直接进入声纳仪表板并进入一个类的覆盖选项卡时,我可以看到指标良好: 有人能告诉我通过声纳API接口检索相同/相似信息的正确调用吗?我已经查看了http://docs.sonarqube.org/display/sonar/metric+definitions上的文档,并且可以

  • 对不起我的英语。我对junit测试有问题。客户机要求覆盖所有类,即使是dto/model/entity(即使是错误的,我也必须这样做)。但我在测试getter和setter时遇到困难。我无法覆盖,我已经测试了许多解决方案,但要么覆盖率为0,要么出现错误,我该怎么办? 我的班级: 我的班级测试 always error,例如last when:when()需要的参数必须是“模拟的方法调用”。例如:w

  • 新的一年 之前因为上家公司的经营出了问题,年前的大裁员,过了一个漫长的春节。 之后加入了新公司,然后正好赶上一个很紧急的项目,忙成狗,因此好久没更新文章了。 不过,我又回来啦! 前言 自动化测试,我们将使用karma和nightmare,内容会包括: 单元测试 e2e测试(放下一篇文章) 其实,单元测试一般用在写公共包的时候,比如通用的js函数库,通用的UI组件库。基本不太会在做业务项目的时候还使