前言

前面我们聊过《软件测试笔记(十一)自动化测试和手动测试的选择》,有些朋友和我聊到在测试里面还有类似的一些概念,比如白盒测试和黑盒测试。今天就大家分享下我对这两种测试的理解。

黑盒测试

它是根据软件需求和规范创建测试场景/案例,按照需求文档里面定义的行为及规范进行输入并且检查输出的测试。

测试人员在不查看内部代码结构的情况下,评估被测软件的功能。它可以应用于软件测试的各个层次,如单元、集成、系统和验收测试。

因为不查看源码,所以测试人员只对应用程序的功能部分执行测试,以确保软件的行为符合预期,所以是基于行为的测试。

黑盒测试的常用的一些技术

等价划分:等价划分也称为等价类划分法。在等价划分法中,软件的输入被划分为期望表现出相似行为的组,因此它们很可能以相同的方式被输入。因此,从每个组中选择一个输入来设计测试用例。

边界值分析:边界值分析(BVA)是在测试有效和无效分区的边界值的基础上进行的。每个等价分区边缘的行为比分区内的行为更加容易出现缺陷,因此边界是测试可能产生缺陷的区域。

决策表:决策表又称因果表。这种测试技术适用于输入之间具有逻辑关系的功能。在决策表技术中,我们处理输入的组合。为了识别决策表的测试用例,我们可以查看它的条件和输出。

状态转换:使用状态转换测试,我们从需要测试的不同系统转换的应用程序中选择测试用例。当应用程序为相同的输入提供不同的输出时,我们可以应用这个方法,这取决于在以前的状态中发生了什么。

白盒测试

白盒测试是基于应用程序内部的代码结构在白盒测试中,系统的内部视角以及编程技巧被用来设计测试用例这种测试通常在单元级别进行。

白盒测试的常用的一些技术

语句覆盖率:它是一种常用的测试覆盖方式,它衡量被测代码中每个语句是够被执行到了。当然前提条件是可执行代码,类似的注释,头文件,空行,等是无法被覆盖的。通常它考虑的是代码覆盖的行数,而不考虑其内部的逻辑处理,所以测试效果不太明显。

`

int divide(int a, int b)

{

return a / b;

}

`

假设我们的测试用例是:

TeseCase: a = 10, b = 5

那么它的语句覆盖率是100%,但是除零的问题却没有表现出来。所以我们引入了其他的测试覆盖率。

分支覆盖率:又称判定覆盖率,它是指源码中每个判断的取真分支和取假分支至少经历一次,即判断的真假均曾被满足。例如下图就是一个关于分支覆盖的一个设计。

路径覆盖率:它包含所有可能的控制路径,在路径覆盖技术中取零、一次和多个(理想,最大)项的所有循环路径,基于程序设计的逻辑复杂性度量来准备测试用例。所以可以认为是分支覆盖和语句覆盖的集合。

总结

黑盒测试

白盒测试不查看内部代码结构

了解程序内部的代码结构

按照根据软件需求和规范设计

按照程序内部逻辑设计

涉及到单元、集成、系统和验收测试

涉及到单元、集成测试

测试人员不需要程序经验

需要有一定的程序经验

可以是手动或者是自动化测试

可以是手动或者是自动化测试

概括的来说,黑盒测试和白盒测试的侧重点是不一样的。黑盒更关注的是软件实现的功能是否按照需求文档来,而白盒测试更加关注程序内部的逻辑是不是正确。如果大家有其他的看法或者想法,也请留言区一起讨论。

android黑盒白盒测试,白盒测试和黑盒测试的区别相关推荐

  1. 软件测试有白和黑盒和灰盒,白盒测试、灰盒测试和黑盒测试的区别

    1黑盒测试黑盒,顾名思义,就是把所有东西装到一个盒子里,看不到内部逻辑,只能通过外部的可见的功能模块,对软件进行测试.比如说一个网站的登陆功能,你不知道它的内部逻辑是怎样的,只能通过网页的注册输入文本 ...

  2. 黑盒测试、白盒测试你知道他们的区别吗?

    软件测试是软件开发过程中的基本活动.黑盒测试和白盒测试是两种不同类型的软件测试策略,它们具有同样强大的功能,并且结合使用时甚至更好. 黑盒测试 在软件中,黑盒测试很方便,可以减少灾难性(软件)崩溃的风 ...

  3. 黑盒和白盒测试方法详解

    1. 黑盒测试 黑盒测试也称功能测试,测试中把被测的软件当成一个黑盒子,不关心盒子的内部结构是什么,只关心软件的输入数据与输出数据. 黑盒测试的方法有7个, 分别是: 基于需求的设计方法, 等价类划分 ...

  4. fileoutputstream路径 android,Android编程中FileOutputStream与openFileOutput()的区别分析

    本文实例分析了Android编程中FileOutputStream与openFileOutput()的区别.分享给大家供大家参考,具体如下: openFileOutput() 首先给大家介绍使用文件如 ...

  5. android MotionEvent中getX()和getRawX()的区别

    今天,讲讲触摸时间里  getX()和getRawX()的区别. 如上图所示: getRowX:触摸点相对于屏幕的坐标 getX: 触摸点相对于按钮的坐标 getTop: 按钮左上角相对于父vie ...

  6. 简述Android操作系统和IOS系统的区别;

    软件测试面试题中: 简述Android操作系统和IOS系统的区别: 1.两者运行机制不同:IOS采用的是沙盒运行机制,安卓采用的是虚拟机运行机制. 2.两者后台制度不同:IOS中任何第三方程序都不能在 ...

  7. Android中dip和sp的真正区别

    估计很少有人知道Android里面dip和sp的真正区别,无论你在网上怎么搜,搜出来的结果都是告诉你字体用sp,尺寸用dip . 可是为什么字体用sp呢?谷歌为什么要这么定呢?这两个单位之间到底有什么 ...

  8. 接口自动化测试白盒测试与黑盒测试的区别

    目录 一.黑盒(功能性)测试和白盒(结构性)测试 二.白盒测试与黑盒测试的关系 三.测试用例 四.结束语 软件测试是软件工程中的一个非常重要的环节,是开发项目整体的一部分,是伴随软件工程的诞生而诞生的 ...

  9. 【软件测试】白盒测试与黑盒测试的区别(不同)

    黑盒测试是将被测试软件看做一个黑盒子,只考虑系统的输入和输出,完全不考虑程序内部逻辑结构和处理过程.白盒测试是将黑盒子打开,研究源代码和程序内部的逻辑结构. 黑盒测试的依据是各阶段的需求规格说明.白盒 ...

最新文章

  1. java手机音乐_JAVA类(手机充电、放音乐示例)
  2. 隐马尔可夫(HMM)、前/后向算法、Viterbi算法
  3. 文巾解题 27. 移除元素
  4. 数据算法:推荐系统的实践与思考(下)【转】
  5. Windows Phone 7 Bitmap编码
  6. python 熊猫_python之pandas简单介绍及使用(一)
  7. linux shell 清空文件,查看文件,写入文件
  8. galaxy+note8+android+8.0,三星已经开始了S8/S8+以及Note8的Android9.0更新的开发工作!
  9. vue的路由怎么换端口_vue.js如何更改默认端口号8080为指定端口的方法
  10. 2022 年顶级网络安全专家最爱用的10大工具
  11. DPDK 20.11 meson build
  12. 国内外著名黑客杂志 《转》
  13. 软件工程师-华为机试注意事项
  14. WIN7安装官方漏洞补丁,错误代码0x80240037的解决方法
  15. 查询出部门名称、部门的员工数、部门的平均工资、部门的最低收入雇员姓名和最高收入雇员的姓名
  16. [Python]查看Python版本
  17. 区间再现公式的理解与应用
  18. 2021届 美的笔试 C++开发工程师
  19. 用turtle库制作一个简单的小游戏《鸡子大战篮球》
  20. java channel源码_5. 彤哥说netty系列之Java NIO核心组件之Channel

热门文章

  1. 不需权限获得Android设备唯一标识序列号
  2. 2023-4-11-chrono库用法学习
  3. java double 计算_Java中的Double类型计算
  4. HTML使用onmouseover属性更改背景颜色
  5. 关于 VirtualBox6 下的 Win10 虚拟机 与 宿主机 共享文件
  6. 西北大学计算机博士好考吗,2020年西北大学博士面试后多久知道结果
  7. 项目管理之Scrum
  8. 从硅片表面去除有机物质的最新湿法清洗工艺
  9. 2015 年度工作总结
  10. 「内容创作者」路上的 3 重困境