码迷,mamicode.com
首页 > 其他好文 > 详细

对白盒测试的理解和计划运用

时间:2016-04-05 22:44:16      阅读:199      评论:0      收藏:0      [点我收藏+]

标签:

  随着项目软件快完成,白盒测试也开始着手工作了。
  白盒测试是一种用来发现软件某些错误的测试方法。其分为逻辑覆盖和控制结构测试2种。
 
  对于逻辑覆盖,有语句覆盖,判定覆盖,条件覆盖,判定/条件覆盖,条件组合覆盖,点覆盖,边覆盖和路径覆盖八种。
  语句覆盖:最简单的覆盖,要求让程序的语句全部运行一遍。比如有语句:if(a<10) a=a*2;正常运行中其条件可能不满足而跳过,而在语句覆盖的过程中,我们必须要让其值为真,即每个语句都运行。这样做可以检测所有语句的正确性。但其缺点也是明显存在的,如果判断语句是错误的,其值一直为真,那么这种覆盖将检测不到。
  判定覆盖:为了弥补语句覆盖的不足,有了判定覆盖。他在语句覆盖的基础之上,让每个判断语句取其可能的取值。还是刚刚的例子,要给出2组数据,一组让a<10,一组让a>=10以测试判断语句的正确性。明显,判定覆盖比语句覆盖效果高,可是其缺点是对程序逻辑的覆盖程度不高。
  条件覆盖:条件覆盖其含义是让每个条件都取到可能的结果。其感觉有点像判定覆盖。(这里我对条件覆盖和判定覆盖的区别不太清晰。)
  判定/条件覆盖:这是将判定覆盖和条件覆盖结合,所以其有多组测试数据。其对程序逻辑的覆盖是最高的,可是对于条件复杂的,要找到所有的测试难。
  条件组合覆盖:就是让程序中的条件真值按排列组合排列起来,每种组合都进行测试。这能找出对于条件有逻辑关系的错误。
  点覆盖,边覆盖和路径覆盖:就是让测试的样例进过其流图的所有点,边或者路径。对于边覆盖,我觉得其其实就是让程序全部运行一次。因为边覆盖需要走到所有的边,所以对于有选择的程序,其不能跑全部。比如有语句if(a<10) a++;else a--;运行的时候只能运行其中一个。所以,能运行边覆盖的,只有不存在多选一的程序。(不知道这样的理解对不对。)
  
  对于控制结构测试,有三种:基本路径测试,条件测试和循环测试。
  基本路径测试:根据程序的环境复杂度,找出其所有独立路径,一一测试。说白了,其实就是对于程序所有可能运行的路径进行测试。这种测试只适合所有独立路径都能以独立的方式测试的程序。(课本上的例子说明了其中2条路径不能独立测试。)
  条件测试:条件测试能够检查程序模块中包含的逻辑条件。其中包含到条件的使用,分为简单条件和复合条件。复合条件比较复杂,测试的复杂度也高,测试例子的设定也难。(对于复合条件,我还是有点不太懂。)
  循环测试:就是对循环的测试,其中有简单循环,嵌套循环和串接循环。有将嵌套和串接转换成简单循环的方法。

  对于白盒测试的计划使用:
  我们所做的项目是通讯软件,就是实现两台在局域网内的主机实时对话。所以其逻辑覆盖应该使用条件组合覆盖。因为其条件判断少,测试所需的样例不多。而且条件组合覆盖式对程序逻辑的覆盖度最大的测试方法。对于应要判断的条件,有是否写入本地数据库(以便查看聊天记录),是否符合字数要求(字数有规定数量。),登录是否正确。只有8种测试样例。其余的判断暂时还没有添加。
  对于循环测试,我们需要重视,因为我们的软件是一直查看服务器的数据库是否更新,这个循环是软件的基础,如果这个循环出错,那么软件就出现错误了。
  
以上是我对白盒测试的理解。

对白盒测试的理解和计划运用

标签:

原文地址:http://www.cnblogs.com/dragonest1995/p/5357010.html

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!