白盒测试和黑盒测试的区别

news2024/11/16 17:36:40

白盒测试和黑盒测试的区别白盒测试和黑盒测试都是计算机领域行业用以检查程序的状态,确定实际运行状态与预期状态是否一致的重要环节,来看看他们有什么不一样吧。

在这里插入图片描述
白盒测试技术 (White Box Testing) : 深入到代码一级的测试,使用这种技术发现问题最早,效果也是最好的。该技术主要的特征是测试对象进入了代码内部,根据开发人员对代码和对程序的熟悉程度,对有需要的部分进行在软件编码阶段,开发人员根据自己对代码的理解和接触所进行的软件测试叫做白盒测试。这一阶段测试以软件开发人员为主,在 JAVA 平台使用 Xunit 系列工具进行测试, Xunit 测试工具是类一级的测试工具对每一个类和该类的方法进行测试。

黑盒测试技术( Black Box Testing ):黑盒测试的内容主要有以下几个方面,但是主要还是功能部分。主要是覆盖全部的功能,可以结合兼容,性能测试等方面进行,根据软件需求,设计文档,模拟客户场景随系统进行实际的测试,这种测试技术是使用最多的测试技术涵盖了测试的方方面面,可以考虑以下方面:

1.正确性 (Correctness) :计算结果,命名等方面。

2.可用性 (Usability) :是否可以满足软件的需求说明。

3.边界条件 (Boundary Condition) :输入部分的边界值,就是使用一般书中说的等价类划分,试试最大最小和非法数据等。

4.性能 (Performance) : 正常使用的时间内系统完成一个任务需要的时间,多人同时使用的时候响应时间在可以接受范围内。 J2EE 技术实现的系统在性能方面更是需要照顾的,一般原则是 3 秒以下接受, 3-5 秒可以接受, 5 秒以上就影响易用性了。如果在测试过程中发现性能问题,修复起来是非常艰难的,因为这常常意味着程序的算法不好,结构不好,或者设计有问题。因此在产品开发的开始阶段,就要考虑到软件的性能问题。

5.压力测试(Stress) : 多用户情况可以考虑使用压力测试工具,建议将压力和性能测试结合起来进行。如果有负载平衡的话还要在服务器端打开监测工具 , 查看服务器 CPU使用率,内存占用情况,如果有必要可以模拟大量数据输入,对硬盘的影响等等信息。如果有必要的话必须进行性能优化( 软硬件都可以 ) 。这里的压力测试针对的是某几项功能。

6.错误恢复 (Error Recovery) :错误处理,页面数据验证,包括突然间断电,输入脏数据等。

7.安全性测试 (Security) :这个领域正在研究中,防火墙、补丁包、杀毒软件等的就不必说了,不过可以考虑。破坏性测试时任意看了一些资料后得知 , 这里面涉及到的知识、内容可以写本书了 , 不是一两句可以说清的,特别是一些商务网站,或者跟钱有关,或者和公司秘密有关的 web 更是需要这方面的测试,在外国有一种专门干这一行的人叫安全顾问,可以审核代码,提出安全建议,出现紧急事件时的处理办法等,在国内没有听说哪里有专门搞安全技术测试的内容。

8.兼容性(Compatibility) :不同浏览器,不同应用程序版本在实现功能时的表现不同的上网方式,如果你测试的是一个公共网站的话。

在北京,软件测试工程师的平均薪资高达16.4k,持续精进技术的话,更是可以达到50k!并且软件测试相关的薪资,即使是在疫情期间,也是年年上涨!
在这里插入图片描述

△ 截图来源职友集,如侵删

目前测试行业现状

软件越来越多,要靠质量取胜,就倒逼测试人员需求越来越大

使用软件产品的过程中,出现影响用户体验的问题,会大大减少用户的粘性和信心,给企业带来不可估量的损失。

通俗来说,软件测试,就是测试软件的过程,包括软件功能、易用性、性能、安全等质量维度的测试。

保障软件产品正式发布后的质量,提升用户对产品的体验和信心。

但软件给我们带来极大的便利的同时,也给人们带来各种各样的麻烦。有兴趣可以去搜一下软件业最著名的十大Bug,都是惊天动地。在我国,由于很多软件企业存在着“重开发、轻测试”的现象,造成日后软件产品质量问题频出。只要留心我们生活中的日常,就会发现软件bug导致的各种麻烦:比如红绿灯控制系统出bug,导致交通瘫痪;地铁控制系统出bug,导致人们上班迟到;关键时刻手机卡顿死机,导致很多正常的生活工作无法开展……

随着国内软件行业的深入发展,人们生活水平越来越高,这就导致人们对软件质量的要求也越来很高,这就倒逼软件企业要靠软件产品质量去占领市场,随之推动的就是企业对测试人员的需求越来越大。

测试人才缺口30万,最近两年薪资频频跳涨

与之相反,由于软件测试最近几年才引起重视,大学教育完全没有跟上,就算是培训机构,软件测试相关培训也是少之又少,软件测试人才严重短缺,导致很多企业只好退而求其次拿软件开发人员急用。据中华英才网显示,目前软件测试人才缺口在30万人以上。人才缺口必然导致的是薪资的跳涨。据职友集统计,软件测试人才在2015年和2017年这两年,行业薪资跳涨率分别达到了40%和33%。

当前自动化测试已成风口,人才奇缺

测试其实可以细分为很多种类。仅按照是否需要编程这个维度来分,可以分为手工测试,自动化测试,测试开发。目前测试领域存在突出矛盾:一方面企业需要技术层级稍高的测试人才,比如自动化测试,性能测试;另一方面却是目前测试从业人员因知识不成体系,只能从事简单的手工测试工作。所以自动化测试人才奇缺,只要掌握了一定的自动化测试技术,往往就会被市场争抢,当然也就能高薪资。

所以对于我们新人来说,首先选择了正确的行业,就要考虑如何坚持下去。做好自己的职业规划可能是我们想要在这个行业快速成长的重要事情。

天下程序员苦bug久矣!

而如今,程序员的这一天敌,终于也有了天敌——软件测试工程师。

但是坊间传闻,软件测试工程师每天的工作就是摸鱼?小编不信,要知道现在软件测试的工资可高了,老板们怎么会允许他们摸鱼呢?

下面来一波实地考察,看看软件测试工程师们到底是真摸鱼还是假摸鱼。

考察对象:小王,某互联网公司的一名新晋软件测试,虽然刚来公司不久,但是凭着超强的业务能力,已经提前转正了。在某次聊天中偶然得知,他的薪资18k。

当我来到小王工位时,他正在悠闲的喝着一杯带有茉莉清香的绿茶,时不时的还玩弄下最新入手的华为Mate Xs2(此处真的不是在打广告)。

工作时间这么悠闲还玩手机?被我抓了个正着吧,这回看他怎么说。

“啥,我们摸鱼?可别瞎说了,我们这是在靠技术工作,如果非要说,那也是我们的本事。不是我跟你吹,一般人还真摸不了这样的鱼。”

靠技术实现“摸鱼”自由的打工人?你要这么说,那我可就更感兴趣了。

“那你给我说说,你是怎么靠技术实现摸鱼的”

小王抿了一口手中的绿茶,悠闲的给我说起了他的日常工作……

“就拿今天来说吧,你看我是在喝茶玩手机,其实在这之前,我已经开了个会,把需求分析弄清楚了,然后根据这个制定了计划方案,搭建了测试环境……现在我正在进行自动化测试,就是让程序自动执行一些重复但必要测试工作。我在这喝茶的功夫就是等着检测出bug后和开发区沟通了。”

“原来如此,那看来你这真是靠技术‘摸鱼’”。

“那可不,自动化测试就是有这个好处,只要功夫学到家,想悠闲喝喝茶,蹲蹲坑的时间还是可以有的~”
……
所以,大家明白了吗?软件测试看似在悠闲喝茶的背后是得掌握技术。

据了解,现在企业为了软件的安全,还就得花着钱让软件测试工程师来公司摸鱼,还非自动化测试的人才不可!并且给出的薪水都非常高!
在这里插入图片描述

△ 截图来源Boss直聘,如侵删

但是如果想在工作时间“摸鱼”,还能拿到小王这样的高薪水,除了掌握自动化测试之外,还需要精通功能测试、接口测试、性能测试,这些都是现在软件测试工程师“吃饭”的本领

如果真的想入行软件测试,可以看看下面这个学习路线~

第一阶段 功能测试

学前导读:学习本阶段内容,可全流程功能测试解决方案、Web自动化测试解决方案、数据分离解决方案、自动化测试报告解决方案、日志收集解决方案。

1.2022全网首发、最适合新手的软件测入门到实战教程上线啦!

真正的从入门到精通,包含了基础+项目实战,所有案例实战操作均图文并茂,真正实现一套全通关!

软件测试2022最新视频教程,软件测试基础入门到项目实战(涵盖软件测试基础+黑马头条项目实战)

2.软件测试入门到精通

软件测试是一种实际输出与预期输出之间的审核或者比较过程。软件测试的经典定义是:在规定的条件下对程序进行操作,以发现程序错误,衡量软件质量,并对其是否能满足设计要求进行评估的过程。本课程共5天,针对零基础小白录制。零基础入门的必学课。

软件测试从入门到精通_软件测试基础教程

3. Linux系统2天快速入门

本视频包含Linux操作系统介绍、Linux的常用命令、vi编辑器。学习掌握本阶段内容,可具备Linux项目搭建能力。

Linux系统操作教程2天快速入门linux项目搭建

4. 软件测试MySQL数据库知识精讲+项目实战

本视频包含数据安装,数据表操作、数据操作-增删改查、条件查询、排序、聚合函数、分组、分页、连接查询、自关联、子查询、子查询演练。学习本课程内容,可具备数据库校验能力;还可以快速、规范的掌握数据库增删改查操作。

软件测试工程师必备MySQL数据库,mysql系统精讲+课后练习

第二阶段 Python编程

学前导读:学习本阶段内容,可掌握Python语法, 具备编程能力; 能建立编程思维以及面向对象程序设计思想; 能掌握UnitTest框架管理测试用例。

10天玩转Python软件测试

学习本阶段内容,可掌握Python语法, 具备编程能力; 能建立编程思维以及面向对象程序设计思想; 能掌握UnitTest框架管理测试用例。

Python自动测试教程,python从基础到UnitTest框架管理测试用例

第三阶段 UI自动化

学前导读:ui自动化大体分为web自动化和App自动化,在自动化测试领域中占比很大,经常使用。

1. 软件测试web自动化测试精讲与实战

本课程将教会大家搭建Web自动化和移动自动化测试环境;掌握Web自动化测试流程和脚本编写;掌握移动自动化测试中元素的定位方法、元素操作和手势操作;熟练掌握ADB工具的使用; 掌握PO模式的设计思想,并能够对页面进行封装;掌握数据驱动的实现方式; 能够在实际项目灵活运用自动化的相关技术。

软件测试web自动化测试,Web自动化流程精讲和移动自动化测试环境

2.零基础入门移动自动化——Appium框架

本课程会详细讲解Appium框架,Appium是一个开源的、跨平台的自动化测试框架,该框架适用于Native Application、Mobile Web Application或Hybrid Application的自动化测试。

零基础入门移动自动化测试——Appium框架

3. 轻松教你使用Appium进行IOS真机自动化测试

本套课程,将环境安装的步骤和注意事项呈现给学员,模拟器到真机实操,都进行演示讲解。内容丰富,生动形象,学完即可完成IOS端环境安装及实操。

轻松教你使用Appium进行IOS真机自动化测试

第四阶段 接口自动化

学前导读:接口测试是所有自动化测试应用频率最高部分。此阶段共分成14个部分进行详讲。

接口测试精讲+传智健康实战教程

本教程会涉及HTTP,Postman,Pymysql,requests库,集成UnitTes,Dubbo等诸多工具,最后用传智健康项目进行本阶段项目实战。

4天玩转接口测试,接口重点全解析+传智健康项目实战(包含requests库,集成UnitTes,Dubbo等诸多工具)

第五阶段 性能测试

学前导读:性能测试属于高级测试范畴,对于薪资的提升帮助很大,本阶段视频讲解性能测试环境搭建,JMeter工具的使用,性能测试监控、分析和调优方法。

4天快速入门性能测试

本视频通过性能测试基础理论及JMeter工具的学习;通过轻商城项目实战,带学员掌握性能测试需求分析、性能测试计划、测试用例设计、测试脚本开发、性能监控、性能分析和调优、性能测试报告总结。

性能测试全套教程,4天快速入门性能测试+项目商城实战(含JMeter工具等)

第六阶段 综合项目强化

学前导读:通过微信小程序、金融项目两个实战项目综合强化功能测试、接口测试、性能测试。

1. 微信小程序自动化测试实战

本视频涵盖:微信小程序基础介绍、Ego微商项目介绍、Ego微商项目部署、Ego微商小程序计划篇、Ego微商小程序设计篇、Ego微商小程序执行总结篇、Ego微商小程序接口测试篇、持续集成。

软件测试微信小程序自动化测试实战

2. 软件测试4天搞定金融项目

本视频讲解金融项目功能测试解决方案、真实项目测试体验解决方案、复杂业务接口测试解决方案 接口加解密测试解决方案、数据分离解决方案 持续集成解决方案、自动化测试报告解决方案、高并发测试解决方案。

软件测试4天快速搞定金融项目功能测试实战教程

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.coloradmin.cn/o/129136.html

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

【Maven基础】单一架构案例(四)

第七节 业务功能:显示奏折列表 1、流程图 2、创建组件 2.1、创建 WorkServlet 2.1.1、创建 Java 类 刚开始是空的,还没有写方法: public class WorkServlet extends ModelBaseServlet {private MemorialsService memorialsService new M…

零售行业交易数据分析——RFM模型分类及可视化(Python实现)

内容简介 接上一篇文章《客户终身价值(CLTV)计算和回归预测模型》,本文继续分析一年的零售交易数据,从用户的角度,使用RFM模型对用户进行打分归类,并对结果进行可视化展示。 数据集介绍 数据集包含一家在英国注册的在线零售公司…

一文带你搞懂 MySQL 事务

目录 1、事务的基本操作 2、事务的ACID属性 3、事务隔离级别 4、多版本并发控制( MVCC ) 5、深入理解隔离级别 什么是事务? 事务就是一组DML语句组成,这些语句在逻辑上存在相关性,这一组DML语句要么全部成功&…

基于OpenCV提供的人脸识别算法LBPH实现人脸识别

本文通过学习LBPH人脸识别算法,简要了解人脸识别技术的原理,实现人脸采集、训练人脸模型实现人脸识别。 文章目录一、 LBPH人脸识别算法概述二、 人脸识别技术原理三、 关键模块四、 实验准备1. 第三方库2. 新建相关文件夹3. 实验环境五、 人脸采集与检测…

【自学Java】Java开发环境搭建

Java开发环境搭建 Java开发环境搭建 Java 的开发环境主要使用 JDK。我们这边介绍的 JDK 版本是 1.8。我们可以直接从 Oracle 官网上面下载。JDK 下载地址: https://www.oracle.com/java/technologies/javase/javase-jdk8-downloads.html如下图: 由于在…

如何使用css实现三角形?

​ 一、前言 ​ 通常情况下,我们会使用图片或者svg去完成三角形效果图,但如果单纯使用css如何完成一个三角形呢? 实现过程似乎也并不困难,通过边框就可完成 二、实现过程 在以前也讲过盒子模型,默认情况下是一个矩形…

Faster RCNN网络源码解读(Ⅳ) --- Faster R-CNN主体代码执行流程解析

目录 一、Faster R-CNN框架图 二、结合代码 (faster_rcnn_framework.py) 2.1 FasterRCNNBase类 2.2 FasterRCNN类 一、Faster R-CNN框架图 我们获取一张图片后将其输入特征提取网络Backbone中得到特征图,将特征图输入到RPN中得到一系列的…

Maven的基本使用方法

Maven Maven是专门用于管理和构建Java项目的工具,它的主要功能有: 提供了一套标准化的项目结构 提供了一套标准化的构建流程(编译,测试,打包,发布……) 提供了一套依赖管理机制 标准化的项…

【JavaEE】Linux

努力经营当下,直至未来明朗! 文章目录一、Linux概述二、 云服务器安装Linux环境 Xshell登录三、Linux中常用指令介绍1. ls2. pwd 查看当前路径对应的绝对路径3. cd 切换当前的工作目录4. touch:创建一个空文件5. cat: 显示文件内…

23 种设计模式总结

title: 23 种设计模式总结 date: 2022-12-30 16:53:46 tags: 设计模式 categories:设计模式 cover: https://cover.png feature: false 文章目录1. 创建型1.1 单例模式(Singleton Design Pattern)1.1.1 概述与实现1.1.2 多例1.2 工厂模式(Fa…

零信任与 K8s 环境实践

零信任的热度自然吸引了大量市场上的关注。尽管如此,零信任并不只是一个空洞的术语:它代表了对未来安全性的一些深刻变革的想法。那么,零信任具体是什么,为什么它会突然变得如此重要?零信任对 Kubernetes 用户来说具体…

【数据结构】顺序表(线性表)的实现

目录 一、什么是顺序表? 二、顺序表的动态实现 1、顺序表初始化 2、顺序表打印 3、顺序表检查空间 4、顺序表尾插 5、顺序表尾删 6、顺序表头插 7、顺序表头删 8、顺序表指定位置插入 9、顺序表指定位置删除 10、顺序表查找 11、顺序表销毁 三、源代码 1、SeqList.h…

hnu社交网络作业1

前言:上的是林剑新老师的课程,还是比较有意思的,此博客用来记录作业的学习情况,答案为老师提供的 一、对于图 1,请回答以下问题,并给出相应的计算过程: (1) 计算图 G 中每个顶点的 closeness 中…

Java重点源码回顾——HashMap1.7

1. 概述 public class HashMap<K,V>extends AbstractMap<K,V>implements Map<K,V>, Cloneable, SerializableHashMap在我们的日常使用中非常多&#xff0c;所以今天来阅读下它的源码&#xff0c;了解它具体的设计思想&#xff0c;能够帮助我们扩宽视野。 H…

vmware vcp证书怎么考?vmware vcp证书通过率如何

可为您提供行业领先的虚拟化技术培训和认证服务&#xff0c;这些认证不但会考察您的知识掌握情况和经验水平&#xff0c;还将与您的实际工作职责挂钩。VMware认证按照不同解决方案划分&#xff0c;可分为四条路径&#xff1a;数据中心虚拟化、网络虚拟化、云计算管理和自动化、…

微信小程序项目转uniapp踩坑日记

本文目录一、前言二、转换方式三、后语四、其他&#xff1a;node报错1、包默认C盘存放&#xff0c;而不是安装目录E盘2、正确的环境变量添加3、npm install 命令报错4、npm install -g express报错没有权限一、前言 由于想要把之前完成的微信小程序项目转换成uniapp项目&#…

git入门指南

文章目录Git入门指南前言什么是版本控制系统&#xff08;VCS&#xff09;版本控制系统Git1、概述2、目前比较流行的Git和SVN&#xff0c;区别是什么3、Git安装4、Git的工作区、暂存区、本地仓库、远程仓库5、git的分支6、git的标签7、 实际操作下git常用命令准备操作git cloneg…

Kafka Cluster 扩容 添加副本 重分配分区

Kafka Cluster 扩容 针对kafka集群&#xff0c;可以通过向群集添加新节点来扩展群集。新节点将仅服务于新主题或新分区&#xff0c;现有分区将不会自动重新平衡以使用新节点。如果需要对现有的TOPIC进行重新分配分区&#xff0c;需要运维人员手动进行干预。今天学习下如何对已…

CAPL学习之路-测试功能集函数(故障注入函数)

TestDisableMsg 禁止发送消息,除非调用函数TestSetMsgEvent 使用TestEnableMsg重新启用消息。此函数影响分配CANoe交互层或CANopen仿真的仿真节点 这个函数可以在测试用例中控制Simulation Setup界面仿真节点报文的发送与停止 testcase TCExample() {testDisableMsg(LightSt…

Linux模块代码、编译、加载、卸载一条龙

最近要写一个Linux的内核模块&#xff0c;记录一下内核模块的代码编写、编译、加载和卸载的基本流程&#xff0c;以作备忘&#xff0c;也希望能帮到有需要的同学。 模块代码 //代码来自https://yangkuncn.cn/kernel_INIT_WORK.html //init_works.c #include <linux/kernel…