生殖整形

注册

 

发新话题 回复该主题

白盒测试CC编程规范12 [复制链接]

1#

本系列文章将带大家一起解析一下白盒测试经常用到的GJB-标准规则,其中一共有条强制性规则。GJB-强制性规则是按类分的,一共有13类,前面的文章已经讲过一部分,本文继续往下进行。

R-1-3-7动态指针变量定义时如未分配空间必须初始化为空

像违背示例中展示的,我们在声明一个全局变量的指针变量的时候,往往因为它是一个空指针,而不把它赋一个空的值。实际上大多数是直接初始化为空的,但是在有些操作系统中,在判断它是否为空的时候,它不为空,就会往下执行,就出错了。

R-1-3-8动态分配的指针变量第一次使用前必须判断是否为空

比如说像违背示例中展示的,一上来直接为指针分配了一个地址,会造成什么问题呢?比如说我这个指针不是空的,已经为它分配好了地址,又重新为它分配了地址,它原来分配的那块空间就被丢失了,这样就会造成我们整个的存储越来越大,但是又不能为程序所用,但是这个问题有可能是检测不到的。

R-1-3-9空指针必须使用NULL,禁止使用整形数0

NULL在不同的编译器里,它的赋值有可能是不同的,在有些里是0,有些里就不是0,所以你要是把它赋成0的话,就有可能会出问题,所以说不允许用0来代替NULL。

R-1-3-10禁止文件指针在程序退出时没有关闭文件

比如说我们往一个文件里写或者读,我们打开这个文件,读了一些,退出的时候没有关闭这个文件。

这样会造成什么问题呢?就是我们读指针的时候,是读了一段数据以后,读指针往后移了,这时候它是占了一个读写的操作,也就是说通常我们说它是占了一个通道。

如果你老这样不释放,等于是占用的资源,但是资源个数是有限的。比说说一个for循环里你这样用,占用一个资源没有释放,这个资源就一直被它占着,再申请一个资源,又占一个......到最后一定是把这个资源给耗空了,你再打开文件的时候就打不开了,因为没有资源了,所以一定要把它释放,这是第一点。

再有就是,当你往里写东西的时候,如果你不把它关闭,不把这个资源释放,那么有些东西永远也写不进去,这个文件就丢失了数据。

分享 转发
TOP
发新话题 回复该主题