测试进阶-白盒测试(八)

白盒测试 - 代码审查、逻辑覆盖

代码审查的范围

  • 业务逻辑
  • 算法效率
  • 代码风格
  • 编程规则

代码审查的方法

  • 互查:模块相同或相近的编程人员之间互相检查。
  • 走查:从头到尾将模块检查一遍。
  • 代码审查:会议校验

代码审查的规则

  • java基础语句的使用(不同类型数据的等于)
  • 重载函数的审查:同名函数不同功能(改变参数个数和类型)
  • 内存分配和管理:保证内存的及时释放和避免缓冲区溢出
  • 程序性能的审查
    (1)减少创建对象
    (2)减少循环体的执行代码,能在循环体外的代码尽量放在循环体外
    (3)提高处理异常出错的效率
    (4)减少I/O读取操作时间

单元测试属于白盒测试范畴。
单元测试:是软件测试中最基础的测试,集成测试、功能测试和系统测试都建立在单元测试之上。

单元测试的对象:是构成软件产品或系统的最小的独立单元,如封装的类或对象、独立的函数、进程、组件或模块等。

单元测试用例设计

  • 对程序所有独立的执行路径至少测试一次
  • 对所有逻辑判断,真假情况至少各测试一次
  • 对程序进行边界检查
  • 检验内部数据结构的有效性(数据库设计与结构)

白盒测试方法:逻辑覆盖法(主要测试方法)
逻辑覆盖分为:语句覆盖、判定覆盖、条件覆盖、判定-条件覆盖、条件组合覆盖(由弱到强)
在这里插入图片描述
转换为
在这里插入图片描述

  • 语句覆盖:使程序每条可执行语句至少被执行一次。但不能准确判断运算中的逻辑关系错误(a>0 or b>0)。
    P1: (M-K-N-J-P) 语句覆盖最全的路径,MTNT
    P2: (M-N-P) ,MFNF
    P3: (M-K-N-P) ,MTNF
    P4: (M-N-J-P) ,MFNT

  • 判断覆盖:使每个判断的真假值都至少各执行一次(判断MN的真假)。但会忽略一些情况(只要考虑到a>1,b的取值正负不会影响下面的组合)。
    M={a>0 and b>0},N={a>1 or c>1}
    2T 2F 都需要顾及到,选择以下其中一种即可。
    组合1:P1+P2 全T+全F
    组合2:P3+P4 TF+FT

  • 条件覆盖:使每个条件的真假值都至少执行一次(判断MN里每个条件的真假)。但不能保证覆盖所有路径。
    条件a>0:取真为T1,取假为F1
    条件b>0:取真为T2,取假为F2
    条件a>1:取真为T3,取假为F3
    条件c>1:取真为T4,取假为F4
    不一定要经过所有路径,但要覆盖所有条件的TF。
    如以下两次用例可满足:(and F or T)
    P4: (M-N-J-P) ,MFNT,a=1,b=-2,c=-3,T1,F2,T3,F4
    P4: (M-N-J-P) ,MFNT,a=-1,b=2,c=3, F1,T2,F3,T4

  • 判断-条件覆盖:使用判断条件的取值至少被执行一次,同时使判断条件中所有条件的所有取值也至少被执行一次。
    如:P1+P2(全T+全F)
    P1: (M-K-N-J-P) ,MTNT,a=2,b=2,c=4,T1,T2,T3,T4
    P2: (M-N-P) ,MFNF,a=-1,b=-1,c=-1,F1,F2,F3,F4

  • 条件组合覆盖:与判断-条件覆盖的区别是,让每个条件的取值的所有可能组合都至少执行一次。
    组合:P1+P2+P4(判断-条件覆盖+条件覆盖)
    P1: (M-K-N-J-P) ,MTNT,a=2,b=2,c=4,T1,T2,T3,T
    P2: (M-N-P) ,MFNF, a=-1,b=-1,c=-1,F1,F2,F3,F4
    P4: (M-N-J-P) ,MFNT,a=1,b=-2,c=-3,T1,F2,T3,F4
    P4: (M-N-J-P) ,MFNT,a=-1,b=2,c=3, F1,T2,F3,T4

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值