And what about testing a Stateflow Model only? Is there also a deviation between model and code coverage possible?
Is code coverage for a model equal to code coverage of generated code?
1 次查看(过去 30 天)
显示 更早的评论
Hi,
I use Simulink Verification and Validation toolbox to measure the code coverage while simulating the model with an automated test execution. In coverage settings I checked "Decision" and "Condition" and get in the coverage report a C1 and D1 result.
My question is how this results correlate with the code coverage of the generated code? Is it same? E.g. C1 and D1 is 100%, do I automatically have 100% for the generated code?
Thanks
Simulink version: R2014a
2 个评论
Sebastian Castro
2015-9-18
Yes, the same principles hold for Stateflow... so you should really test code coverage as well if you can!
采纳的回答
Sebastian Castro
2015-9-16
编辑:Sebastian Castro
2015-9-16
Not necessarily... Although having 100% model coverage makes it much more likely to have 100% code coverage.
There are some factors that may cause a disparity between model and code coverage, such as optimizations in the generated code, unsupported blocks in Simulink V&V that generate more logical expressions/if-else statements in the code, legacy hand-code that may be in your model (and not analyzed by Simulink V&V), and so on.
On that note, starting with either R2015a, you can collect coverage from external C hand-code that may be in your model in the form of S-Functions.
We usually recommend using a code coverage tool to complement model coverage. Embedded Coder lets you interface with a few third-party tools so you can do this in Software-in-the-loop (SIL) or Processor-in-the-loop (PIL) modes directly from Simulink.
- Sebastian
0 个评论
更多回答(1 个)
Jeevan Thomas
2015-9-17
Coverage of a model doesn't necessarily reflect coverage of generated code.
In the generated code, there will be utility functions/routines generated as part of block settings (for ex: rounding, saturate on integer overflow, div-by-zero etc) which will not be covered using Simulink V&V.
Also optimization settings plays a part too.
For code coverage, you could try tools such as BTC EmbeddedTester (works better with TargetLink as code generator), ReactisForC, BullEyeCoverage etc.
0 个评论
另请参阅
类别
在 Help Center 和 File Exchange 中查找有关 Collect Coverage for Code 的更多信息
Community Treasure Hunt
Find the treasures in MATLAB Central and discover how the community can help you!
Start Hunting!