专栏首页FunTester黑盒测试和白盒测试

黑盒测试和白盒测试

软件测试是软件开发过程中的基本活动。黑盒测试和白盒测试是两种不同类型的软件测试策略,它们具有同样强大的功能,并且结合使用时甚至更好。

黑盒测试

在软件中,黑盒测试很方便,可以减少灾难性(软件)崩溃的风险。灾难性的软件崩溃可能是什么?系统在更新客户数据库的过程中崩溃了?在这种情况下,可能会丢失客户数据。

黑盒测试分为三种类型:功能测试,非功能测试和回归测试。

黑盒功能测试

通过功能性的黑盒测试,我们可以在不知道软件如何执行的情况下检查该软件是否按预期进行。

软件是用模块或组件构成的。它是由许多不同的组件组成的一系列组件,组成一个完整的系统。通过以这种方式,在小型组件中,我们可以测试每个组件以确保其正常工作,而不仅仅是测试大型系统。

因此,对于每个小组件,都有输入和预期输出。要进行黑盒测试,您需要创建一个有效和无效输入的列表,包括边界条件等等。

这是一个简单的功能性黑匣子测试示例。假设有一个软件模块,该模块输入一个数字。

您的简化测试输入为:

  • 正数
  • 负数
  • 小数点后的数字
  • 非数字值
  • 空输入

非功能黑盒测试

我们还可以使用黑盒测试来测试其他预期的系统行为。这些可能包括系统响应时间,预期的数据,大量网络流量等场景。

非功能测试将包括诸如设置模拟测试环境之类的内容,以查看系统在压力下的性能。有各种各样的工具可以帮助我们实现这些测试目标并使所涉及的流程自动化。

回归黑盒测试

这是当我们在一个地方进行更改时,对整个系统进行黑盒测试(包括功能测试和非功能测试)时,请确保该更改不会意外影响系统的其他部分。显然,此过程需要自动化!

白盒测试

白盒测试是当测试软件模块的内部结构时:代码本身。出于各种原因,白盒测试是可以采用的良好测试策略。

出于安全原因

有时,代码本来就是“不安全的”:是因为它引用并使用了来自外部源的不安全函数,偶然地导致数据泄漏或使用了错误的结构都会带来安全隐患。

解决性能问题

有无数种方法可以完成某一项业务的软件模块的开发实现。尽管可以正常工作,但这并不意味着它已经以最佳方式进行了配置。如果从性能角度来看代码结构可以更高效,那么白盒测试可以发现这一点。

检查链路

在确认交易之前或之后,应将交易记录在您的系统中吗?也许之前和之后都需要记录它?白盒测试允许您检查路径和数据流的内部工作方式,以查看它们是否最有意义和/或符合系统要求。

需要黑盒和白盒测试的结合

黑盒测试对于确保系统按预期运行至关重要。无需编码知识就可以执行这种测试,因为它不需要检查代码本身。在这种情况下,了解软件系统的工作原理和业务逻辑更为重要。白盒测试更加困难,需要由经验丰富的程序员使用高级工具进行。

两种类型的测试都有一个大的工具集可以帮助测试人员解决问题,请参考之前的文章。


  • 郑重声明:文章首发于公众号“FunTester”,禁止第三方(腾讯云除外)转载、发表。

本文分享自微信公众号 - FunTester(NuclearTester),作者:FunTesting

原文出处及转载信息见文内详细说明,如有侵权,请联系 yunjia_community@tencent.com 删除。

原始发表时间:2020-01-20

本文参与腾讯云自媒体分享计划,欢迎正在阅读的你也加入,一起分享。

我来说两句

0 条评论
登录 后参与评论

相关文章

  • 5种促进业务增长的软件测试策略

    SaaS产品在市场上的巨大普及是促使初创公司深入软件行业的一个重要因素。但是,当涉及到将软件产品开发和投放市场时,仅凭一个简单的想法是不够的。与同类产品一样,市...

    FunTester
  • 自动化的好处

    为了收集有关当前和未来自动测试状态的见解,我们询问了27家公司的31位高管,“通过自动测试解决了哪些实际问题?” 这是他们告诉我们的:

    FunTester
  • 如何优化软件测试成本

    就像对早期发现疾病进行测试很重要一样,在小问题(错误)开始发展成更大(且昂贵)的问题之前,对软件进行早期测试也很重要。通过应用左移测试方法,由于可以跟踪测试人员...

    FunTester
  • 数据中心假负载验证测试实战指导方案

    前言 数据中心作为一个由多个系统高度结合的复杂工程,在基础设施建设全部完成,各系统调试结束后,就具备了开展假负载验证测试的基本条件。一场规模宏大的数据中心规划、...

    腾讯数据中心
  • 黑盒测试、白盒测试到底差别是什么?

      如果用在软件测试领域,这句话也一点都没错。不管黑盒、白盒,能找出Bug、发现缺陷,保证软件质量才是王道。

    小老鼠
  • 软件测试方法课程笔记(3)

    逻辑覆盖是通过对程序逻辑结构的遍历实现程序的覆盖. 是以程序内部的逻辑结构为基础的测试用例设计方法. 白盒测试作为逻辑测试方法,是以程序内部逻辑驱动的单元测...

    Mezereon
  • DevOps之自动化测试

    ? 大家好,我是冀博,目前负责新一代数字化企业云平台 “The Platform” 的测试工作,很荣幸有这次机会和大家分享交流,今天向各位分享的主题是《Dev...

    yuanyi928
  • 对接口自动化测试的几点思考(一)

    在自动化的测试体系中,目前应用的比较多,包含了UI自动化测试和接口自动化测试,在UI的自动化测试中使用最广泛的是Selenium框架,移动端是Ap...

    无涯WuYa
  • 自动化测试框架Cucumber和RobotFramework的实战对比

    一、摘要 自动化测试可以快速自动完成大量测试用例,节约巨大的人工测试成本;同时它需要拥有专业开发技能的人才能完成开发,且需要大量时间进行维护(在需求经常变化的情...

    企鹅号小编
  • go语言单元测试相关记录

    参数t上的Log和Logf一般用于记录一些常规信息,以展现测试程序的运行过程以及被测试程序实体的实时状态。 t.Log方法与fmt.Println函数使用方法...

    程序媛的养成日记

扫码关注云+社区

领取腾讯云代金券