• 软件测试技术
  • 软件测试博客
  • 软件测试视频
  • 开源软件测试技术
  • 软件测试论坛
  • 软件测试沙龙
  • 软件测试资料下载
  • 软件测试杂志
  • 软件测试人才招聘
    暂时没有公告

字号: | 推荐给好友 上一篇 | 下一篇

使用组合改进软件测试用例的生成

发布: 2010-12-17 09:42 | 作者: 不详 | 来源: 领测测试网采编 | 查看: 72次 | 进入软件测试论坛讨论

领测软件测试网

  { 0, 1 }{ 1, 2 }

  { 0, 2 } { 1, 3 }

  { 0, 3 } { 2, 3 }

  正如我所说的,组合在软件测试自动化开发、管理等的方方面面有着非常重要的作用。虽然组合背后的数学概念是古老而艰深,我最近发现,从一般意义上来说,组合 的概念并没有被软件工程师们很好地理解,同时,那些可以在 Internet 上获得的与组合有关的代码例子多半都是非常低效的,或者在许多情况下,简直就是错误的。

  组合

  数学组合的三个基本操作如 Figure 2 所示。输出告诉你当 n = 4,k = 2 时,有六种组合:

  { 0, 1 } { 1, 2 }

  { 0, 2 } { 1, 3 }

  { 0, 3 } { 2, 3 }

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

  稍微细致地考察这些例子,你可以看到组合有两个重要的特性:条目的总数(数学上通常用 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 }。

  一个组合类

延伸阅读

文章来源于领测软件测试网 https://www.ltesting.net/

62/6<123456>

关于领测软件测试网 | 领测软件测试网合作伙伴 | 广告服务 | 投稿指南 | 联系我们 | 网站地图 | 友情链接
版权所有(C) 2003-2010 TestAge(领测软件测试网)|领测国际科技(北京)有限公司|软件测试工程师培训网 All Rights Reserved
北京市海淀区中关村南大街9号北京理工科技大厦1402室 京ICP备10010545号-5
技术支持和业务联系:info@testage.com.cn 电话:010-51297073

软件测试 | 领测国际ISTQBISTQB官网TMMiTMMi认证国际软件测试工程师认证领测软件测试网