我看“静态测试”

发表于:2010-3-05 12:08

字体: | 上一篇 | 下一篇 | 我要投稿

 作者:huior    来源:51Testing软件测试博客

  在开始我的文章之前,先引用一段关于静态测试的文字。

  http://bbs.51testing.com/thread-262-1-7.html

  我猜想,引用的文字应该是教科书式的定义,简单总结,静态测试主要是对各种软件文档进行测试。

  以下是我的观点。不求描述的太详细,简单点明我的思路即可。

  静态测试,其定义为 Testing of an object without execution on a computer.,就是说不需要在计算机上执行程序的测试,测试对象是软件的静态属性。软件包括程序+文档,但软件开发过程中的文档不应该是静态测试的对象,参考CMM的要求,可以明确:

  ● 软件开发文档应该是由各种角色的人员来评审的,而不是进行测试的。

  ● 软件测试概念中的“文档测试”的对象应该是随软件交付的文档,例如online help、reference manual等,而不是软件的开发文档。文档测试也应该是系统测试中的一个环节。

  所以我的观点是,静态测试的对象主要是程序代码,过程主要是在单元测试和集成测试阶段。插一句,其实在测试的概念方面,国人和老外还是有一些细微的差别。老外口中的测试(test/testing)一般指的是动态测试,例如功能测试性能测试等。我们说的静态测试,其实更接近老外眼中的static analyse(静态分析)。那么如何实施静态测试呢?

  1、编码规范检查——一切的基础

  一个项目或者一个企业,如果要下决心实施软件质量,实施软件工程,第一步要做的就是软件编码规范。

  编码规范是程序编写过程中必须遵循的规则,一般会详细规定代码的语法规则、语法格式等。企业实施怎样的编码规范,取决于很多个因素:

  ● 编程采用的语言,例如C、C++、JAVA、ADA等

  ● 项目的规范化程度。目前现成的C/C++编码规范有很多,例如前几年网络上比较流行的《华为公司编程规范》、《摩托罗拉C+编程规范》等。但项目不能完全照搬,应该根据自己所处的阶段,定制属于自己的规范,否则的话,会让程序员无所适从,严重打击程序员的积极性。

  ● 行业。不同的行业对软件的可靠性有不同的要求,例如航空/航天的嵌入式软件对代码的要求很高,而传统的windows平台应用软件则相对要宽松。

  在嵌入式软件中,尤其是汽车行业,国际上目前流行的C语言编程规则为MISRA-C:2004,其中包括包括141条规则,其中121条是强制(Required)遵守的,20条是建议(Advisory)遵守的。详细信息可以参考其官方网站www.misra.org.uk

  有了统一的规范后,测试工程师或者程序员自身,就可以实施编码规范检查了。

  根据笔者的实践,要真正把编码规范贯彻下去,单单靠测试员程序员的热情,很难坚持下去,所以笔者建议借助于一些专业的工具来实施。在C/C++语言的编程规则检查方面,比较专业的工具有C++ Test、LINT工具、QAC/QAC++等,这些工具通常可以和比较流行的开发工具集成在一起,程序员在编码过程中,在编译代码的同时即同时完成了编程规则的检查。

  2、静态质量度量——提高软件的可维护性

  有了严格的编程规范,只能算是万里长征迈出了第一步。要提高软件的可重用性,以及软件的可维护性,还需要进一步的努力,即静态质量度量。

  静态质量度量所依据的标准是 ISO 9126。在该标准中,软件的质量用以下几个方面来衡量,即功能性(Functionality)、可靠性(Reliability)、可用性(Usability)、有效性(Efficiency)、可维护性(Maintainability)、可移植性(Portability)。

  以ISO 9126 质量模型为基础,可以构造质量度量模型。具体到静态测试,这里主要关注的是可维护性。

21/212>
《2023软件测试行业现状调查报告》独家发布~

关注51Testing

联系我们

快捷面板 站点地图 联系我们 广告服务 关于我们 站长统计 发展历程

法律顾问:上海兰迪律师事务所 项棋律师
版权所有 上海博为峰软件技术股份有限公司 Copyright©51testing.com 2003-2024
投诉及意见反馈:webmaster@51testing.com; 业务联系:service@51testing.com 021-64471599-8017

沪ICP备05003035号

沪公网安备 31010102002173号