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

别了,PolySpace

上一篇 / 下一篇  2008-01-21 12:31:15

别了,PolySpace

2007425日,PolySpace正式宣布被Mathworks收购。2008年初,我的PolySpace工作正式结束,PolySpace已从我的电脑里被永久删除。回首为PolySpace工作的几个年头,从最初的艰难起步,到后来的如鱼得水,节节攀升,再到顶峰时的突然被收购,其间充满了戏剧性。说起来,起码到今天为止,撒家也算得上国内使用PolySpace时间最长、技术上最熟练的人之一(谦虚点说),能到今天也实属不易,所以我不想就那么再见。想想以后可能再也不会使用PolySpace,众多的感慨……

PolySpace的基本功能介绍,请参考我的《嵌入式软件动态运行时错误的检测》。这里我只想要一个总结。

WHO

谁使用PolySpace或者由什么角色使用效果最好?当然是程序员自己了。其实大多数的代码检测工具,都应该由代码的主人自己使用效果最好,因为没有谁比自己更了解被测的代码。

WHAT

      程序员使用PolySpace,可以帮助解决什么问题?PolySpace解决的是Run-time Errors(运行时错误),其实就是帮忙发现代码自身存在的错误。具体到C语言来说,检测的错误主要是:

  


WHERE

      PolySpace适用于那些领域或者是哪些类型的程序?从技术上来讲,只要是C代码和C++代码,PolySpace都可以拿来用。但根据经验和PolySpace的特点,用在以下类型的代码上效果发挥最佳:嵌入式C代码、算法类型的,即运算多,典型的如TI DSP平台上的程序、Vxworks平台的控制类程序等;在通讯类、界面类的代码上效果则一般。

WHICH

      PolySpace用于软件开发的哪个阶段?既然推荐了是程序员使用,当然是编码阶段和单元测试阶段。程序员今天写了200行代码,在Check-in配置管理库之前,使用PolySpace来检测代码中是否有Run-time Errors

WHY

      为什么要有PolySpace?因为PolySpace解决的是正常情况下很难被发现的错误。技术方面的就不多解释了,看看PolySpace诞生的缘由吧。

PolySpace测试技术始于1996年,当时欧洲亚丽安娜501火箭由于飞行计算机软件运行错误而导致主/辅计算机全部停机并在飞行升空后爆炸,为此,法国国家计算机与控制研究所、欧洲航天局组织专门的力量研制以抽象解释技术(Abstract Interpretation techniques)为理论基础的新一代软件验证/测试工具---PolySpace,并在亚丽安娜502上得到成功的应用。1999年由法国国家计算机与控制研究所、欧洲航天局共同成立PolySpace Technology公司,将PolySpace产品正式商业化,并且在国内外军用项目上得到广泛应用。PolySpace是世界上首家自动检测嵌入式软件运行错误的工业化工具,是新一代的软件测试工具。

 

LIMIT

      PolySpace最大的局限性在于:分析速度慢。通常情况下,在配置比较高(CPU:3G Memory: >1G)的PC上,完整的分析1000行代码,平均需要15分钟。根据多年来和客户打交道的经验,客户普遍抱怨分析速度太慢。

TIPS

1.        每个工具都有自身的优缺点。我们使用工具,和交朋友一样,要看的是其有什么优点,以及如何避开其不足,而不是紧盯其一个小缺点。

2.        PolySpace本身面向的就是高可靠性的市场,所以PolySpace对代码要求比较严格。在使用之前,如果代码不太规范,可能要对代码做一点修改,但都是通过配置的方式,不是直接去代码文件中修改。

3.        建议程序员去使用PolySpace,因为它不仅可以帮助你发现错误,更重要的是,长期使用,会提高你的编程能力,让你明白什么样的写法是安全可靠的,什么样的写法是危险的,受益匪浅啊。

 

暂时就这么多。有新的想法,以后再分解。

TAG:

引用 删除 shenc   /   2015-10-14 14:36:56
5
引用 删除 shenc   /   2015-10-14 14:36:47
请问polyspace可以直接运行哪些编译软件生成的程序。新手,公司要求我使用polyspace。十万火急,请尽快回复,谢谢。我在添加文件后不能运行这是为什么啊?是没有把文件添加完全还是怎样?
 

评分:0

我来说两句

Open Toolbar