软件的编码与测试
编码风格
程序的内部文档
- 命名:见名知意、精简、缩写一致。一个变量一种用途
- 用Pascal命名法:每个单词首字母大写,其他小写
- 用Camel(驼峰)命名法:首单词小写,之后的单词首字母大写
- 匈牙利命名法:标注作用域和类型下划线隔开再写意义
- 注释
- 序言注释:整体说明
- 功能注释:描述程序语句作用
测试
需求分析阶段指定过的测试计划,为了发现程序中错误而产生的
衡量软件质量因素的标准
- MCC77
- ISO9126
软件测试的过程
- 单元测试:程序员对单个模块检查是否完成预期功能->编码与详细设计(算法)的错误
- 集成测试:测试人员对通过了单元测试的模块,集成的系统进行测试->全局数据结构、接口(概要设计)的错误
- 渐增式集成:有回归测试集产生回归测试问题
- 自顶向下(宽度、广度)
- 自定向上
- 三明治
- 非渐增式集成
- 一次性集成
- 渐增式集成:有回归测试集产生回归测试问题
- 确认测试:测试人员依据软件需求说明书检查软件功能是否符合用户要求->系统说明书中的错误
- 系统测试:测试人员对软硬件、网络环境等运行测试和性能测试->运行平台中的错误
- 验收测试:软件使用者或第三方软件监理机构完成
- alpha测试:开发环境,由开发者指导用户完成
- beta测试:生产环境,用户独立完成
软件测试技术
白盒测试:利用程序内部的逻辑结构选择测试用例
- 逻辑覆盖
- 语句覆盖、点覆盖:程序中的每个可执行语句都至少执行一次
- 判定覆盖、边覆盖:程序中的分支分别取真或假值一次
- 条件覆盖:程序中的分支中的条件(单个条件,非组合条件)的可能取值至少执行一次
- 判定/条件覆盖:既要满足判断条件的准则,也要满足条件覆盖的准则
- 条件组合覆盖:程序中的分支中的条件(组合条件)的可能取值至少执行一次
- 路径覆盖:可达路径和非可达路径都要走一遍
- 控制结构测试
黑盒测试:只依据软件规格说明书检查程序是否符合功能或遗漏说明
- 等价划分
- 有效等价类:有意义的输入数据,通过性测试
- 无效等价类:无意义的输入数据,非通过性测试
- 边界值分析:针对各种边界情况设计测试用例
- 错误推测:靠经验和直觉推测程序中可能存在的各种错误
- 因果图:根据规格说明书描述,对原因和结果分类标识,写出判定(决策)表,根据判定表测试
软件调试技术
对错误进行定位,对错误进行修改
调试方法
- 蛮干法
- 回溯法
- 对分查找法
- 归纳法
- 演绎法
Comments NOTHING