当前位置:网站首页>【软考软件评测师】基于规则说明的测试技术上篇
【软考软件评测师】基于规则说明的测试技术上篇
2022-07-30 12:48:00 【进击的横打】
【软考软件评测师】基于规则说明的测试技术上篇
基于规则说明的测试上篇
一.基于规则说明的测试技术
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强度组合等同于全组合。
边栏推荐
- 腾讯称电竞人才缺口200万;华为鸿蒙3.0正式发布;乐视推行每周工作4天半?...丨黑马头条...
- I built another wheel: GrpcGateway
- 树形dp小总结(换根,基环树,杂七杂八的dp)
- R语言使用方差分析ANOVA比较回归模型的差异、anova函数比较两个模型并报告它们是否存在显著差异(两个模型的数据相同,一个模型使用的预测特征包含另外一个模型的特征)
- Decoding Redis' most overlooked high CPU and memory usage issues
- EasyNVS cloud management platform function reconstruction: support for adding users, modifying information, etc.
- 数字化时代,寻求企业财务转型路径的最优解
- 关于香港高防IP需要关注的几个问题
- CMake库搜索函数居然不搜索LD_LIBRARY_PATH
- grep时排除指定的文件和目录
猜你喜欢
Heshu Group: Make smart cities smarter and make real life better
树形dp小总结(换根,基环树,杂七杂八的dp)
【Kaggle比赛常用trick】K折交叉验证、TTA
刷屏了!!!
MySQL【排序与分页】
New:WebKitX ActiveX :::Crack
什么是驱动程序签名,驱动程序如何获取数字签名?
一文读懂Elephant Swap,为何为ePLATO带来如此高的溢价?
js 构造函数 return 非空对象,其实例化的对象在原型上的差异
【记一个kaggle划水比赛】PetFinder.my - Pawpularity Contest 宠物预测
随机推荐
监控界的最强王者,没有之一!
C语言学习练习题:汉诺塔(函数与递归)
第42讲:Scala中泛型类、泛型函数、泛型在Spark中的广泛应用
湖仓一体电商项目(一):项目背景和架构介绍
[SCTF2019]Flag Shop
Greenplum 6.0有哪些不可错过的硬核升级与应用?
EasyNVS云管理平台功能重构:支持新增用户、修改信息等
for循环的3个表达式执行顺序
Add the device library after Vivado installation
【23考研】408代码题参考模板——链表
常见的云计算安全问题以及如何解决
C#实现软键盘的制作
MySQL【多表查询】
关于香港高防IP需要关注的几个问题
Yilian: Activating the Value Potential of Data Elements and Unleashing the Innovation Dividend of SAS SSD
自从外包干了四年,基本废了...
干货分享:小技巧大用处之Bean管理类工厂多种实现方式
R语言ggplot2可视化:使用ggpubr包的ggboxplot函数可视化箱图、width参数自定义箱图中箱体的宽度
电流电压采集模块DAM-6160
ES6 Set与Map是什么,如何使用