这一段时间终于有空闲下来思考一点问题了.算是个人的brainstorm吧,记录一下.
1. 需要对函数参数进行有效性检查, 对返回值做判断.
很多漏洞就是因为没有遵循以上原则而产生的.但同时也带来一些问题,参数的有效性检查,到底是不是需要每个函数都做,还是只需要在被外部调用的接口函数中进行?是通过assert来做还是if来判断?个人观点是,对外的接口需要用if来判断,而内部的函数可以通过assert来做.
2.函数的资源一致性,特别是对于异常(出错)情况
比如说内存,如果这块没有把握好,就那很容易导致内存泄露.其实这个问题归结下来就是资源处理的一致性可以简化逻辑,方便编程,进而使得出错的几率变小.
3. 代码的覆盖
对代码的覆盖率进行测试是保证软件质量的有效手段,但有一点一直让我疑惑:高覆盖率是通过对逻辑的测试获得还是对单个函数的测试获得?这个问题可能与对驱动开发的理解有关.
4. 测试驱动开发中的驱动开发指的是什么?
开发之前所写的测试代码,到底要写成什么样?正常情况那自然是需要的,但是否需要把异常情况也覆盖?