项目测试基础:白盒测试相关知识笔记

              

 

1、白盒测试概念

白盒测试又称为结构测试,主要是根据程序的内部结构和逻辑来设计测试用例,然后对程序的路径和过程进行测试,检查是否满足设计的需要。

2、白盒测试常用的技术介绍

白盒测试常用的技术有逻辑覆盖、循环覆盖、基本路径测试。

2.1 逻辑覆盖

逻辑覆盖考察用测试数据运行被检测程序时,对程序逻辑的覆盖程度。常用的逻辑覆盖标准语句:判定覆盖、条件覆盖、判定/条件覆盖、条件组合覆盖、路径覆盖。

  • 语句覆盖:主要是指选择足够的测试数据,使得被测试程序中每条语句至少执行一次。一般情况下语句覆盖对程序执行逻辑覆盖率很低,属于弱逻辑覆盖。

  • 判定覆盖:主要是指设计足够的测试用例,,使得程序中每个判定表达式至少获得一次true或false。判断覆盖也成为分支覆盖。

  • 条件覆盖:条件覆盖是指构造一组测试用例,使得每一个判定语句中每个逻辑条件的各种可能的值,至少满足一次。

  • 判定/条件覆盖:主要是指设定足够的测试用例,使得判定语句中每个条件的所有可能取值,至少出现一次,,并且每个判定本身的判断结果至少也出现一次。

  • 条件组合覆盖:主要是指设计足够的用例,使得每个判定条件的各种可能的组合都至少出现一次。满足条件组合覆盖的一定满足判定覆盖、条件覆盖、判定/条件覆盖。

  • 路径覆盖:主要是指覆盖被测试程序中所有可能的路径。

2.2 循环覆盖

循环覆盖就是指执行足够的测试用例,使得循环中的每个条件都得到验证。

2.3 基本路径测试

基本路径测试是在程序控制流图的基础上,通过分析控制流图的环路复杂性,导出基本可执行路径集合,从而设计相应的测试用例。设计出的测试用例要保证在测试中程序的每一条独立路径都执行过。

3、白盒测试的原则

  • 程序模块中所有独立路径至少执行一次

  • 在所有逻辑判断中,取trueh和false的两种情况至少都执行一次。

  • 每个循环都应在边界条件和一般条件下各执行一次。

  • 测试程序内部数据结构的有效性

4、白盒测试和黑盒测试优缺点

 

测试类型

优点

缺点

白盒测试

可以帮助软件测试人员增大代码的覆盖率。 提升代码的质量,发现代码中隐藏的问题

1、程序运行会有很多不同的路径,不可能测试所有的运行路径

2、测试基于代码,只能测试开发人员做的对不对,而不能知道设计是否正确,可能会漏掉一些功能需求

3、系统庞大时,测试开销会非常大。

黑盒测试

1、比较简单,不需要了解程序的内部的代码及实现

2、与软件的内部实现无关

3、从用户的角度出发,能很容易的知道用户会用到哪些功能,会遇到哪些问题

4、基于软件开发文档,所以也能知道软件实现了文档中的哪些功能

5、在做软件自动化测试时较为方便

 

1、不可能覆盖所有的代码, 覆盖率较低,一般只能达到总代码量的30%

2、自动化测试的复用性较低。

 

 

IT技术分享社区

个人博客网站:https://programmerblog.xyz

文章推荐程序员效率:画流程图常用的工具程序员效率:整理常用的在线笔记软件远程办公:常用的远程协助软件,你都知道吗?51单片机程序下载、ISP及串口基础知识硬件:断路器、接触器、继电器基础知识

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/news/271092.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

java全局变量和局部变量

分类: 变量按作用范围划分分为全局变量(成员变量)和局部变量 成员变量按调用方式划分分为实例属性与类属性 局部变量按定义位置划分分为形参,方法局部变量,代码块局部变量 成员变量: 直接在类中声明的…

电脑系统知识:Windows原版系统与Ghost系统的区别,你知道吗?

经常看到有电脑小白的朋友问原版操作系统跟Ghost的区别是什么,该怎么选择安装哪种系统?今天在这里就说说它们之间的联系与区别。Windows原版系统:原版系统就是微软推送给用户的原始“干净”的系统。系统不含第三方的软件,软件补丁…

sql server update触发器_SQL Server 触发器

T-SQL 触发器触发器分为BEFORE触发器*(SQL Server不支持,Oracle支持)在事件发生时触发。AFTER触发器是 SQLServer生成的最初用于自动相应数据修改的机制。在 SQLServer200以前的版本中 AFTER触发器是唯一的触发器,因此不用指明 AFTER,也可以用…

iOS 公司开发者账号申请

对于独立开发者很有用,收藏起来,以备不时之需! 苹果开发者账号分三种。 个人账号:个人申请用于开发苹果app所使用的账号,仅限于个人使用,申请比较容易,$99。 公司账号:以公司的名义申请的开发者账号,用于公…

php渲染视图,Laravel 视图渲染:Blade 模板引擎

Laravel 视图渲染:Blade 模板引擎由 学院君 创建于3年前, 最后更新于 2年前版本号 #153378 views27 likes0 collectsBlade 简介Blade 是由 Laravel 提供的非常简单但功能强大的模板引擎,不同于其他流行的 PHP 模板引擎,Blade 在视图中并不约束…

项目管理基础:系统切换相关知识笔记

1、系统试运行主要任务对新系统进行初始化、补录各种原始数据记录记录系统运行过程中的数据和状况核对新旧系统输出结果是否正确对实际系统的输入方式进行考察主要包括是否方便、效率、可靠性、误操作保护等方面。对系统实际运行、响应速度进行实际测试,确定是否满足…

sql 分组统计_leetcode-sql面试题十七篇精讲合集

这可能是全网最干货的sql讲解系列文章。全系列共十七讲。做了大量的知识点的拓展,涵盖了sql的方方面面。欢迎关注点赞收藏,正在整理三年数据分析的点点滴滴。包括Excel、python、sql、power BI、各种分析模型框架。保证输出最干的干货。涉及知识点包括&a…

项目管理基础:系统维护相关知识笔记

1、系统的可维护性系统的可维护性就是项目维护人员理解、改正、改动和改进该软件的难易程度。提高系统的可维护性是开发软件吸引所有步骤的关键目的,系统能否被很好地维护,可用系统的可维护性这一指标来衡量。1.1 系统可维护性的评价指标可理解性&#x…

一个栈桢对应着一个方法

一个栈桢对应着一个方法

程序员幽默:39个奇葩代码注释,每一个都能笑抽

1. 只有上帝知道//我写这一行的时候,只有上帝和我知道我在写什么//现在,只有上帝知道了2. 相隔时空的diss//somedev1 - 6/7/02 添加对登录屏幕的暂时追踪功能//somedev2 - 5/22/07 暂时个屁(仿佛看到两个程序员相隔时空的diss)3…

栈出现的异常和设置栈的大小-Xss

异常 java.lang.StackOverflowError 看下面的例子,默认的栈内存 设置栈内存 使用参数-Xss大小来设置栈的大小

项目管理基础:系统评价相关知识

1、概念软件系统的评价分为广义评价和狭义评价。广义评价:主要是指系统从开发开始到结束的过程中,每个阶段都要进行系统评价。狭义评价:主要是指在系统建成后并投入运行之后进行全面、综合的评价。2、广义评价分类根据时间与软件系统所处的阶…

AutoHotKey程序防止反编译的简单手段

可以使用AutoHotKey自带的工具。 AutoHotKey安装完成后(我使用的是1.1.0.0),找到安装所在目录下的文件:\Compiler\Ahk2Exe.exe。 程序界面如下: 简单使用: 1、选择源文件(script file) 2、选择目…

table合并单元格_制作课程表3——合并单元格

由于浏览器兼容问题,、 以及 很少被使用,所以我们将课程表依然使用tr、td元素,结合样式实现出前面案例中效果原来代码:课程1 课程2 课程3 课程4 课程5 课程1 课程2 课程3 课程4 课程5 课程1 课程2 课程3 课程4 课程5 课程1 …

数据库设计:数据库应用系统的生命周期

数据库应用系统的生命周期可以划分为:数据库规划、需求描述与分析、数据库与应用程序设计、数据库设计实现、数据库测试、数据库运维。1、数据库规划 数据库规划是创建数据库应用系统的第一步,也是数据库应用系统的任务描述和目标的明确。数据库规划的内…

从零开始,做一个NodeJS博客(四):服务器渲染页面与Pjax

标签: NodeJS 0 一个星期没更新了 一直在忙着重构代码,以及解决重构后出现的各种bug 现在CSS也有一点了,是时候把遇到的各种坑盘点一下了 1 听歌排行 API 修复与重构 1.1 修复 在加载云音乐听歌排行的时候,有时会出现一个奇怪的…

java 简单事件的使用,如何正确的使用Java事件通知(1)

如何正确的使用Java事件通知(1)通过实现观察者模式来提供 Java 事件通知(Java event notification)似乎不是件什么难事儿,但这过程中也很容易就掉进一些陷阱。本文介绍了我自己在各种情形下,不小心制造的一些常见错误。Java 事件通知让我们从一个最简单的…

Java 自动装箱与拆箱

Java 自动装箱与拆箱 装箱就是自动将基本数据类型转换为包装器类型(int–>Integer);调用方法:Integer 的 valueOf(int) 方法 拆箱就是自动将包装器类型转换为基本数据类型(Integer–>int)。调用方法…