软件测试如何提高测试的覆盖率,测试覆盖率是什么?
测试覆盖率是什么?
测试覆盖率(test coverage)是2018年公布的计算机科学技术名词,它是测试质量的度量标准之一,告诉我们测试了多少代码。它定义了系统的某些实体,目的是用测试覆盖它们。这是一种用来指示我们什么时候进行了充分的测试,并告诉我们还需要测试什么(从而扩大了覆盖范围)的方法。
如果把测试比喻为打扫房子,那些不常用的房间总会被遗漏,我们总会忘记诸如次卧卫生间这样的区域,所以打扫的覆盖范围不包括就那个卫生间。
想象一下,如果我们的打扫标准只包括打扫卧室。按照这个标准,如果打扫了所有的卧室,就意味着整个房子都是干净的吗?
并非如此,因为我们完全忽略了厨房、餐厅、卫生间等房子内的其他部分!因此,务必要细致精准地度量测试覆盖率。具有一定程度的覆盖率是测试质量的一项指标,但它从来不是系统质量的指标,也不能保证所有内容都经过测试。测试覆盖率告诉我们测试代码的百分比,但这并不意味着它在每种情况下都被测试过。
测试覆盖率有什么优势?
依然是以打扫房屋为例,测试覆盖率可以:
● 度量打扫的质量;
● 指示何时该停止打扫;
● 提醒我们还有其他地方需要清理。
某些标准可能比其他标准更强大。了解它们可以让我们知道测试的深度以及何时应用某个或其他标准。例如,如果涵盖标准A的任何测试用例集TS也涵盖标准B,则可以说标准A包括另一个标准B。
如果对软件测试、接口测试、自动化测试、技术同行、持续集成、面试经验交流。感兴趣可以进到893694563,群内会有不定期的分享测试资料。
如果文章对你有帮助,麻烦伸出发财小手点个赞,感谢您的支持,你的点赞是我持续更新的动力。
按照上述原则,清洁房屋就可以遵循以下标准:
- 打扫每个卧室;
- 打扫房子的每一部分(包括卧室、厨房、卫生间等);
- 打扫每一个小地方,甚至是角落,因为它们很可能会积聚灰尘。
显而易见,标准3包括2,而2又包括1,关系是传递的,即3包括1。如果我们为标准3设计一个测试用例,它也应该包括前两个标准。对于测试软件,标准通常包括程序中的各种路径、条件、语句、函数等。
另一个真实的例子可能是等价类划分,先划分若干个等价类,然后从每个部分中选取具有代表性的数据当做测试用例进行合理的分类,这样就覆盖了所有类。如果考虑白盒测试,又有语句覆盖率、分支覆盖率、路径覆盖率等,特别是对于状态机,我们有指示覆盖所有节点、所有转换等的标准。
自动化测试如何适用?
现在就可以想象一下扔掉扫帚,换成一个超高速的扫地机器人。它可以解放双手、更快地清理地板、减少被遗漏的区域,还可以让自己在工作中专注于更重要的事情。
至此,我们可以得出结论:测试自动化=更高的测试覆盖率。
软件测试如何提高测试的覆盖率,测试覆盖率是什么?相关推荐
- 基于SkyEye的覆盖率测试
目录 01.覆盖率测试概念 02.覆盖率测试方法 03.嵌入式软件覆盖率测试原理 04.SkyEye的重大突破 01.覆盖率测试概念 覆盖率测试是一种白盒测试手段,通常会在软件测试的早期阶段进行,也就 ...
- Go语言圣经 - 第11章 测试 - 11.3 测试覆盖率
第11章 测试 软件测试是一个巨大的领域,但是Go语言的测试技术是相对比较低级的,它依赖一个Go test测试命令和一组按照约定方式编写的测试函数,测试命令可以运行这些函数 在实践中,编写测试代码和编 ...
- 覆盖率测试工具(coverage tool)
覆盖率测试工具(coverage tool) java: Emma:优点:1 开源软件:2 支持ANT TASK;Emma 是开源的,同时它对应用程序执行速度的影响非常小. 缺点:1 ANT TASK ...
- Jest 学习04 - DOM 测试、快照测试、测试覆盖率
DOM 测试 官方文档:DOM Manipulation 直接操作 DOM 的代码通常被认为难以测试,因为操作 DOM 就要使用浏览器环境的 DOM Api,而 Jest 是运行在 Node 环境中的 ...
- ruby 覆盖率测试_Ruby方法覆盖
ruby 覆盖率测试 Ruby中的方法重写 (Method overriding in Ruby) Method overriding simply means that there are two ...
- aiohttp/flask python后端单元测试,单元测试覆盖率测试
aiohttp web服务器单元测试 官方代码:https://github.com/aio-libs/aiohttp/blob/master/tests/test_client_functional ...
- SonarQube +Jenkins +JaCoCo 实现Java单元测试,单节点集成覆盖率测试,集群集成覆盖率测试(三)~集成测试篇
写在最前: 本文主要讲解SonarQube实现对Java代码的集成覆盖率扫描,代码质量扫描. 其中,集成覆盖率分为单节点,集群两种模式,文内都有详解. 参考链接: 环境版本和安装 SonarQube单 ...
- 软件测试面试题(一)——测试基础
1.软件的生命周期都有哪些阶段,常见的软件生命 周期模型? 软件生命周期:是指一个计算机软件从功能确定.设计,到开发成功投入使用,并在使用中不断地修改.增补和完善,直到停止该软件使用的全过程. 生命周 ...
- 软件测试工程师面试题-功能测试(测试理论)
一.测试基础 什么是软件测试 为了发现程序中的错误而执行程序的过程 软件测试的目的/为什么要在一个团队中开展软件测试工作? 发现程序员在开发中存在的代码以及逻辑错误 审核产品的完成是否符合用户需求 提 ...
- 软件测试面试必看,资深测试工程师面试题集锦 全网首发
全网首发,最牛的全套软件测试 ,自动化测试面试题,这些面试题都在文章末尾,有需要的可以自取 废话少说直接开始咱们今天的整体内容, 1.自我介绍? 我是谁.工作几年.你上家公司做什么.负责什么.你的优 ...
最新文章
- iOS cell 里需要创建n个元素
- 设置 myeclipse 编码格式
- 使用cx_freeze打包Python程序
- 重磅 | 2017年全球最聪明公司排行榜TOP50,哪9家中国公司上榜?
- 半透明AlphaBlend
- python乐观锁和悲观锁
- 第五人格维修服务器时间,第五人格调整维护时间 第五人格新赛季奖励皮肤一览...
- XML学习(二)————属性还是标签?
- scp 、ssh非22端口的服务器方法
- Generic Polygon Module in MAME 0.120u1
- 杭州c语言,杭州c语言的学习内容
- Python——numpy排序 求和
- java做抽奖小程序_基于JavaScript实现简单的随机抽奖小程序
- Windows PowerShell | 错误: 740 需要提升权限才能运行 DISM
- LeetCode中等题之整数转罗马数字
- mysql数据库now_MySQL NOW() 函数
- 最优秀最合理2019年移动便携图形工作站配置探讨
- web网站http转成https
- Kali局域网断网攻击
- 一文读懂元数据的概念、分类及作用