当软件需求发生变更,或者为了修复软件缺陷,软件开发人员就需要对软件进行更改。可是,只要对软件进行更改,就有可能会引入新的缺陷。所以,软件在进行更改之后,就要通过回归测试确保更改之后的软件仍然是正确的。
那么,哪些更改会有引入新的缺陷的风险呢?
软件开发的工作产品包括代码、数据和文档。下面分别从这三个方面讲述:
修改代码可能产生新的缺陷的操作
只要动了代码,就有可能引入新的缺陷,但是,下列操作引入缺陷的风险更大:
删除或修改一个子程序;
删除或修改一个语句标号;
删除或修改一个标识符;
为改进性能所做的修改;
修改文件的打开或关闭模式;
修改运算符,尤其是逻辑运算符;
把对设计的修改转换成对代码的修改;
修改边界条件的逻辑测试。
修改数据可能产生新的缺陷的操作
这里所说的修改数据是指改动代码中的数据结构。当数据结构一旦发生改动,可能会由于新的数据结构不适应原有的设计而产生新的缺陷。下列的有关修改数据的操作可能会产生新的缺陷:
重新定义局部变量或全局变量;
重新定义记录格式或文件格式;
更改一个高级数据结构的规模;
修改全局数据;
重新初始化控制标志或指针;
重新排列输入/输出或子程序的自变量。
修改文档可能产生新的缺陷的操作
软件发生更改之后,同时可能会引起需求、设计、测试发生改动。要使软件产品与其需求、设计、测试的状态相一致,就要及时修改这些文档。如果这些文档没有及时更新,很可能会给后续的开发和维护工作带来不便。
所以,我们在进行软件更改之时,要做好变更影响分析,确定好更改方案,小心谨慎地修改代码、数据和文档,做好回归测试,尽可能地避免引入新的缺陷。
这正是:
变更隐藏大危险,小心考虑各方面
文档数据和代码,危险操作看一看
参考书目:软件工程(第4版),作者:张海藩吕云翔,出版社:人民邮电出版社有限公司
作者简介:王小双,长期从事GJB推广、实施、评价、改进的工作,创建《软件工程之思》