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      

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.配置

groupId>org.apache.maven.pluginsgroupId> artifactId>maven-checkstyle-pluginartifactId> 2.10 process-sources check failsOnError>truefailsOnError> configLocation>${project.basedir}/conf/checkstyle.xmlconfigLocation>

 

 

新技术应用精准平台

 

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

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

参考文献

1.软件测试的艺术

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

3.微软测试之道

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

   

 

文章知识点与官方知识档案匹配,可进一步学习相关知识Java技能树首页概览91418 人正在系统学习中

声明:本站部分文章及图片源自用户投稿,如本站任何资料有侵权请您尽早请联系jinwei@zod.com.cn进行处理,非常感谢!

上一篇 2020年3月22日
下一篇 2020年3月22日

相关推荐