首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >单元测试通信协议

单元测试通信协议
EN

Stack Overflow用户
提问于 2009-08-11 14:11:10
回答 3查看 1.9K关注 0票数 2

我正在开发一个通过RS-422端口与FPGA进行串行通信的库。这个库是一个更大项目的一部分。

我知道我可以测试它的某些部分,比如消息生成。您可以设置输入,并且可以测试字节数组是否与预期的字节数组匹配。但是,如果我想做一个更通用的测试,我该如何为它生成单元测试呢?我必须要写一个FPGA行为的模拟器吗?是否可以单独测试库?

EN

回答 3

Stack Overflow用户

回答已采纳

发布于 2009-08-11 14:17:16

我要说的是,使用模拟器或mock进行测试将使您能够更容易地测试代码路径,而不是刺激真实的代码路径。

理想情况下,一个人使用一些预先存在的东西。否则,构建仿真可能不是一件小事。但是,如果你不能很好地理解协议,不能模拟它,那么你肯定不能与它通信:-)

票数 2
EN

Stack Overflow用户

发布于 2009-08-11 14:18:32

您可以创建一个模拟类,它将作为模拟器工作。只要让你的write函数处理你发送的信息,并将结果保存在某种缓冲区中,就可以是一个普通的字符串。然后创建一个read函数来读取字符串,擦除它,然后将其返回给您。

票数 1
EN

Stack Overflow用户

发布于 2009-08-11 14:28:59

您是要对FPGA的驱动程序进行单元测试,还是要对协议进行单元测试?因为如果你想同时测试两者,在我看来它已经像是一个(系统)集成测试了。

是,可以单独测试通信库。确保您的通信协议与设备驱动程序没有太多交织;这样,您就可以单独测试它。

我的建议是:

  • 单元测试小部件;测试它们throroughly
  • check你想从集成测试中得到什么;大量数据或压力测试?使其与单元测试正交如果您模拟硬件,则使其非常简单

在测试FPGA+communications库时,我会感兴趣的错误类型:

  • 它是否根据规范处理协议?
  • 它在缓冲区溢出时表现如何/ underflow?
  • is中断处理像expected?
  • does一样工作它正确地处理所有rsx22信号(中断、奇偶校验、停止位)?

至于模拟:我在Matlab/Simulink中运行代码(即使用TrueTime,一个免费的插件)得到了非常好的结果。然后,可以使用Simulink将其与回路中的硬件(HIL)或回路中的模型挂钩。或者,也可以使用软件模型(但如果您接近硬件,通常很难模拟非常有趣的异步事件;即中断处理程序)

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/1260626

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档