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

news2025/3/17 11:26:12

课程大纲

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.coloradmin.cn/o/1694737.html

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

相关文章

【论文阅读】AID(ICCV‘23)

paper:https://arxiv.org/abs/2310.05666 code:https://github.com/YilongLv/AID Anchor-Intermediate Detector: Decoupling and Coupling Bounding Boxes for Accurate Object Detection

F.费用报销【蓝桥杯】/01背包

费用报销 01背包 思路&#xff1a;f[i][j]表示前i个票据在容量为j的背包中能占的最大值。 #include<iostream> #include<algorithm> using namespace std; int day[13]{0,31,28,31,30,31,30,31,31,30,31,30,31}; int dp[1005][5005]; int s[13]; int last[1005];…

Dockerfile使用

1.Dockerfile是什么 官网地址 https://docs.docker.com/reference/dockerfile/概念 是什么 Dockerfile 是用于构建 Docker 镜像的文本文件&#xff0c;它包含一系列的指令&#xff08;instructions&#xff09;和参数&#xff0c;用于描述如何构建和配置镜像。 Dockerfile 是…

aws sqs基础概念和队列参数解析

分布式队列的组成部分 生产者&#xff0c;向队列发送消息的组件消费者&#xff0c;接受队列消息队列&#xff0c;多个sqs服务器存储冗余存储消息 sqs自动删除超过最大留存时间的消息&#xff08;默认4天&#xff09;&#xff0c;可以通过SetQueueAttributes调整为&#xff08…

Java语言-面向对象程序设计-自定义Date类

在Java中&#xff0c;不建议直接自定义Date类&#xff0c;因为java.util.Date和java.util.Calendar类已经提供了处理日期和时间的基本功能&#xff0c;可以使用SimpleDateFormat类格式化日期&#xff08;较常用的方式&#xff09;等。 这里将自定义封装一个Date类&#xff0c;用…

Spring框架学习笔记(五):JdbcTemplate 和 声明式事务

基本介绍&#xff1a;通过 Spring 框架可以配置数据源&#xff0c;从而完成对数据表的操作。JdbcTemplate 是 Spring 提供的访问数据库的技术。将 JDBC 的常用操作封装为模板方法 1 JdbcTemplate 使用前需进行如下配置 1.1 在maven项目的pom文件加入以下依赖 <dependencies…

通过Wirtinger流进行相位恢复:理论与算法

文章目录 1. 简介2. 算法描述2.1 初始化(Initialization)2.2 迭代更新(Iterative Updates)2.3 学习率调整&#xff08;Learning Rate Adjustment&#xff09; 3. 代码实现3.1 一维信号测试 &#xff08;Gaussian model&#xff09;3.2 一维信号测试 &#xff08;Coded diffract…

牛皮!亚信安全《2024国家级攻防演练100+必修高危漏洞合集》.pdf

上次分享了2023攻防演练高危漏洞&#xff0c;获得了很多粉丝的好评。 今天再分享一份由亚信安全服务团队结合自身的“外部攻击面管理”服务能力和专业的红队能力&#xff0c;最新发布的《2024攻防演练必修高危漏洞合集》&#xff0c;一共108页&#xff0c;非常详细&#xff0c…

存储+调优:存储-memcached

存储调优&#xff1a;存储-memcached 什么是memcached? 高性能的分布式内存缓存服务器。通过缓存数据库的查询结果&#xff0c;减少数据库访问次数&#xff0c;以提高动态Web应用的速度、提高可扩展性。 在memcached中存什么&#xff1f; 尽快被保存 访问频率高 1.数据保…

X-SCAN:Rust从零实现一个命令行端口扫描工具

0. 成品预览 本文将基于Rust构建一个常见的网络工具&#xff0c;端口扫描器。 按照惯例&#xff0c;还是和之前实现的文本编辑器一样&#xff0c;我给这个工具起名为X-SCAN,它的功能很简单&#xff0c;通过命令行参数的方式对指定IP进行扫描&#xff0c;扫描结束之后返回该IP…

MySQL--数据库--基础知识

目录 1、 数据库作用 2、sql认识 1、DDL 整数类型 浮点 主键 约束: 2、DML 插入数据 修改数据 删除数据 3、DQL-基础查询 字符函数&#xff1a; 逻辑处理&#xff1a; 数学函数&#xff1a; 日期函数&#xff1a; 分组函数&#xff1a; 条件查询: 模糊查询 LIK…

Pycharm在下载安装第三方库时速度慢或超时问题 / 切换国内镜像地址

pycharm下载第三方库速度极慢&#xff0c;搜索了一下&#xff0c;发现方法非常乱&#xff0c;稍作整理。这个问题一般都会出现&#xff0c;在我们开发中遇到的常见问题&#xff0c;根据以下解决方法&#xff0c;基本可以解决&#xff0c;但是不能100%保证 Installing packages …

算法金 | Dask,一个超强的 python 库

本文来源公众号“算法金”&#xff0c;仅用于学术分享&#xff0c;侵权删&#xff0c;干货满满。 原文链接&#xff1a;Dask&#xff0c;一个超强的 python 库 1 Dask 概览 在数据科学和大数据处理的领域&#xff0c;高效处理海量数据一直是一项挑战。 为了应对这一挑战&am…

基于open3d加载kitti数据集bin文件

前言 在自动驾驶领域&#xff0c;Kitti数据集是一个非常流行的点云数据集&#xff0c;广泛用于3D目标检测、跟踪和其他相关研究。Open3D是一个强大的开源库&#xff0c;专门用于处理和可视化三维数据。本文将介绍如何使用Open3D来加载和可视化Kitti数据集中的.bin文件。 准备…

【Qt 学习笔记】Qt窗口 | Qt窗口介绍 | QMainwindow类及各组件介绍

博客主页&#xff1a;Duck Bro 博客主页系列专栏&#xff1a;Qt 专栏关注博主&#xff0c;后期持续更新系列文章如果有错误感谢请大家批评指出&#xff0c;及时修改感谢大家点赞&#x1f44d;收藏⭐评论✍ Qt窗口 | Qt窗口介绍 | QMainwindow类及各组件介绍 文章编号&#xff…

第14章 数据分析案例——2012联邦选举委员会数据库

美国联邦选举委员会发布了有关政治竞选赞助方面的数据。其中包括赞助者的姓名、职业、雇主、地址以及出资额等信息。我们对2012年美国总统大选的数据集比较感兴趣。&#xff08;http://www.fec.gov/disclosurep/PDownload.do&#xff09;。我在2012年6月下载的数据集是一个150M…

【JavaEE进阶】——一万字带你深刻理解Spring IoCDI

目录 &#x1f6a9;Spring是什么 &#x1f388;什么是容器&#xff1f; &#x1f388;什么是 IoC&#xff1f; &#x1f4dd;传统开发思路 &#x1f4dd;IOC思想 &#x1f4dd;IoC 优势 &#x1f388;DI 介绍 &#x1f6a9;IoC 详解 &#x1f388;Bean的存储 &#x…

Python 脚本化 Git 操作:简单、高效、无压力

前言 如何判定此次测试是否达标&#xff0c;代码覆盖率是衡量的标准之一。前段时间&#xff0c;利用fastapi框架重写了覆盖率统计服务&#xff0c;核心其实就是先获取全量代码覆盖率&#xff0c;然后通过diff操作统计增量代码覆盖率&#xff0c;当然要使用diff操作&#xff0c…

力扣HOT100 - 21. 合并两个有序链表

解题思路&#xff1a; class Solution {public ListNode mergeTwoLists(ListNode list1, ListNode list2) {ListNode dum new ListNode(0), cur dum;while (list1 ! null && list2 ! null) {if (list1.val < list2.val) {cur.next list1;list1 list1.next;} els…

嵌入式之音频基础知识

声音特性 1、响度&#xff1a;人主观上感觉声音的大小&#xff08;俗称音量&#xff09;&#xff0c;由“振幅”和人离声源的距离决定&#xff0c;振幅越大响度越大&#xff0c;人和声源的距离越小&#xff0c;响度越大&#xff1b; 2、音调&#xff1a;声音的高低&#xff0…