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

课程大纲

1、两种架构(Architecture)

1.1B/S(Browser/Server)

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

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

通信方式

        标准的 Web 协议:http/https。

举例

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

1.2C/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)

        电脑系统:LinuxWindowsMac……

        移动端系统:iOSandroidwindows……

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

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

        web不同浏览器:chromeFirefoxie……

        手机不同浏览器

        ……

附:课程完整思维导图

参考文章:

  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.mzph.cn/web/15312.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈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…