1 基本信息

好的测试都是基于模型的。

由于软件输入空间的无限性,使得测试人员不可能遍历软件的所有输入。其实,遍历软件的所有输入一般也是没有必要的。优秀的测试设计,往往能够从繁多的测试用例中挑选出有效的用例,用尽可能少的测试输入,覆盖尽可能多的软件需求,这离不开合适的测试模型的支持。

所谓测试模型(Test Model),是测试和测试对象的基本特征、基本关系的抽象。它是测试理论家们根据大量的实际测试应用总结出来的,能够代表某一类应用的内在规律,并对应于适合此类应用的一组测试框架性的东西。

2 组合测试模型

一种相对简单,并且应用十分广泛的模型是组合模型,具有如下特点:

1)、输出是由输入变量之间的逻辑关系决定的。

2)、输出结果不依赖于变量的先后顺序。这一特点是我们理解组合模型的关键。

对于符合组合模型的输入而言,测试用例设计时要注意:

1)、考虑输入变量的不同取值以及这些取值之间的不同组合。

2)、从应用系统中抽象出正确的逻辑表达式,不要遗漏任何一种逻辑组合关系。

在组合模型中最常用的两种测试技术分别为正交设计技术和组合覆盖测试技术。

2.1 正交设计技术介绍:

正交实验设计方法:依据Galois理论,从大量的(实验)数据(测试例)中挑选适量的、有代表性的点(例),从而合理地安排实验(测试)的一种科学实验设计方法。

采用正交设计法设计测试用例主要包括以下步骤:

确定影响因素。这里的影响因素指对软件运行结果有影响的软件运行条件,一般情况下是指软件的输入以及其它软件运行的环境。这些因素可以通过对软件需求规格、软件概要设计、软件详细设计等文档分析而获得。

确定因素的取值范围或集合。因素的取值范围指软件输入的取值范围或集合以及可用的硬件资源。同样,要通过分析软件需求规格等文档获取这些信息。

确定每个因素的水平。根据因素的取值范围或集合,采用等价类划分、边界值分析等软件测试技术,在每个因素的取值范围或集合里挑选出有效等价类、无效等价类、正好等于、刚刚大于或刚刚小于边界值等有代表性的测试点。例如:对于用下拉框进行输入的字段,下拉框的所有取值都构成了该因素的水平集合。

选择正交表。根据确定的因素和水平,选择合适的正交表。如果没有合适的正交表可用或需要的测试用例个数太多,则要对因素和水平进行调整。

设计测试用例。

2.2 组合覆盖测试技术介绍:

组合覆盖测试技术是一种设计测试用例的方法,它利用组合产生能够覆盖规定组合的测试用例。根据覆盖程度的不同,可以分为单因素覆盖、成对组合覆盖、三三组合覆盖等。这种方法力求用尽可能少的测试用例,覆盖尽可能多的影响因素。

下面重点讨论成对组合覆盖测试用例的生成方法。

基本用例选择方法:首先确定出1个基本测试用例,基本用例由每个因素中最重要的水平值组合而成。根据预先定义的标准,如最常用的、最简单的、最小的、最可能使用的等找出最重要的水平值。

成对组合(Pair-Wise),又称两两组合、对对组合,它是将所有因素的水平按照两两组合的原则而产生的。成对组合覆盖的概念是Mandl于1985年在测试Ada编译程序时提出的。Cohen等人应用成对覆盖测试技术对Unix中的“sort”命令进行了测试,测试结果:模块覆盖率93.5%,判断覆盖率为83%。由此可见,运用成对组合覆盖技术设计出的测试用例具有经济有效的特点。

假设某功能有3个因素(或者叫输入项),每个因素(输入项)有2个不同的取值,分别为

【A1,A2】、  【B1,B2】 、 【C1,C2】

引入成对组合的概念之后,我们可以用成对组合集合来表示通常的测试用例集。对于某个给定的测试用例,它能覆盖一定数量的成对组合元素。例如:

测试用例(A1,B1,C1)覆盖了(A1,B1),(A1,C1),(B1,C1)3个成对组合元素。

测试用例(A1,B1,C2)覆盖了(A1,B1),(A1,C2),(B1,C2)3个成对组合元素。

所谓测试设计,,就是设计出一组测试用例以依之对软件进行测试;显然,不同的测试用例集所覆盖的成对组合元素数量是不同的。在同样大小的测试用例集条件下,覆盖的成对组合元素数量越多,表明该测试用例集的测试效果越好。因此,如何选择测试用例集是一个值得研究的问题。对于上例,有8个成对组合元素需要覆盖,如何从8个候选测试用例中挑选出最少的测试用例,达到100%的成对组合覆盖,选择方案如下:

【A1,B1,C2】、【A1,B2,C1】、【A2,B1,C1】、【A2,B2,C2】

通过上面的论述和举例,相信大家已经对这两种模型有了一定的认识,并对每种模型适合什么样的测试需求也有了初步了解。

组合测试法是什么 软件测试,组合测试模型方法相关推荐

  1. 组合测试法是什么 软件测试,组合测试法中的全对偶测试法

    在测试设计过程中,大家都会遇到很多变量进行组合的情况,对相互组合的两个或更多变量进行的测试活动就是组合测试,一般情况下都是使用组合测试法,但这种情况很多测试人员研究得不够深入.测试人员需要开发或了解组 ...

  2. 软件测试整理一:测试基础知识以及开发、测试模型、按照开发阶段进行测试

    文章目录 一.基础概念 1.什么是软件测试 2.软件测试的目的 3.软件测试的原则 4.软件测试的分类 4.1 按照开发阶段分类 4.2 按照软件特性分类 4.3 按照测试技术分类 4.4 按照测试运 ...

  3. 软件测试工程师-开发与测试模型

    开发与测试模型 1.开发模型--瀑布模型 优点:开发阶段,各个阶段比较清晰:强调早期计划及需求调查:适合稳定需求的产品开发. 改良:每个阶段都可以融入小的迭代工作. 2.开发模型--快速原型模型 实现 ...

  4. 软件测试入门之测试模型

    1."V型"测试模型 主要特点:一种古老的瀑布模型,反映了实际和测试之间的关系. 局限:仅仅把测试过程作为编码之后的一个阶段,忽视了测试对需求分析,系统设计的验证,如果前面设计错误 ...

  5. 总结笔记 || 软件测试的基础理论(测试模型+测试用例+软件缺陷+测试总结......

    参考学习资料 书籍:<软件测试>[美] 罗恩 佩腾(Ron Patton)著 张小松 王钰 曹跃 等译 机械工业出版社 视频: ① B站 - 软件测试全套白嫖:零基础转行精品课,自学完拿不 ...

  6. 软件测试里的几种测试模型: V模型,W模型,H模型

    文章目录 一:V模型 1. V模型的优点 2. v模型的缺点 二:W模型 1. W模型的优点 2. W模型的缺点 三:H模型 1. H模型的优点: 2. H模型的缺点 四. 总结 一:V模型 V模型本 ...

  7. 【组合数学】排列组合 ( 多重集组合数示例 | 三个计数模型 | 选取问题 | 多重集组合问题 | 不定方程非负整数解问题 )

    文章目录 一.多重集组合示例 二.三个计数模型 排列组合参考博客 : [组合数学]基本计数原则 ( 加法原则 | 乘法原则 ) [组合数学]集合的排列组合问题示例 ( 排列 | 组合 | 圆排列 | ...

  8. 测试——开发模型(瀑布模型,螺旋模型,增量,迭代,敏捷)和测试模型(V模型,W 模型),软件开发生命周期与软件测试生命周期的对比

    目录: 软件测试生命周期与软件开发生命周期 开发模型 2.1 瀑布模型 2.2 螺旋模型 2.3 增量 和 迭代 2.4 敏捷 测试模型 3.1 V模型 3.2 W模型 1. 软件开发生命周期与软件测 ...

  9. 软件测试、测试用例、开发模型和测试模型、瀑布模型和螺旋模型

    什么是测试用例? 王婆的九步连环计 通过重重方式测试潘金莲是否能上钩. 有具体步骤, 有预期结果, 有真实结果 步骤一:让潘金莲答应给王婆做寿衣.这是整个局的开始,不过这个步骤看似简单,用意却不小,让 ...

  10. 软件测试入门之软件开发和测试模型(面试必考)

    说明:该篇博客是博主一字一码编写的,实属不易,请尊重原创,谢谢大家! 接着上一篇博客继续往下写 :https://blog.csdn.net/qq_41782425/article/details/1 ...

最新文章

  1. python下的所有文件_python批量复制文件夹下所有文件大小
  2. 怎样修改iis 服务器日期,怎么在IIS里设置服务器端缓存时间?
  3. Android之ndk编译出现“undefined reference to method“解决办法
  4. 【渝粤教育】 国家开放大学2020年春季 1444药理学(本) 参考试题
  5. JAVA 基础之容器集合(Collection和Map)
  6. php class variable,解决关于PHP“Undefined variable”变量未定义
  7. vue-jest测试用例_用Jest快速介绍测试驱动的开发
  8. 计算机视觉论文-2021-09-10
  9. 长春理工大学计算机学院转专业,长春理工大学优秀本科学生转专业面试考核方案.PDF...
  10. 关于 CSDN 下载频道知识产权保护的声明
  11. systemstate dump 介绍
  12. We Recommend a Singular Value Decomposition
  13. Cocos2d-x 3.0 开发(四)使用CocoStudio创建UI并载入到程序中
  14. php curl获取404,php使用curl判断网页404(不存在)的方法
  15. iPhone13全系列参数对比
  16. ubuntu 安装迅雷
  17. 做到这一点,你也可以成为优秀的程序员(转)
  18. linux服务器的Gzip文件压缩方法
  19. 数据分析3 - 算法篇
  20. 第4章 数据可视化答案

热门文章

  1. Kattis- 3D Printed Statues
  2. leetcode739
  3. 算法Big O Notation
  4. matlab里支持向量机SVM实例1葡萄酒分类
  5. 谷歌浏览器SwitchyOmega插件下载安装
  6. centos7.2下安装php7.1缺少依赖包汇总(初稿)
  7. 软件设计·体系结构设计(Architectual Design)
  8. 论文笔记--DeepFool: a simple and accurate method to fool deep neural networks
  9. 我在 CMU 的八年博士生涯...
  10. 从JPG和JPEG图片获取压缩比详细教程