桌上检查
桌上检查是一种程序员检查自己的原程序的方法。桌上检查的目的是发现程序中的错误。桌上检查的检查项目主要有检查变量、标号的交叉引用表,检查子函数、宏、函数,等价性检查,常量检查,标准检查,风格检查,比较控制流,选择、激活路径,补充文档等。
对程序代码做静态错误分析:
生成引用表和进行静态错误分析。
生成各种引用表:为了支持后面对源代码进行静态检查。
- 可直接从表中查出说明/使用错误,如循环层次表、变量交叉引用表、标号交叉引用表等。
- 为用户提供辅助信息,如子函数(宏、函数)应用表、等价(变量)表、常数表等。
- 用来做错误预测和程序复杂度计算,如操作符和操作数的统计表。
进行静态错误分析:主要用于确定在源程序中是否存在错误或危险结构。
- 类型和单位分析
- 引用分析
- 表达式分析
- 接口分析
代码检查
以小组为单位阅读代码,应用一系列规程和错误检查技术,检查实际的产品,发现错误和缺陷的过程。小组人员的角色通常为:协调人员、开发人员、检察人员、讲解员、记录员。代码检查的重要部分就是对照错误列表来检查常见错误,错误列表是独立于一般的编程语言的,主要包括:数据引用错误;数据声明错误;运算错误;比较错误;控制流程错误;接口错误;输入输出错误;其他检查。
走查
能在代码中对错误进行精确定位,降低调试成本;可以发现成批的错误,便于一同得到修正。
走查的过程:
- 计划走查会议:成立走查小组,安排走查会议的时间和地点,为审查人员分发材料。
- 走查产品:为走查做准备,并且在需要的时候要完全熟悉标准、检查表和其他任何提供的用于走查的信息。
- 执行走查:让事先准备好的测试用例沿程序的逻辑运行一遍,随时记录程序的踪迹,供分析和讨论用。
- 解决缺陷:程序员和走查人员解决走查中发现的问题。
- 走查记录:记录走查人员的名字、被审查的产品、走查的日期、缺陷、遗漏、矛盾和改进建议列表。
- 产品返工:根据走查的记录,程序员更新产品,纠正所有的缺陷、遗漏、效率问题和改进产品。
走查着重从流程的角度考察程序,借助程序流程图或调用图对数据流和控制流进行静态分析,调用图中,节点表示程序单元,有向边表示程序单元之间的控制和调用,通过调用图可以检查程序中变量的说明和引用,全局变量、参数误用的问题,同时还为动态测试用例的设计提供可靠的依据,在调用图中是不能对程序进行修改的。
同行评审
通过作者的同行来确认缺陷和需要变更区域的检查方法。评审的目的是发现产品的缺陷,因此在评审上的投入可以减少大量的后期返工。
同行评审的内容:
- 管理评审:对项目管理体系的适应性和管理活动的有效性进行评价。
- 技术评审:对产品以及各阶段的输出内容进行评估。
- 文档评审:包括需求评审(用户需求规格说明、产品需求说明、功能规格说明等),设计评审(软件总体设计规格说明、详细设计规格说明等),代码评审,质量验证评审(测试计划、测试用例)。
- 过程评审:通过对流程的控制,保证SQA组织定义的软件过程在项目中得到遵循,同时保证质量、保证方针能更快更好地执行。
评审的方法和技术:
- 临时评审:指一程序员临时请另一程序员用几分钟检查一个缺陷,这是最不正式的检查方法。
- 桌上检查或轮查:有时被称为分配审查方法,是一种由多人组成的并行的同行桌上检查。
- 结对评审:又称同行桌上检查或伙伴检查。桌上检查是指作者自己检查源代码,而结对评审就是除作者外,再请一位评审员对产品进行的桌上检查。这是最便宜的评审方法。
- 走查:使用样品数据做测试用例或者按脚本执行,通过脚本描述具体场景,说明系统如何在交互中完成预定功能。
- 小组评审:一种“轻型”的审查,有计划和结构。
- 正式审查:最系统,最严密也是最实用的评审方法。