覆盖率

测试工具 - IDEA - IDEA Code Coverage

故事扮演 提交于 2019-12-05 10:11:18
概述 使用 idea 自带的 code coverage 工具 背景 了解 白盒测试用例设计 和 测试覆盖率 之后, 大概就需要 实践 了 实践的话, 还是需要 工具 来检验效果 工具选取 选项 JaCoCo IDEA Code Coverage 结果 两个都想试试 先看看 IDEA CC, 这个比较简单 JaCoCo 感觉更加复杂 指标 使用的场景都更加复杂 先讲 IDEA Code Coverage 简单 Idea 自带, 集成方便 1. 准备 理论基础 白盒测试用例设计 测试覆盖率 环境 os win 10 ide idea 2018.2 组件 java jdk8 testng 6.14.3 maven 3.6.0 代码 maven architecture quickstart 其他 idea 插件 coverage 这个一定要有 有了, 一定要打开 idea 添加插件, 我就不讲了 testng 的配置文件 这个我也不细讲了 自动生成配置文件的插件, 我之前讲过 配置文件里一些主要的配置, 我也讲过 2. 触发 概述 通过 执行测试, 触发 Coverage 插件 步骤 执行测试 进入某个测试类 比如 maven 工程自带的 AppTest 类 执行测试 在 类 中右键 选择 'Run Apptest with Coverage' 当然, 执行方式有很多 方法 类

测试理论 - 代码覆盖率

本小妞迷上赌 提交于 2019-12-05 08:57:20
概述 整理一下我对 代码覆盖率 的认识 背景 理解了 白盒测试 用例设计 设计完了, 总需要一个 标准, 来评估用例的某些方面 这个可能, 是 覆盖率 提出的意义吧 至于这个是谁最先提出, 又是出于 什么目的, 现已无从考证 主要是我 懒得考证... 1. 回顾: 白盒测试用例设计思路 概述 回顾一下白盒测试用例的设计思路 思路 代码覆盖 分支覆盖 条件覆盖 分支条件覆盖 多重条件覆盖 ref 后面会有 2. 覆盖率 概述 简单介绍 覆盖率 覆盖率 作用 度量 测试用例 对 代码 测试程度 意义 找出那些地方没有测 重视没有覆盖的部分 重点是解释这些问题 为什么没有覆盖 能否覆盖 对于 测试质量, 没有任何的表述 是的, 覆盖率高, 未必就是 测试得好 计算方式 代码覆盖率 覆盖率 = 被测代码行数 / 代码总行数 当然还有其他的 覆盖率 那些怎么算的, 我目前还不清楚 3. 常见的 覆盖率 指标 概述 以 jacoco 的指标为例, 简单说明一下 jacoco 执行结果 概述 简单描述下 jacoco 执行结果 列 Element 被测的包 Missed Instructions & Cov 指令覆盖 Missed Branhes & Cov 分支覆盖 Missed & Cxty 圈复杂度 Missed & Lines 代码覆盖 Missed & Method 方法覆盖

项目上线前的最后一步

流过昼夜 提交于 2019-12-04 19:50:51
对于测试人员来说,在项目临近上线的时刻,是软件测试人员既高兴又害怕,既兴奋又紧张的时刻了。 高兴的是测试了这么久,终于要上线了,感觉一段苦难终于解脱了;害怕的是万一有漏测,上线后出线bug了怎么办;兴奋的是这个项目就像自己的孩子终于要面向世人,展示他的才华了;紧张的是测试覆盖全了么?场景都考虑全了么?所以有时真是既想上线又不想上线,纠结。。。 但测试完成之后就立马上线么?一般来说是不会的,这时需要做几件事情来保证本次上线的完美无失,这也就是上线前的最后一个环节。 软件测试人员要做以下二件事情: 1、查看代码覆盖率 2、与开发人员再次确定上线策略和灰度方案 查看代码覆盖率 代码覆盖率: 在运行程度时,被执行到的代码条目占本次代码修改总条目数的百分比,为什么是本次修改代码的总条目数,是对比代码有增量和全量之分,一般不以全量来判断,若是以全量来判断覆盖率必然很低,这是因为项目并不需要做到功能的全部回归。 在项目测试过程中或完成之后,经常会去查看代码覆盖率,主要检查代码实际覆盖率和代码覆盖情况,这样的好处可以实时掌握对代码覆盖的情况,同时也可以帮助测试人员分析出有哪些场景没有覆盖到,如果某一段代码怎么都走不到,这时可以跟开发人员沟通此段代码在哪种场景下才能被执行到。 代码覆盖率上线标准:在即将上线的项目中,基本代码覆盖率达到80以上才达到上线的标准 分析代码覆盖率情况 :在实际测试过程中

利用JaCoCo统计接口测试中代码覆盖率

☆樱花仙子☆ 提交于 2019-12-04 17:42:44
​ 做接口测试,很多时候都会听到,你接口测试的覆盖率是多少? 很多人会回答80%,你怎么统计的,他说覆盖了80%的需求。 这个回答没有错误,但是片面,我们不能只考虑需求的覆盖率,还有业务的覆盖率,场景的覆盖率,接口的覆盖率,代码的覆盖率等,本文介绍接口测试的代码覆盖率。 那么我们来看看如何是实现的。 1、环境的搭建 1.1搭建 ant 环境 https://ant.apache.org/bindownload.cgi 我下载的是1.10.7版本,这个是因为 每个版本对应的java的版本 不一样,这个在ant的官网有介绍,下载的zip包 ,然后解压,然后去配置环境变量,我用的是mac配置的,打开: vi .bash_profile export ANT_HOME=/Users/lileilei/Downloads/apache-ant-1.10.7export PATH=$PATH:.:${ANT_HOME}/bin 配置完毕后source .bash_profile 立即生效 到这里,我们已经设置好了我们的ant的环境。 1.2 下载JaCoCo。 下载地址: https://www.jacoco.org/jacoco/ 下载完毕后,解压即可。 以上搭建了所需的环境。 2.ant的build文件配置 通过build.xml拉去覆盖率,具体配置文件如下:      <?xml

你真的会写单测吗?TDD初体验

血红的双手。 提交于 2019-12-04 12:18:04
前言:   昨天读到了一篇文章,讲的是TDD,即Test-Driven Development,测试驱动开发。大体意思是,它要求在编写某个功能的代码之前先编写测试代码,然后只编写使测试通过的功能代码,通过测试来推动整个开发的进行。这有助于编写简洁可用和高质量的代码,并加速开发过程。   初读之时,瞬间感受到了震撼,感觉和自己之前的开发流程全都不一样,之前是 由始至终 ,而这种思想确实 以终为始 。后来一查这种思想早在前几年甚至前几十年就被提出了,进而被广泛运用到了敏捷开发中。看来是自己孤落寡闻了,于是我准备将这种思想用到今后的开发中,要做的第一件事,就是温习如何写用例。 为什么是温习?   早在实习的时候,我们研发组就有写用例的习惯,但是随着开发逐渐熟悉,这种习惯不知不觉就被丢弃了,有页面的点点点,没页面的看逻辑。相信有很多人也像我一样,不知不觉就把这项技能丢弃了,接下来就让我们一起,去重新捡起这项技能。 工具选择 Junit 对于一个Java开发工程师来说,一提到 写单测,我 们最先想到的,一定是Junit。下面是maven坐标 <dependency> <groupId>junit</groupId> <artifactId>junit</artifactId> <version>4.11</version> <scope>test</scope> </dependency>

星云精准测试对安卓底层驱动代码的测试案例分析

早过忘川 提交于 2019-12-03 04:12:42
Android原生底层驱动应用面极广,但一直没有很好的办法进行质量追踪。本文借助星云精准测试的高可靠性的测试技术手段,针对Android原生底层驱动进行分析、插桩、编译、采集数据、数据分析等,逐步讲解精准测试是如何实现android原生底层驱动的对接。 在本文中,我们可以清晰地查看到如何进行技术对接的每一步,比如如何使用星云精准测试进行代码插桩、实现测试用例与采集底层驱动运行代码的数据追溯、对最终采集的数据进行一系列分析等。 一、安卓源码精准测试流程概述 经分析android源码的编译主要依靠Android.bp为纽带连接起来;在编译时,只需要在想要编译的模块目录下执行mm命令即可自动的根据当前目录下的Android.bp文件对其所包含的模块进行编译。 主要流程大致为:先将ZOA通信库源码复制进去并加入某一层次的Android.bp中,再通过对包含所有Android.bp编译信息的ninja文件的解析可以得到Shell认可的插桩json文件,Shell通过json文件对对应目录的代码进行插桩,插桩完成后,把对ZOA通信库的引用加入该模块的Android.bp中再放入ZoaInstru.h头文件后就可以正常编译出插桩程序了。 二、对安卓源码进行精准测试的准备工具 1.安卓原生8.1.0系统源码,放于/data/source2/目录下 2.shell.tar.gz插桩工具包放于

星云精准测试对安卓底层驱动代码的测试案例分析

左心房为你撑大大i 提交于 2019-12-03 04:12:36
Android原生底层驱动应用面极广,但一直没有很好的办法进行质量追踪。本文借助星云精准测试的高可靠性的测试技术手段,针对Android原生底层驱动进行分析、插桩、编译、采集数据、数据分析等,逐步讲解精准测试是如何实现android原生底层驱动的对接。 在本文中,我们可以清晰地查看到如何进行技术对接的每一步,比如如何使用星云精准测试进行代码插桩、实现测试用例与采集底层驱动运行代码的数据追溯、对最终采集的数据进行一系列分析等。 一、安卓源码精准测试流程概述 经分析android源码的编译主要依靠Android.bp为纽带连接起来;在编译时,只需要在想要编译的模块目录下执行mm命令即可自动的根据当前目录下的Android.bp文件对其所包含的模块进行编译。 主要流程大致为:先将ZOA通信库源码复制进去并加入某一层次的Android.bp中,再通过对包含所有Android.bp编译信息的ninja文件的解析可以得到Shell认可的插桩json文件,Shell通过json文件对对应目录的代码进行插桩,插桩完成后,把对ZOA通信库的引用加入该模块的Android.bp中再放入ZoaInstru.h头文件后就可以正常编译出插桩程序了。 二、对安卓源码进行精准测试的准备工具 1.安卓原生8.1.0系统源码,放于/data/source2/目录下 2.shell.tar.gz插桩工具包放于

如何保障测试覆盖率?

匿名 (未验证) 提交于 2019-12-03 00:11:01
如何保障测试覆盖率? 一、首先测试需求分析要全面 测试需求分析具体分两步: 1、测试需求的获取 需求的来源: 显式需求: (1)原始需求说明书 (2)产品规格书 (3)软件需求文档 (4)有无继承性文档 (5)经验库 (6)通用的协议规范 隐式需求:用户的主观感受,市场的主流观点,专业人士的评价分析。 2,需求的分析 ,产生测试需求文档 将不同的需求来源划分成一个个需求点,针对每一点进行测试分析: (1)界定测试范围 (2)利用各种测试设计的方法产生测试点 在测试方法方面,可做如下注意:   其一,分析出口入口。从入口分析,将可能出现的环境,条件,操作等内容分类组合,然后根据各位测试达人的方法进行整合,逐一验证。从出口分析,将可能出现的结果进行统计,根据结果的不同追根溯源,再找到不同的操作以及条件等内容,统计成文档,逐一验证。   其二,多种测试手法的学习和使用。大家可能更多的关心测试方法,但是具体操作的手法也是需要注意的。毕竟测试方法比较容易找到,各位达人都很熟悉。如果将每个人不同的测试手法总结出来并在自己的测试实施中加以使用,可能会收到意想不到的成果。 在测试流程方面,可作如下注意:   其一,初期要做好需求分析。将需求逐渐细化到小功能点,针对每个功能点进行测试设计。对于完成的测试设计文档,经过项目相关人员的检查评审,做成所需要的初稿。   其二,在测试过程中

面试――自动化测试面试

匿名 (未验证) 提交于 2019-12-02 23:57:01
总结: 1,做自动化测试遇到的最大困难 2,总共写过多少个自动化测试用例 3,自动化测试的优缺点 4,在使用Selenium中遇到的最大的问题?如何解决? 5,有无发现selenium的BUG 6,与人工测试相比,Selenium测试的产出,相对的优势? 7,项目中的测试覆盖率指什么?有总结测试覆盖率报告吗?自动化测试用例的最高覆盖率多少 8,自动化测试中遇到用例fail掉怎么排查故障? 9,page object模式中,如何实现页面的跳转? 10,你觉得自动化测试最大的缺陷是什么? 11,你们公司的自动化投入产出比怎样?效益怎样? 12,什么样的项目比较适合做自动化测试?什么样的不适合? 来源:博客园 作者: 小新人~ 链接:https://www.cnblogs.com/gaogo/p/11443054.html

测试 ASP.NET Core API Controller

匿名 (未验证) 提交于 2019-12-02 22:10:10
本文需要您了解ASP.NET Core MVC/Web API, xUnit以及Moq相关知识. 这里有xUnit和Moq的介绍: https://www.cnblogs.com/cgzl/p/9178672.html#test Controllers可以说是ASP.NET Core MVC/Web API项目的核心, 它们把整个应用都整合到了一起. 可以说Controllers是非常重要的, 所以我们应该对它们做一些测试. 由于我几乎只做API, 所以本文不包括关于MVC功能的测试, 只包括Controller的API相关功能. 测试一个简单的Controller 先举一个简单点的例子: 这个Controller相对简单, 它有一个依赖项. 它一个方法, 返回类型是IActionResult, 又具体分为两种情况. 测试返回结果的类型 首先需要new出来一个被测试的RootController, 标准的叫法叫 System Under Test(被测试系统) . 它需要一个urlHelper作为依赖项, 那就 Mock 一个即可. 每组测试数据都会走一遍构造函数的 . 该测试方法使用的是 Theory , 用了4组数据. 执行方法后返回的结果类型应该实现了IActionResult接口, 这里可以用 Assert.IsAssignableFrom<TExpected>