首页 > 其他分享 >什么是黑盒白盒测试,他们有什么区别?

什么是黑盒白盒测试,他们有什么区别?

时间:2024-01-09 11:03:42浏览次数:28  
标签:黑盒 白盒 系统 功能测试 测试 软件

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


一、黑盒测试


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


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


1、黑盒功能测试


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


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


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


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


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


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


2、回归黑盒测试


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


二、白盒测试


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


1、出于安全原因


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


2、解决性能问题


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


3、检查链路


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


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


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


标签:黑盒,白盒,系统,功能测试,测试,软件
From: https://blog.51cto.com/u_16410477/9157882

相关文章

  • 墨者学院sql手工测试记录
    免责声明:本文仅供学习研究,严禁从事非法活动,任何后果由使用者本人负责。一:思路背景介绍安全工程师"墨者"最近在练习SQL手工注入漏洞,自己刚搭建好一个靶场环境Nginx+PHP+MySQL,PHP代码对客户端提交的参数未做任何过滤。尽情的练习SQL手工注入吧。流程掌握SQL注入原理;了解手工注入的方......
  • 【Application Insights】使用CURL命令向Application Insgihts发送测试数据
    问题描述在使用AppService或者Kubernetes等服务时,需要收集一些日志数据并且发送到ApplicationInsights中,当使用SDK或者是服务自带的ApplicationInsights配置时遇见问题,有没有快速的调试方式能验证AppService是否与ApplicationInsights之间的连通性呢?问题解答可以使用CURL发送......
  • 软件测试/测试开发/全日制|pytest如何标记测试用例
    前言在pytest中,有时候我们并不需要对所有的用例全部执行。pytest提供了一种机制:有选择的挑选用例去执行,即标记测试函数。下面详细介绍几种方法给函数标记。使用pytest.mark在函数上进行标记标记格式@表示这是一个装饰器,pytest.mark是pytest固定的写法,mark_name可以使用自定义标记......
  • 软件测试/测试开发全日制培训|Pytest跳过用例和失败重试
    前言在我们日常进行自动化测试时,经常会遇到功能阻塞,未实现或者环境有问题等等原因,一些用例执行不了,如果我们注释掉或删除掉这些测试用例,后面可能还要进行恢复操作,这个时候pytest的跳过测试功能就能帮助我们,先跳过,等到问题解决时,恢复执行即可;同时我们还有可能会遇到需要对失败用例重......
  • 软件测试/测试开发/全日制|Pytest如何灵活地运行用例
    前言Pytest能够满足我们对单元测试框架的许多要求,它简洁易用,同时提供了丰富的功能来进行测试用例的管理和执行。在本文中,我们将深入探讨如何使用Pytest运行多条测试用例、测试文件或测试包,并且指定运行特定的测试用例,并对执行结果进行分析。运行多条测试用例/文件/包Pytest具备......
  • pytest-yaml 测试平台-4.生成allure报告,报告反馈企业微信、钉钉、飞书通知
    前言定时任务执行完成后生成可视化allure报告,并把结果发到企业微信,钉钉,飞书通知群里。生成allure报告添加定时任务执行完成后生成allure报告查看报告详情报告会显示详细的request和response详细信息也可以查看log日志报告反馈-企业微信创建定时任务时添加企业微信token企业微信t......
  • 内存溢出会导致模块测试正常,植入系统失败
    前些天,遇到了一个问题:需要在系统中添加一个小功能,单独测试,然后植入系统。代码使用了从网上下载的函数,模块单独运行,没有问题,但是放在系统中运行就会出问题。不得已的情况下,只能一行行代码排查,发现一个地方使用了malloc但是没有使用free。结果,发现malloc(rdata_len1);之后使用了......
  • 【测试运维】性能测试知识笔记第1篇:性能测试分类和参数(已分享,附代码)
    本系列文章md笔记(已分享)主要讨论性能测试相关知识。入门阶段:认识性能测试分类-(负载测试、压力测试、并发测试、稳定性测试),常用性能测试指标-(吞吐量、并发数、响应时间、点击数...),性能测试工具选择。性能脚本:1.LoadRunner介绍,2.脚本录制、运行、参数化,3.关联、检查点、事务......
  • 测试Kill MMON进程对数据库的影响
    文档课题:测试KillMMON进程对数据库的影响.数据库:oracle11.2.0.41、异常模拟[oracle@racogg:~]$ps-ef|grepmmon|grep-vgreporacle1387910Jan06?00:00:11ora_mmon_orcl[oracle@racogg:~]$ps-ef|grepora_smon|grep-vgreporacle......
  • STM32MP157D-DK1 Qt程序交叉编译与运行测试
    上篇文章介绍了STM32MP157D-DK1开发板Qt镜像的构建,通过在Ubuntu中重新编译带有Qt功能的系统来实现。本篇在上篇的基础上,继续搭建Qt的交叉编译环境,实现Qt程序在Ubuntu中编译,在STM32MP157板子中运行。1编译安装SDK在上篇编译系统镜像的基础上,继续编译和安装SDK。1.1编译SDK执行如下......