比较操作符覆盖(Relational Operator Coverage)怎么计算?

zhuzhu77 2003-02-22 10:13:00
请问这个概念是怎么回事?如何计算?谢谢!
...全文
100 5 打赏 收藏 转发到动态 举报
写回复
用AI写文章
5 条回复
切换为时间正序
请发表友善的回复…
发表回复
initora 2003-02-23
  • 打赏
  • 举报
回复
呵呵,我没见(我不是测试人员,只过单元测试)过有这么评测测试的(切实没见过有这样的评估测试结果的文档),对于dd路径,一般都要走完的,不然这种产品怎么进入集成呢(我觉得就不合格)。对于代码覆盖率,我觉得对其它还可以使用这种计算方法,一点愚见!
zhuzhu77 2003-02-23
  • 打赏
  • 举报
回复
谢谢,是不是说对于if(a<b)来说,如果只出现了a<b,覆盖率50%,如果又测试了(a==b),则达到100%?
initora 2003-02-23
  • 打赏
  • 举报
回复
没错啊,就是比较运算符的覆盖,我只是少了个边界值{1}。

Relational operator coverage reports whether the situation a==b occurs. If a==b occurs and the program behaves correctly, you can assume the relational operator is not suppose to be <=.

这里不是说了:
if (a < b)
statement;
这样的例子,需要测试边界值 a==b 这种情况能否发生(我认为是指a==b为有效的数据,不会引发异常之类的),如果a==b有效并且程序运行正确(应该是不执行statement吧),就可以假定这个运算符不是<= 。

(这里的 GCT 不知道是什么?)
zhuzhu77 2003-02-23
  • 打赏
  • 举报
回复
楼上您说的似乎有些出入,原文如下(摘自bulleyes公司的技术文档):
Relational Operator Coverage

This measure reports whether boundary situations occur with relational operators (<, <=, >, >=). The hypothesis is that boundary test cases find off-by-one errors and mistaken uses of wrong relational operators such as < instead of <=. For example, consider the following C/C++ code fragment:

if (a < b)
statement;

Relational operator coverage reports whether the situation a==b occurs. If a==b occurs and the program behaves correctly, you can assume the relational operator is not suppose to be <=.

As far as I know, only GCT implements this measure.

但是我看不明白。
initora 2003-02-23
  • 打赏
  • 举报
回复
正的反的的每一个至少都走一遍吧,比如:
if (a > 1) {
doSth();
}
白盒的数据子集:
正面:{2}
反面:{0}
(我正为这些鬼数据发愁啊,见鬼)

5,222

社区成员

发帖
与我相关
我的任务
社区描述
软件工程/管理 质量管理/软件测试
功能测试压力测试安全性测试 个人社区 湖南省·长沙市
社区管理员
  • 软件测试
  • 虫无涯
  • 小博测试成长之路
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告

欢迎大家加入到软件测试的社区,在这里,希望大家勇于发表自己的看法,欢迎大家分享自己在软件测试工作过程中遇到的问题以及工作经验分享。

1.想转行的小伙伴,遇到问题没有及时回复的,可以私聊小博进行反馈

2.大家对社区有好的建议,都可以在社区发帖进行反馈

推荐大家学习的软件测试入门笔记:软件测试入门学习笔记

试试用AI创作助手写篇文章吧