目录
[报错1: Master signaled error 0x4: [tstcomm:readFromBuffer] Unable to receive block size](#报错1: Master signaled error 0x4: [tstcomm:readFromBuffer] Unable to receive block size)
[报错2:Actual Call:0](#报错2:Actual Call:0)
前言
整理了一下博主遇到的集成测试问题,汇总到一篇博文中,希望对大家有所帮助。
报错1: Master signaled error 0x4: [tstcomm:readFromBuffer] Unable to receive block size

从默认编译器改成自己配好的Tasking编译器环境后该错误消失,该错误还有可能是没打桩导致的,很多错误都会报这个错。
报错2:Actual Call:0

接口覆盖,将新增接口打桩,将 uint8 Rec_Flg[6]的值改成1,将emc_can_info_process()改成循环一次退出,设置故障注入。
报错3:CPC覆盖度没达标

点击CV界面

查看覆盖度,在左下角Called Functions可以看到不同函数的覆盖度,绿色是满覆盖度,红色是没有满的覆盖度。

红色虚线说明没进入,双击后可以在右下方看到灰色高亮的源码,表示没测到的地方。

找到对应没达标的分支覆盖所在的代码段,分析什么条件没有达到,使用IDE查看代码,再找到对应接口查看情况。这个err_cnt一开始是设置成无关接口,现在需要它,将接口改成IN。

修改完后保存退出,发现原本完成的case需要新增的接口数据。
重新给每个case添加新的接口
这时候就需要修改或者添加测试用例,争取将CPC和FC的覆盖度达到100%。这里开着的C0起到辅助作用,等集成测试全部结束后可以关闭它。
报错4:在新代码更新时导入旧代码的Case,发生接口变化
如果软件的接口发生变化,双击后进入下面的界面


点击Commit Assignments 进行接口变更操作。

报错5:一直卡死在同一个界面,过了一整天都没法结束

造成这个的原因有很多,有可能是死循环导致的,也有可能是接口设置错误导致的,也有可能是循环过多导致的,也有可能一开始能成功执行,捣鼓的过程中有case执行不成功。
比如我遇到的这个执行不下去的情况是因为不小心把这个变量打开了,关掉后又恢复了正常。

部分死循环导致执行无法结束可以使用故障注入,执行一次就离开循环的方法来解决。
集成测试的手写桩函数是对所有测试用例生效,而单元测试中手写桩函数则可以更灵活的只作用于单个测试用例。
执行进度无法结束卡住的情况下,可以顺着调用关系查看是否存在死循环的情况,如果循环次数过多也会卡住,这里可以使用故障注入方法解决这个问题。还有一种可能就是检查测试用例,如果在时序中添加不合理的组件函数进去也会导致卡住。
有些外部函数无法调用,如果确认这个函数跟测试的模块并没有关系,可以屏蔽掉。
后记
欢迎大家投稿自己遇到的集成测试错误和最终的解决方法,可以授权发布,帮助到更多的人。后续遇到相关问题也会继续更新在本篇博文里。
声明:未经允许,禁止转载,如需转载请私信/留言/QV联系博主!