-
白盒的测试方法
-
白盒的测试其它方法
-
Java动态检查工具介绍
-
Java mock框架介绍
- 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的插件,如eclipse,IDEA等。
FindBugs:注重检测潜在的Bug和性能问题,通过检查类文件或jar文件将字节码与一组缺陷模式进行对比从而发现代码缺陷,提供UI界面和常见IDE插件。
SonarQube:开源的代码质量管理平台,涵盖了架构设计、注释、编码规范、潜在缺陷、代码复杂度、单元测试、重复代码7个维度。通过强大的插件扩展机制,支持对主流编程语言的指标分析,目前可以支持超过20种以上主流编程语言。
阿里的代码检查插件,Alibaba Java Coding Guidelines
代码静态分析工具
? 1. 帮助程序开发人员自动执行静态代码分析,快速定位代码隐藏错误和缺陷。 ? 2. 帮助代码设计人员更专注于分析和解决代码设计缺陷。 ? 3. 显著减少在代码逐行检查上花费的时间,提高软件可靠性并节省软件开发和测试成本
Checkstyle介绍
1.Checkstyle是 SourceForge 的开源项目,通过检查对代码编码格式,命名约定,Javadoc,类设计等方面进行代码规范和风格的检查,从而有效约束开发人员更好地遵循代码编写规范
2.配置
新技术应用—精准平台
部分平台支持功能:展示端展示结果,用例与代码追溯,只能回归测试用例,覆盖率分析,缺陷定位,能够很好的缺陷分析,最小测试用例集。
核心东西:用例与代码的追溯,通过插装实时监控软件的覆盖率,映射到用例(白盒用例与功能用例)
参考文献
1.软件测试的艺术
2.java代码与架构之完美优化
3.微软测试之道
4.百度文库 https://wenku.baidu.com/view/47d226921a37f111f1855bec.html
文章知识点与官方知识档案匹配,可进一步学习相关知识Java技能树首页概览91418 人正在系统学习中
声明:本站部分文章及图片源自用户投稿,如本站任何资料有侵权请您尽早请联系jinwei@zod.com.cn进行处理,非常感谢!