测试基础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 前序、中序以及…

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文件,其内容…

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.进程代码执行完&…

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

🌈个人主页: 鑫宝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资源…

Unity-Sprite Atlas+UGUI系统的运行原理

每日一句:别听世俗耳语,看自己的风景就好 目录 SA的原理: SA的优点: SA的缺点: DrawCall是什么? 批处理是什么? 我们先了解一下UGUI系统的运行原理吧! 提到图集优化&#xff0…

cocosCreator动态生成二维码

cocosCreator 版本:3.7.2 开发语言:typeScript 我们在游戏开发中,经常会生成一个专属于玩家个人的二维码,比如说推广、充值等功能。 接到这个任务,在网上找了下,还是有很多教程的。但是这些教程大部分都是用…

Ollydbg动态分析MessageBoxA输出hellow world

一、目的 找到main函数找到调用的MessageBoxA函数 测试源码 #include <iostream> #include <windows.h>int main() {MessageBoxA(NULL, "Hellow World", "Title", MB_OK);return 1; }二、快捷键 指令快捷键说明RestartCtrlF2重新开始调试S…

buu[HCTF 2018]WarmUp(代码审计)

buu[HCTF 2018]WarmUp&#xff08;代码审计&#xff09; 题目 访问source.php <?phphighlight_file(__FILE__);class emmm{public static function checkFile(&$page){$whitelist ["source">"source.php","hint">"hint.php…

电脑键盘如何练习盲打?

电脑键盘如何练习盲打&#xff1f;盲打很简单&#xff0c;跟着我做&#xff0c;今天教会你。 请看【图1】&#xff1a; 【图1】中&#xff0c;红色方框就是8个基准键位&#xff0c;打字时我们左右手的8个手指就是放在这8个基准键位上&#xff0c;F键和J键上各有一个小突起&…

Spring6基础笔记

Spring6 Log4j2 1、概述 1.1、Spring是什么&#xff1f; Spring 是一款主流的 Java EE 轻量级开源框架 &#xff0c;Spring 由“Spring 之父”Rod Johnson 提出并创立&#xff0c;其目的是用于简化 Java 企业级应用的开发难度和开发周期。Spring的用途不仅限于服务器端的开发…