逻辑覆盖其出发点似乎是合理的。所谓“覆盖”,就是想要作到全面,而无遗漏。但事实表明,它并不能真的作到无遗漏。面对这类情况我们应该从中吸取的教训是测试工作要有重点,要多针对容易发生问题的地方设计测试用例。
K.A.Foster从测试工作实践的教训出发,吸收了计算机硬件的测试原理,提出了一种经验型的测试覆盖准则,较好地解决了上述问题。
Foster的经验型覆盖准则是从硬件的早期测试方法中得到启发的。我们知道,硬件测试中,对每一个门电路的输入、输出测试都是有额定标准的。通常,电路中一个门的错误常常是“输出总是0”,或是“输出总是1”。与硬件测试中的这一情况类似,我们常常要重视程序中谓词的取值,但实际上它可能比硬件测试更加复杂。Foster 通过大量的实验确定了程序中谓词最容易出错的部分,得出了一套错误敏感测试用例分析ESTCA (Error Sensitive Test Cases Analysis)规则。事实上,规则十分简单:
[规则1] 对于A rel B(rel可以是 <, = 和 >)型的分支谓词,应适当地选择A与B的值,使得测试执行到该分支语句时,A < B, A = B和A > B的情况分别出现一次。
[规则2] 对于A rel1 C(rel1可以是 > 或是 <,A是变量,C是常量)型的分支谓词,当rel1为 < 时,应适当地选择A的值,使: A = C–M(M是距C最小的容器容许正数,若A和C均为整型时,M = 1)。同样,当rel1为>时,应适当地选择A,使:A = C + M。
[规则3] 对外部输入变量赋值,使其在每一测试用例中均有不同的值与符号,并与同一组测试用例中其它变量的值与符合不一致。
显然,上述规则1是为了检测rel的错误,规则2是为了检测“差一”之类的错误(如本应是“IF A > 1”而错成“IF A > 0”),而规则3则是为了检测程序语句中的错误(如应引用一变量而错成引用一常量)。
上述三规则并不是完备的,但在普通程序的测试中确是有效的。原因在于规则本身针对着程序编写人员容易发生的错误,或是围绕着发生错误的频繁区域,从而提高了发现错误的命中率。
●作者李龙,山东织雀信息科技有限公司负责人,织雀教育首席讲师,中国民主同盟盟员,北京人文大学云测学院院长、高工,国内软件测试“川模型”的提出者,全国大学生软件测试大赛评审委员会专家,致力于软件测试人才培养
(配图来源于网络,如有侵权请联系作者删除)
相关下载 |
原标题:APP不再申请敏感权限 “APP偷窥隐私”的调查报道。 事件回放6 在8月20日的特刊《APP偷窥现形》中,新京报记者针对APP隐私保护状况做了调查,详情>>
随着英雄联盟LPL赛区首届全明星周末的结束,LPL的粉丝们又将目光重新放回到了这短暂又让人迫不及待的冬季转会期上。全明星周末之前有着又多又杂的转会消息爆料,有的在后边详情>>
喷什么?为什么要喷?四强战明明是LPL的超级杯,谁晋级都不奇怪 囧王者感觉LPL赛区,自从S8夺冠以来,一年来愈发的强大年轻了。在10月27日结束的英雄联盟S9全球总详情>>
对于敏感性肌肤的人来说,用护肤品是特别慎重的一件事,因为怕用的不好,脸上就过敏,起红点,特别吓人,其实皮肤过敏多数是受季节影响和所在的环境,那么过敏性的肌肤该如何保养才行呢?敏详情>>
小编为您搜罗的答案:易敏感性肌肤由于皮肤的屏障功能较弱,对外界的正常刺激经常出现过度的反应,会出现红、肿、疼各种现象。所以在选择产品时,要尽量选择无香料、无酒精、无色素,酸碱度适中的产品。 平时用这些详情>>
小编为您搜罗的答案:在淘宝有一种正品的德国的耳塞,我用过一般30分贝的可以消除。我用着还行。。价钱是32块钱,比一般的要贵一点点,但效果也是看得见的。能用两个月!如果别人吵你,又不想和她有什么争论,就详情>>
AVIATOR=6FIXTURE=9WIZARD=1DIVERSE=?题目来自33IQ网请直接在文章下方留言告诉我们你的答案哦上期答案公布假设jiege,JTR发现错别字的概率为P,Q。 详情>>
限界凸记萌萌编年史敏感点在哪?作为一款绅士向内容的游戏,限界凸记:萌情編年史怎么能够少的了让人羞羞脸红的事情呢?特别是魔物娘敏感兴奋点,想想是不是就详情>>
作为游戏行业领袖之一的《废土3》开发商inXILE创始人兼CEO Brian Fargo曾打造出众多在当时备受好评的游戏作品,其中《辐射》《废土》的初代作品至今依然让人印象深刻。近年来他带着自己的开发团队制作了《废土2》等一系列广受好评的游戏作品。此次的《废土3》以众筹的形式仅仅3天就达成了预期目标,玩家们对这款游戏的期待度空前高涨。详情>>