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

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

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

时间: 2024-11-08 19:08:25

对白盒测试的理解和计划运用的相关文章

我对白盒测试的理解与运用。。

在每个项目开发完成的初步阶段,应当为自己的软件进行测试,包括黑盒与白盒测试.我对白盒测试的理解是将所有有可能输入的数据进行验证,每个输入对应的输出我们能够根据自己软件的目的来进行 判断,它能够正确的判断出哪个环节或者是那个部分出现了问题,就好比一个判断语句,我如果能够通过正确的这一条线,那么我一定可以通过不正确的另一条线,这样能够判断那部分是否出现了问题,没有 通过判断条件进入对应的部分, private void setContent(String Message, int state) {/

白盒测试深度理解

白盒测试,又称结构测试.透明盒测试.逻辑驱动测试或基于代码的测试.白盒测试是一种测试用例设计方法,盒子指的是被测试的软件,白盒指的是盒子是可视的,你清楚盒子内部的东西以及里面是如何运作的."白盒"法全面了解程序内部逻辑结构.对所有逻辑路径进行测试."白盒"法是穷举路径测试. 黑盒测试:已知产品的功能设计规格,可以进行测试证明每个实现了的功能是否符合要求.        白盒测试:已知产品的内部工作过程,可以通过测试证明每种内部操作是否符合设计规格要求,所有内部成分是

SQL Server执行计划的理解

原文:SQL Server执行计划的理解 要理解执行计划,怎么也得先理解,那各种各样的名词吧.鉴于自己还不是很了解.本文打算作为只写懂的,不懂的懂了才写. 在开头要先说明,第一次看执行计划要注意,SQL Server的执行计划是从右向左看的. 名词解析: 扫描:逐行遍历数据. 先建立一张表,并给大家看看大概是什么样子的. CREATE TABLE Person( Id int IDENTITY(1,1) NOT NULL, Name nvarchar(50) NULL, Age int NULL

淘宝数据库OceanBase SQL编译器部分 源码阅读--生成逻辑计划

body, td { font-family: tahoma; font-size: 10pt; } 淘宝数据库OceanBase SQL编译器部分 源码阅读--生成逻辑计划 SQL编译解析三部曲分为:构建语法树,生成逻辑计划,指定物理执行计划.第一步骤,在我的上一篇博客淘宝数据库OceanBase SQL编译器部分 源码阅读--解析SQL语法树里做了介绍,这篇博客主要研究第二步,生成逻辑计划. 一. 什么是逻辑计划?我们已经知道,语法树就是一个树状的结构组织,每个节点代表一种类型的语法含义.如

【问底】陈焕生:深入理解Oracle 的并行执行

摘要:Oracle并行执行是一种分而治之的方法.执行一个sql 时,分配多个并行进程同时执行数据扫描,连接以及聚合等操作,使用更多的资源,得到更快的sql 响应时间.并行执行是充分利用硬件资源,处理大量数据时的核心技术. Oracle并行执行是一种分而治之的方法.执行一个sql 时,分配多个并行进程同时执行数据扫描,连接以及聚合等操作,使用更多的资源,得到更快的sql 响应时间.并行执行是充分利用硬件资源,处理大量数据时的核心技术. 在本文中,在一个简单的星型模型上,我会使用大量例子和sql m

【SQL进阶】03.执行计划之旅1 - 初探

听到大牛们说执行计划,总是很惶恐,是对知识的缺乏的惶恐,所以必须得学习执行计划,以减少对这一块知识的惶恐,下面是对执行计划的第一讲-理解执行计划. 本系列[T-SQL]主要是针对T-SQL的总结. SQL基础 [T-SQL基础]01.单表查询-几道sql查询题 [T-SQL基础]02.联接查询 [T-SQL基础]03.子查询 [T-SQL基础]04.表表达式-上篇 [T-SQL基础]04.表表达式-下篇 [T-SQL基础]05.集合运算 [T-SQL基础]06.透视.逆透视.分组集 [T-SQL

参数化(一):计划缓存

很多时候,当我执行查询调优的时候,引发查询性能糟糕的问题一般都是与参数化相关的. 一方面,参数化是查询处理器核心的基本主题.它能显著影响查询性能.另一方面,大家很少对这一主题进行详尽的了解. 因此我准备写一个系列的随笔来介绍关于参数化的问题.第一篇我将介绍关于计划缓存的内容.为了理解参数化,有必要先理解理解执行计划如何被缓存. SQLServer保留一定数量的内存来保存执行计划缓存.这就是执行计划(和一下其他结构)被缓存为了未来重用的地方.查询(或语句)和批处理之间的区别时会引发混淆.前者是作为

了解Sql Server的执行计划

前一篇总结了Sql Server Profiler,它主要用来监控数据库,并跟踪生成的sql语句.但是只拿到生成的sql语句没有什么用,我们可以利用这些sql语句,然后结合执行计划来分析sql语句的性能问题,这才是我们的最终目的,那么如何使用执行计划呢?我准备从以下几点来总结. 如何启动执行计划 执行计划结果要看什么 Sql Server的五种查找方式 查看更具体的执行过程 如何启动执行计划 运行一条sql,并且在工具栏中选中'Include Actual Execution Plan'按钮,此

Execution Plan 执行计划介绍

后面的练习中需要下载 Demo 数据库, 有很多不同的版本, 可以根据个人需要下载.  下载地址 -http://msftdbprodsamples.codeplex.com/ 1. 什么是执行计划 查询优化器对输入的 T-SQL 查询语句通过"计算"而选择出效率最高的一种执行方案,这个执行方案就是执行计划. 执行计划可以告诉你这个查询将会被如何执行或者已经被如何执行过,可以通过执行计划看到 SQL 代码中那些效率比较低的地方. 查看执行计划的方式我们可以通过图形化的界面,或者文本,或