发明名称 一种动态随机测试方法
摘要 一种动态随机测试方法,它包括下列步骤:(1)将测试用例或测试对象输入域划分为若干个等价类{C<sub>1</sub>,C<sub>2</sub>,…,C<sub>m</sub>};(2)确定一个初始的测试剖面{p<sub>1</sub>,p<sub>2</sub>,…,p<sub>m</sub>},根据该剖面随机选择一个测试用例集合C<sub>i</sub>,从C<sub>i</sub>中随机选择一个测试用例并进行测试;(3)根据测试的结果,对测试剖面进行调整:若发现缺陷,则令p<sub>i</sub>=p<sub>i</sub>+ε,同时剔除发现的缺陷;若未发现缺陷,则令p<sub>i</sub>=p<sub>i</sub>-ε,ε是测试前给定的参数,同时对测试剖面其他元素进行相应修正使得p<sub>i</sub>≥0,i=1,2,…,m且<img file="200910089623.X_AB_0.GIF" wi="74" he="38" />;(4)根据调整后的测试剖面选择一个测试用例集合,从中随机选择测试用例进行测试;(5)再次根据测试的结果,对测试剖面进行调整,调整的规则同步骤(3);(6)依此类推,直到发现和剔除全部缺陷或满足其他测试终止条件。本发明原理简单、应用方便。
申请公布号 CN101620566A 申请公布日期 2010.01.06
申请号 CN200910089623.X 申请日期 2009.07.23
申请人 北京航空航天大学 发明人 蔡开元;胡海;江昌海;叶锋;郑征
分类号 G06F11/36(2006.01)I 主分类号 G06F11/36(2006.01)I
代理机构 北京慧泉知识产权代理有限公司 代理人 王顺荣;唐爱华
主权项 1、一种动态随机测试方法,其特征在于:该方法具体步骤如下:步骤一:将测试用例根据分类原则,按功能模块、覆盖率和创建时间,划分为m个等价类即{C1,C2,...,Cm},其中,{C1,C2,...,Cm}分别表示m个测试用例等价类,m表示测试用例等价类个数;步骤二:确定一个初始的测试剖面{p1,p2,...,pm},根据该剖面随机地选择一个测试用例集合Ci,从Ci中随机选择一个测试用例,作为被测对象的输入,执行测试并检查被测对象的输出结果是否符合设计要求;其中,{p1,p2,...,pm}表示初始测试剖面,Ci表示被选中的测试用例集合;步骤三:根据测试的结果,即有无发现缺陷,对测试剖面进行调整:A.若发现缺陷,则令<maths id="math0001" num="0001" ><math><![CDATA[ <mrow> <msub> <mi>p</mi> <mi>j</mi> </msub> <mo>=</mo> <mfenced open='{' close=''> <mtable> <mtr> <mtd> <msub> <mi>p</mi> <mi>j</mi> </msub> <mo>-</mo> <mfrac> <mi>&epsiv;</mi> <mrow> <mi>m</mi> <mo>-</mo> <mn>1</mn> </mrow> </mfrac> </mtd> <mtd> <mi>if</mi> </mtd> <mtd> <msub> <mi>p</mi> <mi>j</mi> </msub> <mo>&GreaterEqual;</mo> <mfrac> <mi>&epsiv;</mi> <mrow> <mi>m</mi> <mo>-</mo> <mn>1</mn> </mrow> </mfrac> </mtd> </mtr> <mtr> <mtd> <mn>0</mn> </mtd> <mtd> <mi>if</mi> </mtd> <mtd> <msub> <mi>p</mi> <mi>j</mi> </msub> <mo>&lt;</mo> <mfrac> <mi>&epsiv;</mi> <mrow> <mi>m</mi> <mo>-</mo> <mn>1</mn> </mrow> </mfrac> </mtd> </mtr> </mtable> </mfenced> <mi>forj</mi> <mo>&NotEqual;</mo> <mi>i</mi> <mo>-</mo> <mo>-</mo> <mo>-</mo> <mrow> <mo>(</mo> <mn>1</mn> <mo>)</mo> </mrow> </mrow>]]></math></maths><maths id="math0002" num="0002" ><math><![CDATA[ <mrow> <msub> <mi>p</mi> <mi>i</mi> </msub> <mo>=</mo> <mn>1</mn> <mo>-</mo> <munder> <mi>&Sigma;</mi> <mrow> <mi>j</mi> <mo>&NotEqual;</mo> <mi>i</mi> </mrow> </munder> <msub> <mi>p</mi> <mi>j</mi> </msub> </mrow>]]></math></maths>同时剔除发现的缺陷;其中,ε是测试剖面动态调整的参数;m是测试用例等价类个数;pj是除第i类外,其余各等价类的被选择概率,pi是上一步中被选择的等价类Ci在当前测试剖面中的被选择概率;B.若没有发现缺陷,则令<maths id="math0003" num="0003" ><math><![CDATA[ <mrow> <msub> <mi>p</mi> <mi>i</mi> </msub> <mo>=</mo> <mfenced open='{' close=''> <mtable> <mtr> <mtd> <msub> <mi>p</mi> <mi>i</mi> </msub> <mo>-</mo> <mi>&epsiv;</mi> </mtd> <mtd> <mi>if</mi> </mtd> <mtd> <msub> <mi>p</mi> <mi>i</mi> </msub> <mo>&GreaterEqual;</mo> <mi>&epsiv;</mi> </mtd> </mtr> <mtr> <mtd> <mn>0</mn> </mtd> <mtd> <mi>if</mi> </mtd> <mtd> <msub> <mi>p</mi> <mi>i</mi> </msub> <mo>&lt;</mo> <mi>&epsiv;</mi> </mtd> </mtr> </mtable> </mfenced> </mrow>]]></math></maths><maths id="math0004" num="0004" ><math><![CDATA[ <mrow> <msub> <mi>p</mi> <mi>j</mi> </msub> <mo>=</mo> <mfenced open='{' close=''> <mtable> <mtr> <mtd> <msub> <mi>p</mi> <mi>j</mi> </msub> <mo>+</mo> <mfrac> <mi>&epsiv;</mi> <mrow> <mi>m</mi> <mo>-</mo> <mn>1</mn> </mrow> </mfrac> </mtd> <mtd> <mi>if</mi> </mtd> <mtd> <msub> <mi>p</mi> <mi>i</mi> </msub> <mo>&GreaterEqual;</mo> <mi>&epsiv;</mi> </mtd> </mtr> <mtr> <mtd> <msub> <mi>p</mi> <mi>j</mi> </msub> <mo>+</mo> <mfrac> <msub> <mi>P</mi> <mi>i</mi> </msub> <mrow> <mi>m</mi> <mo>-</mo> <mn>1</mn> </mrow> </mfrac> </mtd> <mtd> <mi>if</mi> </mtd> <mtd> <msub> <mi>p</mi> <mi>i</mi> </msub> <mo>&lt;</mo> <mi>&epsiv;</mi> </mtd> </mtr> </mtable> </mfenced> <mi>forj</mi> <mo>&NotEqual;</mo> <mi>i</mi> <mo>-</mo> <mo>-</mo> <mo>-</mo> <mrow> <mo>(</mo> <mn>2</mn> <mo>)</mo> </mrow> </mrow>]]></math></maths>其中,ε是测试剖面动态调整的参数;m是测试用例等价类个数;pj是除第i类外,其余各等价类的被选择概率,pi是上一步中被选择的等价类Ci在当前测试剖面中的被选择概率;步骤四:根据调整后的测试剖面选择一个测试用例集合,从中随机选择测试用例,并进行测试;步骤五:再次根据测试的结果,即有无发现缺陷,对测试剖面进行调整,调整的规则同步骤三;步骤六:依此类推,直到发现和剔除全部缺陷及满足其他测试终止条件。
地址 100191北京市海淀区学院路37号北航自动化科学与电气工程学院