📝 面试求职: 「面试试题小程序」 ,内容涵盖 测试基础、Linux操作系统、MySQL数据库、Web功能测试、接口测试、APPium移动端测试、Python知识、Selenium自动化测试相关、性能测试、性能测试、计算机网络知识、Jmeter、HR面试,命中率杠杠的。(大家刷起来…)
📝 职场经验干货:
我们生活在数据时代,访问的各大网站会统计来自世界各地用户的访问量;例如YouTube会统计观看次数和点赞数;移动APP会统计崩溃数据。因此,软件测试人员想要衡量质量相关数据也就不足为奇了。大家可能听过“100%测试覆盖率”的话题,本文探讨这句话的几种可能含义。
可能意味着代码覆盖率
代码覆盖率指的是测试功能运行自动化测试用例所执行的代码行数,它表示测试用例对代码执行情况的覆盖比例。自动化测试未覆盖的区域可能意味着测试存在遗漏风险。单元测试是提高代码覆盖率的绝佳方式,因为它旨在直接对代码进行测试。此外,有许多可用于衡量代码覆盖率的工具,比如DotCover、Coverlet、Cobertura以及SonarQube。
并不意味着100%可以实现
那些从未进行过软件测试的人认为在一个应用程序中可测试的内容是有限的,所以有可能实现100%的测试覆盖率。实际上这是不可能的。哪怕是对于最简单的应用程序,可创建的测试用例数量也是没有上限的。设想一个有五个字段且均非必填的简单网页表单。用户可以只填一个字段(有五种不同可能)、只填两个字段(十种不同可能)、填三个字段(十种不同可能)、填四个字段(五种不同可能)或者填全部五个字段。这就有31种测试用例了,而这甚至还没考虑负面测试的情况。要是一个字段有错误而另外两个字段正确呢?要是三个字段有错误而一个字段正确呢?很容易看出测试场景的数量会如何迅速攀升至数百万个测试用例。所以,没有哪个团队能达到此处所定义的100%测试覆盖率。
可以表示自动化覆盖率
有可能会用测试覆盖率这个术语来指代已实现自动化的手动测试用例的占比。这对于展示自动化项目的进展状况很有用。如果你有500个已记录的手动测试用例,并且已经将其中200个实现了自动化,那么你的自动化覆盖率就是40%。然而,如果你没有一套已记录的手动测试用例,那么这个含义的用处就不大了。如果只有少量手动测试用例被记录下来,在将这些测试用例自动化之后,一个团队就可以宣称达到了100%的自动化覆盖率。
可以指功能覆盖率
测试覆盖率的另一种含义是对应用程序的哪些功能已有测试进行衡量。如果一个产品有十个功能,而测试人员对其中五个功能执行了测试,那就可以说50%的功能已经过测试。在这种用法中,区分“已测试”的含义也很重要。“已测试”可能意味着已经进行了探索性测试并做了记录,但尚未创建回归测试套件;也可能意味着已经创建了手动回归测试或者已经编写了测试自动化脚本。
测试覆盖率能告诉我们什么?
测试覆盖率能告诉我们测试执行了多少行代码、对某个功能进行了多少测试、创建了多少回归测试,或者编写了多少自动化测试。但只有当团队或组织的所有成员都对这个术语的含义达成一致时,它才有意义。如果你的团队被要求开始衡量“测试覆盖率”,那可以把这篇文章分享给需要的人。
最后: 下方这份完整的软件测试视频教程已经整理上传完成,需要的朋友们可以自行领取【保证100%免费】