Mutation Analysis for Security Tests Qualification

Tejeddine Mouelhi,  Yves Le Traon, Benoit Baudry, TAIC.PART.2007

本文中,作者研究如何将mutation分析方法应用于Security Policy测试,目的是协助筛选有效的测试用例。
mutation分析方法于1971年由Richard Lipton首先提出,其目标在于检测用于程序测试的测试用例是否有效,通过在源代码或二进制代码中人为(或根据规则自动)生成
程序变体实现这一目标。如果一个测试用例能够杀死程序变体(即测试不通过),则认为这是一个好的测试用例,否则不是。
mutation分析的有效性关键在于mutation operators的好坏,一组好的mutation operators,能够产生难以杀死的mutants,则必然倾向于筛选出好的测试用例,因为能够
将难以杀死的mutants杀死的测试用例,更可能检测出程序中不易发现的错误。
本文作者定义了四类mutant operators(对应七条operators),分别是:

作者定义了mutant operators的包含关系(subsume relationship):
一个mutation operator MO1真包含于 MO2(记为MO1->MO2)如果:
a) MO1对应的最小测试用例集中的测试用例都能杀死MO2;
b) MO2对应的最小测试用例集中的测试用例不都能杀死MO1;
MO1和MO2是等价的(MO1<->MO2)如果MO1->MO2并且MO2->MO1;

基于这个定义,可以对mutant operator按照有效性做一个排序,定义:mutant operators 排序(>),MO1>MO2当且仅当:
  MO1->MO2或者
  MO1<->MO2 并且 |{MO1}| < |{MO2}|(即MO1可以产生的变体数量小于MO2可以产生的变体数量)。

根据mutant operators的排序,测试员优先选择排名较高的mutant operators产生变体,依据这些变体筛选测试用例或者检测测试用例好坏。

本文贡献在于:
1、针对OrBAC安全策略框架,定义了四类mutant operators;
2、定义了mutant operators的包含关系和等价关系,并基于这两个定义,提出了mutant operators排序的定义;
3、针对一个实验性系统(图书馆管理系统)进行了case study,并根据提出的mutant operators的排序定义,结合case study结果,对提出的四类mutant operators进行了排序;
4、基于MotOrBAC工具,实现了自动生成mutant的插件;

本文不足:
1、个人觉得应当将missing rules也作为mutant operator考虑进去,因为部署Security Policy的时候,难免产生missing rules的错误;
2、本文case study的对象是虚拟的系统,可能导致对mutant operators的排序结果有偏差;

总结和思考:
mutant testing被广泛用在软件测试中,将其应用在Security Policy测试是较新的尝试。如果我们要做Security Policy测试,可以借鉴本文的方法,来指导测试用例生成,即先用其他方法
生成测试用例,再将这些测试用例作用于mutants,以选取最有效的测试用例。
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值