当前位置: 首页 > news >正文

2024年软件测试面试必看系列,看完去面试你会感谢我的!!

朋友圈点赞的测试用例

功能测试
1点赞后是否显示结果
2.点赞后是否可以取消;
3.点赞取消后是否可以重复点赞;
4.共同好友点赞后,是否有消息提醒;
5.非共同好友点赞后,是否有消息提醒;
6.点击点赞人昵称,是否可以跳转到他/她的主页;
7.自己能否给自己点赞;
8.屏蔽了该用户,共同好友点赞是否提示;
9.点赞人有备注时,是否展示备注昵称;
10.点赞后删除好友,是否继续展示其点赞;

UI界面测试
1.界面是否简介美观;
⒉点赞后动态特效是否正常显示;
3.朋友圈界面图片是否正常显示;
4.朋友圈界面文字是否正常显示;

性能测试
1.点赞人数过多是否能正常显示;
2.同一时间点赞人数过多是否正常收到提示;、

安全测试
1.发送部分可见的朋友圈,其余人不可见;
⒉.发送部分可见的朋友圈,点赞后共同好友不可见;

弱网测试
1.弱网环境下,点赞是否成功;
2.弱网环境下,点赞的时间;

易用性测试
发送部分可见,是否可以沿用上次的名单;

登录模块

界面UI测试
1.布局是否合理,输入框,按钮对齐方式
2.输入框和按钮的高度,长度是否符合要求
3.界面的设计风格是否与Ul的设计风格统一
4.界面的文字简洁易懂,没有错别字

 自动化测试相关教程推荐:

2023最新自动化测试自学教程新手小白26天入门最详细教程,目前已有300多人通过学习这套教程入职大厂!!_哔哩哔哩_bilibili

2023最新合集Python自动化测试开发框架【全栈/实战/教程】合集精华,学完年薪40W+_哔哩哔哩_bilibili

测试开发相关教程推荐

2023全网最牛,字节测试开发大佬现场教学,从零开始教你成为年薪百万的测试开发工程师_哔哩哔哩_bilibili

postman/jmeter/fiddler测试工具类教程推荐

讲的最详细JMeter接口测试/接口自动化测试项目实战合集教程,学jmeter接口测试一套教程就够了!!_哔哩哔哩_bilibili

2023自学fiddler抓包,请一定要看完【如何1天学会fiddler抓包】的全网最详细视频教程!!_哔哩哔哩_bilibili

2023全网封神,B站讲的最详细的Postman接口测试实战教学,小白都能学会_哔哩哔哩_bilibili

功能测试
1.用户名,密码输入为空,点击查看提示信息
2.输入正确的用户名和密码,点击验证登录成功
3.登录成功后,验证是否跳转到正确的页面
4.用户名,密码如果过长,过短,是否有提示
5.用户名和密码前后有空格的处理
6.用户名和密码中有特殊字符或其他非英文的情况
7.记住用户名的功能
8.登录失败后,不能记住密码的功能
9.密码是否加密显示
10.登录页面的注册,忘记密码,登出等用另一账号登录链接是否正确
11.输入密码时,大写键盘开启是是否有提示信息
12.输入错误的用户名和密码,查看提示信息
性能测试
1.打开登录页面,需要几秒
2.输入正确的用户名和密码,登录成功不超过5s
兼容性测试
1.主流浏览器是否显示成功(IE8,9,10,11,Firefox,Chrome,Safafi)
2.不同的平台是否能显示成功(Mac,Windows)
3.移动设备上是否显示成功(Android,lOS)4.不同的分辨率
可用性测试
1.是否支持全键盘操作,是否有快捷键
2.输入用户名和密码,按回车,是否可以登录
3.输入框能否可以Tab键切换
安全测试
1.登录成功后生成的Cookie,是否是Http only
2.用户名和密码是否通过加密的方式发给Web服务器
3.用户名和密码的验证,应该是在服务器端,而不是在Javascript前端
4.用户名和密码的输入框,应该屏蔽SQL注入
5.用户名和密码的输入框,应该禁止输入脚本
6.错误登录的次数限制
7.考虑是否支持多用户在同—机器上登录
8.考虑一用户在多台机器上登录

购物车的测试用例

1.功能测试

购物车页面的所有连接是否正常。
从商品信息页面添加的商品能显示在购物车中。
若未登录,点击购物车中的商品直接进行结算,则提示用户输入用户名和密码,或者提示用户进行注册。
若没有选择任何商品,点击结算,则提示用户“请添加要结算的商品”。
勾选商品后,已选商品的总价(和优惠满减活动)会显示。
勾选商品,点击结算按钮后,进去确认订单信息页面。
购物车页面中,可以对添加商品信息做信息的修改,并自动保存成功。
可以在购物车中重新修改商品规格。
购物车能添加的商品种类是有数量上限的。
结算的时候商品可以全选,选择底部的全选按钮。
可以在购物车页面对宝贝进行管理。

2.界面测试

打开淘宝购物车页面后,页面的布局是否合理,是否完整。
不同卖家的商品在不同的table区域显示,区分明显。
页面的功能按钮可以正常显示。
商品的最下方显示失效宝贝。
页面的最低端显示“你可能喜欢”
向下滑动页面,在购物车顶端展示“购物车”。
购物车中如果存在有商品降价、库存不足、限购件数等,在商品详情的下面,会有对应的字体展示。

3.性能测试

打开购物车时间是否在已定的用户可以棘手的时间范围内。
编辑购物车:删除、添加商品需要的时间。
在购物车页面选择需要购买的商品进行结算的时候,结算金额可不可以实时显示。
清空失效商品需要的时间。
打开购物车页面要多久
快捷键功能知否支持

4.兼容性测试

iOS:不同型号,不同的iOS系统。
安卓:不同品牌,不同型号,不同的安卓系统。
不同浏览器上的测试功能是否正常

5.网络测试

3G、4G、WiFi网络环境下应用的各功能可正常运行。
网络异常时,数据交换是否会有提醒。
中途断网再很快连网,数据是否可以自动恢复,正常加载。
只允许内网访问的APP,在连接到外网时是否会有提醒。

6.易用性测试

是否能一件批量付款
是否有全选、全不选的功能
是否能删除商品
能否把购物车了的商品移入收藏夹
是否有商品件数的总计
是否有商品规格、购买数量的显示
是否有商品名称的显示
是否有店铺活动、满减优惠、降价显示
每个商品是否有店铺名称的提示
点击商品店铺能否进入店铺查看商品
点击商品名称能否进入商品详情页
是否有领券的文字提示
是否会显示领取优惠券之后的优惠价格
失效的商品是否还会出现在购物车的历史记录中
每件商品是否有对应商品图片的展示
是否有凑单提示
在购物车页面能否再次选择商品的种类
划到购物车页面的底部,有没有推荐商品展示
不支持发货的地区是否会有提示,商品前面的全选、全不选多选框是否会变灰色
当没有全选、全不选的多选框,没有选择任何商品时,点击 结算 按钮是否会跳转页面
是否有删除商品、批量删除的功能
是否有寻找相似商品的功能

7.异常测试

没有内存时,APP是否能够正常相应。
横竖屏切换展示。
APP运行时网络中断。
反复操作某一个功能,不断点击和刷新,是否出现闪退。
APP运行时接入电话、短信、社交软件的信息提示时,是否能够正常运行。

Windows对文件的复制粘帖功能的测试用例

界面测试

文件是否完整、没有错别字。
图标是否简洁明了,是否能正常显示。

功能测试
文件是否能用Ctrl+C和Ctrl+V复制粘贴。
文件是否能用右键点击拖动的方式复制粘贴。
文件是否能从一个文件夹复制到另一个文件夹。
文件是否能从一个硬盘复制粘贴到另一个硬盘。
文件是否能复制粘贴到U盘中。
文件是否能复制粘贴到聊天对话框。
不同类型的文件(txt,pdf,doc等)是否能成功复制。
复制粘贴后的文件内容是否有所改变。
目标地点有重名文件是否还能够复制粘贴过去。
复制粘贴的过程中是否可以执行文件。

性能测试
复制粘贴的需要多长时间。
复制粘贴这个过程所占用CPU资源多大。
是否能同时复制粘贴多个文件。

兼容性测试
不同版本的Windows是否都支持这个功能。

安全性测试
复制粘贴过程中是否会造成文件内容的丢失。
复制粘贴是否会直接覆盖掉目标文件中具有不同内容的同名文件。
 

支付功能测试用例

付功能测试非常重要,因为支付是涉及到用户资金安全的重要功能,如果支付功能存在问题,可能回导致用户资金或平台损失或者其他安全问题。同时,支付功能也是一个网站或应用的核心功能之一,如果支付功能存在问题,可能会影响用户体验和信任度,甚至会影响到业务的正常运营。因此,进行支付功能测试是非常重要的。

首先,我们列举一下支付功能测试点有哪些。

1、支付流程测试:测试整个支付流程是否正常,包括创建订单、调用支付接口、支付成功后的回调通知等。

2、支付方式测试:测试不同支付方式的支付流程是否正常,包括支付宝、微信支付、银联支付等。

3、支付金额测试:测试不同金额的支付是否正常,包括小额支付、大额支付、退款等。

4、支付安全测试:测试支付过程中是否存在安全漏洞,如支付信息泄露、支付接口被攻击等。

5、支付异常测试:测试支付过程中可能出现的异常情况,如网络异常、支付超时、支付失败等。

6、支付性能测试:测试支付系统的性能,包括并发处理能力、响应时间等。

7、支付兼容性测试:测试支付系统在不同浏览器、操作系统、设备上的兼容性。

8、回调功能测试:测试支付功能的回调功能,确保回调功能正常工作。
 

其次,我们一一列出支付测试用例,这里按照支付方式、支付手段和支付金额划分。

1. 支付方式:

余额(零钱)支付:

正常支付:使用余额支付成功。

余额不足:余额不足时,支付失败并提示用户充值。

余额充足:余额充足时,支付成功。

退款:退款成功并及时到账。

储蓄卡支付:

正常支付:使用储蓄卡支付成功。

支付密码错误:支付密码错误时,支付失败并提示用户重新输入。

银行卡信息错误:银行卡信息错误时,支付失败并提示用户检查银行卡信息。

退款:退款成功并及时到账。

第三方支付(微信、支付宝、京东、百度等):

正常支付:使用第三方支付成功。

支付密码错误:支付密码错误时,支付失败并提示用户重新输入。

第三方支付账户余额不足:第三方支付账户余额不足时,支付失败并提示用户充值。

退款:退款成功并及时到账。

信用卡支付:

正常支付:使用信用卡支付成功。

信用卡额度不足:信用卡额度不足时,支付失败并提示用户联系银行调整额度。

信用卡信息错误:信用卡信息错误时,支付失败并提示用户检查信用卡信息。

退款:退款成功并及时到账。

网银支付:

正常支付:使用网银支付成功。

网银密码错误:网银密码错误时,支付失败并提示用户重新输入。

银行卡信息错误:银行卡信息错误时,支付失败并提示用户检查银行卡信息。

退款:退款成功并及时到账。

2. 支付手段:

免密支付:

正常支付:使用免密支付成功。

免密支付关闭:免密支付关闭时,支付失败并提示用户重新开启免密支付。

退款:退款成功并及时到账。

指纹支付:

正常支付:使用指纹支付成功。

指纹识别失败:指纹识别失败时,支付失败并提示用户重新输入指纹。

退款:退款成功并及时到账。

二维码支付:

正常支付:使用二维码支付成功。

二维码过期:二维码过期时,支付失败并提示用户重新生成二维码。

退款:退款成功并及时到账。

银行卡支付:

正常支付:使用银行卡支付成功。

银行卡信息错误:银行卡信息错误时,支付失败并提示用户检查银行卡信息。

退款:退款成功并及时到账。

密码支付:

正常支付:使用密码支付成功。

支付密码错误:支付密码错误时,支付失败并提示用户重新输入。

退款:退款成功并及时到账。

3. 支付金额:

空值验证:

支付金额为空:支付金额为空时,支付失败并提示用户输入支付金额。

余额不足:

余额不足:余额不足时,支付失败并提示用户充值。

最大金额:

支付金额超过最大限制:支付金额超过最大限制时,支付失败并提示用户输入正确的支付金额。

余额充足,支付成功:

余额充足:余额充足时,支付成功。

最小金额:

支付金额小于最小限制:支付金额小于最小限制时,支付失败并提示用户输入正确的支付金额。

以上是一些可能的支付测试用例,具体测试用例的设计应该根据实际情况进行调整和补充。

 

 总结:

 光学理论是没用的,要学会跟着一起敲,要动手实操,才能将自己的所学运用到实际当中去,这时候可以搞点实战案例来学习。

如果对你有帮助的话,点个赞收个藏,给作者一个鼓励。也方便你下次能够快速查找。

如有不懂还要咨询下方小卡片,博主也希望和志同道合的测试人员一起学习进步

在适当的年龄,选择适当的岗位,尽量去发挥好自己的优势。

我的自动化测试开发之路,一路走来都离不每个阶段的计划,因为自己喜欢规划和总结,

测试开发视频教程、学习笔记领取传送门!!

相关文章:

2024年软件测试面试必看系列,看完去面试你会感谢我的!!

朋友圈点赞的测试用例 功能测试 1点赞后是否显示结果 2.点赞后是否可以取消; 3.点赞取消后是否可以重复点赞; 4.共同好友点赞后,是否有消息提醒; 5.非共同好友点赞后,是否有消息提醒; 6.点击点赞人昵称,是否可以跳转到他/她的主页; 7.自己能…...

01ctfer 文件上传

01ctfer 文件上传 启动靶场 访问该地址 代码审计 <?php header("Content-Type:text/html; charsetutf-8"); // 每5分钟会清除一次目录下上传的文件 require_once(pclzip.lib.php);if(!$_FILES){echo <!DOCTYPE html> <html lang"zh">…...

2.2 调用星火大模型的API

调用星火大模型的API 1 申请API调用权限&#xff1a;2 调用原生星火 API3 统一API调用方式 项目仓库地址&#xff1a;https://github.com/datawhalechina/llm-universe 讯飞星火认知大模型&#xff0c;由科大讯飞于2023年5月推出的中文大模型&#xff0c;也是国内大模型的代表…...

云原生是整个信息化行业的未来,一文彻底搞懂云原生

云原生这个词来自英语的Cloud Native的翻译&#xff0c;云原生是已经存多年在术语&#xff0c;真正开始获得关注的是在2015年到2016年。 这归因于这几年逐渐发布的Docker的兴起。 会有越来越多的企业和组织开始关注到它&#xff0c;并把他们的工作负载运行在云端的益处。无论是…...

【Redis】RedisTemplate最全的常用方法

文章目录 前言1.RedisTemplate常用方法2.String类型3.Hash类型4.List类型5.Set类型6.zSet类型 前言 RedisTemplate常用方法String类型Hash类型List类型Set类型zSet类型 Redis常用的数据类型&#xff1a;String、Hash、List、Set、zSet 1.RedisTemplate常用方法 redisTempla…...

图像倾斜角度求取-Radon变换

Radon算法 Radon&#xff08;拉东&#xff09;算法是一种通过定方向投影叠加&#xff0c;找到最大投影值时角度&#xff0c;从而确定图像倾斜角度的算法。具体过程如图所示 图1 Radon变换算法 Radon计算示例 对于纹理方向明显的图像&#xff0c;如图2所示&#xff0c;可以通…...

如何在本地搭建Oracle数据库实现公网环境下通过PLSQL工具进行远程访问

文章目录 前言1. 数据库搭建2. 内网穿透2.1 安装cpolar内网穿透2.2 创建隧道映射 3. 公网远程访问4. 配置固定TCP端口地址4.1 保留一个固定的公网TCP端口地址4.2 配置固定公网TCP端口地址4.3 测试使用固定TCP端口地址远程Oracle 前言 Oracle&#xff0c;是甲骨文公司的一款关系…...

时序预测 | Python实现ConvLSTM卷积长短期记忆神经网络股票价格预测(Conv1D-LSTM)

时序预测 | Python实现ConvLSTM卷积长短期记忆神经网络股票价格预测(Conv1D-LSTM) 目录 时序预测 | Python实现ConvLSTM卷积长短期记忆神经网络股票价格预测(Conv1D-LSTM)预测效果基本介绍程序设计参考资料预测效果 基本介绍 时序预测 | Python实现ConvLSTM卷积长短期记忆神…...

qtpdfium的编译及读取pdf文件和一些简单操作

qtpdfium是谷歌的一款开源项目&#xff0c;它的内核是基于国内的福昕pdf&#xff0c;许可协议为 BSD 3-Clause&#xff0c;允许用于闭源商业行为 下载 我们可以从git上进行下载&#xff0c;github&#xff0c;如果嫌下载速度慢&#xff0c;可以从csdn进行下载csdn 下载完成之…...

ClickHouse查看执行计划

在clickhouse 20.6版本之前要查看SQL语句的执行计划需要设置日志级别为trace才能可以看到&#xff0c;并且只能真正执行sql&#xff0c;在执行日志里面查看。在20.6版本引入了原生的执行计划的语法。在20.6.3版本成为正式版本的功能。 本文档基于目前较新稳定版21.7.3.14。 1.基…...

2023-11-17 VsCode使用makefile进行多文件编译

点击 <C 语言编程核心突破> 快速C语言入门 VsCode使用makefile进行多文件编译 前言一、一个简单的多文件示例二、makefile基本语法三、VsCode使用makefile总结 前言 要解决问题: C或C可以多文件编译, 意味着需要进行代码组织, 为了方便多文件编译, gnu开发了make工具, …...

Network(四)NAT实现方式与VRRP概述

一 NAT 1 NAT概述 &#xff08;1&#xff09;NAT的作用 Network Address Translation&#xff0c;网络地址转换 通过将内部网络的私有IP地址转换成全球唯一的公网IP地址使内部网络可以连接到互联网。 &#xff08;2&#xff09;私有IP地址分类 A类10.0.0.0~10.255.255.…...

C#_键盘钩子

一、class class KeyboardHook{public event KeyEventHandler KeyDownEvent;public event KeyPressEventHandler KeyPressEvent;public event KeyEventHandler KeyUpEvent;public delegate int HookProc(int nCode, Int32 wParam, IntPtr lParam);static int hKeyboardHook 0;…...

YOLO免费数据集网站收集

目录 Roboflow Universe: Open Source Computer Vision Community Find Open Datasets and Machine Learning Projects | Kaggle ​编辑 【火焰和烟雾图像数据集】-计算机视觉数据集-极市开发者平台 (cvmart.net) 开放数据集- 飞桨AI Studio星河社区 - 人工智能学习与实训社…...

拼图小游戏

package li;import ui.tu; //启动类 public class 主 {public static void main(String[] args) {new tu(); //创建登陆界面} }package ui;import javax.swing.*; import javax.swing.border.BevelBorder; import java.awt.event.ActionEvent; import java.awt.event.ActionLi…...

卷积神经网络(CNN)天气识别

文章目录 前期工作1. 设置GPU&#xff08;如果使用的是CPU可以忽略这步&#xff09;我的环境&#xff1a; 2. 导入数据3. 查看数据 二、数据预处理1. 加载数据2. 可视化数据3. 再次检查数据4. 配置数据集 三、构建CNN网络四、编译五、训练模型六、模型评估 前期工作 1. 设置GP…...

Linux进程间通信之匿名管道

文章目录 为什么要有进程间通信pipe函数共享管道原理管道特点管道的四种情况 管道的应用场景&#xff08;进程池&#xff09;ProcessPool.ccTask.hpp 为什么要有进程间通信 数据传输&#xff1a;一个进程需要将它的数据发送给另一个进程 资源共享&#xff1a;多个进程之间共享…...

【PTA题目】6-19 使用函数输出指定范围内的Fibonacci数 分数 20

6-19 使用函数输出指定范围内的Fibonacci数 分数 20 全屏浏览题目 切换布局 作者 C课程组 单位 浙江大学 本题要求实现一个计算Fibonacci数的简单函数&#xff0c;并利用其实现另一个函数&#xff0c;输出两正整数m和n&#xff08;0<m≤n≤10000&#xff09;之间的所有F…...

运行ps显示msvcp140.dll丢失怎么恢复?msvcp140.dll快速解决的4个不同方法

msvcp140.dll无法继续执行代码的主要原因有以下几点 系统缺失&#xff1a;msvcp140.dll是Visual Studio 2015编译的程序默认的库文件&#xff0c;如果系统中没有这个库文件&#xff0c;那么在运行相关程序时就会出现找不到msvcp140.dll的错误提示。 文件损坏&#xff1a;如果…...

Java多线程(3)

Java多线程(3) 深入剖析Java线程的生命周期&#xff0c;探秘JVM的线程状态&#xff01; 线程的生命周期 Java 线程的生命周期主要包括五个阶段&#xff1a;新建、就绪、运行、阻塞和销毁。 **新建&#xff08;New&#xff09;&#xff1a;**线程对象通过 new 关键字创建&…...

Java线程周期

Java线程的生命周期包含以下状态&#xff1a; 新建&#xff08;New&#xff09;&#xff1a;当一个线程被创建但还没有被启动时&#xff0c;它的状态是新建。就绪&#xff08;Runnable&#xff09;&#xff1a;当线程已经被启动并且没有任何阻止它立即运行的条件时&#xff0c;…...

map与set的封装

目录 红黑树的结点 与 红黑树的迭代器 红黑树的实现&#xff1a; 迭代器&#xff1a; ​编辑 红黑树的查找&#xff1a; 红黑树的插入&#xff1a; ​编辑 检查红色结点&#xff1a;​编辑红黑树的左旋 ​编辑红黑树的右旋 ​编辑红黑树的双旋 Map的封装 ​编辑set的…...

mac无法向移动硬盘拷贝文件怎么解决?不能读取移动硬盘文件怎么解决

有时候我们在使用mac的时候&#xff0c;会遇到一些问题&#xff0c;比如无法向移动硬盘拷贝文件或者不能读取移动硬盘文件。这些问题会给我们的工作和生活带来不便&#xff0c;所以我们需要找到原因和解决办法。本文将为你介绍mac无法向移动硬盘拷贝文件怎么回事&#xff0c;以…...

基于Netty实现的简单聊天服务组件

目录 基于Netty实现的简单聊天服务组件效果展示技术选型&#xff1a;功能分析聊天服务基础设施配置&#xff08;基于Netty&#xff09;定义组件基础的配置&#xff08;ChatProperties&#xff09;定义聊天服务类&#xff08;ChatServer&#xff09;定义聊天服务配置初始化类&am…...

视频封面:从视频中提取封面,轻松制作吸引人的视频

在当今的数字时代&#xff0c;视频已成为人们获取信息、娱乐和交流的重要方式。一个吸引人的视频封面往往能抓住眼球&#xff0c;提高点击率和观看率。今天将介绍如何从视频中提取封面&#xff0c;轻松制作吸引人的视频封面。 一、准备素材选择合适的视频片段 首先&#xff0…...

CICD 持续集成与持续交付——gitlab

部署 虚拟机最小需求&#xff1a;4G内存 4核cpu 下载&#xff1a;https://mirrors.tuna.tsinghua.edu.cn/gitlab-ce/yum/el7/ 安装依赖性 [rootcicd1 ~]# yum install -y curl policycoreutils-python openssh-server perl[rootcicd1 ~]# yum install -y gitlab-ce-15.9.3-ce.0…...

Linux - 驱动开发 - RNG框架

说明 公司SOC上有一个新思的真随机数&#xff08;TRNG&#xff09;模块&#xff0c;Linux平台上需要提供接口给外部使用。早期方式是提供一个独立的TRNG驱动&#xff0c;实现比较简单的&#xff0c;但是使用方式不open&#xff0c;为了加入Linux生态环境&#xff0c;对接linux…...

qsort使用举例和qsort函数的模拟实现

qsort使用举例 qsort是C语言中的一个标准库函数&#xff0c;用于对数组或者其他数据结构中的元素进行排序。它的原型如下&#xff1a; void qsort(void *base, size_t nmemb, size_t size, int (*compar)(const void *, const void *)); 我们可以去官网搜来看一看&#xff1a;…...

AttributeError: module ‘gradio‘ has no attribute ‘ClearButton‘解决方案

大家好,我是爱编程的喵喵。双985硕士毕业,现担任全栈工程师一职,热衷于将数据思维应用到工作与生活中。从事机器学习以及相关的前后端开发工作。曾在阿里云、科大讯飞、CCF等比赛获得多次Top名次。现为CSDN博客专家、人工智能领域优质创作者。喜欢通过博客创作的方式对所学的…...

Kafka 集群如何实现数据同步?

哈喽大家好&#xff0c;我是咸鱼 最近这段时间比较忙&#xff0c;将近一周没更新文章&#xff0c;再不更新我那为数不多的粉丝量就要库库往下掉了 T﹏T 刚好最近在学 Kafka&#xff0c;于是决定写篇跟 Kafka 相关的文章&#xff08;文中有不对的地方欢迎大家指出&#xff09;…...