一个好朋友给我介绍了一款他们公司代理的软件测试工具——PolySpace。我看了这款软件的功能说明,觉得非常不错,很有新意。
PolySpace是一款静态分析测试工具,它能对被测代码进行静态扫描,查找出可能存在Run-Time Error的代码段。我觉得这个功能可以说是创新性的。传统的静态分析工具,比如Logiscope,只能帮助使用人员分析程序的流程结构,统计程序的复杂性,或者是审查代码的编码规范性;而传统的Run-Time Error工具,比如著名的BoundChecker,以及Purify之类的工具,只能在运行被测代码的情况下,才能进行Run-Time Error的检查。
PolySpace这个工具结合了传统的静态分析工具和动态Run-Time Error工具二者的特点——测试执行方式是静态的,但能够发现Run-Time的错误。这种方式的最大好处就是——省去了我们制定测试用例的工作。因为对于传统的Run-Time Error工具来讲,只有执行到的代码,才能发现其中是否存在问题,对于没有被执行的代码,工具是无法检测其中是否存在Run-Time Error的,也就是要达到相当的代码覆盖率。但如果使用PolySpace这个工具,就不会有这个问题。这个工具的特点,非常适合在编码阶段对代码进行测试,尤其是核心模块。
当然,我现在已经过了对技术存在幻想和过份依赖的时期。我没有实际操作这款软件,但我猜想这款工具工具会存在如下类似的问题:运行时间会比较慢;定位的准确率不会太高,结果需要人工过滤等等。不过我觉得这仍是一款非常不错的软件(因为它解决了我们工作中的问题)。有合适的场合,我会想到它!