这里没有软件测试的泛泛理论,只有博主的最佳实践。 博主的研究方向为静态分析和性能测试,致力于各种测试工具的引入、评估和开发。 本博的测试文章均为作者原创,转载请务必注明出处。

可恶的Telelogic Logiscope v6.3

上一篇 / 下一篇  2008-07-01 22:02:11 / 个人分类:Logiscope

刚从齐鲁软件园回来,从下午五点一直折腾到现在,郁闷!可恶的Telelogic Logiscope v6.3。

客户使用的是Logiscope的最新版本6.3。他们的需求很简单,就想用TestChecker对Visual c++ 6.0创建的C代码做覆盖率分析,重点在MC/DC的覆盖。

我没有用过6.3,只是很早以前用过6.2。根据我以前使用Logiscope的经验,这应该是小菜一碟,very easy。打开Logiscope Studio,create C testchecker project,一步步,不到一分钟project创建成功。眼看已经要大功告成,快要结束战斗了,但没想到事与愿违,本应该是几分钟搞定的事情却折腾了3个小时。

项目创建成功后,根据需要,配置了几个配置变量,主要是有关testchecker插装需要的头文件和库的路径,然后build,失败,大概的提示信息如下

msvcrt.lib(MSVCRT.dll) : error LNK2005: _sprintf already defined in LIBCD.lib(sprintf.obj)
......
LINK : warning LNK4098: defaultlib "msvcrt.lib" conflicts with use of other libs; use /NODEFAULTLIB:library

看直接提示,意思是mscvrt.lib和libcd.lib定义的内容有冲突,建议使用/NODEFAULTLIB:library编译选项。这个问题可不怎么熟悉,赶紧google一下,的确是这样,要在link选项上增加/NODEFAULTLIB:库名。

那就先增加/NODEFAULTLIB:"MSVCRT.LIB"吧,rebuild,还是失败,提示大意是unresolved external symbol__imp__Localtime云云,有三个类似的提示呢。

看来MSVCRT.LIB中不光有冲突的内容,还有一些必需的信息。那就别忽略人家MSVCRT.LIB了,直接用/NODEFAULTLIB:"LIBCD.LIB"吧,再次build,结果出现好几十个unresolved external symbol,这么来看,LIBCD.LIB更重要,更不能忽视。

这怎么办呢?于是撇开Logiscope,直接用Visual C++ 6.0编译这些C代码,没问题,直接通过,而且什么都不用忽略。

纳闷了,Visual C++ 6.0使用的是cl.exe编译器,而Logiscope调用的也是cl,选项完全相同,因为Logiscope编译用的Makefile都是从Visual C++中export出来的。但为什么结果会不同呢?琢磨不透。

没办法,问题必须要解决,打开user manual吧,从创建开始,一步步,每个选项都没有漏过,没问题呀,完全没问题呀,为什么会这样呢?

不甘心,直接打开Logiscope自带的例程,什么都不改动,直接在Logiscope中build,结果同样出错,NND,自带的例程怎么都编译不过去呢?

时间一点点的过去,我又上网看了更多的类似的编译信息,明确了我第一次用/NODEFAULTLIB:"MSVCRT.LIB"是完全正确的。坚定了思路,重新开始,细心留意build的出错信息,发现前面一大堆警告后面,跟着的错误竟然是vlgtc.lib的。你要知道vlgtc.lib可是Logiscope安装包提供的、用于代码插装的库呀。它怎么能出错呢?

继续google,没有任何有价值的信息。

时间已经过了快三个小时,我几乎要放弃了。最后一个想法,怀疑vlgtc.lib有问题。最后一搏,用我电脑上的Logiscope 6.2的35K 大小的vlgtc.lib来替代6.3中38K的库 link,行就行,不行今天也只能这样了。

我KAO,请原谅我不小心喊出的这句话。竟然一次build通过了。

然后打开testchecker,新建测试用例,执行,观察覆盖率,一切都非常正常。

没想到今天三个小时栽到logiscope自带的库文件上了。

再次联想到早上安装server端的license,使用的是Telelogic自带的setup程序,安装顺利完成后,发现license服务根本起不来,打开lmtools,其中lmgrd.exe的路径竟然给搞错了。这可是Telelogic的setup自动设置的啊。

6.3版本还太不成熟,我估计Telelogic在发布之前肯定没有对这个库做过完整的测试,否则这么低级的问题怎么都不能发现。

可恶的Telelogic Logiscope 6.3。

继续不看好Logiscope的前景:

1 Logiscope原是法国Verilog公司的产品,在发展到4.5的时候被瑞典Telelogic收购,随后2002年左右发布了5.0。

2 2004年前后发布了Logiscope 6.0,到现在的2008年,最新版本是不成熟的6.3。也就是说,Telelogic在4年的时间里没有发布过一个Logiscope的大版本。

3 或许人家早就意识到要被IBM收购了。到今天为止,Telelogic已经成为IBM的一员,或许在不久的将来,Logiscope也将正式被并入Rational的体系中,到那时,你将再也买不到曾经风光一时的Logiscope了。

 


相关阅读:

TAG: LOGISCOPE Logiscope

引用 删除 buhao521   /   2010-05-12 10:47:28
楼主,我刚下了一个Logiscope程序,里面有一个flex文件夹,可是服务器不知道怎么安装,教教我吧?
redstar的个人空间 引用 删除 redstar   /   2009-11-25 18:29:29
你好!我最近用学习Logiscope的测试java程序的覆盖率,编译成功后,在TestChecker中始终显示所有类的覆盖率为0%,不知道怎么回事?你有测试过Java相关的经验没,希望给予指点,谢谢!
yyeungg的个人空间 引用 删除 yyeungg   /   2009-07-07 22:26:46
请问testchecker怎么去测试vxworks上的程序?
英文帮助中只写了怎么在对vc的工程进行插装,但并没有写到对workbench等的插装的方式??
还有logiscope支持对Linux上的程序测试么?
看了英文的帮助,感觉写的不全,迷惑中,望不吝赐教
引用 删除 zhangduo   /   2008-07-04 09:21:59
好,谢谢了
huior的测试烩 引用 删除 huior   /   2008-07-03 09:06:04
取决于你们实验室的需求:
1 如果你们的需求是用MISRA规则,我不推荐你用Logiscope,推荐你用QAC+MISRA或者C++test(自带MISRA和MISRA-2004两个版本),无论从功能上还是从价格上;
2 如果你们已经定了用Logiscope测MISRA,那我就没什么好说的了。价格可以咨询你们的销售商。
引用 删除 zhangduo   /   2008-07-02 10:03:10
我们实验室正准备用Logiscope测MISRA标准,看你前面的帖子说MISRA模块要单独购买,那这个MISRA模块大概要多少钱啊?
 

评分:0

我来说两句

Open Toolbar