新闻中心

EEPW首页>嵌入式系统>设计应用> Linux内核函数鲁棒性关联测试研究

Linux内核函数鲁棒性关联测试研究

作者: 时间:2012-03-09 来源:网络 收藏

35.jpg

在进行时,首先进行参数,先把待测中有互相作用的参数进行包装,在中人为构造参数维度等于失效维度的情况。例如,f(A,B,C,D,E)中,参数A、B、C有。首先将参数E和参数F取合法输入值,然后测试参数A、B、C的所有组合。若有失效,必定是一维失效或者三维失效。在对进行了充分的关联测试后,再进行参数非关联性测试。取出上例中参数A、B、C的一个合法组合,对参数E和参数F的所有用例分别进行测试。若有失效,必定是一维失效,这样也很容易分析测试结果和写出保护代码。

通过对函数的参数关联性进行测试可得出结论,只有当函数所有参数都发生关联作用时,关联测试所需用例的个数才会等于传统组合测试所需的用例个数.所以,在覆盖率不变的情况下,若采用关联测试法,可以有效减少测试用例个数,并且还能够消除维度失效跳变带来的影响。

4 测试实例

实际测试中测试环境为DELL的DIMENSION 4700,操作系统为Redhat8.0,系统为2.2.24.实测以read()函数参数组合表为例,其表中组合测试用例的个数为5×5×5=125个。进行关联测试时先对其参数的关联性进行分析,通过分析可以得知它的三个参数中只有buf和count有关联。

实测中首先进行关联性测试,对read()函数的参数fd取正常值,测试参数buf和count的所有组合,测试结果如表2所示。共使用了25个测试用例。

36.jpg

在对上述测试结果进行屏蔽失效后,转入第二步,对参数fd进行非关联性测试,即针对fd与(buf+count)的组合进行测试。对buf与count的组合取合法值后,针对参数fd的所有取值分别测试,这时只会发生一维失效,测试用例个数是5个,其结果如表3所示。

37.jpg

由上述测试实例可见,传统组合测试法需要125个用例,而关联测试只需要30个用例,两者最终完成的函数测试覆盖率相同。由此可见,关联测试是对传统的组合测试的一种有效改进。采用关联测试可以避免上述问题的产生。使用关联测试时对参数之间关系进行分析,还有可能发现传统的组合测试没有测到的失效用例,这样关联测试的覆盖率相对于传统组合测试来说,只会提高而不会降低,这对于函数的鲁棒性提升十分有效。

理论分析和实例应用的结果表明,在函数的鲁棒性测试中采用关联测试来代替传统的组合测试,可以在保证测试覆盖率的同时,使所需的测试用例大大减少,而且函数中相关联的参数个数越少优势越明显。现实中Linux内核函数的参数之间关联性较少,因此在其鲁棒性测试中关联测试方法具有很好的实际应用价值。

linux操作系统文章专题:linux操作系统详解(linux不再难懂)
光电开关相关文章:光电开关原理

上一页 1 2 下一页

评论


相关推荐

技术专区

关闭