软件测试学习33-执行阶段:专项测试(白盒测试)
1、代码审查
合格的代码应具备正确性、清晰性、规范性、一致性和高效性
代码审查的范围
- 业务逻辑的审查
- 算法的效率
- 代码风格
- 编程规则
代码审查的方法
- 互査:就是在相同模块或相近模块的编程人员之冋互相检査对方的代码
- 走查:从头到尾将写好的程序检查一遍
- 代码审查
代码审查的规则
- 最基本语句的使用
- 重载函数的审查
- 内存分配和管理:当进行内存分配和管理时,很重要一点就是确保内存的及时释放和避免缓冲区溢岀。
- 程序性能的审查
- 减少创建对象
- 减少循环体的执行代码,能放在循环体外的代码要尽量放在循环体外
- 提高处理异常出错的效率
- 减少O操作时间
2、单元测试
- 单元测试是软件测试中最基础的测试,集成测试、功能测试和系统测试都建立在单元测试之上
- 单元测试的对象是构成软件产品或系统的最小的独立单元如封装的类或对象、独立的函数、进程、子过程、组件或模块等
单元测试用例设计
- 对于单元测试用例的设计和程序的实现过程,主要集中在白盒测试方法之上,并力求达到下列测试要求
- 对程序模块所有独立的执行路径至少要测试一次
- 对所有逻辑判定,其结果为真、假两种情况至少要测试一次
- 对程序进行边界检査(常见的如数据越界检验)
- 检验内部数据结构的有效性
3、白盒测试方法之逻辑覆盖法
- 语句覆盖
- 设计若干测试用例,运行被测程序,使程序中的每个可执行语句至少被执行一次。
- 在使用语句覆盖法进行测试用例设计时,能够使得所有的执行语句都被测试,但是不能准确判断运算中的逻辑关系错误。
- 判定覆盖
- 是使每个判断的取真值和取假值都至少经历一次
- 条件覆盖
- 是使每个条件的取真值和取假值都至少经历一次
- 只是满足一种覆盖条件,还会遗漏程序逻辑路径或判定错误依旧存在较大风险。所以,白盒测试要求同时满足两种以上的测试覆盖要求,测试的覆盖率才能满足质量要求,将风险降到很低。
- 判定-条件覆盖
- 确保设计足够或精巧的测试用例,可使得判断条件中所有条件的可能取值至少被执行一次,同时,所有判断的可能结果也至少被执行一次
- 条件组合覆盖
- 设计足够的测试用例,使判断中每个条件的所有可能至少出现一次,并且每个判断本身的判定结果也至少出现一次与判定一条件覆盖的差别是,条件组合覆盖不是简单地要求每个条件都出现“真”与“假”两种结果,而是要求让这些结果的所有可能组合都至少出现一次