java白盒测试

  1. 白盒的测试方法

  2. 白盒的测试其它方法

  3. Java动态检查工具介绍

  4. Java mock框架介绍

  5. Java静态检查工具介绍

白盒测试方法

代码静态检查(编码规范,潜在缺陷(包括安全性,性能)代码复杂

代码的动态覆盖率检查

白盒测试方法

1. 语句覆盖
2. 判定覆盖
3. 条件覆盖
4. 判定 & 条件覆盖
5. 多重条件覆盖
 
 

例子程序

例子程序
public void F( int a,int b,int x)                                                              
{
if(a>1||&&b==0 )
{
x=x/a;
}
if(a==2||x>1)
{
x=x+1;
}
}
 

 

白盒测试的方法

全路劲覆盖:完全的 白盒测试是将程序中的每一条路径都执行一次,对带有循环来说的语句,就不现实。
每一条语句执行一次,即语句覆盖,这是覆盖最低的, ace 即是语句覆盖 。若第一个判断写成了 || 这个当前覆盖就无法发现。
判定覆盖,包括 switch do-while if-else, 使的每个分支,每个判断至少有一个为 一个为 ,即 ace abd 或者 acd abe ,可以说判定覆盖包含语句覆盖,
条件覆盖,将每个条件的所有可能都执行一遍。 if(A&B) A 为真, B ,A 为假, B 为真。(不能使 if then A=2,B=0,X=3   A=1,B=1,X=1, 涵盖 了所有的条件真假,但只是过了路径 abe, abd 条件覆盖比判定覆盖强。
判定覆盖 / 条件覆盖组合覆盖,判定条件不能让所有的条件都执行 例如 if(A||B),A 为真, B 会短路
多重条件覆盖
 
 
原则
1. 将每个判断的所有结果都至少执行一次;
2. 将所有的程序入口(例如入口点或 ON 单元)都至少调用一次,以确保全部的
语句都至少执行一次。而对于包含多重条件判断的程序,最简单的测试准则是设计
出足够数量的测试用例,将每个判断的所有可能的条件结果的组合,以及所有的入
口点都至少执行一次(加入“可能”二字,是因为有些组合情况难以生成)
 
 
 
盒测试覆盖方法
微软测试之道里面有块覆盖
 
 
 
 
基本路径法
 
程序控制流图的基础上,通过分析程序控制流图的环路复杂性,导出基本可执行路径的集合,然后据此设计 测试用例,设计出的测试用例要保证在测试中程序的每一条可执行语句至少执行一次。
 
 
 
 
 

 

 

 

基本路径法

路径 1:5-6-7-8-14-5-15
路径 2:5-6-7-9-10-11-14-5-15
路径 3:5-6-7-9-10-12-13-14-15
路径 4 5-15
 
 
 
 
MC/DC
 
改进条件  / 判定范围 ( MC/DC  ModifiedCondition /Decision Coverage ):程序中的每个入口点和出口点至少被调用一次;判定中每个条件的所有取值至少出现一次;每个判定的所有可能结果至少出现一次;每个条件都能独立地影响判定的结果,即在其它所有条件不变的情况下改变该条件的值,使得判定结果 改变 .
•  MC/DC 是条件组合覆盖的 子集 .
A and B
 
 
 
 
 
Java 对象的 mock
 

stub 动态测试中,是一种基本的测试手段,有广泛的应用
主要借助向程序中插入操作,来实现测试目的的方法(即向源程序中添加一些语句(也称探测器),实现对程序语句的执行、变量的变化等情况进行检查

Mock模拟对象(Mock Object)可以取代真实对象的位置,用于测试一些与真实对象进行交互或依赖于真实对象的功能,模拟对象的背后目的就是创建一个轻量级的、可控制的对象来代替测试中需要的真实对象,模拟真实对象的行为和功能

 

 

Java mock工具

1.Easy mock

2.Jmock

3. mockito(推荐)

 

Java动态覆盖工具

 

Jacoco
支持语句覆盖,分支覆盖
见实例项目
Cobertura
支持语句覆盖
 
 
Jacoco
 
Jacoco 开源覆盖工具,针对 Java 方便的集成到 maven,sonar,jenkins
功能支持:分支覆盖,圈:复杂度,行覆盖,方法覆盖,类覆盖
实现原理:通过改变字节码插桩的信息统计出覆盖信息

 

Java编码规范检查工具

 

PMD: 注重检查源文件中的潜在问题,可以检查Java代码中是否有未使用的变量、私有方法,是否有空的try/catch、是否过于复杂的表达式等等

CheckStyle:注重代码格式、代码规范,通过检查编码格式、命名约定、Javadoc、类设计等方面进行代码规范和风格的检查,从而有效约束开发人员更好地遵循代码编写规范,提供常见IDE的插件,如eclipseIDEA

FindBugs:注重检测潜在的Bug和性能问题,通过检查类文件或jar文件将字节码与一组缺陷模式进行对比从而发现代码缺陷,提供UI界面和常见IDE插件

SonarQube:开源的代码质量管理平台,涵盖了架构设计、注释、编码规范、潜在缺陷、代码复杂度、单元测试、重复代码7个维度。通过强大的插件扩展机制,支持对主流编程语言的指标分析,目前可以支持超过20种以上主流编程语言。

阿里的代码检查插件,Alibaba Java Coding Guidelines

 

代码静态分析工具

1. 帮助程序开发人员自动执行静态代码分析,快速定位代码隐藏错误和缺陷。
2. 帮助代码设计人员更专注于分析和解决代码设计缺陷。
3. 显著减少在代码逐行检查上花费的时间,提高软件可靠性并节省软件开发和测试成本

 

 

Checkstyle介绍

1.CheckstyleSourceForge 的开源项目,通过检查对代码编码格式,命名约定,Javadoc,类设计等方面进行代码规范和风格的检查,从而有效约束开发人员更好地遵循代码编写规范

2.配置

<plugin> <groupId>org.apache.maven.plugins</groupId> <artifactId>maven-checkstyle-plugin</artifactId> <version>2.10</version> <executions> <execution> <phase>process-sources</phase> <goals> <goal>check</goal> </goals> </execution> </executions> <configuration> <failsOnError>true</failsOnError> <configLocation>${project.basedir}/conf/checkstyle.xml</configLocation>

 </configuration> </plugin>

 

新技术应用--精准平台

 

部分平台支持功能:展示端展示结果,用例与代码追溯,只能回归测试用例,覆盖率分析,缺陷定位,能够很好的缺陷分析,最小测试用例集。

核心东西:用例与代码的追溯,通过插装实时监控软件的覆盖率,映射到用例(白盒用例与功能用例)

参考文献

1.软件测试的艺术

2.java代码与架构之完美优化

3.微软测试之道

4.百度文库 https://wenku.baidu.com/view/47d226921a37f111f1855bec.html

 
 

 

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值