专利名称:一种主从多节点混合下载测试方法
技术领域:
本发明涉及网络领域,其特别涉及网络下载技术,具体的讲是一种主从多节点混合下载测试方法。
背景技术:
目前在软件下载测试中,存在一种下载方案——主从节点下载方案,这种方案是一个主节点计算机对多个从节点计算机进行文件下载,文件下载到各个从节点后,各个从节点自动复位,主节点相当于文件下载的server端,通常为一计算机终端,提供轮流下载文件到从节点的功能;从节点文件下载的接收端,通常为一计算机终端,提供接收文件的功能。目前存在着各个从节点的软件不完全一样,并且各个从节点的排列是随机的,但是根据下载方案,下载时根据从节点的排列顺序从序号小的节点开始进行文件下载,但是如果这些从节点中如果存在有一些节点的属性相同,并且所下载的文件也相同,根据下载方案就会对这些相同的节点同时进行下载,比较常见的是有6个从节点的情况,如果这6个从节点的属性完全一样,下载时所有的从节点同时进行下载,但是如果这6个从节点的属性都不一样,下载时从序号小的依次轮流下载,直到把所有的从节点下载完毕为止。比如6个从节点依次是ABCDEF,那么是先下载A,然后下载B,...下载F。如果是ABCABC,先同时下载两个A,然后同时下载2个B,然后同时下载2个C,就把所有的下载完毕。
测试过程中我们发现,由于从节点的属性不完全一致,往往导致下载会出现一些问题,比如,A下载结束后开始下载B时,有时候可能会导致失败,从而导致部分从节点不能一次下载流程中都下载成功。由于从节点的属性以及排列位置的不确定性,往往会出现测试不充分的现象,一种排列能够下载成功,但是换成另外一种排列就会下载失败,出现这种问题主要时缺乏一定的理论依据,导致了测试的不完备性。
根据主从节点文件下载的策略,如果要充分的对从节点的各种情况进行充分的测试,就必须对从节点的全排列进行下载测试,我们以6从节点为例,这样需要测试的次数为P66=6!=720]]>次。该方案不仅工作量大,而且发现问题效率极低。
发明内容
本发明的目的在于,提供一种主从多节点混合下载测试方法,为了满足充分测试由于多节点属性不同所带来的一些潜在问题,解决目前测试中的一些盲目性,减小工作量同时有效的测试下载中存在的问题。
本发明的技术方案为一种主从多节点混合下载测试方法,其特征在于,由多个从节点计算机从主节点计算机下载文件时,由进行下载测试的从节点计算机把所有属性相同,并且下载的文件也相同的从节点计算机划分为一个逻辑单元,从所有不同的n个逻辑单元中按照Cn2的方法抽出2个逻辑单元进行全排列,形成至少一个二元组,并进行两单元之间的下载测试,直到完成对所有两两不同逻辑单元之间的测试,这样所需的测试次数就为Cn2P22,其中n为逻辑单元数。
如果只存在一个从节点计算机,或从节点计算机的下载属性都相同,则该下载的测试次数为1。
本发明方法还包括以下步骤A.列出所有二元组合的组合情况,形成N*(N-1)的矩阵M(N-1)×N,其中N为单元个数,矩阵的每个元素为二元组,并且矩阵每一行的(N-1)个元素均为首单元相同的二元组;B.选择矩阵中没有被标记过的第i行第j列的二元组M[i][j]的二元组作为起始二元组,标记该二元组,寻找二元组M[x][y],该二元组M[x][y]的首单元与该二元组M[i][j]尾单元相同,并且该二元组M[x][y]的尾单元没有在二元组M[i][y]中出现过,并且没有被标记过,记录下该两个二元组合并成的一多元组,并标记该二元组M[x][y],其中所述的合并多元组是指二元组M[i][j]在前,把二元组M[x][y]的尾单元接于二元组M[i][j]末尾而形成多元组;C.寻找首单元与合并后多元组的尾单元相同,尾单元没有在多元组中出现过的,并且没有被标记过的二元组,合并该多元组和二元组为一新的多元组,并且标记在本步骤中找到的二元组;D.重复步骤C,直到满足要求的二元组全部标记,并且以M[i][j]为起始二元组的多元组合并完毕;E.重复步骤B、C、D,直到所有的二元组均被标记,从而得出具有多个起始二元组的多元组和至少一个二元组。
所述的尾单元没有在多元组或二元组中出现过是指同一个单元只能在多元组或二元组中出现一次。
所述的起始二元组M[i][j]中的i=0,且j=0。
所述的起始二元组的选择顺序为从矩阵的第0行0列开始,按列的顺序纵向选取没有被标记过的起始二元组。
所述的寻找二元组的顺序为从矩阵的第0行0列开始,按列的顺序纵向选取没有被标记过的二元组。
在记录下的多元组和二元组中查找是否存在除了多元组1或二元组1的首单元与另一个多元组2或二元组2的尾单元相同外,别的单元均不相同;如果存在则合并多元组和二元组。
所述从节点计算机的个数可以为任意的正整数。
本发明的有益效果在于,能够充分的对从节点进行测试,解决了由于多节点属性不同所带来的一些潜在问题,避免测试的盲目性,并且减小了测试的工作量,提高了工作效率。
图1为本发明方法流程图。
具体实施例方式
下面结合附图及图表说明本发明的具体实施方式
。
假设有6个从节点计算机从主节点计算机下载时,比如这些节点计算机是ABACAB,其中每一个字母代表一台网络中的从节点计算机,进行下载测试的从节点计算机把所有相似的从节点计算机划分在一个单元内,这些节点就为AAABBC,在所有不同的单元中根据排列组合的原理抽出2个单元进行全排列,形成二元组,组合如下AAABBBBAAAAAACCAAABBCCBB根据上面的排列组合情况进行两单元之间的下载测试,测试先AAA从节点计算机下载对BB从节点计算机后下载的影响,再测试先BB从节点计算机下载对AAA从节点计算机后下载的影响,再测试先从节点计算机AAA下载对C从节点计算机后下载的影响,测试先C从节点计算机下载对AAA从节点计算机后下载的影响,测试先BB从节点计算机下载对C从节点计算机下载的影响,测试先C从节点计算机下载对BB从节点计算机后下载的影响,直到完成对所有两两不同单元之间的测试,这样所需的测试次数就为C32P22,其中3为单元数,下面表1是从节点计算机个数为6单元数为6-1的本发明方法的测试次数。
表1本发明二元组的测试次数表 对以上发明方法还可以进行进一步的优化,如图1所示,可以认为属性相同并且下载文件也相同的从节点计算机可以看作是一个单元,上面的从节点计算机序列AAABBC可以看作为从节点计算机个数为6,ABC三个单元,分别列出这三个单元排列组合的二元组矩阵,ABACBABCCACB]]>现从AB开始作为起始二元组,标记该二元组,查找一个首单元与AB尾单元具有相同的二元组,在本例中只有BA和BC,不能选择BA,因为BA二元组的尾单元出现了起始二元组AB中的A,所以只能选择二元组BC,把二元组AB与二元组BC合并,去掉二元组BC与二元组AB重复的单元B,得到新的多元组ABC;下一个起始二元组选择为BA,标记二元组BA,首单元与BA尾单元具有相同的二元组为AB和AC,不能选择AB,因为二元组AB已经被标记过,所以只能选择二元组AC,标记AC,合并成新的多元组BAC;下一个起始二元组为CA,标记该二元组,查找一个首单元是A的没有被标记过的二元组,但是现在的矩阵中不存在满足条件的二元组,所以只能单独标记二元组CA;下一个起始二元组为CB,标记该二元组,查找一个首单元是B的没有被标记过的二元组,但是现在的矩阵中不存在满足条件的二元组,所以只能单独标记二元组CB;至此完成了对二元组的优化,现在的测试组合为ABCBACCACB与二元组的测试次数6相比有所减少,是对二元组优化方案的进一步优化。
下面给出从节点计算机数为6,单元数为4的实施例,从节点计算机的组合为ABBCCD,按照划分单元得概念把ABBCCD划分为A、B、C、D,4个单元,它排列组合的二元组矩阵为ABACADBABCBDCACBCDDADBDC]]>横向搜索法先找出二元组AB作为起始二元组,标记AB,找出以单元B作为首单元的没有标记过并且尾单元没有再AB中出现过的二元组,BC或BD,选择二元组BC,并标记BC,合并AB与BC,记录下形成的新多元组ABC,找下一个以单元C作为首单元的二元组,二元组CA和CB中的尾单元在多元组ABC中都出现过,所以只能选择CD,标记CD,合并二元组CD与多元组ABC为ABCD,该多元组包含了从节点计算机的所有单元,所以完成一组测试;下一个以二元组AC为起始二元组,标记AC,选择首单元为C的二元组CA和CB,由于二元组CA中的尾单元含有A单元与起始二元组AC重复,所以只能选择二元组CB,标记CB,合并二元组AC和CB为多元组ACB,同理查找B为首单元的二元组BD,标记二元组BD,合并多元组ACB与二元组BD为ACBD,这样该多元组中包括了所有的单元,所以完成了一组测试;下一个起始二元组选择AD,标记AD,并查找一个以D作为首单元的二元组DB,标记DB,合并AD与DB为ADB,由于以B作为首单元的二元组BA含有为单元A所以不能选择,又由于以B作为首单元的二元组都已经被标记过了,所以查找无法继续下去,中断查找并且该多元组ADB就作为一组测试;下一个起始二元组BA没有相应的二元组与之形成多元组,所以只标记BA,二元组BA就作为一组测试;同理,二元组CA、DA、DC也是一样,只单独标记CA、DA、DC作为一组测试;最后合并生成的多元组和二元组的首单元与尾单元是否有相同的,其中,二元组CA和二元组DC合并,形成多元组DCA;这些多元组与二元组的组合形成了全部完整的测试ABCDACBDDCAADBBADA这种多元组合的测试次数为6,比单纯的二元组合的测试次数少,并且如果起始二元组的选择顺序按照纵向列顺序,即,纵向搜索法先找出二元组AB作为起始二元组,标记AB,找出以单元B作为首单元的没有标记过并且尾单元没有再AB中出现过的二元组,BC或BD,选择二元组BC,并标记BC,合并AB与BC,记录下形成的新多元组ABC,找下一个以单元C作为首单元的二元组,二元组CA和CB中的尾单元在多元组ABC中都出现过,所以只能选择CD,标记CD,合并二元组CD与多元组ABC为ABCD,该多元组包含了从节点计算机的所有单元,所以完成一组测试;下一个以二元组BA为起始二元组,标记BA,选择首单元为A的二元组AC和AD,选择二元组AC,标记AC,形成新的多元组BAC,以C作为首单元的二元组的尾单元都在多元组BAC中出现过,所以BAC就为一组测试;下一个起始二元组选择CA,标记CA,并查找一个以A作为首单元的二元组AD,标记AD,合并CA与AD为多元组CAD,以D作为首单元的二元组DA和DC都在多元组CAD中出现过,所以选择二元组DB,标记DB,并与多元组CAD合并形成新的多元组合CADB,由于该多元组合包括了所有的单元,所以该多元组合为一测试组合;下一个起始二元组为DA,标记DA,但是由于以A作为首单元的二元组都已经被标记过了,所以查找无法继续下去,中断查找并且该二元组DA就作为一组测试;按照列的顺序下一个作为起始的是二元组CB,标记CB,并与二元组BD相结合成多元组CBD作为一组测试;下一个起始二元组DC没有相应的二元组与之形成多元组,所以只标记DC,二元组DC就作为一组测试;最后列出来的多元组和二元组包括ABCDBACCADBDACBDDC经过查找把列出的首单元与尾单元相同并且彼此间不存在别的相同单元的二元组和多元组相合并,即,二元组DA与多元组CBD相合并,形成如下的测试组合ABCDBACCADBCBDADC
这种多元组合的测试次数为5,类似6个从节点计算机的测试次数如下表所示。
表2 6个从节点计算机的测试次数表
表3 6个从节点计算机多单元测试组合表
同样,不仅仅6个从节点计算机的情况适合本发明所述的方法,并且对于其它多个从节点计算机的情况也适合本发明所述的方法,下面是4个从节点计算机采用本发明二元组合的方法和多元组合的进一步优化方法的测试次数表和测试组合表。
表4 4个从节点计算机的测试次数表
表5 4个从节点计算机多单元测试组合表
下面是8个从节点计算机的测试次数表和测试组合表。
表6 8个从节点计算机的测试次数表
表7 8个从节点计算机多单元测试组合表
从以上的实施例可以看出,无论节点的个数,只要按照本发明所述的方法对节点测试的优化都能够达到减少测试次数的效果,并且减小了测试的工作量,提高了工作效率以上具体实施方式
仅用于说明本发明,而非用于限定本发明。
权利要求
1.一种主从多节点混合下载测试方法,其特征在于,由多个从节点计算机从主节点计算机下载文件时,由进行下载测试的从节点计算机把所有属性相同,并且下载的文件也相同的从节点计算机划分为一个逻辑单元,从所有不同的n个逻辑单元中按照Cn2的方法抽出2个逻辑单元进行全排列,形成至少一个二元组,并进行两单元之间的下载测试,直到完成对所有两两不同逻辑单元之间的测试,这样所需的测试次数就为Cn2P22,其中n为逻辑单元数。
2.根据权要求1所述的方法,其特征在于,如果只存在一个从节点计算机,或从节点计算机的下载属性都相同,则该下载的测试次数为1。
3.根据权要求1所述的方法,其特征在于还包括如下步骤A.列出所有二元组合的组合情况,形成N*(N-1)的矩阵M(N-1)×N,其中N为单元个数,矩阵的每个元素为二元组,并且矩阵每一行的(N-1)个元素均为首单元相同的二元组;B.选择矩阵中没有被标记过的第i行第j列的二元组M[i][j]的二元组作为起始二元组,标记该二元组,寻找二元组M[x][y],该二元组M[x][y]的首单元与该二元组M[i][j]尾单元相同,并且该二元组M[x][y]的尾单元没有在二元组M[i][j]中出现过,并且没有被标记过,记录下该两个二元组合并成的一多元组,并标记该二元组M[x][y],其中所述的合并多元组是指二元组M[i][j]在前,把二元组M[x][y]的尾单元接于二元组M[i][j]末尾而形成多元组;C.寻找首单元与合并后多元组的尾单元相同,尾单元没有在多元组中出现过的,并且没有被标记过的二元组,合并该多元组和二元组为一新的多元组,并且标记在本步骤中找到的二元组;D.重复步骤C,直到满足要求的二元组全部标记,并且以M[i][j]为起始二元组的多元组合并完毕;E.重复步骤B、C、D,直到所有的二元组均被标记,从而得出具有多个起始二元组的多元组和至少一个二元组。
4.根据权要求3所述的方法,其特征在于,所述的尾单元没有在多元组或二元组中出现过是指同一个单元只能在多元组或二元组中出现一次。
5.根据权要求3所述的方法,其特征在于,所述的起始二元组M[i][j]中的i=0,且j=0。
6.根据权要求3所述的方法,其特征在于,所述的起始二元组的选择顺序为从矩阵的第0行0列开始,按列的顺序纵向选取没有被标记过的起始二元组。
7.根据权要求3所述的方法,其特征在于,所述的寻找二元组的顺序为从矩阵的第0行0列开始,按列的顺序纵向选取没有被标记过的二元组。
8.根据权要求3所述的方法,其特征在于,在记录下的多元组和二元组中查找是否存在除了多元组1或二元组1的首单元与另一个多元组2或二元组2的尾单元相同外,别的单元均不相同;如果存在则合并多元组和二元组。
9.根据权要求1、3、6、8所述的方法,其特征在于,所述的从节点计算机的个数可以为任意的正整数。
全文摘要
一种主从多节点混合下载测试方法,特别涉及网络下载技术。在下载中,由于从节点的属性以及排列位置的不确定性,往往会导致下载失败,完备的测试又会导致测试工作的复杂,本发明提供了一种方法,把所有相似的从节点划分在一个单元内,在所有不同的单元中根据排列组合的原理抽出2个单元进行全排列,形成至少一组二元组,进行两单元之间的下载测试,直到完成对所有两两不同单元之间的测试,这样所需的测试次数就为C
文档编号H04L12/26GK1744530SQ20041007422
公开日2006年3月8日 申请日期2004年9月3日 优先权日2004年9月3日
发明者李传海 申请人:华为技术有限公司