文档库 最新最全的文档下载
当前位置:文档库 › 等价关系与集合的分类

等价关系与集合的分类

等价关系与集合的分类
等价关系与集合的分类

§10 等价关系与集合的分类

一、关系

定义10.1 设A 是集合,{}

对,错=D 。一个A A ?到D 的映射R 叫做A 的元间一个关系如果对=),(b a R ,则说a 与b 符合关系R ,记作aRb ;如果错=),(b a R ,则说a 与b 不符合关系R 。

例1 设A =R (实数集)。 0),(:1>-a b b a R 对,若 ; 0),(≤-a b b a 错,若 ;

b a b a R =对,若 ),(:2; b a b a ≠错,若 ),(;

b a b a R 2),(:3=对,若 ; b a b a 2),(≠错,若 ;

1),(:224=+b a b a R 对,若 ; 1),(22≠+b a b a 错,若 ;

都是实数R 的元间的关系。其中21,R R 分别是通常的<的关系和=的关系。

作为一种特殊的关系,有

定义10.2 集合A 的元间一个关系~叫做一个等价关系,如果~满足以下规律:

(1) ,~A a a a ∈?, (自反性);(2) A b a a b b a ∈?,~~, (对称性);

(3) c a c b b

a ~~~?, A c

b a ∈,, (传递性)。 若b a ~,则称a 与b 等价。

例1中2R 是等价关系。

二.分类

定义10.3 设一个集合A 分成若干个非空子集,使得A 中每一个元素属于且只属于一个子集,则这些子集的全体称为A 的一个分类。每一个子集称为一个类。类里任何一个元素称为这个类的一个代表。刚好由每一类一个代表作成的集合叫做一个全体代表团。 注:由定义可知,A 的非空子集S }|{I i A i ∈=是A 的一个分类当且仅当其满足下列性质:

(1) A A

I i i =∈

(2)当j i ≠时,Φ=j i A A ,即不同的类互不相交。

例2 设}6,5,4,3,2,1{=A ,则

}}6,5,4}.{3{},2,1{{1=S 是A 的一个分类,但是}}6,5{},4,3,2{},2,1{{2=S 不是A 的一个分类,因为}2{}4,3,2{}2,1{= 。}}6,5{},4,3{},1{{3=S 也不是A 的一个分类,因为}2{不

属于任何一个子集。

等价关系与集合的分类的关系由以下两个定理可以看出。

定理10.1 集合A 的一个分类决定A 的元间的一个等价关系。

证明 设}|{I i A S i ∈=是A 的一个分类。规定属于同一个类与b a b a ?~ 显然~是A 的一个关系。下证它是一个等价关系。

(1) 显然,a a A a ~,∈?;(2) A b a ∈?,,若b a ~,则, 属于同一个类与b a ,从而

a b ~;(3) A c b a ∈?,,,若c b b a ~,~,则属于同一个类与b a 属于同一个类与c b ,于是属于同一个类与c a ,从而c a ~。因此~是A 上的一个等价关系。

定理10.2 集合A 的一个等价关系~决定A 的一个分类。

证明 A a ∈?,令}~|{][a x A x a ∈=,则A 的子集族}|]{[A a a S ∈=是A 的一个分类。事实上(i)A a ∈?,由于a a ~,于是][a a ∈。所以][a 是一个非空子集,并且

A a A a =∈ ][;

(ii)若Φ≠][][b a ,则][][b a c ∈?,于是b c a c ~,~,从而b a ~,由此得到][][b a =(],[a x ∈?有,~a x 而,~b a 于是b x ~,故][b x ∈,所以][][b a ?。同理][][a b ?,所以][][b a =)。所以不同的等价类互不相交。

例3 =A Z (整数集),∈>)0(n N (自然数集)。规定)(|b a n aRb -?。易知这是一个等价关系((1) 0|n aRa ?自反性,(2) 若)(|b a n aRb -?)(|a b n -?bRa ?对称性,

(3) 若bRc aRb ,,则)(|),(|c b n b a n --,于是)(|c a n -aRc ?传递性 )。称为模n 的同余关系,记作)(n b a ≡。此等价关系决定A 的一个分类,称为模n 的剩余类,记作Z n 。其元素为

},2,,0,,2,{]0[ n n n n --=,},12,1,1,1,12,{]1[ +++-+-=n n n n ,···,

},13,12,1,1,1,{]1[ ------=-n n n n n 。通常用1,,1,0-n 来作为这个类的全体代表团。

作业:

Page 30

第3题

等价类与边界值练习题解

解答: 等价类 一、某程序规定:"输入三个整数 a 、 b 、 c 分别作为三边的边长构成三角形。通过程序判定所构成的三角形的类型,当此三角形为一般三角形、等腰三角形及等边三角形时,分别作计算… "。用等价类划分方法为该程序进行测试用例设计。(三角形问题的复杂之处在于输入与输出之间的关系比较复杂。) 分析题目中给出和隐含的对输入条件的要求: (1)整数(2)三个数(3)非零数(4)正数 (5)两边之和大于第三边(6)等腰(7)等边 如果 a 、 b 、 c 满足条件( 1 ) ~ ( 4 ),则输出下列四种情况之一: 1)如果不满足条件(5),则程序输出为 " 非三角形 " 。 2)如果三条边相等即满足条件(7),则程序输出为 " 等边三角形 " 。 3)如果只有两条边相等、即满足条件(6),则程序输出为 " 等腰三角形 " 。 4)如果三条边都不相等,则程序输出为 " 一般三角形 " 。 列出等价类表并编号

覆盖有效等价类的测试用例: a b c 覆盖等价类号码 3 4 5 (1)--(7) 4 4 5 (1)--(7),(8) 4 5 5 (1)--(7),(9) 5 4 5 (1)--(7),(10) 4 4 4 (1)--(7),(11) 覆盖无效等价类的测试用例:

二、设有一个档案管理系统,要求用户输入以年月表示的日期。假设日期限定在1990年1月~2049年12月,并规定日期由6位数字字符组成,前4位表示年,后2位表示月。现用等价类划分法设计测试用例,来测试程序的"日期检查功能"。 1)划分等价类并编号,下表等价类划分的结果 日期的类型及长度①6位数字字符②有非数字字符 ③少于6位数字字符 ④多于6位数字字符 年份范围⑤在1990~2049之间⑥小于1990 ⑦大于2049 月份范围⑧在01~12之间⑨等于00 ⑩大于12 2)设计测试用例,以便覆盖所有的有效等价类在表中列出了3个有效等价类,编号分别为①、 ⑤、⑧,设计的测试用例如下: 测试数据期望结果覆盖的有效等价类 200211 输入有效①、⑤、⑧ 3)为每一个无效等价类设计一个测试用例,设计结果如下: 测试数据期望结果覆盖的无效等价类 95June 无效输入② 20036 无效输入③ 2001006 无效输入④ 198912 无效输入⑥ 200401 无效输入⑦ 200100 无效输入⑨ 200113 无效输入⑩

等价类划分法实例

1.某程序规定:"输入三个整数a 、b 、c 分别作为三边的边长构成三角形。通过程序 判定所构成的三角形的类型,当此三角形为一般三角形、等腰三角形及等边三角形时,分别作计算… "。用等价类划分方法为该程序进行测试用例设计。(三角形问题的复杂之处在于输入与输出之间的关系比较复杂。) 分析题目中给出和隐含的对输入条件的要求: (1)整数(2)三个数(3)非零数(4)正数 (5)两边之和大于第三边(6)等腰(7)等边 如果a 、b 、c 满足条件(1 )~ (4 ),则输出下列四种情况之一: 1)如果不满足条件(5),则程序输出为" 非三角形" 。 2)如果三条边相等即满足条件(7),则程序输出为" 等边三角形" 。 3)如果只有两条边相等、即满足条件(6),则程序输出为" 等腰三角形" 。 4)如果三条边都不相等,则程序输出为" 一般三角形" 。 列出等价类表并编号

覆盖有效等价类的测试用例: a b c 覆盖等价类号码 3 4 5 (1)--(7) 4 4 5 (1)--(7),(8) 4 5 5 (1)--(7),(9) 5 4 5 (1)--(7),(10)4 4 4 (1)--(7),(11)

覆盖无效等价类的测试用例: 2.设有一个档案管理系统,要求用户输入以年月表示的日期。假设日期限定在1990年1 月~2049年12月,并规定日期由6位数字字符组成,前4位表示年,后2位表示月。 现用等价类划分法设计测试用例,来测试程序的"日期检查功能"。(不考虑2月的问题) 1)划分等价类并编号,下表等价类划分的结果

2)设计测试用例,以便覆盖所有的有效等价类在表中列出了3个有效等价类,编号分别 为①、⑤、⑧,设计的测试用例如下: 测试数据期望结果覆盖的有效等价类 200211 输入有效①、⑤、⑧ 3)为每一个无效等价类设计一个测试用例,设计结果如下: 测试数据期望结果覆盖的无效等价类 95June 无效输入② 20036 无效输入③ 2001006 无效输入④ 198912 无效输入⑥ 200401 无效输入⑦ 200100 无效输入⑨ 200113 无效输入⑩ 3.NextDate 函数包含三个变量:month 、day 和year ,函数的输出为输入日期后一天 的日期。例如,输入为2006年3月7日,则函数的输出为2006年3月8日。要求输入变量month 、day 和year 均为整数值,并且满足下列条件: ①1≤month≤12 ②1≤day≤31 ③1920≤year≤2050 1)有效等价类为: M1={月份:1≤月份≤12} D1={日期:1≤日期≤31} Y1={年:1812≤年≤2012} 2)若条件①~ ③中任何一个条件失效,则NextDate 函数都会产生一个输出,指明相 应的变量超出取值范围,比如"month 的值不在1-12 范围当中" 。显然还存在着大量的year 、month 、day 的无效组合,NextDate 函数将这些组合作统一的输出:" 无效输入日期" 。其无效等价类为: M2={月份:月份<1} M3={月份:月份>12} D2={日期:日期<1} D3={日期:日期>31} Y2={年:年<1812} Y3={年:年>2012} 弱一般等价类测试用例 月份日期年预期输出 6 15 1912 1912年6月16日 强一般等价类测试用例同弱一般等价类测试用例 注:弱--有单缺陷假设;健壮--考虑了无效值

等价关系和集合分类

等价关系和集合分类 ={所有实数} :→为(,b)=对,若b->0 (,b)=错,若b->0不成立。则是上的一个关系。其实,就是上的“<”关系。从的元间的关系的定义可看,当给定一个集合后,该集合上有很多不同的关系,其中有一些是重要的,有些是并非重点。现给出若干重要关系。设有的元间关系(Ⅰ)若对,,则称为自反关系(Ⅱ)若b,则b,则称为对称关系(Ⅲ)若b,则b ,则称为反对称关系(Ⅳ)若b,若bc,则c,则称为传递关系特别,满足(Ⅰ)(Ⅱ)(Ⅲ),则称为等价关系,此时用~表示。Ex:“等于”这个关系是一个等价关系Ex:={平面上直线},定义的上关系为:,∈时∥ (=认为平行)则易证为等价关系。定义:若把一个集合分成若干个叫做类的子集,使得的每个元属于而且只属于一个类,则称这些类的全体为集合的一个分类。注:分类也可以如下定义,为的非空子集族,满足(ⅰ)=(要求)(ⅱ)*等价关系与集合的分类的关系有如下重要结果。定理1:集合的一个分类决定的元间的一个等价关系。(证明):设、,定义 b,如果,b在同一个类中则(Ⅰ)因和一定在同一个分类中,于是,(Ⅱ)若b,说明,b在同一个类中,于是b,(Ⅲ)若b,bc,则,b在同一类中,b,c在同一个类。因为该类有公共元素c,于是该两类其实是相同的。于是,c在同一类中,所以c,由(Ⅰ)(Ⅱ)(Ⅲ)知为的元间的等价关系。定理2:集合

的元间的一个等价关系决定一个分类。(证明):对给定,记[]={∣~b},考查{[]∣}。(ⅰ)若~b,则[]=[b]。事实上,当c[],则c~,于是c~b∴c[b],故[] [b]。同理可证[b] []。∴[]=[b]。(ⅱ)若[b] [c],则~b且~cb~c[b]=[c]于是 [b] [c] =[b]或(ⅲ)对,~,于是[]。所以=由(ⅰ)(ⅱ)(ⅲ)可知{ []∣}是的一个分类。定义:一个集合的一个分类的每一个元素中的任何元素叫做该类的一个代表,刚好由每一类的一个代表做成的集合叫做一个全体代表团。例=,取,对,b,定义 b,如果、易证为的一个等价关系、若,其中0≤,<,则,于是可知=而=说明≡(n)、于是上述等价关系叫做模n的同于关系。由于的等价关系,因此带来一个分类,易求每一个分类为[0]={…,-2n,-n,0,n,2n,…}[1]={…,-2n+1,- n+1,1,n+1,2n+1,…}……[n-1]={…,-n-1,-1, n-1,2n-1,…}、

等价关系和集合分类

§8 等价关系和集合分类 设A ≠?,D 只含两个元,不妨设D ={0,1}或D ={对,错} 定义:称一个A ×A 到D 的映射R 为A 的元间的一个关系。 若R (a ,b )=1则称a 和b 符合关系R ,记a R b 若R (a ,b )=0则称a 和b 不符合关系R ,记为a R b. 定义:称A ×A 的任何子集为A 上的一个关系。 其实,以上两个定义是等价的。 例 A ={所有实数} R :A ×A →D 为R (a ,b )=对,若b-a >0 R (a ,b )=错,若b-a >0不成立。 则R 是A 上的一个关系。其实,R 就是 上的“<”关系。 从 A 的元间的关系的定义可看,当给定一个集合后,该集合上有很多不同的关系,其中有一些是重要的,有些是并非重点。 现给出若干重要关系。设有A 的元间关系R (Ⅰ)若对a ?,a R a ,则称R 为自反关系 (Ⅱ)若a R b ,则b R a ,则称R 为对称关系 (Ⅲ)若a R b ,则b R a ,则称R 为反对称关系 (Ⅳ)若a R b ,若b R c ,则a R c ,则称R 为传递关系 特别, R 满足(Ⅰ)(Ⅱ)(Ⅲ),则称R 为等价关系,此时用~表示R 。 Ex :“等于”这个关系是一个等价关系 Ex :A ={平面上直线},定义A 的上关系R 为:1l ,2l ∈A 时 1l R 2l ?1l ∥2l (1l =2l 认为平行) 则易证R 为等价关系。 定义:若把一个集合A 分成若干个叫做类的子集,使得A 的每个元属于而且只属于一个类,则称这些类的全体为集合A 的一个分类。 注:分类也可以如下定义,{}i i x ∈∧为x 的非空子集族,满足 (ⅰ)i i x ∈∧ =x (要求∧≠?) (ⅱ),,i i j x i j x x i j =??=??≠? *等价关系与集合的分类的关系有如下重要结果。 定理1:集合A 的一个分类决定A 的元间的一个等价关系。 (证明):设a 、b A ∈,定义 a R b ,如果a ,b 在同一个类中 则 (Ⅰ)因a 和a 一定在同一个分类中,于是a R a , (Ⅱ)若a R b ,说明a ,b 在同一个类中,于是b R a , (Ⅲ)若a R b ,b R c ,则a ,b 在同一类中,b ,c 在同一个类。因为该类有公共元素c ,于是该两类其实是相同的。于是a ,c 在同一类中,所以a R c ,

等价关系

“关系”一词,在日常生活中十分常见,在学校,有同学关系、师生关系、同事关系等; 在家庭中,有兄弟姐妹关系,父子关系、母女关系等;在一般的工作单位,有师徒关系、上 下级关系等等。在研究科学中也有很多关系,如数学中的数的大小比较关系、整数中整除关 系、函数关系、集合中的包含关系;计算机软件的程序与其子程序关系等。 为了数学的方法来研究这类关系,我们将用集合论的观点来描述这类关系。 例如,集合{}e d c b a A ,,,,=,为五个人组成的集合,其中他们中,a 是b 的父亲,c 是d 的 父亲,c 也是e 的父亲。现将集合A 的父子关系用有序对表示,即为),(),,(),,(e c d c b a 。把 这三个有序对组成一个集合{}),(),,(),,(e c d c b a R =,我们把R 这种由集合A 导出的有序 对组成的集合R ,叫做A 上关系 R 。 我们称集合R 为集合A 的父子关系集合(简称关系)。 我们把13个数组成的集合{}10,,3,2,1 =A 也建立几个关系。 二、建立关系举例: 1、 它们之间的小于等于关系R ; ()()()()()()(){},13,13,13,12,,3,2,2,2,3,1,2,1,1,1 =R 2、 它们除以3以后余数相同的关系1R ; ()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()? ?????=,10,10,7,10,4,10,1,10,9,9,6,9,3,9,8,8,5,8,2,8,10,7,7,7,4,7,1,7,9,6,6,6,3,6,8,5,5,5,2,5,10,4,7,4,4,4,1,4,9,3,6,3,3,3,8,2,5,2,2,2,10,1,7,1,4,1,1,12R 3、它们之间的整除关系2R ; ()()()()()()()()()()()()()()()()()()()()? ?????=10,10,9,9,8,8,7,7,6,6,10,5,5,5,8,4,4,4,9,3,6,3,3,3,10,2,8,2,6,2,4,2,2,2,10,1,2,1,1,13 R 注意:关系有两大类关系:A 到B 的关系,A 上的关系;我们主要讨论A 上的关系。 三、关系的几种表示方法: 1、图形表示; 2、表格表示; 3、矩阵表示; 比如:{ }5,4,3,2,1=A 上的R 关系为()()()()()()(){},4,5,2,4,5,3,3,3,3,2,2,22,1=R 则??????? ? ??=01000000101010000110 00010R A

等价类划分法实例

分析题目中给出和隐含的对输入条件的要求: (1)整数 (2)三个数 (3)非零数 (4)正数 (5)两边之和大于第三边 (6)等腰 (7)等边 如果 a 、 b 、 c 满足条件( 1 ) ~ ( 4 ),则输出下列四种情况之一: 1)如果不满足条件(5),则程序输出为 " 非三角形 " 。 2)如果三条边相等即满足条件(7),则程序输出为 " 等边三角形 " 。 3)如果只有两条边相等、即满足条件(6),则程序输出为 " 等腰三角形 " 。 4)如果三条边都不相等,则程序输出为 " 一般三角形 " 。 列出等价类表并编号 覆盖有效等价类的测试用例: a b c 覆盖等价类号码 3 4 5 (1)--(7) 4 4 5 (1)--(7),(8) 4 5 5 (1)--(7),(9) 5 4 5 (1)--(7),(10) 4 4 4 (1)--(7),(11) 覆盖无效等价类的测试用例: 2. 设有一个档案管理系统,要求用户输入以年月表示的日期。假设日期限定在1990 年1月~2049年12月,并规定日期由6位数字字符组成,前4位表示年,后2位表示月。现用等价类划分法设计测试用例,来测试程序的"日期检查功能 "。(不考虑2月的问题) 1)划分等价类并编号,下表等价类划分的结果

2)设计测试用例,以便覆盖所有的有效等价类在表中列出了3个有效等价类,编号分 别为①、⑤、⑧,设计的测试用例如下: 测试数据期望结果覆盖的有效等价类 200211 输入有效①、⑤、⑧ 3)为每一个无效等价类设计一个测试用例,设计结果如下: 测试数据期望结果覆盖的无效等价类 95June 无效输入② 20036 无效输入③ 2001006 无效输入④ 198912 无效输入⑥ 200401 无效输入⑦ 200100 无效输入⑨ 200113 无效输入⑩ 3.NextDate 函数包含三个变量:month 、 day 和 year ,函数的输出为输入日期 后一天的日期。例如,输入为 2006年3月 7日,则函数的输出为 2006年3月8日。 要求输入变量 month 、 day 和 year 均为整数值,并且满足下列条件: ①1≤month≤12 ②1≤day≤31 ③1920≤year≤2050 1)有效等价类为: M1={月份:1≤月份≤12} D1={日期:1≤日期≤31} Y1={年:1812≤年≤2012} 2)若条件① ~ ③中任何一个条件失效,则 NextDate 函数都会产生一个输出,指明相 应的变量超出取值范围,比如 "month 的值不在 1-12 范围当中 " 。显然还存在着大量的 year 、 month 、 day 的无效组合, NextDate 函数将这些组合作统一的输出: " 无效输入日期 " 。其无效等价类为: M2={月份:月份<1} M3={月份:月份>12} D2={日期:日期<1} D3={日期:日期>31} Y2={年:年<1812} Y3={年:年>2012} 弱一般等价类测试用例 月份日期年预期输出 6 15 1912 1912年6月16 日 强一般等价类测试用例同弱一般等价类测试用例

“等价关系”部分习题参考答案

《二元关系》部分习题参考答案 3.5 等价关系和划分(P129) 第2题 证明:?x∈A,∈R;?∈R,∈R;?∈R,∈R,则有∈R,所以R是自反的、对称的、传递的,因而R 是等价关系。 第3题 解:(1)A上最大等价关系是全域关系,故其元素个数为n2个。 (2)A上最大等价关系的秩是1。 (3)A上最小等价关系是相等关系,故其元素个数为n个。 (4)A上最小等价关系的秩为n。 第5题 解:(a)不是等价关系。因为A?A-R1不具有自反性。 (b)也不是等价关系。也不具有自反性。 (c)是等价关系。 (d)不是等价关系。 (e)不是等价关系。 第7题 解:(a)R=“<”不是等价关系,因为<不具有自反性和对称性。R诱导的等价关系全域关系。 (b)它不是等价关系。因为<0,0>?R,所以不具有自反性。R诱导的等价关系是R?<0,0>。

(c)它不是等价关系。因为<0,0>?R,故它不具有自反性,有<0,1>∈R,但<1,0>?R,故它不具有对称性。R诱导的等价关系是: {|(a≥0∧b≥0)∨(a≤0∧b≤0)} (d)它不是等价关系。因为<0,0>?R,所以不具有自反性。 (e) 它不是等价关系。因为R不具有对称性。R诱导的等价关系为I上的全域关系。 第10题 解:A的所有划分如下: π1={{a,b,c}} π2={{a},{b,c}} π3={{b},{a,c}} π4={{c},{a,b}} π5={{a},{b},{c}} 的哈斯图为: 第11题 解:(a) π1所诱导的等价关系的序偶为: R1={,,,,,,,,,} (b) π2和π3诱导的等价关系分别是: R2={,,,} R3=A?A

等价类划分方法

1.某程序规定:"输入三个整数 a 、 b 、 c 分别作为三边的边长构成三角形。通过程序判定所构成的三角形的类型,当此三角形为一般三角形、等腰三角形及等边三角形时,分别作计算… "。用等价类划分方法为该程序进行测试用例设计。(三角形问题的复杂之处在于输入与输出之间的关系比较复杂。) 分析题目中给出和隐含的对输入条件的要求: (1)整数(2)三个数(3)非零数(4)正数(5)两边之和大于第三边(6)等腰(7)等边 如果 a 、 b 、 c 满足条件( 1 ) ~ ( 4 ),则输出下列四种情况之一: 1)如果不满足条件(5),则程序输出为 " 非三角形 " 。 2)如果三条边相等即满足条件(7),则程序输出为 " 等边三角形 " 。 3)如果只有两条边相等、即满足条件(6),则程序输出为 " 等腰三角形 " 。 4)如果三条边都不相等,则程序输出为 " 一般三角形 " 。 列出等价类表并编号

覆盖有效等价类的测试用例: a b c 覆盖等价类号码 3 4 5 (1)--(7) 4 4 5 (1)--(7),(8) 4 5 5 (1)--(7),(9) 5 4 5 (1)--(7),(10)4 4 4 (1)--(7),(11)覆盖无效等价类的测试用例

2.设有一个档案管理系统,要求用户输入以年月表示的日期。假设日期限定在1990年1月~2049年12月,并规定日期由6位数字字符组成,前4位表示年,后2位表示月。现用等价类划分法设计测试用例,来测试程序的"日期检查功能"。 1) 划分等价类并编号,下表等价类划分的结果 2) 设计测试用例,以便覆盖所有的有效等价类。在表中列出了3个有效等价类,编号分别为①、⑤、⑧,设计的测试用例如下:

等价关系与等价类

定义10.6.1对非空集合上的关系,如果是自反的、对称的和传递的,则称为上的等价关系。 等价关系的例子很多,如平面上三角形集合中,三角形的相似关系是等价关系;上海市的居民的集合中,住在同一区的关系也是等价关系。 等价关系的关系图具有以下特征: 1.每个结点都由自回路,即R是自反的; 2.两个结点a,b之间若有从a指向b的弧,就有从b指向a的弧,即R是对称的; 3.若有从a指向b的弧,且有从b指向c的弧,就有从a指向c的弧,即R是传递的。 第9章给出了用平面坐标系中的矩形表示笛卡儿积的图形表示法。显然可以用正方形表示 ,如图10.6.2(a)所示。A上的关系是的子集,因此可以用正方形的子集表示。A上的等价关系可以用正方形的一条对角线和线上的若干正方形表示。如图10.6.2(b)所示。但图10.6.2(c)所表示的关系不是等价关系。它包括了对角线,所以有自反性。它以对角线为对称轴,所以有对称性。但它没有传递性。因为R中的a和b点对应的有序对,经传递得到c点对应的有序对应在R中,但c点不在R中。 图10.6.2 例1在非空集合A上的恒等关系和全关系都是等价关系。在所有谓词公式的集合上的等值关系也是等价关系。 例2集合上的关系 。 其中表示可被3整除。 对任意的可被3整除。若可被3整除,则也可被3整除。若和 可被3整除,则可被3整除。所以,R具有自反性、对称性和传递性, R是A上的等价关系。 R的关系图如图10.6.1所示。在图中,A的元素被分成三组,每组中任两个元素之间都有关系,而不同组的元素之间都没有关系。这样的组称为等价类。 图10.6.1

定义10.6.2R是非空集合A上的等价关系,对任意的,令 则称集合为x关于R的等价类,简称x的等价类,也可简记作[x]或。 例3对例2的等价关系R,有三个不同的等价类: , , 。 A的8个元素各有一个等价类。各等价类之间,或者相等,或者不相交。而且所有等价类的并集就是A。 整数集合Z上的模n等价关系,即 可以根据任何整数除以n(n为正整数)所得余数进行分类,构成n个等价类,记作 即 ﹒﹒﹒﹒﹒﹒ 定理10.6.1R是非空集合A上的等价关系,对任意的,成立 (1)且, (2)若,则, (3)若,则,

等价类划分的例子

假设有一个把数字串转变成整数的函数。运行程序的计算机字长16位,用二进制补码表示整数。这个函数是用PASCAL语言编写的,它的说明如下: function strtoint(dstr:shortstr):integer; 函数的参数类型是shortstr,它的说明是; type shortstr=array[1..6]of char; 被处理的数字串是右对齐的,也就是说,如果数字串比六个字符短,则在它的左边补空格。 如果数字串是负的,则负号和最高位数字紧相邻(负号在最高位数字左边一位)。 考虑到PASCAL编译程序固有的检错功能,测试时不需要使用长度不等于6的数组做实在参数,更不需要使用任何非字符数组类型的实在参数。 分析这个程序的规格说明,可以划分出如下等价类: 有效输入的等价类有 ⑴1~6个数字字符组成的数字串(最高位数字不是零); ⑵最高位数字是零的数字串; ⑶最高位数字左邻是负号的数字串; 无效输入的等价类有 ⑷空字符串(全是空格); ⑸左部填充的字符既不是零也不是空格; ⑹最高位数字右面由数字和空格混合组成; ⑺最高位数字右面由数字和其他字符混合组成; ⑻负号与最高位数字之间有空格; 合法输出的等价类有 ⑼在计算机能表示的最小负整数和零之间的负整数; ⑽零; ⑾在零和计算机能表示的最大正整数之间的正整数; 非法输出的等价类有 ⑿比计算机能表示的最小负整数还小的负整数; ⒀比计算机能表示的最大正整数还大的正整数。 因为所用的计算机字长16位,用二进制补码表示整数,所以能表示的最小负整数是-32768,能表示的最大正整数是32767。 根据上面划分出的等价类,可以设计出下述测试方案(注意,每个测试方案由三部分内容组成): ⑴l~6个数字组成的数字串,输出是合法的正整数。 输入:‘1’ 预期的输出:1 ⑵最高位数字是零的数字串,输出是合法的正整数。 输入:‘000001’ 预期的输出:1 ⑶负号与最高位数字紧相邻,输出合法的负整数 输入:‘-00001’ 预期的输出:-1 ⑷最高位数字是零,输出也是零。 输入:‘000000’ 预期的输出:0

第5次实验等价类划分测试

软件测试实验报告 实验题目:黑盒测试技术之等价类划分测试 姓名:何晓晓 学号:1012210110 班级:10计本1 指导老师:蒋平

一、实验介绍 1.实验技术 等价类划分是一种典型的、常用的黑盒测试方法,这类方法是把所有可能的输入数据划分成若干个部分(子集),然后从每一个子集中选取少数具有代表性的数据作为测试用例。 2.实验对象 完成一段程序,要求实现这样的功能。输入三个整数a,b,c,分别作为三角形的三条边,取值范围为1-100,判断由三条边构成的三角形类型为等边三角形、等腰三角形、一般三角形以及不构成三角形。判断结果打印输出。 #include void main(void) { int a,b,c,k; printf("请输入三角形的三边长(0-100):"); scanf("%d %d %d",&a,&b,&c); if((a>=1&&a<=100)&&(b>=1&&b<=100)&&(c>=1&&c<=100)) { if((a+b>c)&&(a+c>b)&&(b+c>a)) { if((a==b&&b!=c)||(a==c&&c!=b)||(b==c&&a!=b)) k=1; if(a==b&&a==c) k=2; if((a*a+b*b==c*c)||(a*a+c*c==b*b)||(c*c+b*b==a*a)) k=3; switch(k) { case 1:printf("等腰三角形\n"); break; case 2:printf("等边三角形\n"); break; case 3:printf("直角三角形\n"); break; default:printf("一般三角形\n"); break; } } else printf("不能构成三角形\n");

等价类划分法

测试用例设计—等价类划分法 2008-10-10 11:41:40| 分类:测试| 标签:|字号大中小订阅 1.相关概念:等价类划分法是把所有可能的输入数据,即程序的输入域划分成若干部分(子集),然后从每一个子集中选取少数具有代表性的数据作为测试用例。该方法是一种重要的,常用的黑盒测试用例设计方法。 1.2 等价类 等价类是某个输入域的集合,在这个集合中每个输入条件都是等效的。如果其中一个的输入不能导致问题发生,那么集合中其它输入条件进行测试也不可能发现错误。 等价类分为有效等价类和无效等价类。 有效等价类就是由那些对程序的规格说明有意义的、合理的输入数据所构成的集合,利用有效等价类可检验程序是否实现了规格说明中所规定的功能和性能。 无效等价类就是那些对程序的规格说明不合理的或无意义的输入数据所构成的集合。 2.划分等价类的方法 划分等价类重要的是:集合的划分,划分为互不相交的一组子集,而子集的并是整个集合。下面给出六条确定等价类的原则。 1、在输入条件规定了取值范围或值的个数的情况下,则可以确立一个有效等价类和两个无效等价类。 例如:成年人每分钟的心跳60-100之间为正常。 有效等价类:60-100 无效等价类:<60 和>100 2、在输入条件规定了输入值的集合或者规定了“必须如何”的条件的情况下,可确立一个有效等价类和 一个无效等价类。例如:用户连续输入错误密码的次数最多为3次。 有效等价类:<=3次无效等价类:>3次 3、在输入条件是一个布尔量的情况下,可确定一个有效等价类。例如:单选的选中与不选中。 4、在规定了输入数据的一组值(假定n个),并且程序要对每一个输入值分别处理的情况下,可确立n 个有效等价类和一个无效等价类。例如:输入数据为省份的选择。 5、在规定了输入数据必须遵守的规则的情况下,可确立一个有效等价类(符合规则)和若干个无效等价类(从不同角度违反规则)。例如:规定必须输入非0的正整数。这种例子应充分考虑规则是否可以拆分为具有单一的子规则,然后得到从不同角度违反规则的无效等价类。 该例子起码可拆分为非0、数字、正数、整数4个子规则,至少每个规则对应一个无效等价类,即0、字符串、负数、小数,甚至可挖掘出输入为空的隐含等价类。

等价类划分

黑盒测试 (一)实验目的 1.掌握用边界值方法设计测试用例和执行测试的过程; 2.掌握用等价划分方法设计测试用例和执行测试的过程; (二)实验内容 测试“NextDate”函数。NextDate返回输入日期后面的那个日期。变量年、月、日都 具有整数值,且满足如下条件: C1: 1912≤年份≤2050 C2: 1≤月份≤12 C3: 1≤日期≤31 (三)实验步骤 用熟悉的语言(如C 语言)编写实现该函数的功能,并用如下方法设计测试用例,进行黑盒测试。参考源代码: #include intnextDate(intyear,intmonth,int day); void main() { //int year, month,day; nextDate(2051,12,30); } intnextDate(intyear,intmonth,int day) { /*如果还有明天,返回1; 如果输入不合法,返回-1; */ switch (month) { case 1: case 3:case 5:case 7:case 8:case 10 : if(day==31) { day=1; month=month+1; } else day=day+1; break; case 4:case 6:case 9:case 11: if(day==30) { day=1; month=month+1; } else

day=day+1; break; case 12: if(day==31) { day=1; month=1; year=year+1; if(year==2012) printf("2012 is over"); } else if(day<31) { day=day+1; } break; case 2: { if(day==28) if(((year%4==0 && year%100!=0) || year%400==0)) { day=29; } else { day=1; month=3; } else if(day==29) { day=1; month=3; } else if(day<28) { day=day+1; } else printf("二月没有%d 号!\n",day); } break; default: ; }

第1章 §1.4 等价关系

§1.4等价关系 初等数论中的同余类的概念,群论中的商群的概念,乃至于解析几何中的自由向量的概念等等都是读者所熟知的.这些概念的精确定义事实上都有赖于本节中所讨论的等价关系的概念.在本书中我们将通过等价关系来定义拓扑空间的商空间. 定义1.4.1 设X是一个集合.从集合X到集合X的一个关系将简称为集合X中的一个关系.集合X中的关系{(x,x)|x∈X}称为恒同关系,或恒同,对角线,记作△(X)或△. 定义1.4.2 设R是集合X中的一个关系.关系R称为自反的,如果△(X)R,即对于任何x∈X,有xRx;关系R称为对称的,如果,即对于任何x,y∈X,如果xRy则 yRx;关系R称为反对称的,如果,即对于任何x,y∈X,xRy和yRx不能同 时成立;关系R称为传递的,如果R R R,即对于任何x,y,z∈X,如果xRy,yRz,则有xRz. 集合X中的一个关系如果同时是自反、对称和传递的,则称为集合X中的一个等价关系. 容易验证集合X中的恒同关系△(X)是自反、对称、传递的,因此是X中的一个等价关系. 集合X的幂集P(X)中两个元素(即集合X的两个子集)之间的“相等关系”可以理解为集合P(X)×P(X)的子集 {(A,B)|A,B∈P(X),A=B} 从定理1.1.l中可见,它是自反、对称、传递的,因此是P(X)中的一个等价关系. 集合X的幂集P(X)中两个元素(即集合X的两个子集)之间的“包含关系”可以理解为集合P(X)×P(X)的子集 {(A,B)|A,B∈P (X),A B} 根据定理1.1.2可见,它是自反的、传递的,但容易知道它不是对称的,因此不是P(X)中的一个等价关系. 集合X的幂集P(X)中两个元素(即集合X的两个子集)之间的“真子集关系”可以理解为集合P(X)×P(X)的子集 {(A,B)|A,B∈P(X),A B,A≠B} 根据定理1.1.3可见,它是反对称的,传递的,但它不是自反的,因而不是P(X)中的一个等价关系.

等价关系与集合的分类

第 4 讲 §10 等价关系与集合的分类(2课时)本讲教学目的和要求:周知,映射是两个集合之间建立联系的一种方法,利用这种联系来对两个集合进行比较,通过这种比较就能由一个集合的性质去推测另一个集合可能有的性质。除了这种认识事物的方法之外,有时也要把一个集合分成若干个子集,对各个子集进行分门别类地研究或者对某些特殊的子集加以讨论,这种讨论有益于对原来的集合的研究。这种以局部到整体地认识事物的方法,在高等代数中已屡见不鲜,而在近世代数中更是不可缺少的,甚至是无处不有的。本讲中将分成两个层次分别介绍集合的分类以及讨论集合进行分类的一般原则——等价关系。 本讲中要求同学们能真正掌握集合的分类与等价关系它们的内在联系和互相转化的过程。 本讲的重点和难点: (1)“集合分类”的定义(尤其是分类的三大特点)。 (2)集合上的关系及等价关系(要求能辨别出是否等价关系) (1)上述两个概念的相互转化问题。 (2)一个重要的实例——模m的剩余类集合。 本讲的教法和教具:本讲中仍采用投影仪辅助教学。在教学过程中,由于其概念较多,内容也颇抽象,则需要耐心、循序渐进,将每个概念都讲透。

本讲思考题及作业:思考题都穿插安排在教学内容之中,作业置后。 一、集合的分类 例1、设整数集},4,3,2,1,0,1,2,3,4,{ ----=Z ,并令 },34{} ,24{} ,14{} ,4{3210Z q q n Z n A Z q q n Z n A Z q q n Z n A Z q q n Z n A ∈+=∈=∈+=∈=∈+=∈=∈=∈= 可知,)3,2,1,0(=i A i 是整数集Z 的一些子集,并具有以下特征: (1))3,2,1,0(=?≠i A i (2)j i A A j i ≠??= (3) 30 3210===i i A A A A A Z 这三条性质说明,整数集Z 恰好被分成一些(四个)两两不相交的非空子集的并,这里的每个子集恰好由除以4余数相同的整数组成。 一般的,任取一个正整数m ,都能将Z 分解成m 个两两不相交的非空子集的并,使得每个子集恰好是由除以m 余数相同的整数组成的。特别地,取2=m 时,Z 则被分解成偶数子集和奇数子集的并。 例2、设{}2,1,;)()(2=∈=j i R a a R M ij ij 是R 上一切二阶矩阵组成的集合,令 {}{}{}2)()()(1)()()(0 )()()(2221 20=∈==∈==∈=ij ij ij ij ij ij a R M a A a R M a A a R M a A 秩秩秩 易知,)(2R M 的这些子集(三个子集)满足以下特征:

等价类划分法含例子

1.等价类划分法 等价类划分是一种典型的黑盒测试方法,使用这一方法时,完全不考虑程序的内部结构,只依据程序的规格说明来设计测试用例。 等价类划分方法把所有可能的输入数据,即程序的输入域划分成若干部分,然后从每一部分中选取少数有代表性的数据做为测试用例。 使用这一方法设计测试用例要经历划分等价类(列出等价类表)和选取测试用例两步。2.划分等价类: 等价类是指某个输入域的子集合。在该子集合中,各个输入数据对于揭露程序中的错误都是等效的,并合理地假定:测试某等价类的代表值就等于对这一类其它值的测试,因此,可以把全部输入数据合理划分为若干等价类,在每一个等价类中取一个数据作为测试的输入条件就可以用少量代表性的测试数据取得较好的测试结果。等价类划分可有两种不同的情况:有效等价类和无效等价类。 等价类的划分有两种不同的情况: ①有效等价类:是指对于程序的规格说明来说,是合理的,有意义的输入数据构成的集合。利用有效等价类可检验程序是否实现了规格说明中所规定的功能和性能。 ②无效等价类:是指对于程序的规格说明来说,是不合理的,无意义的输入数据构成的集合。对于具体的问题,无效等价类至少应有一个,也可能有多个。 在设计测试用例时,要同时考虑有效等价类和无效等价类的设计。 3.划分等价类的标准: 1)完备测试、避免冗余; 2)划分等价类重要的是:集合的划分,划分为互不相交的一组子集,而子集的并是整 个集合; 3)并是整个集合:完备性; 4)子集互不相交:保证一种形式的无冗余性; 5)同一类中标识(选择)一个测试用例,同一等价类中,往往处理相同,相同处理映 射到"相同的执行路径". 4.划分等价类的原则。 (1) 如果输入条件规定了取值范围,或值的个数,则可以确立一个有效等价类和两个无效等价类。 例如,在程序的规格说明中,对输入条件有一句话: “…… 项数可以从1到999 ……” 则有效等价类是“1≤项数≤999” 两个无效等价类是“项数<1”或“项数>999”。在数轴上表示成: (2) 如果输入条件规定了输入值的集合,或者是规定了“必须如何”的条件,这时可确立一个有效等价类和一个无效等价类。 例如,在Pascal语言中对变量标识符规定为“以字母打头的……串”。那么所有以字母打头的构成有效等价类,而不在此集合内(不以字母打头)的归于无效等价类。

等价类划分法

等价类划分法 等价类划分是一种典型的黑盒测试方法,用这一方法设计测试用例完全不考虑程序的内部结构,只根据对程序的要求和说明,即需求规格说明书。我们必须仔细分析和推敲说明书的各项需求,特别是功能需求。把说明书中对输入的要求和输出的要求区别开来并加以分解。由于穷举测试工作量太大,以至于无法实际完成,促使我们在大量的可能数据中选取其中的一部分作为测试用例。例如,在不了解等价分配计数的前提下,我们做计算器程序的加法测试时,测试了1+1,1+2,1+3和1+4之后,还有必要测试1+5和1+6吗,能否放心地认为它们是正确的?我们感觉1+5和1+6,与前面的1+1,1+2都是很类似的简单加法。 等价类划分的方法是把程序的输入域划分成若干部分,然后从每个部分中选取少数代表性数据作为测试用例。每一类的代表性数据在测试中的作用等价于这一类中的其他值,也就是说,如果某一类中的一个例子发现了错误,这一等价类中的其他例子也能发现同样的错误;反之,如果某一类中的一个例子没有发现错误,则这一类中的其他例子也不会查出错误(除非等价类中的某些例子属于另一等价类,因为几个等价类是可能相交的)。使用这一方法设计测试用例,首先必须在分析需求规格说明的基础上划分等价类,列出等价类表。 1、划分等价类和列出等价类表 等价类是指某个输入域的子集合。在该子集合中,各个输入数据对于发现程序中的错误都是等效的。并合理地假定:测试某个等价类的代表值就等于对这一类其他值的测试。 因此,可以把全部输入数据合理地划分为若干等价类,在每一个等价类中取一个数据作为测试输入条件,就可以用少量代表性的测试数据取得较好的测试结果。等价类划分有两种不同的情况:有效等价类和无效等价类。 有效等价类:指对于程序的规格说明来说是合理的、有意义的输入数据构成的集合。利用有效等价类可以检验程序是否实现了规格说明中所规定的功能和性能。 无效等价类:与有效等价类的定义相反。 设计测试用例时,要同时考虑这两种等价类。因为软件不仅要能接收合理的数据,也要能经受意外的考验。这样的测试才能确保软件具有更好的可靠性。 下面给出6条确定等价类的原则: ①在输入条件规定了取值范围或值的个数的情况下,可以确立一个有效等价类和两个无效等价类。 ②在输入条件规定了输入值的集合或者规定了“必须如何”的条件的情况下,可以确立一个有效等价类和一个无效等价类。 ③在输入条件是一个布尔量的情况下,可确定一个有效等价类和一个无效等价类。 ④在规定了输入数据的一组值(假定n个),并且程序要对每一个输入值分别处理的情况下,可确立n个有效等价类和一个无效等价类。 ⑤在规定了输入数据必须遵守的规则的情况下,可确立一个有效等价类(符合规则)和若干个无效等价类(从不同角度违反规则)。 ⑥在确知已划分的等价类中,各元素在程序处理中的方式不同的情况下,则应再将该等价类进一步划分为更小的等价类。 在确立了等价类之后,建立等价类表,列出所有划分出的等价类如下表所示: 2、确定测试用例 根据已列出的等价类表,按以下步骤确定测试用例: ①为每个等价类规定一个唯一的编号。 ②设计一个新的测试用例,使其尽可能多地覆盖尚未覆盖的有效等价类。重复这一步,最后使得所有有效等价类均被测试用例所覆盖。 ③设计一个新的测试用例,使其只覆盖一个无效等价类。重复这一步使所有无效等价类均被

新课标高一数学集合知识点

新课标高一数学集合知识点 1.集合的有关概念。 1集合集:某些指定的对象集在一起就成为一个集合集.其中每一个对象叫元素 注意:①集合与集合的元素是两个不同的概念,教科书中是通过描述给出的,这与平面几何中的点与直线的概念类似。 ②集合中的元素具有确定性a?A和a?A,二者必居其一、互异性若a?A,b?A,则a≠b 和无序性{a,b}与{b,a}表示同一个集合。 ③集合具有两方面的意义,即:凡是符合条件的对象都是它的元素;只要是它的元素就必须符号条件 2集合的表示方法:常用的有列举法、描述法和图文法 3集合的分类:有限集,无限集,空集。 4常用数集:N,Z,Q,R,N* 2.子集、交集、并集、补集、空集、全集等概念。 1子集:若对x∈A都有x∈B,则A B或A B; 2真子集:A B且存在x0∈B但x0 A;记为A B或,且 3交集:A∩B={x| x∈A且x∈B} 4并集:A∪B={x| x∈A或x∈B} 5补集:CUA={x| x A但x∈U} 注意:①? A,若A≠?,则? A ; ②若,,则 ; ③若且,则A=B等集 3.弄清集合与元素、集合与集合的关系,掌握有关的术语和符号,特别要注意以下的符号:1 与、?的区别;2 与的区别;3 与的区别。 4.有关子集的几个等价关系 ①A∩B=A A B;②A∪B=B A B;③A B C uA C uB; ④A∩CuB = 空集CuA B;⑤CuA∪B=I A B。

5.交、并集运算的性质 ①A∩A=A,A∩? = ?,A∩B=B∩A;②A∪A=A,A∪? =A,A∪B=B∪A; ③Cu A∪B= CuA∩CuB,Cu A∩B= CuA∪CuB; 6.有限子集的个数:设集合A的元素个数是n,则A有2n个子集,2n-1个非空子集,2n-2个非空真子集。 【例1】已知集合M={xx=m+ ,m∈Z},N={xx= ,n∈Z},P={xx= ,p∈Z},则M,N,P满足 关系 A M=N P B M N=P C M N P D N P M 分析一:从判断元素的共性与区别入手。 解答一:对于集合M:{xx= ,m∈Z};对于集合N:{xx= ,n∈Z} 对于集合P:{xx= ,p∈Z},由于3n-1+1和3p+1都表示被3除余1的数,而6m+1表 示被6除余1的数,所以M N=P,故选B。 分析二:简单列举集合中的元素。 解答二:M={…,,…},N={…, , , ,…},P={…, , ,…},这时不要急于判 断三个集合间的关系,应分析各集合中不同的元素。 = ∈N,∈N,∴M N,又 = M,∴M N, = P,∴N P 又∈N,∴P N,故P=N,所以选B。 点评:由于思路二只是停留在最初的归纳假设,没有从理论上解决问题,因此提倡思 路一,但思路二易人手。 变式:设集合,,则 B A.M=N B.M N C.N M D. 解: 当时,2k+1是奇数,k+2是整数,选B 【例2】定义集合A*B={xx∈A且x B},若A={1,3,5,7},B={2,3,5},则A*B的子集个数为 A1 B2 C3 D4

相关文档