zoukankan      html  css  js  c++  java
  • 白盒测试学习个人总结

      如同之前的随笔内容所说,常见的软件测试方法中,如果说黑盒测试就像是面对用户使用所设计出来的测试,那么白盒测试,就像是面对程序员和软件设计人员所设计出来的测试了。

      盒子,值得就是程序,白盒,就像其名字一样,程序对测试而言是透明的。在测试过程中,程序的输入输出,结构,运行过程,甚至代码等都是透明的。所以白盒测试又被称为结构测试或者透明盒测试。如果说黑盒测试是在测试程序的使用功能的话,那么白盒测试就是在检测程序的运行机理和过程了。

      所以,在对程序进行白盒测试之前,需要先对程序进行抽象化,将其转化为流程图,以方便测试。常见的白盒测试方法有静态分析测试以及语句覆盖测试等等。

      覆盖测试: 

     语句覆盖是一种常见的测试方法,即度量被测代码中每个可执行语句是否被执行到了。语句覆盖往往只检测与剧中的可执行语句部分,所以其代码覆盖率较低,而测试过程中所以得可执行语句分支都得考虑到,所以其效率并不高,其优点在于对测试不需要做出太多的设计,执行起来简单。

      而为了解决语句覆盖中重复覆盖的问题,就出现了另一种叫做分支覆盖的方法。分支覆盖又称判定覆盖,使得程序中每个判断的取真分支和取假分支至少经历一次,即判断的真假均被满足。 分支覆盖具有比语句覆盖更强的测试能力,而且具有和语句覆盖一样的简单性,无需细分每个判定就可以得到测试用例。然尔程序往往大部分的判定语句是由多个逻辑条件组合而成,但是分支分支覆盖,仅仅判断其整个最终结果,而忽略每个条件的取值情况,必然会遗漏部分测试路径。

      对分支覆盖对应的是条件覆盖。与分支覆盖不同的是,条件覆盖并非以分支的结果划分,而是以分支的条件划分。条件覆盖使得每个判断中的每个条件的可能取值至少满足一次。条件覆盖要检查每个符合谓词的子表达式值为真和假两种情况,要独立衡量每个子表达式的结果,以确保每个子表达式的值为真和假两种情况都被测试到。

     

      白盒测试意义:

      相对于黑盒测试而言,白盒测试往往复杂且效率较低。但是白盒测试依旧十分重要。白盒测试是对软件的彻底检查,就仿佛机器大检修一样,能够正常运行的机器未必内部没有问题,软件也是一样。白盒测试强迫程序员与检测人员去检测程序中最细枝末节的地方,发现隐藏的逻辑漏洞与bug,对高质量软件的产生十分有意义。


      

    
    
  • 相关阅读:
    CLR的黑暗面——栈与引用对象
    delegate的另类玩法
    一个比较bt的xslt
    关于string
    jQuery核心讲解
    Linux环境进程间通信(二):信号(上)
    ubuntu10.10 轻松安装 Nvidia 官方驱动
    Linux环境进程间通信(二): 信号(下)
    Linux 信号signal处理机制
    java.lang.ProcessBuilder类和java.lang.Process类
  • 原文地址:https://www.cnblogs.com/voidsh/p/4440230.html
Copyright © 2011-2022 走看看