白盒_白盒测试 - CSDN
精华内容
参与话题
  • 白盒测试及用例详解

    万次阅读 多人点赞 2020-06-10 22:30:40
    今天复习到白盒测试,就上网找了一下,重新学习一下 做个记录,以后也会用得着吧 在白盒测试中,逻辑覆盖测试是使用较多的方法。按照其对测试的有效程度,又将其划分为由弱到强的6种:语句覆盖、判定覆盖、条件...

    目录

    第一部分:概念理解

    第二部分:上例题

    第三部分:例题解答

    附:纸质版解答过程

    参考链接


    第一部分:概念理解

    在白盒测试中,逻辑覆盖测试是使用较多的方法。按照其对测试的有效程度,又将其划分为由弱到强的6种:语句覆盖、判定覆盖、条件覆盖、判定-条件覆盖、条件组合覆盖、路径覆盖。

    详细看下图的分类:




    第二部分:上例题

    实践是检验真理的唯一标准,下面用一道例题,来巩固和学习上面的几种逻辑覆盖方法。

    源代码:

    public void function(int a, int b, int c)
    {
        if ((a > 1) && (b == 0))
        {
            c /= a;
        }
        if ((a == 5) || (c > 1))
        {
            c += 1;
        }
        c = a + b + c;
    }

    程序流程图:

    图中A、B、C、D、E分别表示路径;并且记第一个判断为P1,记第二个判断为P2;一共有4个条件,我们记为C1:a>1、C2:b=0、C3:a=5、C4:c>1。




    第三部分:例题解答

    根据上面例子来看看如何写出6种覆盖的测试用例。

    语句覆盖

    测试数据 C1 C2 C3 C4 P1 P2 路径
    a=5,b=0,c=6         T T A→C→E

    判定覆盖(也叫分支覆盖)

    测试数据 C1 C2 C3 C4 P1 P2 路径
    a=2,b=0,c=1         T F A→C→D
    a=0,b=1,c=2         F T A→B→E

     条件覆盖

    测试数据 C1 C2 C3 C4 P1 P2 路径
    a=5,b=0,c=1 T T T F     A→C→E
    a=1,b=3,c=6 F F F T     A→B→E

    判定-条件覆盖(也叫条件-分支覆盖)

    测试数据 C1 C2 C3 C4 P1 P2 路径
    a=2,b=0,c=1 T T F F T F A→C→D
    a=5,b=1,c=10 F F T T F T A→B→E

    条件组合覆盖

    测试数据 C1 C2 C3 C4 P1 P2 路径
    a=5,b=0,c=4 T T T F     A→C→E
    a=2,b=1,c=5 T F T T     A→B→E
    a=0,b=0,c=2 F T F T     A→B→E
    a=-1,b=1,c=-1 F F F F     A→B→D

    路径覆盖

    测试数据 C1 C2 C3 C4 P1 P2 路径
    a=1,b=1,c=1         F F A→B→D
    a=1,b=0,c=6         F T A→B→E
    a=2,b=0,c=1         T F A→C→D
    a=5,b=0,c=10         T T A→C→E

    附:纸质版解答过程

    参考链接

    参考例子和我的解答,你一定可以弄的清楚明白的。还有就是,最好自己动手做一做。

    参考博客1:https://blog.csdn.net/liujian619/article/details/45270813

    参考博客2:https://blog.csdn.net/u011032983/article/details/52123426

    如果想对软件测试这门课有更系统的认识,可以参考我的另一篇博文

    展开全文
  • 黑盒、白盒、灰盒测试

    千次阅读 2019-03-25 08:47:44
    黑盒测试:软件的黑盒测试意味着测试要在软件的接口处进行。这种方法是把测试对象看做一个黑盒子,测试人员完全不考虑程序内部的逻辑结构和内部特性,只依据程序的需求规格说明书,检查程序的功能是否符合它的功能...

    黑盒测试:软件的黑盒测试意味着测试要在软件的接口处进行。这种方法是把测试对象看做一个黑盒子,测试人员完全不考虑程序内部的逻辑结构和内部特性,只依据程序的需求规格说明书,检查程序的功能是否符合它的功能说明。因此黑盒测试又叫功能测试或数据驱动测试
    灰盒测试:灰箱测试就像黑箱测试一样是通过用户界面测试,但是测试人员已经有所了解该软件或某种软件功能的源代码程序具体是怎样设计的。甚至于还读过部分源代码。 因此测试人员可以有的放矢地进行某种确定的条件/功能的测试。这样做的意义在于:如果你知道产品内部的设计和对产品有透过用户界面的深入了解,你就能够更 有效和深入地从用户界面来测试它的各项性能。

    白盒测试:软件的白盒测试是对软件的过程性细节做细致的检查。这种方法是把测试对象看做一个打开的盒子,它允许测试人员利用程序内部的逻辑结构及有关信息,设计或选择测试用例,对程序所有逻辑路径进行测试。通过在不同点检查程序状态,确定实际状态是否与预期的状态一致。因此白盒测试又称为结构测试或逻辑驱动测试

    展开全文
  • 作为初级软件测试工程师,白盒测试一般我们是用不到的,但是我们也要学。为什么?白盒测试工程师是高级测试工程师,有一定的编码能力了和综合业务能力。 白盒说白了就是看得见程序内部的东西,管你是java,python...

    作为初级软件测试工程师,白盒测试一般我们是用不到的,但是我们也要学。为什么?白盒测试工程师是高级测试工程师,有一定的编码能力了和综合业务能力。
    在这里插入图片描述

    白盒说白了就是看得见程序内部的东西,管你是java,python还是web的代码,我必须看见。
    在这里插入图片描述

    白盒测试的定义:根据程序内部的逻辑结构和相关信息,检验程序中的各条通路是否都能够按照设计要求正确工作
    我总结一下吧,两点:首先是能看到内部逻辑结构,其次就是内部各条路通。我很强调内部,说白了就是要看到程序内部的代码
    在这里插入图片描述

    静态有代码检查,静态结构分析,静态也就是说不用运行程序。动态就是根据程序的逻辑结构和代码的语句来将程序语句中各分支走完整,都要走到。
    在这里插入图片描述

    静态测试的三种
    桌面检查 程序员自己发现
    代码走查 开发小组借用经典测试用例
    代码审查 比较正式了,谷歌就是这点做得比较好

    在这里插入图片描述

    **1. 程序插桩

    • 逻辑覆盖测试
    • 基本路径测试
    • 循环结构测试**

    在这里插入图片描述

    • 保证程序模块中的所有独立路径都要至少使用一次。
    • 保障程序中的所有逻辑值都能测试True和False。
    • 测试程序内部数据结构的有效性以及边界数据取值情况下的测试。
    • 在循环的边界和运行的边界内执行循环体。

    动态白盒测试
    程序插桩:就是代码
    哪些位置需要探测点?

    • 程序的第一条可执行语句之前,用于判断程序是否被执行
    • for ,while,do until等循环语句处
    • if,then,else等条件分支语句处
    • 输入语句之后,输出语句之前(输入了看输入后的正确性,输出前的正确性)
    • return语句之前。如果探针放在return语句后了那么return执行后,探针就不执行,起不到作用
      明天续写重要的逻辑覆盖测试,循环结构测试,基本路径测试
    展开全文
  • 白盒测试总结

    千次阅读 2018-08-06 10:51:42
    白盒测试: 又称为逻辑驱动测试或者结构测试,是按照程序内部结构测试程序, 通过测试来检验产品内部动作是否按照设计说明书的规定来正常执行,该测试可以覆盖全部代码,分支,路径和条件 白盒测试的原因: 1,黑盒...

    第一章

    白盒测试:
    又称为逻辑驱动测试或者结构测试,是按照程序内部结构测试程序,
    通过测试来检验产品内部动作是否按照设计说明书的规定来正常执行,该测试可以覆盖全部代码,分支,路径和条件

    白盒测试的原因:
    1,黑盒不能对程序代码进行测试
    2,程序如果存在内存泄漏,黑盒不会发现
    3,程序有很多分支语句,黑盒并不会完全测试到
    4,有时候异常或错误在实验室条件中很难满足
    5,白盒的覆盖率更容易衡量

    单元测试:
    又称模块测试,是软件开发过程中最低级别的测试活动,目的在于发现各个模块中存在的各种差错

    集成测试:
    又称为组装测试或者联合测试,是将已经经过单元测试的模块按照设计要求组装成为子系统或者系统进行测试

    白盒和黑盒的比较:各有特点,不能相互替代,是结合一起使用的
    关注对象: 关注被测数据的内部结构或逻辑,需要源代码并跟踪源代码运行            关注被测程序外部表现,需要可执行文件
    测试依据: 依据被测程序的内部设计文档                                          依据被测软件的需求说明
    测试驱动: 需要编写额外的测试驱动程序                                          一般不需要
    测试人员: 有开发经验的测试工程师                                              任何人,但测试工程师更能发现缺陷
    测试方法: 常用逻辑覆盖,基本路径覆盖,数据流分析等                            等价类划分,边界值,因果图等

    白盒测试的测试策略:
    1,桌面检查
    2,代码复查
    3,代码走查
    4,单元测试

    白盒测试需要开发部门提供的材料:源代码,用户文档,规格需求说明书,系统软,硬件环境,所有功能的具体设计和操作说明

    常用的测试用例设计技术:
    1,逻辑覆盖测试
    2,循环覆盖测试
    3,基本路径测试
    4,数据流分析
    5,程序插桩

    扇入:是指直接调用指定模块的上级模块的个数
    扇出:是指给定模块直接调用的下级模块的个数

    第三章:

    逻辑覆盖测试:
    1,语句覆盖:就是设计若干个测试用例,运行被测程序,使得每一条可执行语句至少执行一次
    2,判定覆盖:使程序中每个判定的取真分支和取假分支至少各执行一次
    3,条件覆盖:使程序中的每个条件的每个可能取值至少执行一次
    4,判定条件覆盖:使程序中每个判断的每个条件的每个可能的取值至少执行一次,并且每个判断的结果也至少执行一次
    5,条件组合覆盖:使程序中每个判断的所有可能的条件取值组合至少执行一次
    6,路径覆盖:覆盖被测对象中的所有可能路径

    循环测试:
    1,嵌套循环测试:
    从最内层测循环开始,将其他循环设置为最小值
    对最内层的循环使用简单循环,使最外层循环的迭代参数最小

    第五章:

    基本路径测试:
    1,绘制控制流程图:是退化的程序流程图,是程序流程图中每个处理覆盖都退化成一个节点,原链接不同处理符号的流线变成连接不同节点的有向弧
    2,计算环路复杂度:控制流图的区域数对应环形的复杂度,或者 边-节点+2=复杂度
    3,导出测试用例:选择适当的数据以保证每条路径都可以被测试到
    4,图形矩阵:一个方阵,其行数和列数决定控制流程图的节点数,每行和每列一次对应到一个被标识的节点,矩阵元素对应到节点间的边。
       如果一行有两个或更多的元素1,则为判定节点。环形复杂性的算法就是判定节点数+1

    第七章:

    单元测试:是按照测试阶段划分的测试方法,通常是在编码阶段进行的,主要是对程序模块进行测试
    单元测试流程:
    1,首先理解设计
    2,粗略看一下代码
    3,认真走读代码一遍或两边,比较复杂的要仔细推敲
    4,设计测试用例
    5,搭建测试环境:驱动模块,桩模块
    6,执行测试用例
    7,分析判断,重复进行测试用例和加载测试
    8,分析判断,并给出结论

    单元测试:是对软件最基本的组成单元进行测试,可以是类,函数,类的方法
    重点在于发现程序设计或程序实现中的逻辑错误,允许多个测试单元的测试并行展开
    分为:计划,设计,执行,评审

    单元测试的内容:
    1,功能点测试
    2,覆盖率:语句覆盖率和分支覆盖率
    3,模块接口测试
    4,内部数据流测试

    单元测试用例的设计:
    1,设计一个能使系统运行的测试用例
    2,设计测试功能的正向测试用例
    3,设计测试功能的反向测试用例
    4,设计其他的测试用例,验证设计对模块的要求
    5,加载测试用例
    6,补充测试用例

    第九章:

    单元测试报告:
    1,编写目的
        1,说明编写目的
        2,被测单元的描述
        3,编写结构
        4,单元流程图
        5,测试过程
        6,测试结果
        7,单元测试产品
        8,质量评估
        9,总结

    基于状态的覆盖率:
    以测试系统覆盖子状态转换图中多少状态转换为依据
    基于约束的覆盖率:
    根据有多少前置条件和后置条件被覆盖来表示充分性
    单元测试规范:
    1,编写测试用例
    2,规范适用人员
    3,单元的划分
    4,参与单元测试的人员,职责
    5,单元测试采用的测试工具
    6,测试代码的书写要求
    7,单元测试中声称文件的命名以及储存的目录结构
    8,单元测试的实施过程
    9,单元测试的入口和出口准侧
    10,单元测试的验收和评审

    通过准侧:要素: 判断准则
    入口准则: 详细设计说明书,单元测试用例   经过审查,获得批准,进入配置库
    入口准则: 源代码文件,源代码文件清单     源代码文件获得批准,源代码文件进入配置库的源代码区,测试用例源代码通过同级评审
           软件bug清单,单元测试报告      提交测试负责人,提交软件产品配置管理

    软件测试设计原则:
    1,过于简单的方法不必一定要测试
    2,测试任何可能出错的地方:注意使用80/20原则,百分之八十放在可能出错的代码,很少时间测试简单的代码
    3,注意测试重用
    4,尽量测试类的接口而非实现
    5,不能依赖固定的类方法调用顺序

    静态白盒测试容易发现的问题
    1,类中未使用代码的错误
    2,不符合编码标准的错误
    3,逻辑错误:1,循环错误 2,swith 语句错误 3,多线程错误
    4,读取数据错误
    5,集成错误
    6,重用错误
     

    展开全文
  • 白盒密码技术

    2020-07-23 23:30:37
    白盒攻击是指攻击者对设备终端拥有完全的控制能力,能够观测和更改程序运行时的内部数据。这种攻击环境称为白盒攻击环境。大多智能终端环境(Android、iOS等)在很多情况下就是一个白盒攻击环境。保护密钥安全是白盒...
  • 白盒测试

    2018-11-02 13:55:38
    白盒测试技术是根据被测对象的结构系统化设计测试用例的一种方法。它所关注的的结构可以是代码的结构(控制流图),数据的结构,菜单的结构,模块间相互调用的结构,业务流程的结构等。白盒测试可以应用于任何测试...
  • 白盒加密的几个基础问题

    千次阅读 2018-04-24 00:19:27
    1、白盒加密和黑盒加密,灰盒加密有什么不同?答:白盒加密是一种加密算法技术。传统的加密默认是在黑盒环境中实施的,即攻击者只能看到输入(如明文)或输出(如密文)等有限信息。如果攻击者能够获取到加密时间、...
  • 常见的几种白盒测试

    千次阅读 2019-09-16 22:47:03
    于是我去网上转了一圈,看了一些资料,大概搞明白了那几种常见的白盒测试是咋回事,特此记录。 目前我所了解到的逻辑覆盖(而非路径覆盖)型的白盒测试大概有这几种: SC,语句覆盖 DC,决策覆盖(也译作判定覆盖...
  • 白盒测试练习及答案

    万次阅读 2017-03-06 20:39:58
    1、在白盒测试用例设计中,有语句覆盖、分支覆盖、条件覆盖、路径覆盖等,其中( A )是最强的覆盖准则。为了对如下图所示的程序段进行覆盖测试,必须适当地选取测试用例组。若x, y是两个变量,可供选择的测试用例组...
  • 白盒加密技术

    万次阅读 2015-01-16 15:41:28
    ---黑盒、白盒-- 传统的密码学建立在黑盒模型下,即假设算法运行在一个可信终端上,其运行子结果均运行在不可查看、不可更改的可信任环境中。 灰盒攻击:利用时间分析、功耗分析、插入错误分析等旁路分析 白盒...
  • 白盒测试与黑盒测试的定义与区别

    万次阅读 2014-06-24 19:37:17
    白盒测试方法按照程序内部的结构测试程序,检验程序中的meitiao
  • 白盒测试与黑盒测试的联系与区别

    万次阅读 2017-12-20 10:53:38
    简单介绍一下在软件测试过程中白盒测试和黑盒测试的定义,区别,联系,以及各自测试的目的。
  • 三角形- 白盒测试实例

    千次阅读 2014-03-12 22:07:19
    白盒测试实例 1~12: http://blog.csdn.net/aidisheng/article/details/2868709
  • 白盒测试(white-box Testing,又称逻辑驱动测试,结构测试),它是知道产品内部过程,可通过测试来检测产品内部动作是否按照规格说明书的规定正常进行,按照程序内部的结构测试程序,检验程序中的每条通路是否都有...
  • 一、什么是白盒测试? 白盒测试也称结构测试或逻辑驱动测试,通过分析被测组件内部工作原理,通过测试来检测被测组件内部的运行是否符合产品规格说明书的规定 对应于黑盒测试,白盒测试要求测试人员打开软件...
  • 白盒测试技术

    千次阅读 2010-02-08 13:46:00
    白盒测试技术作者:张元礼http://blog.csdn.net/vincetest 目 录Chapter 1 白盒测试理论1.1 白盒测试概念1.2 白盒测试目的1.3 白盒测试范围1.4 白盒测试发展Chapter 2 单元测试理论2.1 单元测试概念2.2 单元测试...
  • 白盒测试----六种覆盖方法

    万次阅读 多人点赞 2017-12-12 22:44:12
    白盒测试是一种测试用例设计方法,白盒指的是程序的内部结构和运作机制是可见的。白盒测试的目的: 通过检查软件内部的逻辑结构,对软件中的逻辑路径进行覆盖测试;在程序不同地方设置检查点,检查程序的状态,以...
  • 黑盒测试和白盒测试区别

    万次阅读 2017-08-01 09:15:26
    一、黑盒测试和白盒测试  黑盒测试:已知产品的功能设计规格,可以进行测试证明每个实现了的功能是否符合要求。 白盒测试:已知产品的内部工作过程,可以进行测试证明每种内部操作是否符合设计规格要求,所有...
  • 白盒测试和黑盒测试的优缺点

    万次阅读 2013-11-19 10:40:22
    白盒测试和黑盒测试是软件测试的两种基本方法   =================================黑盒测试===========================================  1. 黑盒测试的优点有 : 1) 比较简单,不需要了解程序的内部的代码及...
  • 白盒测试与黑盒测试的比较

    千次阅读 2017-05-30 21:24:07
    白盒测试是穷举路径测试,黑盒测试是穷举输入测试,这两种方法是基于完全不同的观点,反应了事物的两个极端,它们各有侧重和优势,但不能彼此替代。在现代的测试理念中,这两种测试方法不是截然分开的,而是交叉使用...
1 2 3 4 5 ... 20
收藏数 32,603
精华内容 13,041
关键字:

白盒