每日总结2024/1/13(白盒技术)

发布时间 2024-01-13 20:15:15作者: 橘子味芬达水

第一节:什么是白盒测试?

白盒测试是软件测试技术,白盒测试也称结构测试或逻辑驱动测试,是针对被测单元内部是如何进行工作的测试。它根据程序的控制结构设计测试用例,主要用于软件程序验证。白盒测试中也称为透明盒测试、基于代码的测试和玻璃盒测试。

它是Box Testing软件测试方法之一。与之相对应的黑盒测试是从用户角度对软件进行测试。另一方面,软件工程中的白盒测试基于应用程序的内部工作,并围绕内部测试。

由于透明盒的概念,因此使用了“ WhiteBox”一词。透明盒或WhiteBox名称象征着能够查看软件外壳内部功能的实现逻辑。与之相反,“黑盒测试”中的“黑匣子”无法看到软件的内部运行情况,因此只能从用户的使用角度进行测试。

白盒测试测试什么?

白盒测试涉及以下测试内容:

  • 内部安全漏洞
  • 编码规范
  • 预期输出
  • 条件循环的功能
  • 分别测试每个语句、对象和功能

白盒测试可以在软件开发的系统、集成和单元测试阶段进行。

如何进行白盒测试?

为了简化对白盒测试的解释,将其分为两个基本步骤。这是测试人员使用白盒测试技术测试应用程序时所做的事情:

第1步)了解源代码

测试人员经常要做的第一件事是学习和理解应用程序的源代码。由于白盒测试涉及对应用程序内部工作的测试,因此测试人员必须非常了解所测试应用程序中使用的编程语言。另外,测试人员必须十分了解安全编码规范。软件安全性通常是软件测试的主要目标之一。测试人员应该能够发现安全问题,并防止黑客攻击。

第2步:创建并执行测试用例

白盒测试的第二个步骤是测试应用程序的源代码,以了解其正确的流程和结构。一种方法是编写更多测试代码以测试应用程序的源代码。测试人员将为应用程序中的每个函数开发一定的测试用例。这种方法要求测试人员必须对代码有深入的了解,并且这通常由开发人员来完成。

 

 

白盒测试案例

看一下以下代码

Printme(int a,int b){ int结果= a + b; 如果(结果> 0) 打印(“正”,结果) 别的 打印(“负”,结果) }

软件工程中WhiteBox测试的目标是验证代码中的所有决策分支、循环、语句。

为了执行上述白盒测试示例中的语句,WhiteBox测试用例为

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

白盒测试技术

白盒测试的主要技术是代码覆盖率分析。代码覆盖率分析消除了测试用例套件中的空白。它标识一组测试用例未执行的程序区域。一旦发现用例覆盖空白域,就可以创建测试用例以验证未经测试的代码部分,从而提高软件产品的质量。

以下是白盒测试的几种覆盖率分析技术:

语句覆盖:这种技术要求在软件工程的测试过程中,至少对代码中的每个可能的语句进行一次测试。

分支覆盖:它要求覆盖软件应用程序的每个可能路径(if-else和其他条件循环)。

除上述内容外,还有许多覆盖类型,例如条件覆盖,多个条件覆盖,路径覆盖,功能覆盖等。每种技术都有其自身的优点,并尝试测试(覆盖)软件代码的所有部分。使用语句和分支覆盖率,通常可以达到80-90%的代码覆盖率,这已经很充足了。

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

  • 语句覆盖
  • 决策覆盖
  • 分支覆盖
  • 条件覆盖
  • 多条件覆盖
  • 有限状态机覆盖
  • 路径覆盖
  • 控制流测试
  • 数据流测试

白盒测试的类型

白盒测试包含几种用于评估应用程序,代码块或特定软件包的可用性的测试类型。

  • 单元测试: 通常是在应用程序上进行的第一类测试。单元测试是在开发每个单元或代码块时执行的。单元测试本质上是由程序员完成的。作为软件开发人员,您需要开发几行代码,一个函数或一个对象,并对其进行测试,以确保其可以正常工作,然后再继续进行单元测试,以帮助在软件开发生命周期的早期识别出大多数错误。在此阶段发现的错误更便宜且易于修复。
  • 测试内存泄漏:内存泄漏是导致应用程序运行缓慢的主要原因。如果您的软件应用程序运行缓慢,那么具有丰富的检测内存泄漏经验的质量保证专家至关重要。

除上述之外,黑盒和白盒测试均包含一些测试类型。它们列出如下

  • 白盒渗透测试:在此测试中,测试人员/开发人员具有应用程序源代码的完整信息,详细的网络信息,所涉及的IP地址以及应用程序在其上运行的所有服务器信息。目的是从多个角度对代码进行攻击以暴露安全威胁
  • 白盒突变测试:突变测试通常用于发现用于扩展软件解决方案的最佳编码技术。

白盒测试工具

下面是顶级白盒测试工具的列表:

白盒测试的优点

  • 通过发现代码隐藏的错误并进行优化。
  • 白盒测试用例可以轻松实现自动化。
  • 通常涵盖所有代码路径,因此测试更加彻底。
  • 即使没有GUI,也可以在SDLC中尽早开始测试。

白盒测试的缺点

  • 白盒测试可能非常复杂且昂贵。
  • 通常执行白盒测试用例的开发人员会讨厌它。开发人员不进行白盒测试,软件容易产生缺陷。
  • 白盒测试需要测试人员十分熟练编程。
  • 白盒测试是耗时的,编程测试应用程序需要花费大量时间来进行全面测试。