Testivus On Test Coverage

Testivus On Test Coverage

一天早上,一个程序员问大师:

我准备要写单元测试了,请问我要达到多少覆盖率呢?

大师回答说:

不用担心覆盖率了,写出来有效的单元测试就好了。

程序员笑了,向大师鞠躬,然后愉快的去干活了。


过了一会儿,第二个程序员向大师问了同样的问题。

大师指着小米牌智能电饭锅,对程序员问道:

我该放多少米呢?

程序员迷茫的回答道:

我怎么知道呢?这处决于多少人吃饭,他们饭量多大,有多少其他的辅食,当然还得看有多少米等等。

"太对了”,大师说。

第二个程序员心领神会,鞠躬,然后蹦蹦跳跳的干活去了。


那天快下班时,第三个程序员找大师问了同样的问题。大师边拍桌子,用尖利的声音咆哮道:

妈蛋,覆盖率得80%以上,一个子都不能少!

第三个程序员得到了答案,满意的微笑,欢快的去干活去了。


等第三个程序员出去后,大师的徒弟问大师:

大师啊,今天我听你回答关于覆盖率的问题,同样的问题却有三个答案,为何呢?

大师从他的椅子上站起来,说:

给劳资倒杯茶去,且听我细细分享。

随着滚烫的绿茶冒出淡淡清香的青烟,大师开始回答了:

第一个程序员是个新手,刚刚开始搞单元测试,而且他要测试的那个代码,堆成山啊!工作量简直不忍直视啊!我估计他得加班到吐血了,现在关注覆盖率还不是时候啊,现在就提覆盖率要求,他肯定会崩溃明天就给劳资辞职了。目前先稳住他,管他多少覆盖率,先提交些测试用例再说。等测试用例多了,劳资再要求覆盖率,哈哈。

第二个程序员,写代码和测试都非常有经验,是个老鸟啊。这年头队伍不好带啊,我用电饭锅做隐喻,而且还是智能的,显得我逼格够高,让他意识到覆盖率决定于很多因素就好了,具体依赖什么他比我还清楚,那是她的代码啊,我就不一一细说了,万一说漏了很容易被老司机嘲笑的。实际上覆盖率应该是多少,乃衣无,是没有唯一和简单的答案的。

“擦,明白了”,大师的徒弟说到,“既然没有简单答案,为何你回答第三个程序员时告诉他是80%以上呢?”

大师大笑,坐回他的太师椅,留下一句话:

第三个程序员嘛,他只是想知道简单的答案,即使根本就没有简单的答案。

下面是原文:点这个链接

Testivus On Test Coverage

Early one morning, a programmer asked the great master:

I am ready to write some unit tests. What code coverage should I aim for?

The great master replied:

Don’t worry about coverage, just write some good tests.

The programmer smiled, bowed, and left.


Later that day, a second programmer asked the same question.

The great master pointed at a pot of boiling water and said:

How many grains of rice should I put in that pot?

The programmer, looking puzzled, replied:

How can I possibly tell you? It depends on how many people you need to feed, how hungry they are, what other food you are serving, how much rice you have available, and so on.

Exactly, said the great master.

The second programmer smiled, bowed, and left.


Toward the end of the day, a third programmer came and asked the same question about code coverage.

Eighty percent and no less!

Replied the master in a stern voice, pounding his fist on the table.

The third programmer smiled, bowed, and left.


After this last reply, a young apprentice approached the great master:

Great master, today I overheard you answer the same question about code coverage with three different answers. Why?

The great master stood up from his chair:

Come get some fresh tea with me and let’s talk about it.

After they filled their cups with smoking hot green tea, the great master began to answer:

The first programmer is new and just getting started with testing. Right now he has a lot of code and no tests. He has a long way to go; focusing on code coverage at this time would be depressing and quite useless. He’s better off just getting used to writing and running some tests. He can worry about coverage later.

The second programmer, on the other hand, is quite experience both at programming and testing. When I replied by asking her how many grains of rice I should put in a pot, I helped her realize that the amount of testing necessary depends on a number of factors, and she knows those factors better than I do – it’s her code after all. There is no single, simple, answer, and she’s smart enough to handle the truth and work with that.

I see, said the young apprentice, but if there is no single simple answer, then why did you answer the third programmer ‘Eighty percent and no less’?

The great master laughed so hard and loud that his belly, evidence that he drank more than just green tea, flopped up and down.

The third programmer wants only simple answers – even when there are no simple answers … and then does not follow them anyway.

The young apprentice and the grizzled great master finished drinking their tea in contemplative silence.

在使用Python来安装geopandas包时,由于geopandas依赖于几个其他的Python库(如GDAL, Fiona, Pyproj, Shapely等),因此安装过程可能需要一些额外的步骤。以下是一个基本的安装指南,适用于大多数用户: 使用pip安装 确保Python和pip已安装: 首先,确保你的计算机上已安装了Python和pip。pip是Python的包管理工具,用于安装和管理Python包。 安装依赖库: 由于geopandas依赖于GDAL, Fiona, Pyproj, Shapely等库,你可能需要先安装这些库。通常,你可以通过pip直接安装这些库,但有时候可能需要从其他源下载预编译的二进制包(wheel文件),特别是GDAL和Fiona,因为它们可能包含一些系统级的依赖。 bash pip install GDAL Fiona Pyproj Shapely 注意:在某些系统上,直接使用pip安装GDAL和Fiona可能会遇到问题,因为它们需要编译一些C/C++代码。如果遇到问题,你可以考虑使用conda(一个Python包、依赖和环境管理器)来安装这些库,或者从Unofficial Windows Binaries for Python Extension Packages这样的网站下载预编译的wheel文件。 安装geopandas: 在安装了所有依赖库之后,你可以使用pip来安装geopandas。 bash pip install geopandas 使用conda安装 如果你正在使用conda作为你的Python包管理器,那么安装geopandas和它的依赖可能会更简单一些。 创建一个新的conda环境(可选,但推荐): bash conda create -n geoenv python=3.x anaconda conda activate geoenv 其中3.x是你希望使用的Python版本。 安装geopandas: 使用conda-forge频道来安装geopandas,因为它提供了许多地理空间相关的包。 bash conda install -c conda-forge geopandas 这条命令会自动安装geopandas及其所有依赖。 注意事项 如果你在安装过程中遇到任何问题,比如编译错误或依赖问题,请检查你的Python版本和pip/conda的版本是否是最新的,或者尝试在不同的环境中安装。 某些库(如GDAL)可能需要额外的系统级依赖,如地理空间库(如PROJ和GEOS)。这些依赖可能需要单独安装,具体取决于你的操作系统。 如果你在Windows上遇到问题,并且pip安装失败,尝试从Unofficial Windows Binaries for Python Extension Packages网站下载相应的wheel文件,并使用pip进行安装。 脚本示例 虽然你的问题主要是关于如何安装geopandas,但如果你想要一个Python脚本来重命名文件夹下的文件,在原始名字前面加上字符串"geopandas",以下是一个简单的示例: python import os # 指定文件夹路径 folder_path = 'path/to/your/folder' # 遍历文件夹中的文件 for filename in os.listdir(folder_path): # 构造原始文件路径 old_file_path = os.path.join(folder_path, filename) # 构造新文件名 new_filename = 'geopandas_' + filename # 构造新文件路径 new_file_path = os.path.join(folder_path, new_filename) # 重命名文件 os.rename(old_file_path, new_file_path) print(f'Renamed "{filename}" to "{new_filename}"') 请确保将'path/to/your/folder'替换为你想要重命名文件的实际文件夹路径。
Fault coveragetest coverage是软件测试中的两个重要指标。 Fault coverage是指在测试过程中能够发现的故障或错误的比例。它衡量了测试用例是否足够全面地覆盖了系统中的潜在故障。在报告中,一般会看到test coverage比fault coverage稍微高一些,这意味着测试用例覆盖了更多的系统功能和代码,但仍有一些故障可能没有被发现。 Test coverage是指测试用例覆盖了被测试系统的程度。它衡量了测试用例是否能够触发系统中的各种功能和路径。通过插入test point,可以测试到没有被覆盖到的点,同时提高某个故障被发现的概率。这种方法可以增强manufacturing fault coverage,即在制造过程中提高故障的检测能力。 因此,fault coverage关注的是发现故障的能力,而test coverage关注的是测试用例的覆盖程度。两者都是评估软件测试质量的重要指标。<span class="em">1</span><span class="em">2</span><span class="em">3</span> #### 引用[.reference_title] - *1* [[ATPG] test coverage 的计算方法](https://blog.csdn.net/SH_UANG/article/details/53180164)[target="_blank" data-report-click={"spm":"1018.2226.3001.9630","extra":{"utm_source":"vip_chatgpt_common_search_pc_result","utm_medium":"distribute.pc_search_result.none-task-cask-2~all~insert_cask~default-1-null.142^v93^chatsearchT3_1"}}] [.reference_item style="max-width: 50%"] - *2* *3* [fault coverage enhancement](https://blog.csdn.net/weixin_34037977/article/details/86344846)[target="_blank" data-report-click={"spm":"1018.2226.3001.9630","extra":{"utm_source":"vip_chatgpt_common_search_pc_result","utm_medium":"distribute.pc_search_result.none-task-cask-2~all~insert_cask~default-1-null.142^v93^chatsearchT3_1"}}] [.reference_item style="max-width: 50%"] [ .reference_list ]
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值