我对运行在单片机上的各种嵌入式软件( embedded C)进行了系统测试。在这种情况下,如何在微计算机上运行软件而不是在pc上运行代码覆盖率报告?
在这一点上,我们负担不起系统的仿真模型。(我知道这使得在PC上同时运行覆盖工具、模拟器和测试并获得覆盖报告变得非常容易)。
发布于 2014-06-02 13:09:27
根据您的代码所做的,您可以为x86体系结构编译它,以运行单元测试,并使用传统的代码覆盖工具;在这种情况下,为C编写的任何代码都可以。这假设您没有使用嵌入式处理器的任何外围设备;否则,您可能需要编写一个包装层来模拟它们,但是,您可能希望在单元测试框架中这样做,以便充分模拟程序的外部依赖关系。当然,内联装配指令也会阻止这种技术的工作。
您可以将代码分解为模块,并使用代码覆盖率工具在x86上测试一些模块,而其他模块则必须在设备上进行测试,因此无法计算代码覆盖率。您可以在其他答案中使用技术来度量无法在x86处理器上运行的代码的覆盖率。这取决于您的代码设计得有多好。
发布于 2014-05-29 04:22:22
您的问题没有提供关于开发环境可用的功能/设施和限制(如果有的话)。因为任何解决方案都将取决于开发环境的能力。它很难适应所有的解决方案,像什么是可能的PC或网络为基础的系统。
如果您的系统上的实时要求不太严格,您可以编写一个每个处理器,它将在每个函数的开始和结束处插入计数器(以及在高级版本中的每个控制路径的开始和结束)。一旦它到位,你可以写离线程序在PC上映射计数器与代码。所有非零计数器都显示所运行的控制路径,计数指示特定控制路径被击中的次数。
然而,这是一种费劲的方法,如果你认为投资回报是合理的,这将是有用的。
https://sqa.stackexchange.com/questions/8712
复制相似问题