什么是软件静态测试?

软件静态测试是相对于动态测试来说的,是指不运行软件系统,而是通过检查程序代码的语法、结构、过程、接口等来判断程序的正确性。软件静态测试方法一般有代码审查、技术评审、交叉评审、走查等方式,通常都是通过阅读文档和代码来检查软件程序是否存在问题。这要求走查人员或评审人员有深厚的开发经验和技术知识。与我们通过评审来检查测试大纲、测试用例的覆盖率、准确性和规范性有异曲同工之妙。

一般审查以下方面:

1、 代码是否与设计一致,是否符合软件需求、概要和详细设计,这不仅可以看出代码问题,也可以反过来更早发现需求或设计是否正确。

2、 代码书写的规范性和可读性。每个项目都有有代码编写规范,如Java编写规范,C语言编写规范等。规范的代码包括清晰且充分的注释、漂亮的对齐、没有冗余、规范的命名等等。

3、 代码逻辑是否正确,有没有死循环、内存泄露,异常处理是否充分,事务处理是否正确等等

4、 代码是否有安全漏洞、易被攻击

5、 代码文件组织目录是否合理,代码的结构是否合理

6、 代码的重用性或复用性是高还是低

7、 代码嵌套调用是否过多

等等

在实际项目中,代码检查比动态测试还有效果,能发现30%到70%的缺陷,是预防程序缺陷的有效手段。而且静态测试方法一般发生在软件程序编译成机器代码(二进制文件)之前,是发生在项目早期阶段,因此缺陷发现更及时,缺陷修复成本更低。不过静态测试方法很耗时间,对走查人员的知识和经验要求很高。所以很多代码走查的自动化工具应运而生。其中有代表性的工具有 Telelogic公司的Logiscope,PR公司的PRQA,Coverity,Klocwork,C++ Test,Findbugs,Checkstyle等等。有些工具只针对Java语言,有些工具只针对C和C++语言,有些工具可以两者都测试。还有特地针对代码安全的静态测试工具,如Fortify公司的Fortify SCA,Security Innovation公司的CheckmarxSuite和Armorize公司的CodeSecure。很多大型公司,尤其是大型软件研发公司,都会购买一款代码走查分析的工具来进行静态测试,更早、大批量的揪出缺陷,减少后期测试发现的问题数,从而降低软件研发成本。以后将专文分析这些软件静态测试工具。

  • 发表于:
  • 原文链接:https://kuaibao.qq.com/s/20180515G0P62200?refer=cp_1026
  • 腾讯「云+社区」是腾讯内容开放平台帐号(企鹅号)传播渠道之一,根据《腾讯内容开放平台服务协议》转载发布内容。

同媒体快讯

扫码关注云+社区

领取腾讯云代金券