用组合提高软件测试用例的生成(2)

发表于:2014-10-08来源:uml.org.cn作者:山天大畜(cnblogs)点击数: 标签:测试用例
图1 Combinations Demo 贴上截图是让你能够跟上我思路的最好方式。图1是一个 Windows @-based应用程序的截图,它演示了组合的应用。正如你所看见的,组合就是

  图1 Combinations Demo

  贴上截图是让你能够跟上我思路的最好方式。图1是一个Windows@-based应用程序的截图,它演示了组合的应用。正如你所看见的,组合就是一组元素的无序子集。在这个例子中我们有5个元素——Adam,Barb,Carl,Dave和Eric ——我只对3个元素的组合感兴趣。从5个元素中一次性选出3个,共有10种不同组合:

{ Adam, Barb, Carl }, { Adam, Barb, Dave }, . . . { Carl, Dave, Eric }

  注意,无序子集的意思是,{Carl,Barb,Adam}和{Adam,Barb,Carl}是等价的,两者都代表同一个子集。图1还说明了一点,在用给定的元素集合大小和子集大小生成组合时,我们还需要计算出不同组合的总数。

  数学中组合的定义是:n是从整数0到n-1的集合,从4个元素的集合中一次选取2个的6种组合即是:

{ 0, 1 }{ 1, 2 }
{
0, 2 } { 1, 3 }
{
0, 3 } { 2, 3 }

  正如我之前所说,组合在软件测试、开发、管理等各种领域中都有着很大的作用。组合在数学领域中是古典而又深刻的,但我发现有很多程序员对它的理解都不够彻底,现有网络中的一些与组合相关的代码不是写错了,就是执行效率低下。

原文转自:http://www.uml.org.cn/Test/201004214.asp