精华内容
下载资源
问答
  • java白盒测试

    千次阅读 2020-04-26 21:35:34
    白盒测试方法 对代码静态检查(编码规范,潜在缺陷(包括安全性,性能),代码复杂度) 代码的动态覆盖率检查 白盒测试方法 •1.语句覆盖 •2.判定覆盖 •3.条件覆盖 •4.判定&条件覆盖 •5.多重条件覆...
    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-whileif-else,使的每个分支,每个判断至少有一个为一个为,即aceabd或者acdabe,可以说判定覆盖包含语句覆盖,
    条件覆盖,将每个条件的所有可能都执行一遍。if(A&B) A为真,B,A为假,B为真。(不能使ifthenA=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
    路径45-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

     
     

     

    展开全文
  • 二、实验内容1、题目内容描述针对实验一编写的源代码进行白盒测试。要求绘制出程序的控制流图,采用逻辑覆盖和基路径方法设计测试用例。执行测试用例,并分析测试结果2、测试用例的编写根据条件绘制程序流程图如下由...

    关于三角形问题的白盒测试实验报告一、实验目的1、系统地学习和理解白盒测试的基本概念、原理,掌握白盒测试的基本技术和方法;二、实验内容1、题目内容描述针对实验一编写的源代码进行白盒测试。要求绘制出程序的控制流图,采用逻辑覆盖和基路径方法设计测试用例。执行测试用例,并分析测试结果2、测试用例的编写根据条件绘制程序流程图如下由程序流程图得如下控制流图采用逻辑覆盖设计测试用例并执行测试用例(1)语句覆盖输入测试路径测试结果M_num1M_num2M_num33211-2-3-5不是三角形3451-2-3-6-7-8-10-11-12-14一般三角形3331-2-3-6-7-8-9等边三角形3341-2-3-6-7-8-10-13等腰三角形(2)判定覆盖输入测试路径测试结果M_num1M_num2M_num33451-2-3-6-7-8-10-11-12-14一般三角形(3)条件覆盖输入测试路径测试结果M_num1M_num2M_num31231-2-3-5不是三角形3211-2-3-6-5不是三角形1321-2-3-6-7-5不是三角形3331-2-3-6-7-8-9等边三角形3451-2-3-6-7-8-10-11-12-14一般三角形3341-2-3-6-7-8-10-13等腰三角形4331-2-3-6-7-8-10-11-13等腰三角形3431-2-3-6-7-8-10-11-12-13等腰三角形(4)判定-条件覆盖输入测试路径测试结果M_num1M_num2M_num31231-2-3-5不是三角形3211-2-3-6-5不是三角形1321-2-3-6-7-5不是三角形3331-2-3-6-7-8-9等边三角形3451-2-3-6-7-8-10-11-12-14一般三角形3341-2-3-6-7-8-10-13等腰三角形4331-2-3-6-7-8-10-11-13等腰三角形3431-2-3-6-7-8-10-11-12-13等腰三角形(5)条件组合覆盖输入测试路径测试结果M_num1M_num2M_num31231-2-3-5不是三角形3211-2-3-6-5不是三角形1321-2-3-6-7-5不是三角形3331-2-3-6-7-8-9等边三角形3451-2-3-6-7-8-10-11-12-14一般三角形3341-2-3-6-7-8-10-13等腰三角形4331-2-3-6-7-8-10-11-13等腰三角形3431-2-3-6-7-8-10-11-12-13等腰三角形(6)路径覆盖输入测试路径测试结果M_num1M_num2M_num3-1-1-11-2-4无法执行完毕1231-2-3-5不是三角形3211-2-3-6-5不是三角形1321-2-3-6-7-5不是三角形3331-2-3-6-7-8-9等边三角形3451-2-3-6-7-8-10-11-12-14一般三角形3341-2-3-6-7-8-10-13等腰三角形4331-2-3-6-7-8-10-11-13等腰三角形3431-2-3-6-7-8-10-11-12-13等腰三角形基路径方法设计测试用例并执行测试用例输入测试路径测试结果M_num1M_num2M_num3-1-1-11-2-4无法执行完毕1231-2-3-5不是三角形3211-2-3-6-5不是三角形1321-2-3-6-7-5不是三角形3331-2-3-6-7-8-9等边三角形3451-2-3-6-7-8-10-11-12-14一般三角形3341-2-3-6-7-8-10-13等腰三角形4331-2-3-6-7-8-10-11-13等腰三角形3431-2-3-6-7-8-10-11-12-13等腰三角形三、测试结果分析经过以上测试发现程序无法结束,达不到预测结果。其余均能正确执行达到预期结果。四、实验思考 附录程序代码include stdio.hvoid Judgeint m_num1,int m_num2,int m_num3 scanfd d d,while1 m_num1 200else if m_num1m_num2 || m_num1m_num3 || m_num2m_num3printf等腰三角形;else printf一般三角形; else printf不是三角形; void mainint a,b,c; Judgea,b,c;int a,b,c; Judgea,b,c;

    展开全文
  • 测试方法之Java白盒测试(二)

    万次阅读 2019-12-21 19:09:44
    说明:该篇博客是博主一字一码编写的,实属不易,请尊重原创,谢谢大家!...文章目录五、使用 JUnit 进行单元测试4.JUnit 的安装和使用流程4.1 第 1 步,安装 eclipse 及 jre4.2 第 2 步,新建 Java 项目4.3 第 3 ...

    说明:该篇博客是博主一字一码编写的,实属不易,请尊重原创,谢谢大家!
    接着上一篇博客继续往下写 :https://blog.csdn.net/qq_41782425/article/details/103615186

    五、使用 JUnit 进行单元测试

    4.JUnit 的安装和使用流程

    4.1 第 1 步,安装 eclipse 及 jre

    说明: JDK——开发java程序用的开发包,JDK里面有java的运行环境(JRE),包括client和server端的,需要配置环境变量
    JRE——运行java程序的环境,JVM、JRE里面只有client运行环境,安装过程中,会自动添加PATH

    • 将eclipse及jre拷贝到桌面(博主使用纯净版win7进行演示)
      在这里插入图片描述
    • 将eclipse解压即可(免安装),因为博主只有一个C盘,所以只能解压到C盘了
      在这里插入图片描述
    • 安装jre,傻瓜式安装
      在这里插入图片描述
    • 打开C:\Eclipse目录下的eclipse.exe程序,并将该程序发送快捷方式到桌面,在打开程序时,出现如下提示
      在这里插入图片描述
    • 因为博主win7 并没有E盘,所以需要修改到C盘即可,点击确定后,成功进入欢迎界面
      在这里插入图片描述
    • 取消总是勾,关闭欢迎界面,不然每次打开eclipse都会出现欢迎
      在这里插入图片描述
    • 关闭初始化窗口
      在这里插入图片描述

    4.2 第 2 步,新建 Java 项目

    • 右击项目资源管理空白处,新建——其他——选中Java项目——点击下一步
      在这里插入图片描述
      在这里插入图片描述
    • 命名项目名称,点击下一步
      在这里插入图片描述
    • 最后点击完成,不关联透视图,因为不是做开发项目
      在这里插入图片描述
      在这里插入图片描述
    • 回到JavaTest项目,展开src目录,在src下创建一个包
      在这里插入图片描述
      在这里插入图片描述

    4.3 第 3 步,将 JUnit 引入项目

    • 右击项目 JavaTest—>选择“构建路径”—>点击“配置构建路径”
      在这里插入图片描述
    • 在弹出的窗口中点击“库”选项卡,点击“添加库”按钮,在弹出的窗口中选择“JUnit”
      在这里插入图片描述
    • 之后选择“JUnit”版本,点击完成即可
      在这里插入图片描述

    4.4 第 4 步,编写被测类的代码

    说明:编写一个程序,然后再编写代码来测试

    • 编写一个能够简单实现加减乘除、平方、开方的计算器类,然后对这些功能进行单元测试。编写完成后,类无需编译。首先右击test包,新建一个类
      在这里插入图片描述
    • 代码编写如下(顺便给eclipse更换配置了主题)
      在这里插入图片描述

    4.5 第 5 步,创建 JUnit 测试用例类

    • 右击test包,新建类——Java——JUnit——JUnit测试套件
      在这里插入图片描述
    • 在弹出页面命名类名,正在测试的类输入test包下的Calcultator即可
      在这里插入图片描述
    • 选择要测试的方法
      在这里插入图片描述
    • 点击完成后,则创建CalcTest类,并在这个类中有很多对应测试方法存根的方法
      在这里插入图片描述

    4.6 第 6 步,运行测试代码

    • 右击CalcTest类,选择运行方式为Junit测试,即对CalcTest中的方法进行测试
      在这里插入图片描述
    • 查看测试运行结果,显示全部失败,这是因为方法中全是fail尚未实现,也就是失败
      在这里插入图片描述

    5.JUnit 单元测试案例

    5.1 在测试类中创建一个被测类对象

    在这里插入图片描述

    5.2 使用@Test 进行测试

    说明:以测试 Calculator 类的 add 方法为例进行演示

    • 在testAdd方法中调用Calculator类中的add方法,并通过assertEquals方法来判断预期值与实际值是否一致,来到达测试的效果
      在这里插入图片描述
    • 运行代码,查看测过,全部通过
      在这里插入图片描述
    • 设计一个错误的用例,运行后,JUnit框架则显示出故障以及原因
      在这里插入图片描述

    5.3 使用@Before 进行测试前准备

    5.3.1 测试 divide 方法

    说明:以测试 Calculator 类的 divide方法为例进行演示

    • 在testDivide方法中添加测试用例,如下
      在这里插入图片描述
    • 运行代码,结果显示故障,原因是前面编写的testAdd方法中执行的用例导致result变量的结果为5了,所以(8+5)/2 因为是int类型所以结果为6而不是4
      在这里插入图片描述

    5.3.2 加入@Before 注解

    • 使用Before注解则可以完美解决,在CalcTest类中定义一个reset重置方法,在方法中调用clear方法使result变量的值为0,在这个方法上使用Before注解后,则在每个测试方法执行之前默认会去调用reset方法,就不会出现以上的问题
      在这里插入图片描述
    • 运行CalcTest类,testAdd和testDivide两个测试方法全部通过
      在这里插入图片描述

    5.3.3 测试 substract 方法

    • 在testSubstract方法中编写如下代码
      在这里插入图片描述
    • 运行测试,结果发现居然出现了实际结果为9,与测试中的预期结果2不一致
      在这里插入图片描述
    • 那么则需要回到Calculator类中,查看调用的substract方法有没有问题,结果发现这里result = result-1;这句代码不对,应该是result = result-n;才对,所以导致了实际结果为10 - 1 = 9,而不是10-8 = 2
      在这里插入图片描述

    5.4 使用@Ignore 忽略测试

    • 对于被测代码或者方法还未编写的,可以在对应测试方法上加上@Ignore 注解
      在这里插入图片描述
    • 运行代码,显示如下方法被跳过,而在Python语言中和@unittest.skip方法一样都是跳过此测试方法
      在这里插入图片描述

    5.5 使用@Test(timeout=?)进行超时限制测试

    • 测试 squareRoot 求平方根方法使用@Test(timeout=?)设定超时时间
      在这里插入图片描述
    • 运行代码,显示2秒后,进行断言测试,显示了一个错误
      在这里插入图片描述
    • 按理来说4的平方根为2没有问题啊,但是此时程序报错了,那么查看被测代码中的squareRoot方法,结果发现里面是死循环,所以出错了
      在这里插入图片描述

    5.6 使用@RunWith 和@Parameters 进行参数化测试

    5.6.1 什么是参数化

    • 怎么测试多分支?
      √     如一个对考试分数进行评价的函数
             ✰     返回值分别为“优秀,良好,一般,及格,不及格”
             ✰     在编写测试的时候,如果编写 5 个测试方法,进而测试 5 种情况,是一件很麻烦的事情。

    • 为了简化类似的测试,JUnit 提出了“参数化测试”的概念,只写一个测试函数,把这若干种情况作为参数传递进去,一次性的完成测试。

    5.6.2 创建用@RunWith(Parameterized.class)注解的测试类

    • 若使用参数化测试,必须指定一个 Runner,这个 Runner 就是 Parameterized,其写法是@RunWith(Parameterized.class)。
      √     必须生成一个新的测试类,不能与其他测试共用同一个类;
      √     必 须 在 类 前 使 用 @RunWith(Parameterized.class) 指 定 运 行 器 为Parameterized;

    • 在类中创建一个 Calculator 的对象以便调用其被测试的方法。这里假设新建测试类命名为 SquareTest,代码如下:
      @RunWith(Parameterized.class)//注意包含相应的包

    • 另外创建一个测试类SquareTest
      在这里插入图片描述

    • 创建@RunWith(Parameterized.class)注解测试类,在类中创建一个Calculator的对象
      在这里插入图片描述

    5.6.3 在新测试类中添加存储参数的成员变量

    • 在类中定义两个变量,一个用于存放参数,一个用于存放期待的结果
      在这里插入图片描述

    5.6.4 使用@Parameters 修饰测试数据集方法

    • 定义获得测试数据集的方法,该方法必须使用@Parameters 标注进行修饰
      在这里插入图片描述

    5.6.5 编写类的构造函数

    • 功能是对先前定义的两个参数进行初始化。
      √     注意参数的顺序要和上面的数据集合的顺序保持一致。
             ✰     如果前面的顺序是{参数,期待的结果},那么构造函数的顺序也要是“构造函数(参数, 预期结果)”。

    • 具体代码实现如下
      在这里插入图片描述

    5.6.6 编写测试方法

    • 之前在CalcTest类中存在testSquare方法,可以将其进行注释掉,然后在SquareTest类中,来编写testSquare方法,最后在getParamResult方法需要添加@Parameters注释来调用此方法获取参数
      在这里插入图片描述
    • 执行代码,两个故障一个通过,跟我们设计的二维数组的到达的平方值一致
      在这里插入图片描述
    • 整个程序的执行流程为
      在这里插入图片描述

    5.6.7 读取文件中的数据进行参数化

    • 打开文件
      File file=new File(文件路径)

    • 读取文件
      FileReader bytes=new FileReader(file)
      BufferedReader chars=new BufferedReader(bytes);

    • 读取文件中的行
      while((row=chars.readLine())!=null)

    • 拆分行中的列
      row.split("\t")

    • 关闭文件
      chars.close()

    • 首先创建一个java类,需要勾选main方法,因为在编写过程中要测试文件数据是否读取成功
      在这里插入图片描述

    • 然后在电脑桌面创建一个case.txt文件,用于读取文件数据使用,文件内容如下,适于求数的平方,需要注意的是最好用tab键进行分割
      在这里插入图片描述

    • 编写如下代码,读取case.txt文件中的第一行数据
      在这里插入图片描述

    • 运行代码,读取第一行数据成功正确
      在这里插入图片描述

    • 通过while循环来读取文件中所有的数据,条件为row 字符串的值不为空
      在这里插入图片描述

    • 拆分行中的列,并将数据存在数据中,遍历数据将每个值存放到num变量中并进行打印
      在这里插入图片描述

    • 将绝对路径修改为项目路径,方便以后迁移项目不将文件遗漏
      在这里插入图片描述

    • 修改SquareTest类中的getParamResult参数化方法
      在这里插入图片描述

    • 运行代码,方法没有问题
      在这里插入图片描述

    • 现在不需要从Object二维数组中获取数据,而是从文件中去获取,所以将ReadFile类中获取文件数据的代码直接粘贴到getParamResult方法中,需要统计文件中的行数以及将文件中的数据拆分到数组中(需要有java基础知识)
      在这里插入图片描述

    • 将代码复制到ReadFile类中进行测试,并循环换行打印出data二维数组中的每一列数据
      在这里插入图片描述

    • 运行代码,成功打印出每一行数据
      在这里插入图片描述

    • 回到SquareTest类中,运行代码,查看测试结果,显示参数类型不匹配全部出错了
      在这里插入图片描述

    • 那是因为Object类的data数组赋值给param及result这个两个int类型时不匹配报错了,将Object替换为Integer类型,最后将column[j] String类型的值转换为Integer即可
      在这里插入图片描述

    • 重新运行代码,全部通过
      在这里插入图片描述

    5.7 使用@RunWith 和@Suite.SuiteClasses 运行测试集

    5.7.1 什么是测试集

    • 也称打包测试、测试套件。

    • 在一个项目中,只写一个测试类是不可能的,我们会写出很多很多个测试类。可是这些测试类必须一个一个的执行,比较麻烦。

    • JUnit 提供运行测试集的功能,将所有需要运行的测试类集中起来,一次性的运行完毕,大大的方便测试工作。

    5.7.2 @RunWith(Suite.class)和@Suite.SuiteClasses 注解

    • 打包测试也需要使用一个 Runner ,需要向 @RunWith 标注传递一个参数Suite.class。

    • 同时,还需要另外一个标注@Suite.SuiteClasses,来表明这个类是一个打包测试类,在内部需要提供需要运行的测试类的名字。

    • 新建一个java类,使用@RunWith注解并传递Suite.class参数
      在这里插入图片描述

    • 在AllTest类上添加@Suite.SuiteClasses注解,将很多类打包到一个套件中
      在这里插入图片描述

    • 运行代码,则会执行测试套件中传递的所有测试类中的测试方法
      在这里插入图片描述

    6.使用 JUnit 的注意事项

    • 测试类和测试方法应该有一致的命名方案。

    • 确保测试与时间无关,不要依赖使用过期的数据进行测试,导致在随后的维护过程中很难重现测试。

    • 测试(测试量或代码规模)要尽可能地小,执行速度快。

    • 不要硬性规定数据文件的路径。

    • 利用 JUnit 的自动异常处理书写简洁的测试代码。
      √     事实上在 JUnit 中使用 try-catch 来捕获异常是没有必要的,JUnit 会自动捕获异常,那些没有被捕获的异常就被当成错误处理。

    展开全文
  • java白盒测试的想法

    2019-06-28 18:22:03
    我们在进行日常程序开发和维护的时候,或许总有一个疑问,为什么老有改不完的bug!!其实,陷入这种困境的原因往往是不注重单元测试导致的。 我们知道一般将测试...白盒测试不同,它是从代码本身去找问题,是从问...

      我们在进行日常程序开发和维护的时候,或许总有一个疑问,为什么老有改不完的bug!!其实,陷入这种困境的原因往往是不注重单元测试导致的。

         我们知道一般将测试分为黑盒测试和白盒测试两部分,黑盒测试较为基础直观,是从错误的表面现象中去找问题的原因,一般的bs测试人员都是在进行这种测试,总体讲黑盒测试对技术的要求不高,只要懂得使用软件就可以测试了。白盒测试不同,它是从代码本身去找问题,是从问题的根源去查找可能存在的问题,查的更为深入,对技术的要求也更高。也许有人说软件如果发生错误就一定会表现出来,那不是黑盒测试也可以发现问题,但问题是如果你做的项目没有表现页面呢!!!一般的黑盒测试人员都是通过浏览器这个表现页面进行测试,但有的服务是隐蔽在后台的,没有客户端供测试人员调用,这时就需要白盒测试了。

        说了那么多,主要是要告诉程序员要养成白盒测试的习惯,不要觉得自己只管开发,测试是QA的事,其实不然,如果你能够在自己的开发过程中灌输白盒测试的思想,保证软件质量,这不是很好嘛?不用QA天天缠着你改bug,这多好。

        白盒测试的利器就是Junit4了,附件里是我从网上找到的关于Junit的学习材料,动手性很强,大家可以边看边做。

    转载于:https://www.cnblogs.com/alterhu/archive/2012/03/14/2395688.html

    展开全文
  • Java白盒测试

    2021-07-08 22:19:46
    Java白盒测试 Java的代码测试分为以下两大类: 静态测试方法 不执行程序的测试方法。 主要用于测试文档和代码(文档) 动态测试方法 通过运行程序来发现缺陷的测试方法 黑盒测试方法 白盒测试方法 今天我们主要...
  • 测试方法之Java白盒测试(一)

    万次阅读 2019-12-20 22:13:53
    说明:该篇博客是博主一字一码编写的,实属不易,请尊重原创,谢谢大家! ...一、测试方法的分类 静态测试方法 动态测试方法 ...主要用于测试文档和代码(文档)。 2.动态测试方法 通过运行程序来...
  • 白盒测试代码

    2016-07-10 10:58:37
    白盒测试代码
  • Java白盒测试工具之PMD

    2018-02-11 14:29:00
    插件下载地址:... ... PMD 是一个源代码分析器。 它发现常见的编程缺陷,如未使用的变量、空 catch 块、不必要的对象创建等等。 它支持Java、JavaScript、Salesforce.com Apex、PLSQL、Apache ...
  • Junit和Eclemma介绍--java白盒测试工具

    千次阅读 2018-08-27 14:01:14
    Junit 一般进行单元测试时候使用,以前写好了模块,然后写一个main函数,写几个通用的测试用例去测试代码的逻辑结果是否正确,现在Eclipse中Junit插件使得不必须手动编写main函数,可以借助Junit编写测试函数,自动...
  • 记下来,以后使用。
  • 白盒测试是对系统结构、源代码的测试 开发过程中测试方法:单元测试、覆盖测试 Code cover(Java/COBOL覆盖测试) 熟悉 Codecover的 Standalone工作模式 掌握使用Ant工具辅助测试的方法 学习使用 Eclipse插件进行测试...
  • 白盒测试代码审查

    2020-04-11 14:10:11
    白盒测试分为两个层级:代码审查和单元测试 代码审查 能看懂逻辑即可,并能发现一些问题,在研发发起的代码审查这种会议中起到校验的作用 代码审查的范围 ◆合格的代码应具备正确性、清晰性、规范性、一致性和高效性...
  • java基础,三大主流数据库mysql,orcale,sql server;然后是j2ee的相关知识,也就是java开发框架。 Spring Framework Spring是一个解决了许多在J2EE开发中常见的问题的强大框架。 Spring提供了管理业务对象的...
  • 白盒测试 [代码规范] [Java] 一

    千次阅读 2011-08-04 10:32:25
    Java代码规范以SUN的标准Java代码规范为基础,为适应我们公司的实际需要,可能会做一些修改。本文档中没有说明的地方,请参看SUN Java标准代码规范。如果两边有冲突,以SUN Java标准为准。 1. 标识符命名规范 1.1 ...
  • 1. 按照是否查看代码划分(重点) 1.1 黑盒测试 把软件当成黑色的盒子,不关心程序内部的结构、逻辑,只关心输入...介于黑盒测试和白盒测试之间,既要考虑输入和输出,又要考虑程序内部的结构。 单元测试—白盒测试
  • 白盒测试 [代码规范][Java] 二

    千次阅读 2011-08-04 10:33:03
    3.1 注释 vs 代码 注释宜少二精,不宜多而滥,更不能误导 命名达意,结构清晰, 类和方法等责任明确,往往不需要,或者只需要很少注释,就可以让人读懂;相反,代码混乱,再多的注释都不能弥补。所以,应当先在...
  • (1) 定义测试用例 小建议: *测试用例的名称:被测试的类名+Test *测试用例所在的包名:XXX.XXX.test (2) 定义可以独立运行的测试方法 小建议: *测试方法的名称:被测试的方法+Test *测试方法的返回值: void *测试...
  • 软件测试 白盒测试案例--代码输入日期计算星期数 以下代码为输入日期计算星期数。对其代码进行白盒测试,设计测试用例。 要求: 1. 使用VISIO等工具画出程序流程图; 2. 画出程序控制流图; 3. 列出可采用的圈复杂度...
  • 白盒测试又称结构测试、透明盒测试、逻辑驱动测试或基于代码的测试。白盒测试是一种测试用例设计方法,盒子指的是被测试的软件,白盒指的是盒子是可视的,你清楚盒子内部的东西以及里面是如何运作的。“白盒”法全面...
  • 白盒测试

    千次阅读 2016-07-29 13:49:11
    本方案主要实施NC产品程序代码白盒测试。使界面符合设计规范,适用于用户;保证程序创建的类与接口的完整与正确,以及程序模块单独正常运行。保证局部模块功能完备性,运行正确性与稳定性。 测试项
  • 使用Junit对Java Web项目白盒测试

    千次阅读 2014-10-07 18:55:28
    Java Web工程师不懂Junit 将是工程师的恶梦;我们测试网站服务器程序开始都是采用网页请求测试,这样做不仅仅麻烦,更是浪费我们宝贵的时间,本文介绍了Junit的使用及其方便快捷...Junit测试是程序员测试,即所谓白盒
  • Java Web工程师不懂Junit 将是工程师的恶梦;我们测试网站服务器程序开始都是采用网页请求测试,这样做不仅仅麻烦,更是浪费我们宝贵的时间,本文介绍了Junit的...Junit测试是程序员测试,即所谓白盒测试,因为程序...
  • 白盒测试--基于控制流的白盒测试

    千次阅读 2019-10-15 00:02:15
    我的个人blog: lhttps://zhangchuanjun....所谓白盒测试,就是研究代码,找出代码中的错误。 分类: 按照是否运行有:静态测试与动态测试 具体的测...
  • 白盒测试 第四代白盒测试方法

    千次阅读 2011-08-04 10:44:38
    第4代白盒测试方法介绍--理论篇   作者:wayne_chan 出处:.csdn   关键词: 白盒测试 第4代 测试方法 4GWM 在线测试 持续测试 灰盒 脚本驱动

空空如也

空空如也

1 2 3 4 5 ... 20
收藏数 10,757
精华内容 4,302
关键字:

java白盒测试代码

java 订阅