测试|测试分类

测试|测试分类

文章目录

  • 测试|测试分类
    • 1.按照测试对象分类(部分掌握)
    • 2.是否查看代码:黑盒、白盒灰盒测试
    • 3.按开发阶段分:单元、集成、系统及验收测试
    • 4.按实施组织分:α、β、第三方测试
    • 5.按是否运行代码:静态、动态测试
    • 6.按是否手工划分
    • 7.按跨地域分:国际化、本地测试(略)

1.按照测试对象分类(部分掌握)

[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-puVebyRg-1690710244707)(F:\typora插图\image-20230730162359988.png)]

2.是否查看代码:黑盒、白盒灰盒测试

黑盒测试/数据驱动测试:就是在完全不考虑程序逻辑和内部结构的情况下,检查系统功能是否满足规范需求。只注重软件功能。

黑盒测试的优缺点:优点不关注软件内部实现 ,需要从用户角度出发设计测试用例 ,测试用例是基于软件需求开发文档。缺点:代码覆盖率比较低。

白盒测试:一般用来分析程序的内部结构,针对程序的逻辑结构设计测试用例进行测试。关注代码逻辑,对业务功能有一定漏洞。

主要有六种测试方法:语句测试、判定覆盖、条件覆盖、判定条件覆盖、条件组合覆盖、路径覆盖。

白盒测试优缺点:优点代码覆盖率高,缺点业务功能覆盖率较低。

灰盒测试:介于白盒和黑盒测试之间的测试,多用于集成测试阶段。

灰盒测试特点:既关注输入输出的正确性,同时也关注程序内部的情况。

3.按开发阶段分:单元、集成、系统及验收测试

[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-BvLUh2n7-1690710244708)(F:\typora插图\image-20230730164251132.png)]

顺序:单元测试–>集成测试–>冒烟测试–>系统测试–>回归测试–>验收/交付测试(系统测试之后)

[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-kDGQcrYG-1690710244708)(F:\typora插图\image-20230730171629131.png)]

冒烟测试的执行:

[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-RQlQkKM1-1690710244709)(F:\typora插图\image-20230730170115732.png)]

单元测试:

单元测试是对软件组成单元进行测试。其目的是检验软件基本组成单位的正确性。测试的对象是软件设计的最小单位:模块。又称为模块测试
测试阶段:编码后或者编码前(TDD)
测试对象:最小模块
测试人员:白盒测试工程师或开发工程师(测试人员+后端开发人员)
测试依据:代码和注释+详细设计文档
测试方法:白盒测试(语句覆盖、判定覆盖、条件覆盖…(6))
测试内容:模块接口测试、局部数据结构测试、路径测试、错误处理测试、边界测试

Java如何进行单元测试?

利用Junit等框架

集成测试:

集成测试也称联合测试(联调)、组装测试,将程序模块采用适当的集成策略组装起来,对系统的接口及集成后的功能进行正确性检测的测试工作。集成主要目的是检查软件单位之间的接口是否正确。
测试阶段:一般单元测试之后进行
测试对象:模块间的接口
测试人员:白盒测试工程师或开发工程师
测试依据:单元测试的模块+概要设计文档
测试方法:黑盒测试与白盒测试相结合
测试内容:模块之间数据传输、模块之间功能冲突、模块组装功能正确性、全局数据结构、单模块缺陷对系统的影响

系统测试:

将软件系统看成是一个系统的测试。包括对功能、性能以及软件所运行的软硬件环境进行测试。
测试阶段:集成测试通过之后
测试对象:整个系统(软、硬件)

测试人员:黑盒测试工程师
测试依据:需求规格说明文档
测试方法:黑盒测试
测试内容:功能、界面、可靠性、易用性、性能、兼容性、安全性等

回归测试:回归测试是指修改了旧代码后,重新进行测试以确认修改没有引入新的错误或导致其他代码产生错误 。

解决回归测试的重复性:自动化

冒烟测试:

对象:每一个新编译的需要正式测试的软件版本

测试阶段:系统测试之前完成

目的:确认软件主要功能和核心流程正常,在正式进行系统测试之前执行冒烟测试一般在**开发人员开发(也需要首先进行冒烟测试)**完毕后提交给测试人员来进行测试
时,先进行冒烟测试,保证基本功能正常,不阻碍后续的测试。
如果冒烟测试通过,则测试人员开始进行正式的系统测试,如果不通过,则测试人员可以让开发人员重新修复代码直到冒烟测试通过,再开始进行系统测试。
回归测试和冒烟测试都属于系统测试

验收测试:

测试人员:一般交给最终用户/需求方(产品)

测试方法:黑盒测试

阶段:一般是在系统测试之后

4.按实施组织分:α、β、第三方测试

α测试是由一个用户在开发环境下进行的测试,也可以是公司内部的用户在模拟实际操作环境下进行的测试。 α测试不能由程序员或测试员完成。

Beta测试是一种验收测试。Beta测试由软件的最终用户们在一个或多个场所进行 .

第三方测试是介于开发方和用户间的组织的测试。

α测试与β测试区别:

  1. 环境上,α测试是公司内部进行测试,β测试环境不确定;
  2. 测试人员类型上,α测试是公司内部人员,β测试人员是用户
  3. 测试人员数量上,α测试人员数量较少,β测试人员较多
  4. 阶段上,α测试是在β测试之前测试
  5. 测试周期上,α测试周期较短,β测试周期较长

5.按是否运行代码:静态、动态测试

区别:静态测试就是不实际运行被测软件而只是静态检查程序代码,界面或文档中可能存在的错误过程;动态测试指的是实际运行被测程序输入响应的测试数据,检查实际输出结果和预期结果是否相符的过程。

大部分软件测试都属于动态测试

6.按是否手工划分

手工测试:人一个一个输入用例,观察结果与机器测试相对应,比较原始但是必须进行。

自动化测试:把人测试转化为机器执行的一个过程

Q1:自动化能否完全替代手动测试?
A1:不能,只能完成一部分
Q2:手工测试和自动化测试哪个好?
A2:自动化测试可以执行手工测试相当困难或根本做不到的测试,自动化测试具有一致性和可重复性, 自动化脚本完全可复用,自动化测试使软件更有信任度,自动化测试适合做兼容性测试,自动化测试使回归测试更方便、可靠;手工发现的缺陷远远比自动化测试得多,自动化测试对测试人员的技术要求较高,自动化测试成本投入高、风险大,自动化测试是死的,不具有情感,自动化测试完全不可能取代手工测试。

7.按跨地域分:国际化、本地测试(略)

本地化测试

国际化测试

国际化:货币格式,语言,页面布局,时间,日期,流行的设备等

什么是软件国际化?
是在软件设计和文档开发过程中,使得功能和代码设计能处理多种语言和文化习俗,使创建不同语言版本时,不需要重新设计源程序代码的软件工程方法。

测试

国际化测试

国际化:货币格式,语言,页面布局,时间,日期,流行的设备等

什么是软件国际化?
是在软件设计和文档开发过程中,使得功能和代码设计能处理多种语言和文化习俗,使创建不同语言版本时,不需要重新设计源程序代码的软件工程方法。

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

如若内容造成侵权/违法违规/事实不符,请联系长河编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

【雕爷学编程】MicroPython动手做(25)——语音合成与语音识别

知识点:什么是掌控板? 掌控板是一块普及STEAM创客教育、人工智能教育、机器人编程教育的开源智能硬件。它集成ESP-32高性能双核芯片,支持WiFi和蓝牙双模通信,可作为物联网节点,实现物联网应用。同时掌控板上集成了OLED…

内网横向移动—NTLM-Relay重放Responder中继攻击LdapEws

内网横向移动—NTLM-Relay重放&Responder中继攻击&Ldap&Ews 1. 前置了解1.1. MSF与CS切换权限1.1.1. CS会话中切换权限1.1.1.1. 查看进程1.1.1.2. 权限权限 1.1.2. MSF会话中切换权限 2. NTLM中继攻击—Relay重放—SMB上线2.1. 案例测试2.1.1. 同账户密码测试2.1.2…

GC 深入(小白,对gc有一个进一步的了解)

垃圾回收器的搭配 一般固定 一般这年轻代垃圾回收器,老年代垃圾回收器,如上图搭配着使用 1.8呢默认就是最后边那哥俩 jvm调优 一个就是增加吞吐量 一个就是减少STW的时间。 三色标记算法(理解根可达算法) 并发的可达性分析 有…

k8s集群部署nacos,采用的是 emptyDir 临时目录挂载

官方参考地址:https://nacos.io/zh-cn/docs/use-nacos-with-kubernetes.html 说明: 1、官网采用的nfs持久化部署 我将nacos持久化改成 emptyDir 临时目录挂载,同时又能满足自行调节nacos集群实例数。 2. emptyDir 临时目录挂载的nacos.ya…

【前端知识】React 基础巩固(四十三)——Effect Hook

React 基础巩固(四十三)——Effect Hook 一、Effect Hook的基本使用 Effect Hook 用来完成一些类似class中生命周期的功能。 在使用类组件时,不管是渲染、网路请求还是操作DOM,其逻辑和代码是杂糅在一起的。例如我们希望把计数器结果显示在标签上&…

【计算机视觉|人脸建模】3D人脸重建基础知识(入门)

本系列博文为深度学习/计算机视觉论文笔记,转载请注明出处 一、三维重建基础 三维重建(3D Reconstruction)是指根据单视图或者多视图的图像重建三维信息的过程。 1. 常见三维重建技术 人工几何模型仪器采集基于图像的建模描述基于几何建模…

opencv37-形态学操作-开运算(先腐蚀后膨胀)cv2.morphologyEx()-参数 op 设置为“cv2.MORPH_OPEN”

腐蚀操作和膨胀操作是形态学运算的基础,将腐蚀和膨胀操作进行组合,就可以实现开运算、闭运算(关运算)、形态学梯度(MorphologicalGradient)运算、礼帽运算(顶帽运算)、黑帽运算、击中…

使用AIGC工具提升安全工作效率

新钛云服已累计为您分享760篇技术干货 在日常工作中,安全人员可能会涉及各种各样的安全任务,包括但不限于: 开发某些安全工具的插件,满足自己特定的安全需求;自定义github搜索工具,快速查找所需的安全资料、…

杂谈项——关于我在bw上的见闻,以及个人对二次元游戏行业方面的前瞻

君兮_的个人主页 勤时当勉励 岁月不待人 C/C 游戏开发 Hello,米娜桑们,这里是君兮_,今天为大家带来一点不一样的,首先先光速叠一下甲: 在此说明博主并不是一个什么都知道的大佬,只是一个普通的老二次元以及期望以后能…

docker数据持久化

在Docker中若要想实现容器数据的持久化(所谓的数据持久化即数据不随着Container的结束而销毁),需要将数据从宿主机挂载到容器中。目前Docker提供了三种不同的方式将数据从宿主机挂载到容器中。 (1)Volumes:…

力扣 C++|一题多解之动态规划专题(1)

动态规划 Dynamic Programming 简写为 DP,是运筹学的一个分支,是求解决策过程最优化的过程。20世纪50年代初,美国数学家贝尔曼(R.Bellman)等人在研究多阶段决策过程的优化问题时,提出了著名的最优化原理&…

JavaScript原生将图片转成base64

1.写个html文件 <!-- 产品照片 --> <div class"mb-3"> <label for"cover" class"form-label">产品图片</label><inputtype"file"class"form-control"id"coverfile"/> </div>…

深度学习——LSTM解决分类问题

RNN基本介绍 概述 循环神经网络&#xff08;Recurrent Neural Network&#xff0c;RNN&#xff09;是一种深度学习模型&#xff0c;主要用于处理序列数据&#xff0c;如文本、语音、时间序列等具有时序关系的数据。 核心思想 RNN的关键思想是引入了循环结构&#xff0c;允许…

在线五子棋对战

目录 数据管理模块&#xff08;数据库设计&#xff09; 前端界面模块 业务处理模块 会话管理模块网络通信模块(session,cookie) 在线管理模块 房间管理模块 用户匹配模块 项目扩展 数据管理模块&#xff08;数据库设计&#xff09; 数据库中有可能存在很多张表&#xf…

Vue3文本省略(Ellipsis)

APIs 参数说明类型默认值必传maxWidth文本最大宽度number | string‘100%’falseline最大行数numberundefinedfalsetrigger展开的触发方式‘click’undefinedfalsetooltip是否启用文本提示框booleantruefalsetooltipMaxWidth提示框内容最大宽度&#xff0c;单位px&#xff0c;…

七大经典比较排序算法

1. 插入排序 (⭐️⭐️) &#x1f31f; 思想&#xff1a; 直接插入排序是一种简单的插入排序法&#xff0c;思想是是把待排序的数据按照下标从小到大&#xff0c;依次插入到一个已经排好的序列中&#xff0c;直至全部插入&#xff0c;得到一个新的有序序列。例如&#xff1a;…

计算机视觉与图形学-神经渲染专题-第一个基于NeRF的自动驾驶仿真平台

如今&#xff0c;自动驾驶汽车可以在普通情况下平稳行驶&#xff0c;人们普遍认识到&#xff0c;真实的传感器模拟将在通过模拟解决剩余的极端情况方面发挥关键作用。为此&#xff0c;我们提出了一种基于神经辐射场&#xff08;NeRF&#xff09;的自动驾驶模拟器。与现有作品相…

Python爬虫—破解JS加密的Cookie

前言 在进行网站数据爬取时&#xff0c;很多网站会使用JS加密来保护Cookie的安全性&#xff0c;而为了防止被网站反爬虫机制识别出来&#xff0c;我们通常需要使用代理IP来隐藏我们的真实IP地址。 本篇文章将介绍如何结合代理IP破解JS加密的Cookie&#xff0c;主要包括以下几个…

DDS中间件设计

OpenDDS、FastDDS数据分发服务中间件设计 软件架构 应用层DDS层RTPS层传输层 软件层次 FastDDS整体架构如下&#xff0c;这里可以看到DDS和RTPS的关系。另外缺少一部分IDL&#xff08;统一描述语言&#xff09;&#xff0c;其应该是Pub、Sub的反序列化、序列化工具。 在RT…