主权项 |
一种基于线性拟合函数驱动的测试数据自动生成方法,包括分析待测源程序获得待测源程序所有路径的路径集PS的步骤,其特征在于,该方法还包括对路径集PS中的每一路径P执行以下步骤: S1:根据所述路径P上的各分支节点的各个判断语句,构建关于输入变量向量X的分支函数F<sub>i,j</sub>(X);所述输入变量向量X为所述待测源程序输入变量构成的向量;所述分支函数F<sub>i,j</sub>(X)表示第i个分支节点的第j个判断语句的分支函数; S2:构建初始的输入向量集U;所述初始的输入向量集U至少包含两个输入向量; S3:计算以输入向量集U中每个输入向量作为待测源程序的输入执行待测源程序时所述路径P上的每个分支节点上的各分支函数F<sub>i,j</sub>(X)获得分支函数值的集合V以及最远公共分支节点m;假如输入向量集U中存在一个输入向量执行待测源程序时覆盖所述路径P,则返回该输入向量作为所述路径P的测试数据; S4:根据各个分支节点上的各分支函数值的集合V以及最远公共分支节点m构建最远公共分支节点m前的每个分支节点中的各分支函数的线性拟合函数LF<sub>i,j</sub>;LF<sub>i,j</sub>表示第i个分支的第j个分支函数的线性拟合函数; S5:根据每个分支节点中的各分支函数的线性拟合函数LF<sub>i,j</sub>和待测源程序计算可行区间I; S6:在可行区间I内随机选取各输入变量的输入值得到测试数据集加入至输入向量集U中; S7:重复执行步骤S3至S6直到步骤S3至S6执行的次数达到限定的次数; S8:从输入向量集U中找出能够覆盖路径P最多分支的输入向量作为路径P的测试数据。 |