等价类

Burnside引理与Pólya计数

主宰稳场 提交于 2019-11-26 17:06:08
前置知识 1.群 2.置换 3.置换群 问题背景 求解等价染色问题。(本质相同) 比如用k种颜色给一个2*2的方格染色,并认为旋转后相同的方案是本质相同的。 求有多少本质不同的方案。 Burnside引理 上面的问题也就是在求等价类个数了。 这个问题中,置换群就是恒等置换,转90,转180,转270。 先给出式子,将在后面证明。 等 价 类 个 数 = ∑ C ( f ) ∣ G ∣ 等价类个数 = \frac {\sum C(f)} {|G|} 等 价 类 个 数 = ∣ G ∣ ∑ C ( f ) ​ 其中C(f)为对于置换f,满足 c ⋅ f = c c \cdot f = c c ⋅ f = c 的着色方案(也简称着色,将置换f作用在c上)c个数(不动点个数)。 ∣ G ∣ |G| ∣ G ∣ 为置换群的大小(阶)。 证明 定义 G ( c ) G(c) G ( c ) 为着色c的稳定核,是置换群的子集。其中的置换f满足 c ⋅ f = c c \cdot f = c c ⋅ f = c 由定义我们有 ∑ C ( f ) = ∑ G ( c ) \sum C(f) = \sum G(c) ∑ C ( f ) = ∑ G ( c ) 即总的不动着色 - 置换 ( c , f ) (c, f) ( c , f ) 对数相等。 现在我们通过改变右式来证明burnside定理。

常见的测试用例设计方法都有哪些?请分别以具体的例子来说明这些方法在测试用例设计工作中的应用。

放肆的年华 提交于 2019-11-26 11:11:13
  1-等价类划分   常见的软件测试面试题划分等价类: 等价类是指某个输入域的子集合.在该子集合中,各个输入数据对于揭露程序中的错误都是等效的.并合理地假定:测试某等价类的代表值就等于对这一类其它值的测试.因此,可以把全部输入数据合理划分为若干等价类,在每一个等价类中取一个数据作为测试的输入条件,就可以用少量代表性的测试数据.取得较好的测试结果.等价类划分可有两种不同的情况:有效等价类和无效等价类.   2-边界值分析法   边界值分析方法是对等价类划分方法的补充。测试工作经验告诉我,大量的错误是发生在输入或输出范围的边界上,而不是发生在输入输出范围的内部.因此针对各种边界情况设计测试用例,可以查出更多的错误.   使用边界值分析方法设计测试用例,首先应确定边界情况.通常输入和输出等价类的边界,就是应着重测试的边界情况.应当选取正好等于,刚刚大于或刚刚小于边界的值作为测试数据,而不是选取等价类中的典型值或任意值作为测试数据.   3-错误推测法   基于经验和直觉推测程序中所有可能存在的各种错误, 从而有针对性的设计测试用例的方法.   错误推测方法的基本思想: 列举出程序中所有可能有的错误和容易发生错误的特殊情况,根据他们选择测试用例-例如, 在单元测试时曾列出的许多在模块中常见的错误-以前产品测试中曾经发现的错误等, 这些就是经验的总结。还有, 输入数据和输出数据为0的情况

软件测试面试题集合(一)

﹥>﹥吖頭↗ 提交于 2019-11-25 20:56:15
1.软件的生命周期(prdctrm) 计划阶段(planning)-〉需求分析(requirement)-〉设计阶段(design)-〉编码 (coding)->测试(testing)->运行与维护(running maintrnacne) 2、问:你在测试中发现了一个bug,但是开发经理认为这不是一个bug,你应该怎样解决? 首先,将问题提交到缺陷管理库里面进行备案。 然后,要获取判断的依据和标准:根据需求说明书、产品说明、原型图、设计文档等,确认实际结果 是否与计划有不一致的地方,提供缺陷是否确认的直接依据; 如果没有文档依据, 1)可以根据同行或类似软件的一般特性来说明是否存在不一致的地方,来确认是否是缺陷; 2)根据用户的一般使用习惯,来确认是否是缺陷; 3)与设计人员、开发人员和客户代表等相关人员探讨,确认是否是缺陷; 合理的论述,向测试经理说明自己的判断的理由,等待测试经理做出最终决定,如果仍然存在争议,可以通过公司政策所提供的渠道,向上级反映,并有上级做出决定。 3、给你一个网站,你如何测试? 首先,查找需求说明、网站设计等相关文档,分析测试需求。 制定测试计划,确定测试范围和测试策略,一般包括以下几个部分:功能性测试;界面测试;性 能测试;数据库测试;安全性测试;兼容性测试 设计测试用例: 功能性测试可以包括,但不限于以下几个方面: 链接测试。链接是否正确跳转