博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
validator的Symbol Coverage没有100%
阅读量:6969 次
发布时间:2019-06-27

本文共 3328 字,大约阅读时间需要 11 分钟。

hot3.png

        在help文档中有说明。之所以覆盖率无法到达100%,是因为validator用来测试的默认变量值很简陋。系统的有些分支并没有被遍历到。只需要在validator界面走遍控制栏里面设置变量值就可以了。同一个信号、变量的值可以有多个。

看Validating a SDL System这一章

Handling Low Symbol Coverage

If the symbol coverage after an exploration is 100%, all parts of the system have been executed at least once. If the symbol coverage is less than 100%, the possible reasons why parts of the state space have not been reached are listed below.

  • The exploration was manually stopped before all symbols were reached.
    In this simple case, you should continue the exploration until it finishes by itself.
  • The test values were inappropriate.
    Test values are used to define the set of possible signals from the environment. The automatically generated test values may not suit all SDL systems. This may for example cause the execution to never execute one branch of a decision statement. To overcome this problem, redefine the test values for the appropriate signal parameter. For more information on test values, see .
  • The exploration was pruned after a report.
    In most cases the Validator will
    prune the exploration of a particular path as soon as a report has been found, i.e., the exploration will not continue beneath the state in question. If you have examined such a report and has decided not to do anything about it, the Validator will still prune the search when it finds the report the next time. To overcome this problem, change the report action for this particular report type from
    prune to
    continue. See for more information.
  • Some parts of the system are, in fact, unreachable.
    If some parts of the SDL system are not reachable at all, it may be an indication that there is a design error in the system.
  • There are problems with timer expirations.
    The validator is by default configured in a way that tries to reduce the size of the state space. It will always try to execute internal actions (e.g. tasks, decisions, internal input and outputs) before any timers are allowed to expire. The assumption is that the system will always execute fast enough to ensure that no timers will expire (the timers may of course expire when waiting for input from the environment). To make a more complete test of this type of situation, see .
  • The search depth was too small.
    The default search depth is 100. This may not be enough for some systems, e.g. a system with a very long initialization phase. In some cases, it is possible to overcome this problem simply by increasing the search depth (see ). However, the techniques discussed in are often more suitable.
  • The state space is too big.
    Many SDL systems of reasonable complexity quite simply have state spaces that are too big; it is not possible to explore the entire state space in one exploration. Characteristic for this situation is a low symbol coverage, truncated paths, and either manually stopped exploration or a high (>10%) collision risk. This situation is discussed in .

To find out which parts of the system that have not been reached, a tool called the Coverage Viewer is used. To start the Coverage Viewer, select Show Coverage Viewer from the Commands menu, or enter the command . If the symbol coverage was less than 100%, the Coverage Viewer will display a tree structure representing the parts of the system that have not been executed. 

转载于:https://my.oschina.net/liyong1689/blog/74029

你可能感兴趣的文章
在WPF的WebBrowser控件中抑制脚本错误
查看>>
C#性能优化:延迟初始化Lazy<T>
查看>>
设计模式笔记——设计模式原则总结
查看>>
浏览器解析html全过程详解
查看>>
sqlserver中有没有类似oracle中dual这样的表
查看>>
阿里双十一背后的技术
查看>>
试用许可证的疑惑
查看>>
使用Button组件
查看>>
各Spring-Boot-Starters介绍(转)
查看>>
测试赛3部分题题解及总结
查看>>
阿里巴巴为什么主推HSF?比Dubbo有哪些优势?
查看>>
AI技术落地医疗搜索 搜狗明医独家首推“湿疹痱子识别”功能
查看>>
中国又一项技术让世界叹服,世界500强抢着合作!
查看>>
年薪百万都招不来人,AI与区块链的技术人才有多稀缺?|技术大会
查看>>
一起撸个朋友圈吧 - 重构
查看>>
图片懒加载
查看>>
「面经:面试 ThoughtWorks | 掘金技术征文」
查看>>
Android和iOS开发中的异步处理(四)——异步任务和队列
查看>>
iOS开发之 Autolayout 详解
查看>>
ijkplayer如何使用FFmpeg 4.0内核?
查看>>