软件测试之黑盒测试-等价类划分法

首先,明确等价类分为有效等价类和无效等价类两种,一般无效等价类都是根据有效等价类写出来的。为了严谨,在白话文之前还是附个定义吧,以免误人子弟。
定义
说白了,有效等价类就是有效输入数据的集合,无效等价类就是非法数据的集合。

这里的考点一般有两点,一个就是画等价类表,另一个就是设计测试用例覆盖等价类。

等价类:
1.有效 无效并存
2.有效数量确定,无效你划分越细致,所得出的无效等价类越多,答案并不唯一。下面会举例说明,具体看题目要求即可。

最常见的就是范围限制,比如密码长度,月为1~12,成绩等等,这里的有效等价类一般为in range,也就是在范围内。无效等价类一般思想就是不在范围内
这里以月份1~12为例,有效等价类为1-12,那么无效等价类最常见也是最容易想到的就是小于1或者大于12这两个,但是要是还想继续划分下去的话,也可以衍生出来输入含有字符或者输入为空这两个无效等价类。这也就是所说的软件测试再细致都不为过,当然你划分的越细致,对于功能的测试也全面,但同样也会增加你的测试样例的时间成本,相当于一把双刃剑。

测试样例进行覆盖:
1.对于有效等价类的测试样例的覆盖体现在一个尽可能多的原则上,即在一个测试样例中覆盖的有效等价类越多越好,直至所有的有效等价类都被覆盖过一遍,
2.对于无效等价类,这里需要注意的是,在设计测试用例的时候,每次只能覆盖一个无效等价类。有人可能会在这里有疑问,这里简单说一下,比如说题目要求输入一个合法日期,你输入了0月32日,预期的输出是非法输入。但是你并不知道到底是对月的判断的error报错还是对day的判断的error报错,不能很好的测试出系统在哪一方面的功能有不完善的地方。
结构图

考研也只是大学的一部分,没必要为了考研把大学应该学到的知识,应该参加的活动全部放弃,对于分数的追求永无止境,为了上岸再怎么高都不为过,但是对于能力的要求,我觉得也绝不能忽视,不能把考研当做自己不去学或者做一切事情的借口。
做好自己

  • 1
    点赞
  • 3
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
### 回答1: 等价测试测试的一种,用于确定输入数据的测试情况。三角形的等价划分如下: 1. 不是三角形的情况:这些输入不能构成三角形,例如三条边的长度相加不满足三角形的三角不等式定律,或其中一条边的长度为负数。我们可以选择使用一个不满足条件的测试用例作为代表,如(-1, 2, 3),并验证程序对于这种情况是否能正确地判断为非三角形。 2. 等边三角形:这是一种特殊的三角形,其中三条边的长度都相等。我们可以选择使用(3, 3, 3)作为代表,验证程序是否能正确地识别并输出为等边三角形。 3. 等腰三角形:这种三角形中两条边的长度相等,例如(3, 3, 5)。我们可以选择使用符合这种条件的测试用例,验证程序是否能正确识别并输出这种情况。 4. 一般三角形:这种三角形中三条边的长度都不相等,如(3, 4, 5)。我们可以选择使用符合这种条件的测试用例,验证程序是否能正确识别和分类一般三角形。 通过用这些等价类中的测试用例来测试程序,我们可以验证程序的正确性。在编写测试用例时,我们还可以考虑边界情况,例如三角形的边界情况可能是边长为0或者边长非常大等,以确保程序在处理极端情况时也能正常工作。 在Python中,可以使用unittest框架或其他测试框架来编写和运行测试用例,并使用assert语句来验证程序的输出是否符合预期。同时,我们还可以使用代码覆盖率工具来评估测试用例的覆盖程度,以确保我们已经测试了程序中的所有分支情况。 ### 回答2: 测试是一种软件测试,其目的是测试软件的功能,而不考虑其内部结构。等价划分测试中常用的一种技术,它将输入和输出的可能值划分为几个等价类,从而减少测试用例的数量。三角形测试等价划分的一个经典案例,在Python中可以通过以下方式实现。 首先,我们需要定义一个函数来判断给定的三个边长是否可以构成一个三角形。 ```python def is_triangle(a, b, c): if a <= 0 or b <= 0 or c <= 0: return False if a + b <= c or a + c <= b or b + c <= a: return False return True ``` 函数中,我们首先判断边长是否大于0,因为三角形的边长不能为负数或零。然后,我们判断任意两边之和是否大于第三边,因为两边之和必须大于第三边才能构成三角形。 接下来,我们可以使用等价划分的思路,根据给定的输入值划分为不同的等价类,并选择代表性的测试用例进行测试。 例如,我们可以将等边三角形、等腰三角形和一般三角形分为三个类别。 ```python # 等边三角形测试用例 assert is_triangle(3, 3, 3) == True # 等腰三角形测试用例 assert is_triangle(4, 4, 5) == True # 一般三角形测试用例 assert is_triangle(3, 4, 5) == True ``` 对于等边三角形,每条边的长度都相等;对于等腰三角形,两条边的长度相等;对于一般三角形,每条边的长度都不相等。 此外,还需要选择一些无效的测试用例进行测试,例如,边长为0、边长为负数、两边之和小于第三边等情况。 ```python # 边长为0的测试用例 assert is_triangle(0, 3, 4) == False # 边长为负数的测试用例 assert is_triangle(-1, 2, 3) == False # 两边之和小于第三边的测试用例 assert is_triangle(1, 1, 3) == False ``` 通过以上测试用例的执行,我们可以验证函数is_triangle的正确性,并对三角形的等价类进行了充分的测试。 ### 回答3: 测试软件测试中的一种方,它通过不考虑内部结构和实现细节,仅仅关注输入和输出的关系来进行测试等价测试测试中的一种技术,将测试用例划分等价类,每个等价类代表了一组具有相同功能和行为的输入。在等价测试中,我们通过选择典型的测试用例来代表每个等价类,以尽可能高效地覆盖系统的各种情况。 以三角形的判定为例,我们可以将输入分为三个等价类:等边三角形、等腰三角形和普通三角形。对于等边三角形,它的三条边长均相等,而等腰三角形则是两条边长相等,普通三角形则是三条边长都不相等。 在Python中,我们可以编写一个函数来判断给定三条边的三角形类型。函数的输入是三个边长,输出是一个字符串,表示三角形的类型。 代码示例: def classify_triangle(a, b, c): if a == b == c: return "等边三角形" elif a == b or b == c or a == c: return "等腰三角形" else: return "普通三角形" 通过以上代码,我们可以通过传入三个边长来判断三角形的类型。例如,classify_triangle(3, 3, 3)将返回"等边三角形",classify_triangle(3, 3, 4)将返回"等腰三角形",而classify_triangle(3, 4, 5)将返回"普通三角形"。 这样,我们可以利用等价测试的思想,选择代表每个等价类的测试用例进行测试,以验证函数的正确性。比如,我们可以选择(3, 3, 3),(3, 3, 4)和(3, 4, 5)作为代表性测试用例,分别测试等边三角形、等腰三角形和普通三角形的情况。

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值