Page 193 - 《软件学报》2021年第7期
P. 193

周小莉  等:基于偶然正确性概率的回归测试选择方法                                                       2111


                 的充分度的前提下,根据偶然正确性的发生概率,从被选择集合中删除对于大部分被修改语句都具有较高偶
                 然正确性概率的测试用例,达到进一步缩减回归测试集合大小的目的.对一个测试用例 t,如果存在至少一条
                 被修改的语句 s,使得 CCP(s,t)的值较低,我们就认为这个用例很可能发现故障.如果测试用例对于所有被修改
                 语句的偶然正确性概率都非常高,则认为这个用例很可能无法检测故障,在测试资源受限时将其从测试集合
                 中删除.
                    算法 3.2.  采用安全策略的基于偶然正确性概率的测试选择算法 1.
                    Input:
                       覆盖修改代码的测试集合T;
                       程序中被修改的语句的集合S;
                       针对S中每一条语句,T中每个测试用例的偶然正确性概率;
                       偶然正确性概率选择下限K 2 ;
                    Output:
                       回归测试用例集合T.
                       1:   初始情况下,T=T;
                       2:   for each tT do
                       3:    if  如果对于S中的90%以上的所有语句s,t都使得CCP(s,t)≥K 2  then
                       4:     if  将t从T中删除后,对于S中的任意一条语句s,都满足s被T覆盖并且满足基于CCP的充分度
                              即AC(s,T)≥ then
                       5:       将t从T中删除;
                       6:     end if
                       7:    end if
                       8:  end for
                    算法 3.3.  采用安全策略的基于偶然正确性概率的测试选择算法 2.
                    Input:
                       覆盖修改代码的测试集合T;
                       程序中被修改的语句集合S;
                       针对S中每一条语句,T中每个测试用例的偶然正确性概率;
                       基于CCP的充分度的变化幅度的限制值K 2 ;
                    Output:
                       回归测试用例集合T.
                       1:   初始情况下,T=T;
                       2:   //计算测试用例对充分度的影响程度
                       3:   for each tT do
                       4:    for each sS do
                                                                                    (,T 
                                                                                 ACs    )  AC ( ,s T   ) t
                       5:      计算t被删除后对测试集针对s的CCP充分度的影响AC dec (s,t,T)=                            ;
                                                                                       AC (, s T )
                       6:     //ACdec(s,t,T)表示t被删除后测试集对于s的充分度的影响程度
                       7:    end for
                       8:    //将被删除后测试集仍满足充分度标准的用例加入备选集
                       9:    计算其对所有语句的充分度降低程度的平均值AC avg (t);
                       10:   if AC avg (t)≤K 2 并且对于S中的任意一条语句s,都满足s被T−t覆盖并且满足基于CCP的充分度
                             即AC(s,T−t)≥ then
   188   189   190   191   192   193   194   195   196   197   198