-
2020-12-15 19:58:10
软件测试----等价类划分法和边界值分析法
1、测试用例
测什么?怎么测?2、测试方法
2.1等价类划分法
属于黑盒测试,它将不能穷举的测试过程进行分类,从而保证完整性和代表性; 思考步骤:
1、确定有效等价类和无效等价类
2、有效等价类划分(题目条件,还要注意边界值(极值),中间再随意找个值)
3、无效等价类划分(跟有效等价类相反,其它特殊情况(中文、英文、特殊符号、空格、空))
注意:两个框要一个正确,一个错误,这样才能准确的判断;一定要根据需求来判断预期结果;
等价类细节
1、考虑输入长度
2、考虑输入类型
3、组成规则
4、是否为空
5、是否区分大小写
6、是否重复
7、是否去除空格
案例:
等价类划分法.png2.2边界值分析法
我们在测试过程中,一定要小心边界值(极值),因为在程序 中这些边界值最容易出现问题; 具体测试用例书写思路:找到边界值和它两端的值,分别进行测试。
总结:边界值思路应该是选到边界和刚超过的值,来进行测试,也要根据实际情况来选择;边界值和等价类是相辅相成的关系,配合使用的。
案例:
边界值分析法笔记.png更多相关内容 -
测试用例设计方法——等价类划分法、边界值分析法、场景法、判定表、因果图、错误推测法和正交试验法
2020-07-14 11:49:53一、等价类划分 定义:依据需求将输入划分成若干个等价类,从等价类中选定一个测试用例,如果该用例通过,则表明整个等价类通过。 适用范围:适用于有无限多种输入。 目的:使用较少的测试用例尽可能多的将功能...一、等价类划分
二、边界值分析法
三、场景法
四、判定表
五、因果图
六、错误推测法
七、正交试验法
一、等价类划分
定义:依据需求将输入划分成若干个等价类,从等价类中选定一个测试用例,如果该用例通过,则表明整个等价类通过。
适用范围:适用于有无限多种输入。
目的:使用较少的测试用例尽可能多的将功能覆盖。
有效等价类:有意义的输入构成的集合,对需求规格说明书来说是合法的。
无效等价类:不满足需求的输入。
例如:学生成绩录入系统,分数X为0到100的整数。
有效等价类:0≤X≤100(50)
无效等价类:X≤0(-5),X≥100(200)
如果没有整数要求,还要考虑小数,非数字(字母,汉字,特殊字符)和空值。
但只按照等价类划分还不够,还要考虑边界值。
二、边界值分析法
边界值分析法是对等价类划分法的补充,一般从等价类的边界寻找错误。
边界值分析法的基本思路:
正好等于边界值,刚好小于边界值,刚好大于边界值作为测试数据。
特殊:0/空是特殊的值,在考虑边界值的时候也要考虑这个特殊值。
边界值思想的体现:网上购物,库存12。
数量=11:下单成功;数量=12:下单成功;数量=13:下单失败,并给出提示。
例如:学生成绩录入系统,分数X为0到100的整数。
上边界:99,100,101
下边界:-1,0,1
所以等价类+边界值的取值范围为:-5,-1,0,1,50,99,100,101,200
因此可分成两个用例:有效输入:0,1,50,99,100;无效输入:-5,-1,101,200。
再例如:微信红包,最小0.01,最大200。
等价类+边界值的取值范围:-100.00,0,0.01,0.02,50.00,199.99,200,200.01,300.00。
三、场景法
基于用户场景梳理业务逻辑,再挑选合适的方法设计测试用例,尽可能真实全部的模拟用户操作。
场景法主要基于:
1、业务需求层面:对所测软件的重要功能、业务逻辑(系统要干什么、怎么去实现这个过程的)和行业背景进行深入理解。
2、技术层面需求:基于等价类划分
有效等价类:模拟用户正确操作;无效等价类:模拟用户错误的操作;
3、核心概念
基本流(正确流,有效流):模拟用户正确的操作流程。
备选流(错误流,无效流):模拟用户错误的操作流程。
举个例子,比如银行ATM取款
基本流:正确插入银行卡,点击取款,输入正确的密码,输入正确的金额,确认,退卡。
备选流1:输入错误的密码
备选流2:输入超过余额的金额
备选流3:卡插反了
备选流4:退卡
再根据每个场景来设计测试用例。
四、判定表
1、定义
分析和表述若干输入条件下,被测对象针对这些输入做出相应反应的一种工具。
2、适用范围
遇到复杂业务逻辑时可用该表理清逻辑关系。
3、重要概念
条件(输入):条件桩:需求规格说明书定义的被测对象的所有输入;条件项:针对条件桩可能输入的被测对象的真假值。
动作(输出):动作桩:针对条件,被测对象可能采取的所有操作;动作项:针对动作桩,被测对象相应的可能取值。
规格:条件项和动作项组合在一起,形成业务逻辑处理规则。
4、判定表应用步骤
(1)理解需求,确定条件桩和动作桩;
(2)设计生成判定表;
(3)填写动作项;
(4)根据判定表中输出结果的表现,进行判定表合并,简化判定表。(规则:如果输出相同,在对应输入中,有且只有一个条件的取值对动作桩不产生任何影响的可合并)
比如:订购单的检查(订购单:客户在公司订货后,开具的证明,有日期限制)
如果金额超过500元,又未过期,则发出批准单和提货单;
如果金额超过500元,但又过期了,则不发批准单;
如果金额低于500元,则不论是否过期都发出批准单和提货单;
在过期的情况下还需要发出通知单。
判定表分析:
(1)确定条件桩和动作桩
条件桩 条件项 订购金额是否大于500元 1:金额大于500元
0:金额小于等于500元订购单是否过期 1:过期
0:未过期动作桩 动作项 发出批准单 X:表示发出批准单 发出提货单 X:表示发出提货单 发出通知单 X:表示发出通知单 (2)设计生成判定表
条件桩 条件项 订购金额是否大于500元 1 1 0 0 订购单是否过期 1 0 1 0 动作桩 动作项 发出批准单 X X X 发出提货单 X X X 发出通知单 X (3)简化判定表
条件桩 条件项 订购金额是否大于500元 —— 1 0 订购单是否过期 1 0 0 动作桩 动作项 发出批准单 X X 发出提货单 X X 发出通知单 X 判定表的一列就是一个用例。
再比如,小张的老婆给小张一个任务,让他去一个软件上挑选合适的房子,给了如下四个条件:
1.学区房 2.地铁口 3.三室两厅两卫4.主卧朝南
必须满足三室两厅两卫,其余三个条件里只要满足两个就可以买,否则不买。可以试试练习一下。
五、因果图(Cause-Effect Graph)
是一种描述输入条件的组合以及每种组合对应的输出的图形化工具。
1、因果图的基本图形符号
(a)恒等。若原因出现,则结果出现;若原因不出现,则结果不出现。
(b)非。若原因出现,则结果不出现;若原因不出现,则结果出现。
(c)或。若几个原因中有一个出现,则结果出现;若几个原因均不出现,则结果不出现。
(d)与。若几个原因都出现,则结果才出现;若几个原因中有一个不出现,则结果不出现。
2、因果图中的约束条件
从原因方面考虑主要有四种约束条件:
(a)E(互斥、排他):a,b两个原因不会同时出现,最多只有一个出现。
(b)I(包含、或):a,b,c三个原因至少有一个出现。
(c)O(唯一):a,b两个原因必须有一个出现,且仅有一个出现。
(d)R(需求):a出现时b一定出现。
从结果方面考虑主要有一种约束条件:
(e)M(屏蔽):a出现时,b必定不出现;a不出现时,b则不确定。
3、利用因果图设计测试用例的步骤:
(1)分析需求规格说明书中哪些是原因,哪些是结果。(原因是指输入条件或输入条件的等价类,结果是指输出条件,给每一个原因和结果赋一个标识符)
(2)确定原因与原因,原因与结果之间的关系,画出因果图。
(3)由于某些要求,一些原因与原因之间,原因与结果之间的组合不能出现。对于这些特殊情况,在因果图中用记号表明约束或限制条件。
(4)将因果图转化为判定表。
(5)根据判定表的每一列设计测试用例。
因果图法设计测试用例举例:
有一个单价为五角硬币的饮料自动售货机软件,对其采用因果图法设计测试用例,需求如下(不考虑其他特殊情况):
(1)若售货机没有零钱找,则一个现实“零钱找完”的红灯亮,以提醒顾客在此情况下不要投入一元硬币,否则此红灯不亮;
(2)顾客投入五角硬币,然后按下“橙汁”或“啤酒”按钮,则相应的饮料被送出;
(3)顾客投入一元硬币并按下“橙汁”或“啤酒”按钮后,若售货机没有零钱找,则显示“零钱找完”的红灯亮,一元硬币被退出,且无饮料送出;若有零钱找,则五角硬币退出且饮料被送出。
①列出原因和结果
列出原因 中间 列出结果 编号 原因 编号 中间节点 编号 结果 1 售货机有零钱找 11 投入一元硬币,并按饮料按钮 21 “零钱找完”红灯亮 2 投入一元硬币 12 按“啤酒”或“橙汁”按钮 22 退出一元硬币 3 投入五角硬币 13 退还五角零钱且售货机有零钱找 23 退出五角硬币 4 按“橙汁”按钮 14 钱已付清 24 送出“橙汁” 5 按“啤酒”按钮 25 送出“啤酒” ②画出因果图
③列出判定表
由因果图得到的判定表(0表示其代表的状态不出现,1表示其代表的状态出现) 序号 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 原因 1 售货机有零钱找 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 2 投入一元硬币 1 1 1 1 1 1 1 1 0 0 0 0 0 0 0 0 1 1 1 1 1 1 1 1 0 0 0 0 0 0 0 0 3 投入五角硬币 1 1 1 1 0 0 0 0 1 1 1 1 0 0 0 0 1 1 1 1 0 0 0 0 1 1 1 1 0 0 0 0 4 按“橙汁”按钮 1 1 0 0 1 1 0 0 1 1 0 0 1 1 0 0 1 1 0 0 1 1 0 0 1 1 0 0 1 1 0 0 5 按“啤酒”按钮 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 中间节点 11 投入一元硬币,并按饮料按钮 1 1 0 0 0 0 0 0 0 0 0 0 12 按“啤酒”或“橙汁”按钮 1 1 1 1 1 1 1 1 1 1 1 1 13 退还五角零钱且售货机有零钱找 1 1 0 0 0 0 0 0 0 0 0 0 14 钱已付清 1 1 1 1 0 0 0 0 1 1 0 0 结果 21 “零钱找完”红灯亮 0 0 0 0 0 0 1 1 0 0 0 0 22 退出一元硬币 0 0 0 0 0 0 1 1 1 1 1 1 23 退出五角硬币 1 1 0 0 0 0 0 0 0 0 0 0 24 送出“橙汁” 1 0 1 0 0 0 0 0 1 0 0 0 25 送出“啤酒” 0 1 0 1 0 0 0 0 0 1 0 0 ④优化判定表
六、错误推测法
基于经验和直觉推测程序中所有可能存在的各种错误,从而有针对性的设计测试用例的方法。
28原则:80%的问题出在20%的模块
基本思想:列举程序中所有可能有的错误和容易发生错误的特殊情况,根据他们选择测试用例。
基本要素:1、对开发的开发习惯很熟悉;2、对同类型项目业务非常熟悉。
七、正交试验法
正交试验法是研究多因素、多水平的一种试验法,它是利用正交表来对试验进行设计,通过少数的试验替代全面试验根据正交表的正交性从全面试验中挑选适量的、有代表性的点进行试验,这些有代表性的点具备“均匀分散,整齐可比”的特点。
例如,某系统会员的功能表:
功能 普通会员 中级会员 高级会员 功能1 * * * 功能2 * * * 功能3 * * * 功能4 * * * 功能5 * * * 功能6 * * * 功能7 * * * 功能8 * * * 功能9 * * * 功能10 * * 功能11 * * 功能12 * * 功能13 * 功能14 * 对于功能1—功能9,可以用正交试验法进行测试用例的设计:
功能 普通会员 中级会员 高级会员 功能1 * 功能2 * 功能3 * 功能4 * 功能5 * 功能6 * 功能7 * 功能8 * 功能9 * 功能 普通会员 中级会员 高级会员 功能1 * 功能2 * 功能3 * 功能4 * 功能5 * 功能6 * 功能7 * 功能8 * 功能9 * 以上两种方式都满足了“均匀分散,整齐可比”的特点。
总结:关于测试用例的设计,一般先按照场景法进行梳理,再加上等价类+边界值,基本可以完成大部分的用例设计;如果输入和输出很多的情况,可以用判定表理清逻辑关系;如果判定表不行,就先用因果图分析,再用判定表整理;如果遇到有功能大部分相似,但要进行区分的情况,可以利用正交试验法“均匀分布,整齐可比”的特点进行设计;最后再用凭借直觉和经验用错误推测法查漏补缺。
-
黑盒测试用例设计方法-等价类划分法 边界值法 因果图法 错误推断法 判定表法
2018-05-26 20:11:14初始化和终止错误 测试步骤 为什么要设计测试用例 良好的测试用例可以缩短实施测试时间 确保测试的系统性、全面性 提高测试的可复用性 黑盒测试用例设计方法 等价类划分法 把...黑盒测试
不考虑程序内部的结构与特性,只根据程序功能或程序的外部特性设计测试用例。
最常见的是:边界值 等价类 错误推测法 场景法 因果图法 判定表组成法 正交实验设计黑盒测试主要发现的错误
- 功能不正确或遗漏
- 界面错误
- 数据库访问错误
- 性能错误
- 初始化和终止错误
测试步骤
为什么要设计测试用例
- 良好的测试用例可以缩短实施测试时间
- 确保测试的系统性、全面性
- 提高测试的可复用性
黑盒测试用例设计方法
等价类划分法
把程序的所有可能的输入数据划分为若干个子集,每一子集代表性数据在测试中的作用等价于这一子集的其他值,每一个子集就是一个等价类。
等价类需要考虑有效等价类和无效等价类等价类划分法设计步骤
- 划分等价类
- 确定测试用例
: 举例一:成绩等级
输入不同的成绩会得出不同的成绩等级,通过需求可知,程序的所有可能输入数据可划分为4个子集,每一个子集就是一个等价类。我们通过选择每个等价类中的一个数据来代表该等价类的所有数据,若代表数据可输出预期结果,则该等价类测试通过,反之则该等价类测试不通过。
有效等价类:0—100
无效等价类:小于0、大于100、空数据、字符串以下是举例一等价类划分结果:
-
举例二:Windows文件命名规则
-
-
有效等价类:文件名不包含\ / : * ? " <> | 字符的的、文件名长度在1-255个字符之间的
无效等价类:文件名包含\ / : * ? " <> | 字符的的、文件名长度小于1(即为空字符)的、文件名字符长度大于255个的 -
以下是举例二等价类划分结果:
-
举例三:判断三角形类别
以下是举例三等价类划分结果:
边界值法
长期测试经验表明:大量错误发生在输入或输出范围的边界上,而不是发生在输入输出范围内部。因此,对各种边界设计测试用例,能取得良好的效果。
-
举例一:成绩等级判定
-
在使用等价类划分法对等价类进行测试后,还要将边界值也设计到测试用例中,尽可能使测试全面。下面我们队上述的例子一的测试用例通过加入边界值法进行完善。
以下是完善后的测试用例: -
判定表驱动法
- 判定表是分析和表达较为复杂逻辑条件下软件状态和行为的有效工具。
- 用它可以设计出完整的测试用例集合,将复杂问题的各种可能情况列出,使测试内容变得简单明了二避免遗漏。
判定表设计步骤:
- 确定规则数,条件数为n,规则个数= 2 n 2^n 2n
- 列出所有条件桩和动作桩
- 填入条件项
- 填入动作项
- 简化判定表,合并相似规则
举例一
举例二
-
非二元属性的关联规则挖掘和关联规则的评价
2016-05-10 19:39:11因此,尽管规则{打篮球}——>{吃麦片}有着较高的置信度,缺是一个误导,因为打篮球反而会抑制早餐吃麦片,麦片销售商根据关联规则{打篮球}——>{吃麦片}去赞助篮球比赛可能是一个错误的商业行为 相关性分析...=====================================================================
《机器学习实战》系列博客是博主阅读《机器学习实战》这本书的笔记也包含一些其他python实现的机器学习算法github 源码同步:https://github.com/Thinkgamer/Machine-Learning-With-Python
算法实现均采用python 如需转载请注明出处,谢谢
=====================================================================
在上一篇博客中《使用Apriori算法和FP-growth算法进行关联分析(Python版)》详细介绍说明了关联规则中的Apriori算法和FP-growth算法的原理和代码实现,这一篇博客中我们来说一下非二元属性的关联规则挖掘和关联规则的评价
一:非二元属性的关联规则挖掘
在上一篇博客中讨论的关联规则算法是针对购物篮数据,其特点是数据的属性都是二元属性,现实数据集中往往有些属性值是标称或者连续的,无法直接利用上述算法挖掘相关规则,例如:笔记本销售数据集
对于数据集中年龄和文化程度的非二元属性可以利用数据预处理的方法,将他们转化成二元属性,再应用针对购物篮数据的相关规则挖掘算法TID 年龄 文化程度是否购买笔记本 100 49 研究生否 200 29 研究生
是300 35 研究生
是400 26 本科否 500 31 研究生
是有n个离散取值的标称属性可以转化为n个二元属性,例如针对上图,标称属性文化程度有高中,大学,研究生三个取值,可以转换为文化程度=高中,文化程度=大学,文化程度=研究生三个二元属性,连续属性先进行离散化处理,例如将年龄端分为0-20,20-40,40以上,转换后数据如下图示:
TID 年龄0-20 年龄20-40
年龄40以上
文化程度-高中文化程度-大学
文化程度-研究生
是否购买 100 否 否
是
否否
是
否 200 否 是
否
否
否
是
是300 否 是
否
否
否
是
是400 否 是
否
否是
否
否 500 否 是
否否
否
是
是如果设定支持度阀值为70%,置信度阀值为80%,利用之前关联规则挖掘算法,可以得到的关联规则{年龄在21-40}——>{购买笔记本},{文化程度为研究生}——>{购买笔记本}注意事项:(1):标称属性值过多。比如文化程度细化分为,小学,初中,高中,大学,研究生,博士,这样计算下来由于没有满足支持度阀值的频繁项集,因此无法发现任何关联规则,所以对于有较多可能取值的标称属性,最好利用概念分层将多个标称值聚合为一个二元属性(2):连续属性离散区间划分太窄或者太宽。区间划分太窄会不满足支持度,而无法发现关联规则。
二:关联规则的评价
在海量数据的商业数据集中进行关联规则的挖掘,往往会产生成百上千的关联规则,而其中大部分的关联规则是没有用的。如何筛选这些模式,以识别最有趣的模式是比较复杂的任务,因为一个人的垃圾可能是另一个人的财富,因此建立一套广泛接受的评价关联规则的标准是非常重要的。第一组理论可以通过统计论据建立,即客观兴趣度度量:涉及相互独立的项或覆盖少量事务的模式被认为是不令人感兴趣的,因为他们可能反应数据中的伪关系。这些模式可以使用客观兴趣度度量来排除,客观兴趣度度量使用从数据推导出的统计量来确定模式是否是有趣的。客观兴趣度度量包括支持度,置信度,和相关性第二组标准是可以通过主观论据建立,即主观兴趣度度量:一个模式被主观的认为是无趣的,除非他能解释料想不到的信息或者提供导致有意行动的信息。例如:规则{黄油}——>{面包}可能不是有趣的,尽管有很高的支持度和置信度,但是他表面的关系显而易见。另一方面,规则{Diaper}——>{Beer}是有趣的,因为这种联系十分出乎意料,并且可能为零售商提供新的交叉销售的机会。将主观知识加入到模式评价中是一项困难的任务,因为需求来自领域专家的大量先验信息
下面我们来看兴趣度的客观度量,包括支持度,置信度,相关性的意义和局限性
支持度和置信度
项集支持度:一个项集出现的次数与数据集所有事物数的百分比称为项集的支持度
eg:support(A->B)=support_count(A并B) / N
项集置信度(confidence):数据集中同时包含A,B的百分比
eg:confidence(A->B) = support_count(A并B) / support_count(A)
例1:早餐麦片的销售商调查在校的5000名学生早晨进行的活动,调查数据以相依表的形式实现如下表,设定支持度为40%,置信度60%,针对表中的数据进行关联分析
关联规则{打篮球}——>{吃麦片}的支持度为 2000/5000 = 040%,,置信度为2000/3000=67%,这条规则是强关联规则,表明通常打篮球的同学通常也吃麦片,但是所有学生中吃麦片比例为75%,要大于67%,这说明一个学生如果打篮球,那么他吃麦片的可能性就从75%降到了67&。而且{不打篮球}——>{吃麦片}的可能性为1750/2000=87.5%。因此,尽管规则{打篮球}——>{吃麦片}有着较高的置信度,缺是一个误导,因为打篮球反而会抑制早餐吃麦片,麦片销售商根据关联规则{打篮球}——>{吃麦片}去赞助篮球比赛可能是一个错误的商业行为
打篮球 不打篮球
吃麦片 2000 1750 3750 不吃麦片 1000 2501250
3000 20005000
相关性分析
从上面可以看出支持度和置信度有一定的局限性,无法过滤掉一些无用的关联规则,因此可以在支持度和置信度的基础上增加相关性的度量,相关性度量可以采用提升度、相关系数、余弦度量等方法
提升度(lift)是一种简单的相关度量。对于项集A,B,若P(A 并 B) = P(A)*P(B),则A,B是相互独立的,否则存在某种依赖关系,关联规则的前件项集A和后件项集B之间的依赖关系可以通过提升度计算:
lift(A,B) = P(A 并 B)/ P(A)*P(B)=confidence(A—>B)/support(B)提升度可以评估项集A的出现是否能够促进项集B的出现。值大于1,表明二者存在正相关,小于1,表示负相关,等于1,表示无关对于二元变量,提升度等价于兴趣因子(interest factor)的客观度量,定义如下,其中N为记录总数:lift(A,B) = I(A,B)=support( A 并 B )/support(A)support(B)=Nf11/f1_f_1
例:以上表的数据为例计算关联规则{打篮球}—>{吃麦片}的提升度
P({打篮球} 并{吃麦片})= 2000/5000 = 0.4P({打篮球})=3000/5000 = 0.6P({吃麦片})=3700/5000 = 0.75lift({打篮球}—>{吃麦片}) = P({打篮球} 并{吃麦片})/( P({打篮球})*P({吃麦片}) )= 0.4 / ( 0.6 * 0.75) = 0.89由于{打篮球}—>{吃麦片}的提升度小于1,所以前后存在负相关关系,即推广打篮球不但不会提升吃麦片的人数,反而会更小
项集间的关系也可以用相关系数度量 ,对于二元变量,相关系数 f定义为:f = f11f00 - f01f10 / sqrt(f1_ * f_1 * f0_ * f_0)相关系数为0表示不相关,大于0表示正相关,小于0表示负相关例:计算打篮球和吃麦片的相关系数
f = (2000* 250 - 1000*1750)/ (sqrt(3750*3000*1250*2000)) =- 0.23
相关系数小于0,说明打篮球和吃麦片负相关
相关性的度量还可以用余弦度量 即:
cosine(A,B) = P(A 并 B)/ sqrt(P(A)*P(B))=support( A 并 B )/sqrt(support(A)support(B))注:sqrt表示开根号
余弦度量可以看作调合的提升度度量,余弦值仅受A,B和A并B的支持的影响,而不受事务总个数的影响
辛普森悖论
在对数据集按照某个变量进行分组后,之前对整个数据集分析得到的关联规则分析可能并不适用于分组,这种现象就是所谓的辛普森悖论下面我们拿一组数据来具体说明例:P大和T大的物理学院和外语学院的人数和学校总人数的数据如下(这里假设P大和T大只有物理和外语两个学院)
物理学院的数据:
男生人数 女生人数 男:女 P大 45 8 5.6:1 T大 101 512.0:1
外院的数据:
男生人数 女生人数 男:女 P大 50 201 0.25:1 T大 9 920.10:1
学校整体数据(上述两个专业之和):
男生人数 女生人数 男:女 P大 95 209 0.45:1 T大 110 1430.77:1数据可不会是骗人的,不信可以自己动手验算一下,真的出现了这种违背常理的情况!这种现象被称为“辛普森悖论”。虽然这么叫,但其实这不是个真正的悖论,它内部没有包含逻辑上的矛盾,只是有些违背人们的常理罢了
可能有些人还是一头雾水,虽然数据是如此没错,可还是不能理解到底发生了什么使得结论如此古怪。让你构造一个类似的数据,恐怕你也很难直接想得出来吧!人们对几何图形的想象能力总是高于对数字和字母的想象,因此为了更直观地表现出辛普森悖论,我们看下面一幅向量图:
图中,黑色的线代表 P 大数据,红色的线代表 T 大的数据。A p 点的横坐标为 P 大外院女生人数,纵坐标为 P 大外院男生人数;B p 点的横纵坐标则分别为 P 大总女生人数和总男生人数。A t 和 B t 点的意义与之相对应。
设坐标原点为 O,则 OA p 的斜率表示的就是 P 大外院的男女比例,A p B p 表示的是 P 大物院的男女比例,OB p 表示的则是 P 大总男女比例;T 大的各线段斜率意义与之对应。
如此一来,一切都变得清晰起来了。辛普森悖论反映在这张图上,就成了一个显然的事实:在 P 大的外院、物院两个向量的斜率分别大于 T 大的两个向量的斜率的条件下,总人数向量的斜率当然不一定哪个大呀!根据这个直观的理解,你也可以随意编造能产生辛普森悖论的数据了吧!
知道了辛普森悖论这一事实之后,我们以后对待统计数据就要更加小心了。在数学中,经常会出现这种出乎人们意料的惊人事实,所以还是一定要学好数学啊!
-
形式逻辑(07)性质判断 和 推理
2020-06-17 10:49:16本系列文章主要讲解 形式逻辑,系列文章总纲链接为:形式逻辑总纲 1 性质判断 性质判断的定义:断定对象具有或不具有某种属性的判断,也称为直言判断或直言命题。 例如:所有 产品 是 合格的、有些 学生 不是 党员... -
可落地的DDD(4)-如何利用DDD进行微服务的划分(2)
2019-06-02 12:38:55摘要 在前面一篇介绍了如何通过DDD的思想,来调整单体服务内的工程结构,为微服务的拆分做准备...同时为了保证领域的纯洁性,我们区分了领域服务,和前台服务。领域服务就是领域逻辑,不直接对前端暴露。前台服务组... -
【评测-测试用例设计方法】-4-等价类划分法和边界值分析法
2019-08-08 08:07:06概述:黑盒测试是一种功能测试,也称为“数据驱动测试”, 把程序看成一个完全封闭的黑盒子,在不考虑程序内部结构和-逻辑处理过程情况下,根据规格说明书规定的功能来设计测试用例,检查程序是否符合规格说明的要求... -
逻辑回归三部曲——逻辑回归项目实战(信贷数据+Python代码实现)
2020-05-05 23:11:41用Python实现逻辑回归建模 -
常见错误码及定义
2018-09-19 12:06:38举例,商城系统里有交易模块和商品模块,则可以这样划分:401开头的表示交易模块,402开头的表示商品模块,4011开头的表示交易模块里的下单场景需要用到的错误码,4021表示商品模块下的添加商品场景里需要... -
基于思科模拟器进行子网划分
2021-12-04 15:57:04学习目标: 创建和划分vlan 学习内容: 两个交换机使用串口连接 -
第2章 逻辑架构设计
2021-08-28 15:00:52通过阅读目录,了解各章节、功能模块的划分,通过功能模块中的功能命名,猜测功能背后的内容;从而对整个系统 有一个整体的、直观的认识 2)从需求文档的概述部分分析 通过概述了解客户的建设目标,根据建设目标... -
如何测试复杂的逻辑
2021-02-06 16:27:00当我们观察这些需求是如何通过业务分析师或客户来表达和传达给整个项目团队的时候,我们就会知道大多数这样的业务规则和逻辑是以一个逻辑程序流程图来表达的。 复杂需求的逻辑程序流程图由许多分支、节点和决策框... -
【MySQL】逻辑库与数据表相关操作
2022-01-13 00:14:12前言 上篇博客让我们了解了什么是数据库和我们为什么要学习MySQL数据库,如果没有看的兄弟可以先去看看那一篇然后再...创建数据库是在系统磁盘上划分一块区域用于数据的存储和管理,如果管理员在设置权限时为用户创建 -
黑盒测试方法(等价类划分法、边界值法、决策表、判定表、正交表、场景法、错误推断法)
2019-09-18 13:55:431、黑盒测试方法 1.1、等价类划分法: 根据软件测试原则可以知道,要做到穷举是不可能的,事实上也是不必要的。为了减少工作量,需要对测试用例进行适当选取。...也就是说,如果某一类的一个用例发现了错误,这... -
逻辑综合重点解析(Design Compiler篇)
2019-02-02 17:54:54逻辑综合重点解析(Design Compiler篇) 前言 3 1、逻辑综合(Logic ...3、使用Design Compiler进行逻辑综合出现下述log,请问gtech.db和standard.sldb包含哪些信息? 4 4、Design Compiler综合过程中,targ... -
等价类划分法测试用例设计举例
2018-02-27 00:12:25等价类划分(Equivalance Partitioning)测试的思想:将程序的输入域划分为若干个区域(等价类),并在每个等价类中选择一个具有代表性的元素生成测试用例。该方法是常用的黑盒(Blackbox Testing)测试用例... -
《逻辑:你认为正确,就一定正确吗?》
2018-08-08 10:04:39概念是具有本质特征的一类事物,包含两个特点:内涵和外延。 没有明确的内涵,概念便丧失了彼此交流理解的基础,最终导致不逻辑。 概念的内涵是概念具有的本质特征;概念的外延是概念所指的对象。 除了本质... -
风控模型师面试准备--技术篇(逻辑回归、决策树、集成学习)
2019-04-12 09:25:35风控模型师面试准备--技术篇编辑于2019-02-12,持续更新中,有风控建模工作经验的,或者想转行风控建模的小伙伴可以互相交流下...一.算法逻辑回归决策树集成学习(随机森林,Adaboost...逻辑回归Q : 逻辑回归的优缺... -
VLAN划分及配置注意事项
2021-03-13 11:05:54VLAN(Virtual Local Area Network)即虚拟局域网,是将一个物理的LAN在逻辑上划分成多个广播域的通信技术。VLAN内的主机间可以直接通信,而VLAN间不能直接通信,从而将广播报文限制在一个VLAN内。VLAN之间的通信是... -
超硬核十万字!全网最全 数据结构 代码,随便秒杀老师/面试官,我说的
2021-04-11 01:11:23//拆分(按正负),也可以根据需求改 //虽然思想略简单,但是要写的没有错误,还是需要锻炼coding能力的 Status InitList(SqList *L) { L->length = 0;//长度为0 return OK; } Status ListInsert(SqList *L, int i,... -
普通逻辑学笔记(哲学专业课程)
2010-01-12 15:53:53在本书中,除个别地方特殊说明外,逻辑是指:研究思维的逻辑形式及其规律和简单逻辑方法的普通逻辑学。 形式逻辑是研究思维形式及其规律的。 思维的基本形式:概念、判断、推理 思维的基本特征:间接性、抽象概括性... -
缺陷类型划分
2021-03-21 23:44:50通常缺陷划分 -
drools -规则语法
2016-12-25 21:29:51基础api在 Drools 当中,规则的编译与运行要通过Drools 提供的各种API 来实现,这些API 总体来讲可以分为三类:规则编译、规则收集和规则的执行。完成这些工作的API 主要有KnowledgeBuilder、KnowledgeBase、... -
逻辑思维与写作-第一章,第二章-随笔笔记
2020-07-02 20:21:012,陈述相关材料或者事实,然后让读者根据这些材料和事实得出作者希望给出的命题。 对命题的研究有两个前提,分别是前提真实,形式有效。 前提真实-由科学知识背景决定 形式有效-语义分析 用逻辑学对语法的正确性... -
简述自然语言理解的层次划分及对应的技术
2019-11-21 14:41:58简述自然语言理解的层次划分及对应的技术 语音分析:根据音位规则,从语音流中区分独立的音素,根据音位形态规则找出音节机器对应的词素或词。对应技术:模式匹配 词法分析:找出词汇的各个词素(词根),从中获得... -
超硬核!操作系统学霸笔记,考试复习面试全靠它
2021-03-22 18:43:492)为新进程分配器运行所需的资源:包括物理资源和逻辑资源 3)初始化进程控制块PCB: (1)初始化标识符信息:系统分配的标识符信息装入PCB (2)初始化处理机状态信息:主要为一些寄存器 (3)初始化处理机控制... -
【分类器选择】随机森林 VS 逻辑回归(Softmax)
2019-08-17 20:24:09逻辑回归与Softmax 简单理解:一个是二分类,一个是多分类。主要区别是:softmax的函数变了,变化后的函数可以分成多个类别,而逻辑回归的函数只可以分为两个类别。 Logistic 回归与 Softmax 回归是两个基础的分类... -
❤️爆肝3万字,最硬核丨Mysql 知识体系、命令全集 【建议收藏 】❤️
2021-09-01 11:06:12使用错误的数据类型可能会严重地影响应用程序的功能和性能。 更改包含数据的列不是一件小事(而且这样做可能会导致数据丢失)。 数据类型: 整型、浮点型、字符串、日期等 1、字符串数据类型 最常用的数据类型是串数据... -
超硬核!数据结构学霸笔记,考试面试吹牛就靠它
2021-03-26 11:11:21(仅仅取决于逻辑特性,与其在计算机内部如何表示和实现无关) 定义抽象数据类型的一种格式: ADT name{ 数据对象:<> 数据关系:<> 基本操作:<> }ADT name 算法:是对特定问题求解步骤的一种描述。 算法五个特性:... -
软件测试--bug的等级划分
2019-05-21 15:30:332.与数据库连接错误或数据通讯错误,未考虑异常操作,功能错误等。 补充----- 1.常规操作下因程序问题导致系统崩溃,迫使整个系统无法使用(其中非程序问题有:系统配置、数据结构变动、session超时、网络中断...