从这个例子你可以看到我需要建立某种组合,给定条目总数和子集大小来计算全部组合元素的总数,并且确定某个特定组合元素的后继者以便我能列出所有组合元素。

  稍微细致地考察这些例子,你可以看到组合有两个重要的特性:条目的总数(数学上通常用 n 表示)和子集的大小(通常用 k 表示)。数学组合可以是 0 基 (0-based)或 1 基(1-based)的。我将在这个专栏中通篇使用 0 基计数制,并且分别使用 n 和 k 表示条目总数和在子集中的 条目数。

  在我的例子中迄今我已列出的组合元素用的是词典顺序(有时称为字典顺序)。对于数学组合来说,如果以整数来说明,这意味着元素是用增序列出。举个例子,如果 n = 5,k = 3,第一个元素是{ 0, 1, 2 },那么紧接着的元素是{ 0, 1, 3 },因为12后面是13。还要注意某一组合元素的原子(单个整数)也呈现增序 形式,所以这里有一种双重排序状态。

  组合的一个重要的函数是对于特定 n 和 k 值的组合元素总数。这个函数大多被称为 Choose。因此在第一个例子中有 5 个人名的 情况下,我将其写成 Choose(5,3) = 10,也就是一次从5个条目中选出3个,那么共有10个组合元素。你可能会碰到另外一些标识和命名 Choose 函数的方法,特别是在数学论文中,但 本文我总是使用 Choose。

  组合中的 n 和 k 与 Choose 函数中的 n 和 k 是非常容易混淆的。n = 7,k = 4 的数学组合(在7个条目中一次取4个) ,其中有象 { 0, 3, 4, 6 } 这样的元素,而 Choose(7,4) 函数则返回 35,这是从7个条目中一次取4个的组合元素总数。

  组合经常会和排列搞混淆,排列是一组条目所有的可能排列,这时顺序是重要的。如果说你有姓名 Alex、Bill、Cris 和 Doug。用词典顺序排列的 话,前三个排列是:{ Alex, Bill, Cris, Doug },{ Alex, Bill, Doug, Cris } 和 { Alex, Cris, Bill, Doug }。

  一个组合类

  数学组合非常适宜用一个类来实现。你需要数据成员存储 n 的值(条目总数),k(每个子集元素的条目个数)的值,以及一个数组来保存每个组合元素的“原子”。Figure 3 是表述某个Combination(组合)对象的基本代码和创建该组合对象第一个词典元素的构造函数,以及将它表示为一个字符串的代码。我决定使用C#,但你可以 轻松地将它改编为你所选的任意一种基于 .NET的编程语言。

  我将这个代码放入类库(Class Library)编译后,我可以给它增加一个工程选项参数(Project Reference),并从 .NET 控制台 程序调用它,就象我在此所做的这样:

  Combination c = new Combination(5,3);Console.WriteLine("/nCombination c(5,3) is initially " + c.ToString());

  下面的输出将显示在屏幕上:

  Combination c(5,3) is initially { 0 1 2 }

  当组合类的构造函数进行如下调用时:

  Combination c = new Combination(5,3);
我在内存中获得一个对象,它表示五个条目中一次取三个的最初的词典排序的数学组合元素。

  构造函数代码创建最初的组合元素时是相当简单的。两个代表条目总数和子集大小的参数被分别存储在数据成员 n 和 k 中。因为我处理的数值可能会很大, 所以我决定使用 C# 的 long 类型代替int 类型。如果我愿意的话,我可以用 ulong 类型(无符号 long)获得双倍的数值范围。我用子集的大小 k 来为一个 long 类型的命名数组分配空间,然后用 0 到 k-1 范围的整数填充每个数据单元。

转载于:https://www.cnblogs.com/junzhongxu/archive/2008/07/14/1242610.html

使用组合改进软件测试用例的生成2相关推荐

  1. 软件测试用例自动生成技术,一种软件测试用例自动生成方法专利_专利申请于2017-09-08_专利查询 - 天眼查...

    2.如权利要求1所述的方法,其特征在于,在步骤4之后还包括: 步骤5:在基于节点号串生成的测试用例中,检查任意两个接口参数的节点号是否被生 成的测试用例所覆盖,如果全部覆盖,则输出所有的节点号串作为最 ...

  2. 软件测试 前置条件是什么意思,软件测试用例生成中前置条件分析.doc

    软件测试用例生成中前置条件分析 软件测试用例生成中前置条件分析 摘 要:在实践的基础上总结了测试用例生成中的前置条件,进行了分类和参数化,并将研究结果应用于测试用例自动生成工具,生成了软件可靠性测试用 ...

  3. 软件测试用例编写规范文档,模板都给你了我看谁还不会写测试用例

    目录 前言 一 概述 1.1目的 1.2使用范围 二 测试用例编写原则 2.1系统性 2.2连贯性 2.3全面性 三 测试用例设计方法 3.1 等价类划分法: 3.2 边界值分析法: 3.3 因果图法 ...

  4. 软件测试用例项目写作,通用测试用例写作方法

    测试用例工作过程 软件测试用例设计和软件测试用例写作 软件测试用例设计:从设计层面考虑(功能性.可用性.安全性等方面): 软件测试用例写作:指的是软件测试用例的写作规范(格式.标识的命名规范等) 软件 ...

  5. 软件测试用例设计方法(一)

    目录 软件测试用例设计之等价类划分法 一.等价类划分法的定义 二.等价类划分法的术语 三.等价类划分原则 四.实例演示(三角形问题和档案管理系统问题) 软件测试用例之边界值分析法 一.边界值分析法定义 ...

  6. 手机软件测试用例设计

    实例讲解手机软件测试用例设计 实例讲解手机软件测试用例设计,测试伴随在整个手机软件开发的各个阶段中,测试质量的高低直接关系到手机软件的可用性,友好性,可靠性.可以说,测试环节是手机软件开发的重要环节, ...

  7. 手机软件测试用例设计实践

    一.测试用例设计概述 测试伴随在整个手机软件开发的各个阶段中,测试质量的高低直接关系到手机软件的可用性,友好性,可靠性.可以说,测试环节是手机软件开发的重要环节,是整个开发过程的"中枢神经& ...

  8. 软件mil测试,软件测试用例实例(非常详细).doc

    软件测试用例实例(非常详细).doc 完美WORD格式 1.兼容性测试在大多数生产环境中,客户机工作站.网络连接和数据库服务器的具体硬件规格会有所不同.客户机工作站可能会安装不同的软件例如,应用程序. ...

  9. 软件测试怎么测边界值,软件测试用例设计之边界值分析法(示例代码)

    软件测试用例设计之边界值分析法 一.定义 对输入或输出的边界值进行测试的一种黑盒测试方法.通常边界值分析法是作为对等价类划分法的补充,其测试用例来自等价类的边界 二.与等价类划分的区别 边界值分析法首 ...

最新文章

  1. 统一代码风格工具 editorConfig
  2. 快速接入 GitHub、QQ 第三方登录方式
  3. Linux驱动编程 step-by-step (二) 简单字符设备驱动
  4. 人生哲理 |南怀瑾最经典的50句话
  5. GPU Gems1 - 14 透视阴影贴图(Perspective Shadow Maps: Care and Feeding)
  6. 如何实现对象的深copy?
  7. 从WebRtc学习RTCP协议
  8. java 字符串数组转int数组_java怎么把字符型数组转换为int型?
  9. python实现目标识别_Python10行代码实现目标检测
  10. NVMe | 热插拔
  11. 互融云工业品电商系统上线:科技助力互联网与实体经济深度融合
  12. 读书笔记:《遇见未知的自己》
  13. git文件夹不区分大小写_Git区分大小写并且您的文件系统可能不区分大小写-Windows上奇怪的文件夹合并
  14. usb4java android,桌面java应用程序通过USB复制和传输android数据
  15. 安装MySQL---已删除服务,却显示服务已存在
  16. LCD1602与DHT11温湿度的使用
  17. 多个word vba批量替换文字(一个文件夹)
  18. cics oracle xad_CICS + Linux + Oracle 环境搭建.doc
  19. Linux系统下安装 pycharm2022社区版 步骤记录
  20. 高并发系统架构设计之实战篇34:计数系统设计之计数器设计

热门文章

  1. c hello world
  2. oracle在linux上使用裸设备,在linux下构建基于LVM的裸设备数据库
  3. 23、90秒快速“读懂”STP(生成树)工作原理
  4. ESXi 6.7 的https服务挂掉处理方法 503 Service Unavailable (Failed to connect to endpoint: [N7Vmacore4Http16Loc
  5. 浅谈数据库发展史和 OceanBase 的诞生
  6. python获取sap数据_python 连接 SAP HANA 数据库
  7. 英语影视台词---无敌破坏王2大脑互联网(3)((Ralph)我们去喝根汁汽水吧)...
  8. 截取数组中的第i个元素,并返回截取后的结果
  9. Java程序员的级别定义: 对号入座, 你在哪个阶段心里要有点数
  10. dockerfile 创建自定义的tomcat服务