一:白盒测试工具(Code Test):
1)代码测试工具
代码测试工具是一个硬件辅助软件的测试与分析工具,为追踪应用程序,分析软件性能,测试软件的覆盖率以及存储体的动态分配等提供一个实时在线的高效率,可共享的网络工具
2)代码测试工具的4大功能
①:性能分析
②:测试覆盖率分析
在系统真实的环境下,可以从单元级,集成级,系统级以及产品终端现场阶段进行嵌入式软件分析与测试,由于Code Test是一种完全地交付式工具,测试者可以在实时的系统环境下进行简单语句覆盖SC,决策覆盖DC,和条件决策覆盖MC/DC的代码覆盖率测试,帮助测试工程师掌握当前代码测试覆盖率情况,知道测试用例的编写,加速测试进程和产品风险的评估过程
SC:每执行一条源代码语句即视为这一条语句100%覆盖
DC:对于每一条条件语句的每一个不同的决策值至少出现一次才可被视为100%覆盖
MC/DC:对于每一条条件语句的条件,在分解为乘积最小项的加法的真值表中,至少每一个最小项的条件都被满足一次才可视为完全覆盖
③:内存分析
④:执行追钟分析
二:静态测试和静态测试工具
1)静态测试
静态测试是测试中重要的手段之一,它可以对各种软件文档进行测试,是软件开发中十分有效的质量控制方法之一,静态测试方法可以分为人工测试方法和计算机辅助静态分析方法,静态测试大约可以找出30%-70%的逻辑设计错误,重点如下:
①:编码的规范性
②:资源是否释放
③:数据结构是否完整和正确
④:是否有死代码和死循环
⑤:代码本身是否存在明显的效率和性能问题
⑥:代码本身的方法,类,和函数的划分是否清晰且易理解
⑦:代码本身是否健壮,是否有完善的异常处理和错误处理
人工测试要求在计算机上实际执行所有测试程序,课发挥人的逻辑思想优势,通过桌面检查对软件进行分析,桌面检查包括走读,走查,代码的静态分析,审查,和评审
2)走读
可由开发人员和测试人员相互走读代码,走读代码主要具有检查文档和源程序代码,检查项目,检查功能,检查界面,检查流程,检查提示信息,检查函数,检查数据类型与变量,检查条件判断,检查循环,检查输入/输出,检查注释,检查程序(模块),检查数据库等
检查文档和源程序代码需要注意以下问题:
① 一份最新的设计文档
② 程序机构图
③ 所有的模块源程序代码
④ 代码体系结构描述
⑤ 目录文件
⑥ 代码组织
检查项目需要注意以下问题:
① 检查变量的交叉引用表,重点是检查未说明的变量和违反了类型规则的变量
② 对照源程序,逐个检查变量的引用,变量的使用序列
③ 临时变量在某条路径上的重写情况
④ 局部变量,全局变量与特权变量的使用
⑤ 检查标号的交叉引用表
⑥ 验证多有标号的命名是否正确
⑦ 转向指定位置的标号是否正确
⑧ 检查子程序,宏,函数,验证每次调用与所调用的位置是否正确
⑨ 确认每次所调用的子程序,宏,函数是否存在
⑩ 检验调用序列中调用方式与参数顺序,个数,类型上的一致性
⑪ 检查全部等价变量的类型的一致性,解释所包含的类型差异
⑫ 确认每个常量的取值,数制,数据类型
⑬ 检查常量每次引用同它的取值,数制和类型的一致性
⑭ 用标准检查程序或手工检查程序中违反标准的问题
⑮ 检查在程序设计风格方面发现的问题
检查功能时需要注意以下问题:
① 重复的功能
② 多余的功能
③ 功能实现与设计要求是否相符
④ 功能的使用性,方便性,易用性
检查界面时需要注意以下问题:
① 界面是否美观
② 空间的排序,格式
③ 焦点控制是否合理或者全面
检查流程时需要注意以下问题:
① 流程控制是否符合要求
② 流程实现是否完整
检查提示信息时需要注意以下问题:
① 提示信息出现时机的合理性
② 提示信息的格式和要求的合理性
③ 提示框返回后停留位置的合理性
检查函数时需要注意以下问题:
① 函数头能否清楚的描述函数和它的功能
② 代码中是否有相关注释
③ 函数名是否能清晰地定义它的目标以及函数的功能
④ 函数的参数是否都被使用
⑤ 函数的参数接口关系是否清晰
⑥ 函数的出口是否都有返回值
⑦ 函数的异常处理是否清楚
检查数据类型与变量时需要注意以下问题:
① 数据有效性检测是否合理
② 数据来源的正确性
③数据处理过程的正确性
④ 数据处理结果的正确性
⑤ 是否提供数据类型的解释
⑥ 变量是否分配了正确的长度,类型和存储空间
⑦ 是否明确区分静态变量
⑧ 变量是否初始化
⑨ 变量的命名是否与标准库中的命名相冲突
⑩ 是否有对全局变量的描述
⑪ 类型转换是否正确
检查条件判断需要注意以下问题:
① IF/Else使用是否正确
② 无嵌套的IF是否使用正确
③ 数字,字符,指针和0/Null/False判断是否明确
④ 是否存在臃肿的判断逻辑
⑤ 所有的判断条件边界是否正确
⑥ 判断体是否足够短
检查循环时需要注意以下问题:
① 循环体是否为空
② 循环之前是否存在初始化代码
③ 有明确的多次循环操作,尽量使用For循环
④ 不明确的多次循环操作,尽量使用While循环
⑤循环终止的条件是否清晰
⑥ 所有的循环边界是否正确
⑦ 循环体内的循环变量是否起到指示作用
检查输入/输出时需要注意的问题:
①所有文件的属性描述是否清楚
② 输入参数的异常是否存在处理程序
③ 检查文件结束的条件
检查注释时需要注意的问题:
①是否存在一个简单的说明,用于描述代码的结构
② 每个文件和模块是否均给与解释
③ 解释说明是否能准确描述代码意义
④ 解释是否过于简单
⑤ 注释是否正确
⑥ 代码的注释与代码是否一致,注释是否是多余的
检查程序(模块)时需要注意的问题:
① 程序中所有的异常是否处理了
② 程序中是否存在重复的代码
③ 程序结构是否清晰
检查数据库时需要注意的问题
① 数据库命名需要使用小写英语字母,数字和下划线,无其他字符
② 数据库命名采用项目名或产品 名称命名,长度小于20位
③ 数据库中的所有表字符集需要统一
④ 数据库对象的命名不适用保留关键字
⑤ 数据库设计考虑到将来可能存在的异种数据库迁移
⑥ 字段与界面项目能够一一对应
⑦ 字段取值需要符合域定义
⑧ 字段的类型和长度能够满足字段的值的最大限量
⑨ 文本字段有充足的余量对应可能的长度变更
⑩ 数字字段考虑了充足的余量和精度对应的长度或精度变更
3)走查
走查是一种非正式的评审过程,设计者或程序员事先读过设计和编程,有其他成员提出问题并对有争议的部分评论,检查的要点是代码编写是否符合标准和规范,是否存在逻辑错误
4)代码的静态分析
5)审查
6)评审
文章截取书籍<<软件测试与软件测试技术>>