两个小组独立地测试同一个程序,第一组发现25个错误,第二组发现30个错误,在两个小组发现的错误中有15个是共同的,那么可以估计程序中的错误总数是 ___个。
A.25 B.30 C.50 D.60
当然,任何一个了解估算方法的朋友都可以根据公式计算出最终的结果是50个,这没有什么问题。——但是,我在这里引用这个题目,是希望我们可以把学习这件事情通过类比变得更加有趣一点。
其实,如何估算一个系统中存在的缺陷数,我们的老祖宗早就有现成的方法了。不信,请看我在我们老祖宗的数学专著中找到的一个实践问题:“有一口鱼塘,不知
道其中有多少条鱼,如何才能估算出池塘中鱼的数量?”(当然,原文不是这样,请原谅我一下子找不到出处,只好凭记忆用我的语言描述一下了)。我们老祖宗给
出的答案是这样的:
- 首先,从鱼塘中打捞出一些鱼(假设数量为m);
- 将这些鱼做上记号,然后将其放回鱼塘;
- 等待一段时间,等到鱼均匀分布在鱼塘中了之后,再次打捞上来一些鱼(假设数量为n);
- 统计第二次打捞上来的鱼中的带记号者(假设数量为p);
- 计算得出鱼塘中鱼的数量为 S = m / (p/n)
对这个答案最简单的理解是:假设第一次做了记号的鱼在鱼塘中是均匀分布的,第二次打捞上来的n条鱼中有p条是有记号的,则说明有记号的鱼的分布密度是p/n,鱼塘中一共有m条有记号的鱼,当然总的鱼数量就是 S = m / (p/n)了
。
再回到我们的原始问题,很容易做一个类比,第一个小组发现了25个缺陷(相当于第一次打捞的鱼m),第二个小组发现了30个缺陷(相当于第二次打捞上来的鱼n),两者相同的是15个(相当于是p),所以答案是 50。
所以,从现在开始,不要再认为这个方法是什么深奥的方法——看看,我们的老祖宗都能熟练运用呢
本来,到这里就可以告一段落了,可是我们能不能再深入点思考这个问题呢?
这种方法显然是可以得到一个估算结果,但这种方法在哪些情况下不合适,使用时有什么注意事项没有呢?
还是回过头看我们养鱼的例子,很显然,我们讨论的前提是“做记号的鱼在池塘中分布均匀”,如果这个条件不满足,我们的估算结果显然是有很大的偏差的。就鱼
塘来说,不同类型的鱼由于喜欢的食物种类不同,喜欢分布在不同的层次,这样一来的话,在打捞的时候就要注意,如果只侧重在某一个水层,显然结果是有很大的
偏差的,另外,由于鱼塘边上的温度相对较低,夏天鱼更加喜欢在鱼塘边休息……,可见,要达到“平均”这样的条件还是有难度的…… ——
等等,我们讨论了这么久的鱼,和我们的缺陷有什么关系呢?
别忘了,缺陷在系统中的分布和鱼在鱼塘中的分布可是有异曲同工之妙的哦
。
缺陷有不同的类型(功能缺陷,性能缺陷,安全性缺陷……),分布在不同的模块,由于模块设计和实现人员的水平的差异,模块自身复杂度的差异等,不同模块中
的缺陷分布显然是不同的,一个系统中,由于测试的测试不同,不同类型缺陷的发现效率也是不同的……——再看看,这和我们的鱼塘是不是一回事?
关于鱼塘和缺陷的故事,如果我们要深究下去,还会发现他们的很多共同点,当然,你也可以提出各种方法来修正我们这个简单的模型——但这不是我们的重点。我要说的重点是:无论如何,在这条路上的思考是不是会比简单的背公式更有趣一些呢?
经常有测试工程师问到,应该怎样才有最高的学习效率呢?
我的回答是:学习、思考是乐趣,不是负担。我们学习是为了追求它自身的乐趣——获得知识的乐趣,在自己头脑中天马行空的乐趣,发现的乐趣,以及分享的乐趣。
------------------------------------------------------------------------------------------------------------
KO对战游戏平台
www.ko10000.com 打游戏,交朋友。
分享到:
相关推荐
“统筹程序,合理安排”这一项并不是工程量计算的注意事项,而是项目管理中的一项基本原则。工程量计算的关键在于遵循规范要求、准确计量,并确保计算单位与清单计价规范一致。 17. **分部分项工程量清单编制**: ...
2022年收藏的精品资料软件工程期末考试总复习题及答案”,这表明内容涉及的是软件工程学科的重要知识点,主要包括软件的定义、数据流图、软件模型、模块划分、面向对象概念、软件可靠性、成本估算、软件维护、风险...
在锦屏公路的拱桥侧墙体积计算中,利用三维建模不仅发现了设计单位的工程量计算错误,还展示了三维建模在精度、速度和直观性上的优越性。 2. **土石方工程量复核**:利用Access数据库管理测量数据,与AutoCAD和...
1. 资金时间价值:资金时间价值是经济学中的核心概念,它表示当前资金的价值高于未来的同等金额。这是因为资金可以用来投资,从而在未来产生收益。选项A错误,因为现在的100万元确实比5年后的100万元更有价值,因为...
这些试题涵盖了房地产估价中的多个关键概念,包括土地价值、工程量清单的编制、公司法律、房地产评估方法、环境保护法规、房地产金融风险、税务计算、资产管理和房地产法律程序等。对于备考房地产估价师的考生来说,...
2. **并发访问数估算**:在系统设计中,估算并发访问数是关键,通常考虑高峰时段的日处理业务量、平均每秒请求数以及同时在线用户数等因素。高峰时段平均每秒请求数和同时在线用户数能帮助评估系统的并发处理能力。 ...
通过公式n = zα^2p(1-p)/δ^2来计算所需的样本量,其中p为预期的特异度或灵敏度,δ为允许的误差范围,α为第一类错误的概率,通常取0.05或0.01,zα值可通过标准正态分布表查找。样本大小的合理估算有助于提高研究...
1. 自动实时计算功能:系统能实时根据输入的数据进行工程量、成本的计算,极大地提高了工作效率,减少了人为错误。 2. 高度集成的人机界面:设计友好的用户界面使得操作简便,降低学习曲线,使非专业人员也能快速...
23. **程序流图**:用于定量度量软件的复杂程度,帮助预测错误数量和评估质量。 24. **等价类划分**:属于黑盒测试技术,通过将输入数据划分为若干等价类,减少测试用例的数量。 25. **软件危机的原因**:主要包括...
此外,基本建设程序包括从项目建议书开始,经过可行性研究、设计、施工直至竣工验收的一系列阶段,每个阶段都有其特定的任务和顺序,遵循这些程序能有效避免建设过程中的错误和损失。 工程造价是建设项目的核心部分...
2. **构成和估算**:现金流量分为流入量(如销售收入)、流出量(如运营成本)和净流量(流入减流出)。还需根据项目阶段(建设期、运营期、终结期)分别计算。 3. **估算假定**:可能涉及到的假设包括销售价格、...
**软件项目管理**是指在软件开发过程中,为了确保项目能在预算、时间、质量等方面达到预期目标而采取的一系列计划、组织、监督和控制措施。其核心目标是在既定的时间和成本范围内,高质量地完成软件产品的开发。 ##...
- **定义**:度量是指对软件工程范围内特定属性的定量描述,例如程序规模、操作符数量、程序错误数等。 - **外部属性**:指软件产品、过程、资源与外部环境之间的关系,如成本、效益、劳动生产率等。 - **内部属性**...
此外,工作量估算,包括代码编写和文档编制,也是决定项目能否按期完成的关键因素。 三、开发环境与项目规划 开发环境通常包括开发工具(如IDE、版本控制系统)、操作系统(Windows、Linux等)、服务器环境(Apache...
把测试计划树中的“Cruises”包含的所有测试用例以及“Airline Preference”、“Number of Passengers”添加到测试集中: 9、测试过程监控 计划测试的运行 在“Mercury Tours 1.0.1”中新建一个测试集: ...