初学白盒测试
admin
2024-02-26 23:51:56
0

软件测试是指验证生成的产品是否按预期执行并保证它在交付后不包含任何不受欢迎的意外的系统过程。

软件测试的成本明显低于在产品发送后发现严重错误然后修复它的费用。然而,客户满意度和忠诚度的损失是产品发货后发现错误的最高成本。

您的客户可能会立即转向竞争对手,故事会突然停止。 

开发和测试软件的过程是必不可少的。

它确保质量、可靠性并降低风险。此外,全面的测试可确保有效的性能和满意的消费者,从而转化为成功的业务。

可以根据多种标准和多种方式对软件产品进行评估。

然而,在基本层面上,可以考虑软件的预期功能,即它是否按预期运行。

白盒测试是一种范围更广的产品测试。在这里,您测试的不仅仅是功能。与黑盒子相比,盒子现在是半透明的,或者更确切地说,它现在是白色的。因此,您可以观察产品的内部工作原理。

显示所有语句、条件循环、输入流等。

因此,您将需要一位经验丰富的程序员或一位精通编程语言和白盒测试编码程序的测试专家。本文将重点介绍白盒测试。

什么是白盒测试?  

白盒测试是一种允许测试人员检查和验证软件系统内部工作的技术,包括代码、基础设施和与外部系统的连接。

白盒测试是当代持续集成/持续交付 (CI/CD) 软件开发管道的自动构建过程的一个组成部分。

静态应用程序安全测试 (SAST) 经常提到白盒测试,这是一种自动检查源代码或二进制文件并提供有关潜在漏洞和缺陷的反馈的方法。

白盒测试关注什么? 

白盒测试可以针对应用程序源代码的以下任何问题:

安全漏洞和漏洞

安全漏洞是使应用程序容易受到攻击的程序组件。例如,不保护您的应用程序免受注入攻击可能会在程序中留下安全漏洞,攻击者有一天可能会利用该漏洞来破坏客户端数据。

白盒测试确定应用程序是否使用安全最佳实践进行编程,以及代码是否容易受到已知安全威胁和攻击。

检查损坏/结构不良的编程路径

有一些特定的编码标准,如果不遵守这些标准,可能不会导致错误,但在某些情况下可能会导致意外行为。

此外,如果不加以检查或程序员没有检查条件的所有可能值,条件等编码结构可能会导致无法预料的结果。

白盒测试有助于揭示不完整和错误的程序结构,找出冗余的、有缺陷的或低效的条件逻辑。

预期产出

这需要评估一个函数的所有可能输入,以确定它是否总是产生预期的结果。

循环测试

如果循环构造没有正确编写并导致它遇到无限循环,程序总是会失败。

由于嵌套循环很快就会变成难以管理的代码迷宫,因此最好尽可能避免使用它们,以支持更直接的构造。

白盒测试评估单个循环、串联循环和嵌套循环中局部和全局变量的效率、条件逻辑和正确处理。

数据流测试 (DFT)

这是跟踪变量及其值在代码中流动的过程,以识别未正确初始化、声明但从未使用或未正确修改的变量。

要确定是否存在竞争变量名称或程序构造是否错误地更改了变量的值,建议跟踪变量从声明到销毁的生命周期。

验证预期结果

测试最关键的方面之一是确定是否达到了预期的结果。

执行白盒测试以确保实现软件程序的预期结果。

验证每个语句和函数调用

白盒测试需要验证函数内的每个语句以确保程序的完整性。

白盒测试的类型

两种最流行的白盒测试形式是单元测试和集成测试。

1. 单元测试

在单元测试中,应用程序被视为多个组件或模块的结合。因此,每个模块的控制数据、方法和流程都是独立验证的。通常,开发人员编写自动化测试以确认应用程序组件满足设计要求。

编程风格是单元组件的关键决定因素。

例如,在面向对象的风格中,一个单元变成了一个类及其接口。执行、运维、变异测试都是各种单元测试。

2. 整合评估

在集成测试期间,许多相关的单个单元或模块作为一个组进行检查。它评估组成单位符合功能标准的程度,并识别各种元素之间相互作用的任何缺陷。

集成测试细分为自上而下、自下而上和混合方法。

其他形式的白盒测试包括:

变异测试

这种形式的单元测试通过设计测试、对代码进行微小的随机更改并确定测试是否仍然通过来验证代码的弹性和一致性。

白盒渗透测试

在这种类型的白盒测试中,道德黑客表现为知识渊博的内部人员,并试图使用其代码和环境的广泛知识来攻击应用程序。 

静态代码分析

使用预定模式或机器学习自动发现静态代码中的漏洞或编码缺陷。

执行白盒测试的步骤

白盒测试要求测试人员执行多项任务。

1. 确定必须测试的内容

白盒测试鼓励检查所选实例的每个组件。因此,较少数量的识别件是可取的。

在对这些进行测试后,现有的缺陷就会变得明显。

这些功能和组件经过反复测试,以确保它们按计划运行。提取和评估小组件,并在满足目标时提取下一个组件。

测试的能源效率也很重要,这意味着消耗的能量与获得的结果成正比。

2.组织流程图

流程图描述了所有可能的和可以想到的路径。这些路径可能对应于任何功能、模块或组件。执行它以确定测试的范围。

3. 为所有路径开发测试用例

映射各种路径后,为每个可能的路径创建测试用例。创建测试用例后,将执行它们。

4. 执行

这是测试执行阶段,执行测试用例。然后,可以重复执行阶段以确认测试结果。

白盒测试技术 

白盒测试的一个主要目标是尽可能全面地覆盖源代码。

代码覆盖率分析是一种流行的白盒测试方法。

代码覆盖率,通常称为测试覆盖率,是一种指标,用于指示已执行了多少语句或代码行。

使用语句覆盖率、分支覆盖率和路径覆盖率等概念,可以确定单元测试套件运行和测试了多少应用程序逻辑。

我们将在下面进一步讨论这些概念:

报表覆盖率

顾名思义,语句覆盖旨在评估跨模块或功能的可执行语句的最大数量。

这种白盒测试技术确保所有可执行代码语句至少被执行和测试一次。例如,如果代码块中存在多个条件,每个条件都用于给定的输入范围,则测试应评估输入的每个容量以确认所有代码行都已执行。

语句覆盖有助于识别新语句、不需要的分支、部分代码引用的缺失语句以及先前版本遗留下来的死代码。

决策覆盖率/分支覆盖率

分支覆盖将代码划分为条件逻辑的分支,并保证单元测试覆盖每个分支。

这种覆盖技术最大化了对每个分支的测试,例如 if 语句或循环。

路径覆盖

路径覆盖属于线性独立的代码路径。在路径覆盖技术中,测试人员编写单元测试以执行尽可能多的程序控制流路径。目的是检测损坏的、重复的或低效的路径。

多重覆盖

测试条件或决策语句的每个潜在结果组合。

其他代码覆盖方法包括有限状态机、路径、控制流和数据流覆盖。

白盒测试的优势 

除了测试提供的好处外,白盒测试还提供:

  • 用于测试的简单脚本自动化。
  • 由于代码一次检查一条语句,因此得到了极大的优化。
  • 涵盖所有途径的极其详尽的测试。
  • 单元测试可以在应用程序的生命周期中相对较早地开始,从而最大限度地减少在生命周期后期出现错误的可能性。

白盒测试的缺点

像所有其他概念一样,有;白盒测试也有其缺点。

以下是一些突出的缺点:

  • 与其他类型的测试相比,白盒测试是一项复杂、耗时且昂贵的工作。
  • 对于白盒测试,需要额外的高素质资源。
  • 这可能会很昂贵。
  • 通常,测试并不详尽;因此,它们可能包含错误。
  • 测试需要有经验的资源,因为它涉及技术理解。

相关内容

热门资讯

鸿蒙套娃安卓系统视频,融合与创... 你知道吗?最近科技圈可是炸开了锅,因为华为的新操作系统鸿蒙OS又有了新动作。这不,他们竟然把鸿蒙套娃...
xp系统连接安卓手机问题,实用... 你有没有遇到过这样的情况:你的电脑上还运行着那个经典的XP系统,而你的安卓手机却时不时地想要和你亲密...
压缩安卓系统储存空间,高效管理... 手机里的照片越来越多,游戏也越玩越上瘾,可这安卓系统的储存空间却越来越紧张,是不是感觉像是在挤牙膏?...
安卓手游转苹果系统教程,轻松实... 你是不是也和我一样,手头有一堆安卓手游,突然之间想换换口味,体验一下苹果系统的魅力呢?别急,今天就来...
安卓原生系统锁屏暗,安卓系统锁... 亲爱的手机控们,你是否曾为安卓手机锁屏时的暗模式而感到好奇?那种在夜晚或光线不足的环境中,屏幕自动调...
安卓系统表情包下载地址,安卓系... 你是不是也和我一样,对安卓系统的表情包爱不释手?那些搞笑的、可爱的、甚至是有点小调皮的表情,总能让我...
原生安卓系统声音bug,揭秘那... 你有没有遇到过这种情况?手机里突然传来一阵奇怪的声音,让你瞬间从美梦中惊醒,或者正在专心工作时被打扰...
水果收银机安卓系统,便捷高效的... 你有没有想过,在繁忙的超市里,那些摆满新鲜水果的摊位,背后竟然隐藏着一个小小的科技秘密?没错,就是那...
安卓系统变苹果界面了吗,苹果界... 最近手机界可是炸开了锅,不少安卓用户都在议论纷纷:“安卓系统变苹果界面了吗?”这事儿可真不简单,得好...
miui操作系统与安卓系统吗,... 亲爱的读者,你是否曾在手机上看到过MIUI操作系统和安卓系统这两个名字,好奇它们之间有什么区别?今天...
安卓系统怎么卡道具界面,探究原... 手机用久了,是不是感觉安卓系统越来越卡?尤其是那个道具界面,点开就慢吞吞的,真是让人头疼。别急,今天...
安卓系统红包加速器,畅享无阻新... 你有没有发现,现在用手机抢红包简直是一场速度与激情的较量?别急,别急,让我来给你揭秘一款神器——安卓...
安卓经典版系统更新时间,从首次... 你有没有发现,最近你的安卓手机又悄悄地变了个样?没错,就是那个陪伴我们多年的经典版系统,它又来更新啦...
安卓系统开发要多久,约需1-2... 你有没有想过,自己动手开发一个安卓应用,究竟需要多长时间呢?这可是个让人好奇的问题,毕竟安卓系统开发...
原生安卓系统手机壁纸图片,探索... 亲爱的手机控们,你是否曾为寻找一款独特的壁纸而烦恼?今天,就让我带你走进原生安卓系统手机壁纸的奇幻世...
bmw安卓互联系统,智能驾驶新... 你有没有发现,现在开车已经不仅仅是驾驶那么简单了?一辆好车,还得有个好“大脑”,这样才能让你的驾驶体...
安卓手机升级系统卡吗,安卓手机... 你有没有遇到过这种情况:安卓手机升级系统后,突然感觉手机像蜗牛一样慢吞吞的,心里那个急啊!今天,就让...
无线麦克风安卓系统,轻松实现无... 你有没有想过,在一场热闹的K歌派对或者重要的演讲场合,无线麦克风简直就是救星啊!想象你手握麦克风,自...
怎么重新定制安卓系统,打造专属... 你有没有想过,你的安卓手机其实可以变得独一无二,就像是你自己的小宇宙一样?没错,就是重新定制安卓系统...
安卓系统卡西欧照片软件,安卓系... 你有没有发现,手机用久了,尤其是安卓系统,有时候就像老牛拉破车,慢吞吞的,让人抓狂?这不,最近我就遇...