【软件测试】3、代码检查与Code Review-阿里云开发者社区

开发者社区> jerry.yin> 正文

【软件测试】3、代码检查与Code Review

简介: 对于一家技术研发流程完善的技术公司来说,代码审查都是必不可少的一部分。虽然大部分代码审查工作都是研发团队的工程师完成,广义上讲,代码审查也是软件测试的一部分。
+关注继续查看

对于一家技术研发流程完善的技术公司来说,代码审查都是必不可少的一部分。虽然大部分代码审查工作都是研发团队的工程师完成,广义上讲,代码审查也是软件测试的一部分。这与大部分人对软件测试的观念有所不同,他们可能认为软件测试的唯一方法是用计算机执行代码。实际上,使用计算机执行的软件测试只是传统的测试方法,而软件测试的新观念认为在进行传统测试之前,代码人工审查也是非常必要的。


1、代码检查


代码检查通常以一个小组为单位,主要的目的在于发现代码中出现的错误以及不良风格,主要有:

(1)数据引用错误:

①使用了未初始化和未赋值的变量;②数组下标越界;③数组下标非正整数;④“虚调用”,即引用了非法内存;⑤按照错误的数据类型引用内存数据;⑥数据类型与引用它的结构不匹配;⑦内存寻址错误;⑧基础存储结构错误;⑨跨过程的结构定义错误;⑩数组或字符串存在下标边界引用错误(特别是第一个和最后一个);⑪类的继承需求没有满足。


(2)数据声明

①使用了未声明的变量;②变量声明的属性错误;③变量在声明时初始化错误;④变量的长度和数据类型错误;⑤变量的初始化与存储空间类型不一致;⑥变量名称过于相似。


(3)运算错误

①运算的变量之间数据类型不一致;②存在相同数据类型、不同字长的变量之间的运算;③被赋值的变量数据类型小于右侧表达式的返回结果的数据类型;④存在混合模式的运算;⑤表达式运算结果存在溢出;⑥存在用0除;⑦计算进制错误;⑧变量的值超出实际意义;⑨操作符优先级判断错误;⑩整数运算逻辑错误。


(4)比较错误

①存在不同数据类型的比较;②混合模式比较中类型转换规则错误;③比较运算逻辑不正确,尤其注意“等于”的情况;④bool表达式所叙述的内容是否正确;⑥浮点变量比较错误;⑦逻辑运算优先级错误;⑧使用了编译器不接受的写法。


(5)流程控制错误

①含有潜在的非法分支;②存在死循环的可能;③存在从来没有执行的循环体;④循环越界;⑤循环次数多一次或者少一次,常常因为≥和>、≤和<的区别造成;⑥do和while不匹配;⑦代码块“{”和“}”不匹配;⑧未设置默认的判断分支。


(6)接口错误

①形参与实参数量不匹配;②形参与实参的数据类型不匹配;③形参和实参的量纲不匹配;④原本输入参数的值被改变;


(7)输入输出错误

①文件声明属性错误;②文件打开属性错误;③打开文件的内存空间不足;④使用了未打开的文件;⑤文件使用过后未关闭;⑥未处理判断文件结束的条件;⑦未处理文件打开失败的情况。


(8)其他检查

①程序出现警告;②程序未检查输入的合法性;③程序遗漏了某些功能。


2、代码走查


代码走查主要考察代码的运行流程。测试者使用书面的测试用例进行推演,即使用测试数据沿程序的逻辑结构运行一遍并记录程序的状态。

版权声明:本文内容由阿里云实名注册用户自发贡献,版权归原作者所有,阿里云开发者社区不拥有其著作权,亦不承担相应法律责任。具体规则请查看《阿里云开发者社区用户服务协议》和《阿里云开发者社区知识产权保护指引》。如果您发现本社区中有涉嫌抄袭的内容,填写侵权投诉表单进行举报,一经查实,本社区将立刻删除涉嫌侵权内容。

相关文章
ASP.Net Core的Code Fist代码先行操作方法
Asp.Net  core的Code Fist(代码先行)主要有以下几步: 1.创建实体类 2.创建数据库上下文 3.填加连接字符串 4.依赖注入 5.添加基架工具并执行初始迁移 6搭建模型的基本架构(更具模型生成网页Page) 首先需要在创建出实体类,此处以微软官方文档中的Movice实体类为例。
1041 0
PostgreSQL 10.1 手册_部分 III. 服务器管理_第 32 章 回归测试_32.5. 测试覆盖检查
32.5. 测试覆盖检查 PostgreSQL 源代码可以使用覆盖测试指令编译,因此可以检查哪些部分的代码被回归测试或任何其他测试套件所覆盖。当前使用 GCC 编译时支持该特性,并且需要gcov和lcov程序。
1044 0
iOS10软件崩溃 Xcode8崩溃 打印/字体等问题汇总 韩俊强的博客
iOS开发者交流QQ群: 446310206 【1】、Xcode8代码出现ubsystem: com.apple.UIKit, category: HIDEventFiltered, enable_level: 0, persist_level: 0, default_ttl: 0, inf...
965 0
检查HTTP 的 Digest 认证代码示例-JSP
检查HTTP 的 Digest  认证. since http1.1 代码如下所示:(此代码还不完善, RFC2617算法未实现).
756 0
【HEVC学习与研究】46、HEVC参考代码中SAO的实现
1、HM10 encoder关于SAO的初始化操作 在编码开始之前,编码器将进行与SAO有关的一些初始化设置。如在TAppEncTop::encode()函数中调用TAppEncTop::xInitLibCfg()进行与config相关的设置: m_cTEncTop.
1575 0
【软件测试】3、代码检查与Code Review
对于一家技术研发流程完善的技术公司来说,代码审查都是必不可少的一部分。虽然大部分代码审查工作都是研发团队的工程师完成,广义上讲,代码审查也是软件测试的一部分。
817 0
+关注
jerry.yin
毕业于上海大学通信与信息工程学院,从事流媒体和视频编解码的研究与开发工作; 研究领域包括视频编解码标准、视频处理和流媒体技术、移动互联网技术等。
182
文章
0
问答
文章排行榜
最热
最新
相关电子书
更多
《2021云上架构与运维峰会演讲合集》
立即下载
《零基础CSS入门教程》
立即下载
《零基础HTML入门教程》
立即下载