在我的项目中,am使用TPT作为测试环境,我们使用基于模型的测试。代码覆盖率通常在80%左右。但是客户需要100%的覆盖范围,因此需要使用.c和.h文件进行测试。
我是这种测试的新手,因为我们只做基于模型的测试。我可以知道如何在基于代码的测试中使用TPT吗?
发布于 2016-04-25 15:09:46
C代码以及Simulink模型可以使用TPT进行测试.测试开发没有区别,只是在测试执行环境中。为了测试C代码,可以确定C代码是否应该在Simulink中以所谓的SiL模式进行测试,而C代码是嵌入在Simulink中的,即所谓的S函数。S-函数的生成可以由代码生成器依赖的m脚本自动完成.
另外,在TPT中,代码可以通过两种方式进行测试。第一个是使用所谓的EXE平台,其中一个测试工具是用C代码构建的,并由用户自己的编译器编译。第二个选择是所谓的融合平台,用户编写一个接口,该接口适合被测试系统的良好定义API,并将其编译为dll。这个dll是在FUISON上模拟的。
如果需要100%的语句或条件覆盖,则TPT附带一个名为塔斯莫的特性。TASMO自动生成测试用例,以实现Simulink或TargetLink模型的最大覆盖范围。
我是TPT开发人员之一。有关TPT的更多信息,您可以访问我们的网站。
发布于 2015-11-01 19:39:01
在这里,仅使用TPT是没有帮助的,因为它基本上只是一个测试自动化工具,适用于依赖时间的嵌入式系统。
更高级的基于模型的测试工具通常从被测试系统的可执行模型中创建测试用例。它们(象征性地)探索模型(或一般代码)并生成包含模型中存在的所有路径、转换、条件等的输入。这部分是您所缺少的--您需要一个代码探索工具(比如C的reactis,仅举一个例子)。
因此,像"Reactis“(http://www.reactive-systems.com/c-testing-tool.html)这样的工具完全自动生成所有的测试输入。他们通过搜索C代码计算这些测试输入(或者你也可以在Simulink模型中搜索)。它使用一个求解器来解决这个问题,因此它能够达到100%的覆盖率。用户不必在用户界面(如PikeTec TPT )中手动实现任何东西。
为了解决您的问题,并达到100%的覆盖率,您可以直接将Reactis应用于您的源代码,而不是模型。在此之后,您可以使用TPT读取生成的输入,并用TPT刺激正在测试的系统。或者:如果您使用Simulink PC-目标(EXE-文件),也可以使用文件访问从EXE文件直接读取生成的输入。
这些探测工具通常不直接用于生产代码的原因是,即使是相对较小的系统(如发动机控制器等)。导致太多的测试输入。这就是为什么在基于模型的测试中,我们创建一个系统的抽象模型来测试:抽象模型不会包含生产代码的所有这些不重要的状态/路径。
您的情况似乎更简单:您已经用手工设计的测试用例覆盖了80%的代码,所以开发工具应该没有任何问题,可以自动将其提高到100%。您还将节省编写测试刺激在TPT中的时间。
发布于 2017-09-25 14:58:44
您可以使用Simulink设计验证器这样的工具自动生成测试以增加覆盖率。然后,可以使用Simulink覆盖来检查在Simulink模型级别(即对Simulink模型执行覆盖率分析)能够获得多少覆盖率,然后生成代码并检查在代码级别能够达到多少覆盖率。您可以使用Simulink测试来自动化这个过程。有关更多细节,请参见此文档页。
如果您无法在模型级别实现高覆盖率,那么这可能意味着您的设计不是完全可测试的。它可能有死的逻辑。Simulink设计验证器也可以告诉你,如果死逻辑存在的前面。
如果只想对代码执行分析,则可以使用多空间代码验证程序来检查代码级别上是否有不可更改的代码或死代码。像Simulink设计验证器和多空间代码验证器这样的工具是基于形式化方法的,它们能够对您的设计进行数学分析。
https://stackoverflow.com/questions/33013093
复制相似问题