【软考软件评测师】基于规则说明的测试技术上篇

本文详细介绍了基于规则说明的测试技术,涵盖基本概念、测试用例集、等价类划分、分类树法、边界值法、语法测试和组合测试。重点讨论了等价类划分的定义、原则及应用,以及边界值测试的二值和三值边界测试策略。同时,文章强调了组合测试在应对输入参数组合爆炸情况下的解决方案,旨在提高测试效率并确保功能覆盖率。
摘要由CSDN通过智能技术生成

【软考软件评测师】基于规则说明的测试技术上篇

一.基于规则说明的测试技术

1)基本概念

基于规则的测试说明技术依据为软件需求规格说明,以及模型和用户需求等。
把程序看作是一个黑盒子,不考虑程序内部的控制逻辑,内部结构以及内部特征,在程序接口进行测试,检查程序功能是否按照需求规格说明书的规定正常使用,程序能够有效接收输入数据而产生正确的输出信息。

2)测试用例集

减少达到合理测试所需附加测试用例数;
告知某些类型的错误的存在或者不存在,而不是仅仅与特定测试相关的错误。

二.等价类划分

1)定义

把程序的输入域划分成若干部分,然后从每个部分中选取少数具有代表性的数据作为测试用例。
每一个代表性的的数据在测试中的作用可以等价于这一个类中的其他所有值,这就是等价类这个词的由来。

2)两种不同的情况

有效等价类与无效等价类
有效等价类:
对于程序的规格说明来说,是合理的有意义的输入数据构成的集合。利用有效等价类可以验证程序是否实现了规格说明书中所规定的功能和性能。
无效等价类:
它与有效等价类的定义刚刚好是相反的,是对于那些程序规格说明来说是不合理的或者是无意义的输入数据所构成的集合

3)划分等价类的方式

常见的划分等价类的方式有区间划分,按数值划分,按数值的集合划分,按照限制条件或者规划划分,按照处理的方式来划分。

4)划分等价类的原则

1.在输入条件规定了取值范围或值的个数的情况下,可以确立一个有效等价类和两个无效等价类(例如输入的值的范围是1-10)
2.在输入条件规定了输入值的集合或者规定了比如如何的条件的情况下,可以确立一个有效等价类,可以确立一个有效等价类和无效等价类;(例如输入条件规定输入的数字必须是偶数)
3.在输入条件是一个布尔值变量的时候,可以确定一个有效等价类和一个无效等价类;
4.在规定了数据的一组值(假定n个),并且程序要对每一个值分别处理的情况下,可确立n个有效等价类和一个无效等价类。(例如销售奖金对1,2,3名进行分别奖励)
5.在规定了输入数据必须遵守的情况下,可以确立一个有效等价类(符合规则)和若干个无效等价类(从若干个角度违反规则)。(例如输入规定必须是整数)
6.在确知已经划分的等价类当中,各元素在程序处理中的方式不同的情况下,应再将等价类进一步划分为更小的等价类。

三.分类树法

1)概念定义

它也是一种对程序的输入域进行划分子集的方法。它将输入域分割成若干个独立的分类,每个分类再根据一定的准则再次划分为类和子类,直到将整个输入域分割成一些不可再分的子类的组合为止。
每一次划分都会生成若干个独立而不重叠的类或者子类,同时还应该保证分类集的完整性,即所有的输入域都被识别,且被包括在了某个分类当中。
可以通过结点表的方式将各个叶子结点的内容结合而成测试用例,
分类树划分完毕之后,可以通过结合表的方式将各个叶子结点的内容结合而成测试用例。

2)区别与联系

分类树划分和等价类划分有很多类似的地方,但也有以下几个不同之处。分类树方法中所划分出来的类完全不相交的,而在等价类划分当中,它们某些时候也可能会重叠。

四.边界值法

边界值测试,是源于人们长期以来的测试工作经验所提出的一个关键的假设:软件的错误,更容易发生在输入域的边界或者说是在极限值的附近,而非输入域的中间部分。
边界只的选择可以分为二值边界测试和三值边界测试。

1)二值边界测试

对于二值边界测试因为每个边界选择两个输入,这些输入对应边界上的值和等价类划分边界外的增量距离;
如果有一个n变量的软件输入域,使其中一个变量取略小于最小值,最小值,正常值最大值,略大于最大值,这五个选择,其余所有的变量都取正常值;
是对每个变量都重复进行了以后,该变量n的软件输入域边界值分析会产生4n+1个测试用例。

2)三值边界测试

对于三值边界测试,因为每个边界是三个输入,这些输入对应的是边界上的,只和等价类划分边界的每一测的增量距离,尽量的距离应该定义为对应的数据类型的最小的有效值;
如果有一个n变量的软件输入域,使每个变量的取值略小于最小值,最小值,略大于最小值,正常值,最大值,略大于最大值略小于最大值这样七种选择,其余所有变量取正常值,如此对每个变量都重复进行之后,该n变量的输入域的边界值会产生6n+1个测试用例。

五.语法测试

语法模型可以表示为多个规则,其中,每个规则根据语法中的元素“序列,元素迭代,或者元素之间的选择来定义输入参数的形式。
语法测试中的测试条件应该为输入的全部或者部分语法模型。
在语法测试中,应基于两个目标来设计测试用例:

1)正面测试:

设计测试用例应以各种方式覆盖有效语法;
正面测试应该是定义语法的选项;

2)负面测试:

设计的测试用例应故意违反语法;
负面测试是已经定义的语法的变异;

六.组合测试

组合测试的目的,就是为了应对组合爆炸的情况提供一种相对合理的解决方案;
在保证错误检出率的前提之下采用较少的测试用例,他将被测软件抽象成一个受到多个参数影响的系统,并通过被测软件的参数,以及参数可取的值,按照一定的组合策略来规划测试。
当多个参数(每个参数都有大量的离散值)必须相互作用的前提之下,这种技术可以显著减少测试用例的数量,而不会影响功能的覆盖率。

1)组合测试的输入数据要求:

参与组合的参数的取值范围必须是离散的,例如,操作系统和浏览器的版本,工作日期是星期几等等;
对于取值范围连续的参数或者存在过多的取值,那么就有必要先使用其他的测试设计技术,如等价类划分,边界值等等,将一个很大的取值范围,减少为一个可控的子集;

2)组合测试的实施步骤:

1.根据测试目标,识别出所需测试的软件功能,以及影响被测软件功能的参数;
2.依据步骤一的结果,识别出每个参数的取值范围,这里的取值范围应该是离散的有限取值;如果某个参数的取值范围不符合要求,则采用其他测试技术对其进行离散化处理。
3.依据步骤一的处理,识别出参数之间的约束。分析各参数之间交互作用的强度,设计指导测试用例设计的组合强度;
4.根据步骤三之中的组合强度,采用对应的组合测试方法,生成和组合强度符合的测试覆盖项。
5.根据测试步骤4当中的组合覆盖项生成测试用例,直到每个测试覆盖项都包含在至少一个测试用例中。

3)常见的组合强度
1.单一选择

被测软件中的所有参数取值范围的任意一对有效取值至少被一个测试用例所覆盖

2.基本选择

被测软件中对于任意一个参数的两个取值,存在两个测试用例覆盖这两个取值。且其他参数选择项是相同的。

3.成对组合

被测软件当中的任意两个参数,它们取值范围当中任意一对有效取值至少被一个测试用例所覆盖。

4.全组合

被测软件当中所有参数取值范围的任意有效取值的组合至少被一个测试用例所覆盖。

5.K强度组合

在组合强度要求为K的组合当中,任意K个参数取值范围的任意有效值的组合至少被一个测试用例覆盖。
当K等于1时,K强度组合就是单一选择;
当K等于2时,强度组合就是成对组合;
当K等于所有参数的数量时,K强度组合等同于全组合。

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

进击的横打

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值