51Testing软件测试论坛

 找回密码
 (注-册)加入51Testing

QQ登录

只需一步,快速开始

微信登录,快人一步

手机号码,快捷登录

查看: 2031|回复: 0
打印 上一主题 下一主题

[讨论] ESTCA覆盖

[复制链接]

该用户从未签到

跳转到指定楼层
1#
发表于 2008-11-21 13:54:07 | 只看该作者 回帖奖励 |倒序浏览 |阅读模式
逻辑覆盖其出发点似乎是合理的。所谓“覆盖”,就是想要作到全面,而无遗漏。但事实表明,它并不能真的作到无遗漏。面对这类情况我们应该从中吸取的教训是测试工作要有重点,要多针对容易发生问题的地方设计测试用例。

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则是为了检测程序语句中的错误(如应引用一变量而错成引用一常量)。

上述三规则并不是完备的,但在普通程序的测试中确是有效的。原因在于规则本身针对着程序编写人员容易发生的错误,或是围绕着发生错误的频繁区域,从而提高了发现错误的命中率。
分享到:  QQ好友和群QQ好友和群 QQ空间QQ空间 腾讯微博腾讯微博 腾讯朋友腾讯朋友
收藏收藏
回复

使用道具 举报

本版积分规则

关闭

站长推荐上一条 /1 下一条

小黑屋|手机版|Archiver|51Testing软件测试网 ( 沪ICP备05003035号 关于我们

GMT+8, 2024-11-22 22:17 , Processed in 0.068545 second(s), 27 queries .

Powered by Discuz! X3.2

© 2001-2024 Comsenz Inc.

快速回复 返回顶部 返回列表