什么是白盒测试?

白盒测试快速入门

白盒测试是什么意思? 什么是白盒测试法?

白盒测试方法是一种软件测试技术,白盒测试主要用于测试软件的内部结构、软件设计和软件编码来验证软件输入输出流的正确性,并改进软件设计缺陷、提高软件可用性及安全性。在软件白盒测试中,软件代码对测试人员是可见的,所以白盒测试又叫透明盒测试。白盒测试又称为什么?白盒测试又称为开箱测试、结构测试、基于代码的测试和玻璃盒测试。

白盒测试和黑盒测试的主要区别:

软件白盒测试方法是软件测试中的黑白盒测试之一。 与白盒测试相对应的黑盒测试主要是从软件外部设计或终端用户的角度出发进行测试。另一方面,软件工程白盒测试方法是基于应用程序内部工作原理并围绕其展开的测试。

术语“白盒”是因为透明盒子概念而得名的。透明的盒子或白色的盒子象征着能够透过软件外观设计对其内部开展工作。同理,“黑盒测试”中的“黑盒”象征着无法通过外观外形设计看到软件的内部工作模式,因此只能测试终端用户体验。


白盒测试的主要内容

白盒测试验证什么?

白盒测试的方法涉及以下软件代码测试技术:

  • 软件内部安全漏洞
  • 编码过程中损坏的路径或结构不良的路径 ,也称为白盒测试基本路径测试
  • 通过代码检测特定的输入是否有正确的输出结果
  • 预期的输出
  • 条件循环功能
  • 对每个语句、对象和函数进行单独的测试

单元测试、集成测试和系统测试一般是在软件开发阶段进行。白盒测试的作用是验证应用程序的工作流程。白盒测试的依据:以预期的或期望的输出为标准测试一系列预定义的输入,当特定的输入不能按预期输出时就会产生bug。


白盒测试怎么做?

为了更好地了解白盒测试的含义,我们将白盒测试及其基本方法分为两个基本步骤。这是测试人员在使用白盒测试技术测试应用程序时所遵循的步骤:

一)、了解源码功能

在白盒测试技术中,测试人员通常做的第一件事是学习和了解应用程序的源代码。由于白盒测试主要是测试应用程序的内部结构和运作,所以测试人员必须非常了解他们正在测试的应用程序所使用的编程语言。此外,白盒测试中测试者必须深入了解安全编码实践。通常来说,软件测试的目的之一是确保其安全性。测试人员的职责是发现软件安全问题,并防止黑客和无知用户的攻击,阻止他们有意无意地向应用程序注入恶意代码。

二)、创建测试用例&执行测试用例

白盒测试法的第二个基本步骤是测试应用程序的源代码以验证数据流和数据结构的正确性。白盒测试法中的一种方法是编写更多的代码来测试应用程序的源代码。 测试人员会为应用程序中的每个进程或一系列进程编写代码。这种白盒测试方法要求测试人员必须对代码有深入的了解。白盒测试由谁进行:通常由开发人员完成。白盒测试基本方法还包括手动测试、试用测试和错误测试法以及测试工具的使用,我们将在本文中作进一步解释。


白盒测试经典例题

请参考以下代码:

Printme (int a, int b) {                       ————  Printme is a function

int result = a+ b;

If (result> 0)

Print (“Positive”, result)

Else

Print (“Negative”, result)

}                                        ———–   End of the source code

软件工程白盒测试的目的是验证所有的决策树代码、循环代码、代码语句是否正确。

如果要运用上面的白盒测试示例中的语句,白盒测试用例将是:

  • A = 1, B = 1
  • A = -1, B = -3

什么是白盒测试技术?

白盒测试包括哪些技术?

白盒测试的主要技术有哪些?白盒测试常用技术之一是代码覆盖率分析。 代码覆盖率分析消除了测试套件漏洞隐患。代码测试覆盖率分析标明了程序中未经执行测试用例的区域。一旦发现漏洞,测试人员就会创建测试用例来验证代码中未测试的部分,以此来提高软件产品的质量。

白盒测试有哪些方法?

代码覆盖分析可以使用自动化测试工具执行。以下是测试人员经常使用的一些覆盖分析的方法:

  • 语句覆盖:-语句覆盖测试要求代码中的每一个可能的语句在软件工程测试过程中至少进行一次测试。
  • 分支覆盖:-这种白盒测试技术检查软件应用程序的每一个可能的路径(if-else和其他条件循环语句)。

测试覆盖类型有哪些?

除了以上覆盖分析技术,还有许多软件测试覆盖的类型,常见测试覆盖类型:如条件覆盖法、多条件覆盖、路径覆盖、功能覆盖等。每种测试覆盖类型都有自己的优点,其目的都是将测试覆盖到软件代码的所有部分。语句覆盖测试和分支覆盖法可以帮你获得80%-90%的代码覆盖率,这样的代码覆盖率测试是优于你真正需要的测试覆盖率。

以下是重要的白盒测试技术:

  • 语句覆盖
  • 判定覆盖
  • 分支覆盖
  • 判定条件覆盖
  • 条件组合覆盖
  • 有限状态机覆盖
  • 路径覆盖法
  • 控制流测试法
  • 数据流测试法

白盒测试包括哪些类型?

白盒测试包含哪些测试?软件测试之白盒测试包含了不同类型的测试,用于评估应用程序、代码块或特定软件包的可用性。以下列出了白盒测试的类型:

  • 单元测试:软件单元测试是在应用程序上进行的第一类测试。单元测试是在开发的每个单元或代码块上执行的。单元测试开发做还是测试做?单元测试一般由程序员完成的。作为软件开发人员,你开发了几行代码、单个函数或对象,都要对其一一进行测试。单元测试的目的是确保开发的代码、函数以及对象在进行下一个单元测试之前可以正常工作;单元测试的意义:在软件开发生命周期的早期阶段尽可能多地识别错误,这样做的原因是在单元测试阶段识别的bug费用较低,且容易修复。
  • 内存泄漏及检测:内存泄漏的后果:内存泄漏是应用程序运行较慢的主要原因。如果软件应用程序出现了运行缓慢的情况,一个有经验的内存泄漏检测QA专家是必不可少的。

除了以上所述之外,以下列出的两种白盒测试的类别也属于黑盒测试和白盒测试的应用范畴:

  • 白盒渗透测试:在此测试中,测试人员/开发人员需要的信息有:应用程序的源代码、详细的网络信息、相关的IP地址和应用程序运行的服务器信息。渗透测试的主要目的是从多个角度攻击代码,主要目标是暴露软件的安全威胁。
  • 白盒测试方法-变异测试:变异测试是用于进一步探索软件解决方案的最佳编码技术。

软件白盒测试工具

白盒测试的主要工具软件:


白盒测试的优点

白盒测试的优点有哪些?

  • 通过查找隐藏错误优化代码;
  • 白盒测试用例方法更易于执行自动化测试;
  • 白盒测试效果更佳,因为测试覆盖了所有的代码路径;
  • 即使在GUI不可用的情况下,白盒测试也可以在SDLC早期开始进行。

 白盒测试的主要特点
  • 白盒测试执行起来相对复杂、且费用昂贵;
  • 如若开发人员执行的白盒测试用例不够详细会导致软件产品的错误;
  • 白盒测试专业性较强,它要求测试人员熟知编程及编程应用;
  • 白盒测试耗时长,编程量较大的应用程序需要时间来进行充分测试。

白盒测试的重要性

白盒测试通常与黑盒测试形成对比,白盒测试是从用户的角度出发测试一个应用程序,它不知道应用程序是如何工作的;白盒测试可以帮你发现应用程序内部结构问题、隐藏错误和特定组件故障。


白盒测试的知识点:

  • 白盒测试相对比较复杂,而它的复杂性与正在测试的应用程序有很大关系。执行单个简单操作的小应用程序可以在几分钟内完成测试,而编程量较大的应用程序则可能需要几天、几周甚至更长的时间才能完成完全测试。
  • 软件产品是在代码编写之后开发的,因此软件测试白盒测试方法应该在软件应用程序上进行,并且在每修改一次代码后都要进行一次测试。

Author: Maha

我是Wintesting中国站的 Maha,目前职位是市场营销&内容经理,负责CN Wintetsing网站内容的设计、编写与发布,同时还监管国内市场营销工作。与此同时,我也是一名IT培训教员,我的教育背景和所从事的行业都是与IT工程师行业及信息通信技术相关。此外,除了编写中英双语的新兴技术文稿外,我还是一名IT翻译工作者,累积翻译字数逾近10万,涉及的领域有大数据、人工智能、IoT、机器学习、云计算、AR&VR、计算机网络技术、计算机网络安全技术、应用程序测试、软件测试、系统测试、网络测试及IT基础设施等。如果你需要相关领域的内容编写或翻译工作请联系我。