您的位置:逆风者 VC++ 正文
 添加时间:2007-09-01 原文发表:2007-08-31 人气:25 来源:vckbase.com

本文章共6938字,分5页,当前第1页,快速翻页:
 

Test run 专栏

软件测试悖论


原著:James McCaffrey
翻译:biny_yang

逆@风@者
原代码下载 TestRun0512.exe (120KB)
原文出处:Test Run:Software Testing Paradoxes

  悖论很奇妙。在本月的专栏里,我将向你们展示你们进行软件测试时可能遇到的三个有趣的案例。他们本质上是数学问题,而且他们对你们的问题库是一个很好的补充。
  在这个专栏的第一部分,我解释 Simpson 悖论。该悖论阐述的是这样一种情况:软件系统 A 与软件系统 B 相比,各方面都要差,然而软件系统 A 可能是一个更好的系统。 在第二部分,我揭示了 Braess 悖论。根据这个悖论,当增加一个完全负载平衡的服务器时,网络性能会以一种奇怪的方式降低。最后,我考虑了 Parrondo 悖论。这个悖论认为两个相互独立并且是错误百出的系统能够不可思议地产生一个正确的系统。
  Simpson 悖论经常发生。虽然你实际碰到 Braess 悖论和 Parrondo 悖论的机会很少,我还是认为你们会有兴趣读它们。


Simpson 悖论

  假设你有两个不同的软件系统原型:原型 A 和原型 B 。你想知道从用户的反馈来看,哪个原型更好。假设对于易用性,原型 A 从 200 个用户当中获得了 50 个用户的优秀评价,而原型 B 从 100 个用户中获得了 15 个用户的优秀评价(见图 1 )。从这个数据来看,原型 A 的易用性显然要比原型 B 要好,因为原型 A 获得了 25% 的优秀评价,而原型 B 只得到了 15% 。
 

易用性数据

原型 A

原型 B

优秀评价用户数目

50

15

总用户数目

200

100

得分

25%

15%

安全性数据

原型 A

原型 B

优秀评价用户数目

85

300

总用户数目

100

400

得分

85%

75%

图1 比较原型A和原型B

  现在,假设对于安全性,原型 A 从 100 个用户当中获得了 85 个用户的优秀评价,而原型 B 从 400 个用户中获得了 300 个用户的优秀评价。对于这个数据,你能看到原型 A ( 85% 的优秀率)再次比原型B( 75% 的优秀率)要好。因此,你认为哪个原型要好?在你回答之前,让我们把图 1 中的数据整合到一个单独的表格当中(图 2 )。
 

整合之后的数据

原型 A

原型 B

优秀评价用户数目

135

315

总用户数目

300

500

得分

45%

63%

图2 安全性、易用性整合数据

  如果你将优秀评价的数目结合起来,你就能看到原型 A 从 300 个用户中获得了 135 个优秀评价,比例仅为 45% 。相反,原型 B 有 63% 的优秀评价率,从 500 个用户当中获得了 315 个用户的优秀评价。因此,原型 B 要好,对不对?或者原型 A 要好?如果是原型 A 要好,你怎样解释这些整合之后的数据?
  这是 Simpson 悖论的一个例子,这是一种真实现象。这里没有任何的诡计。正确答案是原型 A 是更好的系统,你不能把这些数据整合成一个象图 2 一样的单独表。 Simpson 悖论的一个简单、非正式的描述是:两个及以上的数据集单独评估时会产生一个结果,而联合起来评估时会产生一个相反的结果。如果你再回看图 1 中的数据,你会注意到不同原型不同列中的评估总值是不一样的。这是 Simpson 悖论的必要条件。
 

本文章更多内容1 - 2 - 3 - 4 - 5 - 下一页>>
相关文章

如何在 C# 中加载自己编写的动态链接库
DLL头文件的格式和应用
用 Web 服务进行二进制序列化和 BinaryForm
QQ2006 界面编程之鸡蛋里挑骨头
在你的程序中如何使用CButtonST类
Buffer Overruns,portability和其它...
自动隐藏停泊窗体实现
模拟 Windows 下 CPU 占用率的控件及其实现
VC中基于 Windows 的精确定时
DLL初学者指南(非MFC)
VC 操作 SQL Server 主从表
C语言高效编程的几招
软件框架的利器、TangramMini组件应用教程二
GDI和GDI 对象的相互转换
PE文件格式详解(下)
计算MDI子窗口数,仅显示文件夹的打开对话框
基于MFC对话框的NT服务程序框架
关于控件注册和使用许可问题的解决办法
汉诺塔游戏的设计
Spy++原理初探

相关评论


本文章所属分类:首页 VC++

  热门关键字: