测试基础05:软件测试的分类

课程大纲

1、两种架构(Architecture)

1.1、B/S(Browser/Server)

        浏览器服务器架构(大体3步):用户通过浏览器向服务器发出请求,服务器处理请求,将结果通过网络返回到用户浏览器展示。

        服务器内部,会有应用层处理请求,操作数据库(增删改查),返回用户请求的数据。

通信方式

        标准的 Web 协议:http/https。

举例

        各种网站、管理系统、云平台、办公协作平台(蓝湖、即时设计……)。

1.2、C/S(Client/Server)

        客户端服务器架构:用户在电脑手机等设备上安装客户端,通过客户端将请求发送给服务器端进行处理,服务器端进行计算和处理后将结果返回给客户端。

        服务器内部,会有应用层处理请求,操作数据库(增删改查),返回用户请求的数据。

通信方式

        socket协议或其他协议。

举例

        电脑:QQ、微信、大型游戏。

        手机:各种app。

2、软件测试工程师大方向

1.业务测试:

        web端、移动端(app、小程序、h5)

2.测试开发:

        服务端测试开发、UI自动化测试、接口自动化测试、性能测试、渗透测试(安全测试)……

        大数据测试、AI算法测试、自动驾驶……

3、测试类型

3.1、按开发阶段分

1.单元测试

        代码模块(程序的最小单位)的测试,一般由开发完成。

        从程序内部结构出发设计用例,验证是否实现设计说明书中的功能、性能、接口、约束条件等。

        各模块可平行独立进行。

2.集成测试

        模块组装到一起后,测试模块之间、子系统之间是否互相影响功能,即测试系统内部接口。

        (再想具体了解,就百度吧!)

3.系统测试

        整个系统开发、集成完毕后进行测试,也就是常见的功能测试阶段。

4.验收测试

        交付用户前,与客户一起进行,向用户演示、验证软件与需求一致(功能、性能、安全性等)。

3.2、按是否运行程序分

1.静态测试(static test)

        不运行程序,不对软件进行输入输出对比预期的验证,只静态地检查程序代码、界面或文档中可能存在的错误。

        常见方法:

        a.文档测试,验证用户手册和需求说明是否符合用户的实际需求。

        b.代码测试,验证代码是否符合相应的标准和规范。

        c.界面测试,验证软件的实际界面与需求中的说明是否相符。

2.动态测试(dynamic test)

        运行程序,输入数据后查看输出数据是否与预期一致。

        常见方法:功能测试、性能测试……

3.3、按是否看代码分

1.黑盒测试

        不看代码,直接根据输入输出判断软件是否有错误。

        测试方法:功能测试、UI测试(界面测试)、兼容性测试……

2.白盒测试

        又称结构测试,透明盒测试、逻辑驱动测试或基于代码的测试。

        测试方法:语句覆盖、判定覆盖、路径覆盖、条件覆盖、判定条件覆盖、条件组合覆盖。

        注意:白盒测试可能静态或动态,黑盒也是; 反之亦然。

        (想看更多,去百度吧。)

3.灰盒测试

        介于白盒测试与黑盒测试之间,多用于集成测试阶段,不仅关注输出、输入的正确性,同时也关注程序内部的情况。

3.4、按是否手工执行分

1.手工测试

        人工执行测试用例来识别软件中的错误、问题和缺陷。

2.自动化测试

        编写脚本自动执行测试用例来保证产品主体功能正确和完整。

3.5、其他

1.文档测试(Documentation Testing)

        主要指对软件文档进行审核、验证,确保文档的质量和准确性(完整性、正确性、一致性、易理解性、易浏览性)。

        找了一篇关于文档测试的文章:https://blog.csdn.net/2301_76387166/article/details/134643883

2.冒烟测试(Smoke testing)

        又叫“版本验证测试”、“高压线测试”。

        来源:硬件开发完成后,通电看机器是否冒烟,初步验证是否有问题。

        开发与测试共同进行。

        新版本开发完成后 ,验证基本/核心的功能和流程能否走通、是否有致命性和阻塞流程bug。通过冒烟,则正式转测,否则打回到开发流程。

        (可以通过自动化测试提效。)

3.回归测试(Regression test)

        重复执行以前(版本)的全部或部分的相同测试用例,验证软件修改后未影响原有功能。

        回归策略有2种:

        ① 完全回归,运行所有测试用例。最保险、成本最高。用例库不断变大,成本难以控制。

        ② 部分回归,运行最重要的、关键的、最频繁使用的和可疑的测试用例。有改动的模块或接口,功能未改动部分的测试用例。回归效率更高。

4.交叉测试

        测试人员相互交换测试的模块。

        优点:防止漏测;避免思维固化,保持测试新鲜感。

        注意项:用例管理;明确任务分配;测试人员熟悉系统;测试结果留存,体现在用例中。

5.随机测试(Ad-hoc testing)

        根据测试者的经验对软件进行功能和性能抽查。

        是执行测试用例的重要补充手段,是保证测试覆盖完整性的有效方式和过程。

        对被测软件的一些重要功能进行复测,对于软件更新和新增加的功能要重点测试。重点对一些特殊点情况点、特殊的使用环境、并发性、进行检查。尤其对以前测试发现的重大Bug,进行再次测试。

        可以结合回归测试(Regressive testing)一起进行。

        随机测试的文章:https://blog.csdn.net/xiao1542/article/details/132718631

6.探索性测试(Exploratory Testing)

        基于敏捷模型的软件测试风格,不是一种具体的软件测试技术。

        找了一篇文章,大家自由探索:https://www.cnblogs.com/klb561/p/11997890.html

7.安全测试(Security Testing)

        验证系统安全性。3种方法:

        ① 代码漏扫,扫描代码安全漏洞;

        ② 渗透测试,使用自动化工具或者人工的方法模拟黑客的输入,对应用系统进行攻击性测试,从中找出运行时刻所存在的安全漏洞。真实有效,一般找出来的问题都是正确的,也是较为严重的。

        一个致命的缺点:模拟的测试数据只能到达有限的测试点,覆盖率很低。

        ③ 程序数据扫描。

        一篇文章:https://blog.csdn.net/hlsxjh/article/details/131313986

8.alpha测试(开发者内测)

        非正式验收测试,类似于用户验收测试,是另一种质量控制。

        软件开发完成初期到测试完成之间均可。

        由熟悉产品预期功能的产品开发人员和工程师执行。

        使用白盒测试和黑盒测试技术来执行。

        通过发现和修复在开发初始阶段未解决的故障来微调软件产品,尤其注重界面和特色。

9.beta测试(用户内测)

        软件、产品或服务在正式发布之前进行的最后一轮测试。

        内部测试和产品发布之间进行。

        目标受众抽样试用产品。

        发现和修复潜在的问题和Bug。

        缩小产品与用户需求之间的差距:获取用户反馈,从而改进和优化产品。

10.兼容性测试(Compatibility testing)

        电脑系统:Linux、Windows、Mac……

        移动端系统:iOS、android、windows……

        手机品牌、型号:按照市场份额选购测试机、三方测试平台。

        分辨率:按照市场份额测试。

        web不同浏览器:chrome、Firefox、ie……

        手机不同浏览器

        ……

附:课程完整思维导图

参考文章:

  1. 《软件测试的定义及如何进行分类》https://m.elecfans.com/article/998116.html
  2. 《软件测试的定义以及分类》https://www.cnblogs.com/liyongmei/p/10633744.html
  3. 《白盒测试基本方法》https://testerhome.com/topics/14755

B站:【土小帽软件测试(行入门到高级)-哔哩哔哩】 https://b23.tv/1c2U5fN
测试资源(百度网盘):https://pan.baidu.com/s/1Ypm8-VKuPurLtu0bCJovnA?pwd=5eji 提取码: 5eji
【腾讯文档】(流程图)https://docs.qq.com/s/FQZsGpzsiYH9wj26JvSaFW

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

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

相关文章

使用Webcam实现摄像头的开启和关闭,并保存和复制图片

实现思路 0,将webcam的jar文件传入项目中 1,显示摄像头的地方:创建一个画板,在画板上添加开启和关闭按钮 2,设置开启和关闭功能:创建一个类实现动作监听器,进而实现监听动作按钮 3&#xff…

【数据结构与算法篇】二叉树链式结构及实现

【数据结构与算法篇】二叉树链式结构及实现 🥕个人主页:开敲🍉 🔥所属专栏:每日刷题🍍 🌼文章目录🌼 4. 二叉树链式结构的实现 4.1 前置说明 4.2 二叉树的遍历 4.2.1 前序、中序以及…

通过ssh在本地打开远程服务器的网页

用途 在远程服务器使用jupyter notebook或者tensorboard等时,在本地打开服务器端的网页的方式有很多比如可以使用MobaXterm工具等,此方法可参考https://blog.csdn.net/cc__cc__/article/details/108060618?spm1001.2014.3001.5502。 若直接使用ssh则可…

C++感受11-Hello Object 成员版

当一个C程序员在设计类型时,他在想什么? 这一类型的对象,需要拥有哪些属性数据?这一类型的对象,它将拥有哪些功能?这一类型的对象,它的各个属性和功能之间,有哪些关联关系&#xff1…

OceanBase的存储架构与传统LSM-Tree架构的异同|OceanBase数据转储合并技术解读(二)

前篇博文将OceanBase的存储架构巧妙地与自然界中的“水生态”进行了类比,今日我们转变视角,聚焦在与拥有相同LSM-Tree架构的其他产品的比较,深入探讨OceanBase相较于它们所展现出的独特性能。 众所周知,OceanBase数据库的存储引擎…

element-ui 前端ui框架用法开发指南(2024-05-22)

Element,一套为开发者、设计师和产品经理准备的基于 Vue 2.0 的桌面端组件库 1、npm安装 // npm安装:npm install element-ui --save 能更好地和 webpack 打包工具配合使用 2、cdn在线引入 访问最新版本的资源地址 - element-uiThe CDN for element-u…

RedHat9 | DNS剖析-配置主DNS服务器实例

一、实验环境 1、BIND软件包介绍 BIND软件是一款开放源码的DNS服务器软件,由美国加州大学Berkeley分校开发和维护,全称为Berkeley Internet Name Domain。该软件在DNS(域名系统)领域具有重要地位,是目前世界上使用最…

使用OpenCV dnn c++加载YOLOv8生成的onnx文件进行目标检测

在网上下载了60多幅包含西瓜和冬瓜的图像组成melon数据集,使用 LabelMe 工具进行标注,然后使用 labelme2yolov8 脚本将json文件转换成YOLOv8支持的.txt文件,并自动生成YOLOv8支持的目录结构,包括melon.yaml文件,其内容…

信息系统管理工程师问答题

信息系统管理工程师问答题 系统管理安全两方面 安全测试 入侵检测系统的功能 用户标识与验证常用的3种方法 (1) 要求用户输入一些保密信息,例如用户名称和密码; (2) 采用物理识别设备,例如访问卡、钥匙或令牌; (3) 采用生物统计学…

Python怎样定位并删除Sql语句中不确定的查询条件

1.问题场景描述: 在sql语句中经常会有查询条件是:查找多个订单签订日期范围的数据,但具体的日期范围是不确定,我们如何来查找定位 例如:查询条件语句的部分如下图: 目标是: 1)定位字符串:t_contract_order.sign_date 2)最终得到结果: 解决问题思路: 1)定位要找的字符串起始位置…

【学习心得】PyTorch的知识要点复习(持续更新)

PyTorch知识要点复习,目的是为了巩固PyTorch基础、快速回顾、深化理解PyTorch框架。这篇文章会持续更新。 一、本文的一些说明 知识点梳理:我将PyTorch的核心概念和高级技巧进行了系统化的整理,从基础的张量操作到复杂的模型构建与训练。这样…

【Linux】进程终止与进程等待

目录 进程终止 errno exit和_exit 进程等待 wait和waitpid 宏:WIFEXITED 非阻塞等待 进程终止 下面要谈的一个话题就是进程终止,就是说一个进程退出了,可能有三种情况 1.进程代码执行完,结果是正确的 2.进程代码执行完&…

【九十二】【算法分析与设计】875. 爱吃香蕉的珂珂,410. 分割数组的最大值,机器人跳跃问题,二分答案法

875. 爱吃香蕉的珂珂 - 力扣(LeetCode) 珂珂喜欢吃香蕉。这里有 n 堆香蕉,第 i 堆中有 piles[i] 根香蕉。警卫已经离开了,将在 h 小时后回来。 珂珂可以决定她吃香蕉的速度 k (单位:根/小时)。每…

【活动】开源与闭源大模型:探索未来趋势的双轨道路

🌈个人主页: 鑫宝Code 🔥热门专栏: 闲话杂谈| 炫酷HTML | JavaScript基础 ​💫个人格言: "如无必要,勿增实体" 文章目录 开源与闭源大模型:探索未来趋势的双轨道路引言一、开源大模型&#…

翻译《The Old New Thing》- The importance of the FORMAT_MESSAGE_IGNORE_INSERTS flag

The importance of the FORMAT_MESSAGE_IGNORE_INSERTS flag - The Old New Thing (microsoft.com)https://devblogs.microsoft.com/oldnewthing/20071128-00/?p24353 Raymond Chen 2007年11月28日 FORMAT_MESSAGE_IGNORE_INSERTS 标志的重要性 简要 文章讨论了使用FormatMes…

评估企业的业务是否存在高风险的六个步骤

风险的幽灵使得组织别无选择,只能改善各种网络风险的总体管理。以下是一个基于信息安全论坛的IRAM2方法论的分步过程,网络安全和风险从业者可以利用它来评估和管理信息风险。 第1步:范围界定练习 范围界定练习的目标是提供一个以业务为中心…

基于springboot+vue的招聘信息管理系统

开发语言:Java框架:springbootJDK版本:JDK1.8服务器:tomcat7数据库:mysql 5.7(一定要5.7版本)数据库工具:Navicat11开发软件:eclipse/myeclipse/ideaMaven包:…

K8s的常用命令以及yaml文件的创建

目录 一、声明式管理方法:YAML文件 1、yaml文件简介 2、yaml和json的主要区别: 3、YAML的语法格式 4、yaml文件组成部分 ①控制器定义 5、查看api资源版本标签 6、编写nginx-deployment.yaml资源配置清单 6.1创建资源对象 6.2查看创建的pod资源…

使用python将一段文本写入一个txt文件中且先格式化文件名

有一段文本内容&#xff0c;有“标题”和“内容”组成。 任务&#xff1a;要将这段文本&#xff0c;存放到一个txt文件中&#xff0c;文件名为当天的日期加上“标题”内容。因为“标题”内可能有/<>之类的&#xff0c;还需要格式化一下。 已经将上述功能都写成了函数&a…

安卓手机APP开发__近距离无线通信(NFC)概述

安卓手机&#xff21;&#xff30;&#xff30;开发&#xff3f;&#xff3f;近距离无线通信(NFC)概述 概述 近距离无线通信 (NFC) 是一组近距离无线技术&#xff0c;距离通常不超过 4 厘米才能 发起连接。通过 NFC&#xff0c;您可以在 NFC 标签和 Android 设备之间&#xf…