软件测试环境搭建与测试流程

news2025/1/20 3:48:32

🍅 点击文末小卡片,免费获取软件测试全套资料,资料在手,涨薪更快

1.软件测试环境搭建

思考:

  • 在什么条件下做软件测试?
  • 怎么做软件测试?

1.1 搭建测试环境前

确定测试目的

功能测试(验证软件是否满足用户的需求),稳定性测试,还是性能测试(软件的效率),测试目的不同,搭建测试环境时应注意的点也不同。

例如:

1.功能测试:不需要大量的数据,需要覆盖率高,测试数据要尽量真实;

 性能测试:需要大量存量数据或者与实际硬件环境尽可能相似的硬件配置;(比如对于app在当一千万个用户同时访问的时候能否应付)

2.测试的软件环境要尽可能模拟真实的环境,选用合适的操作系统和软件。(比如有的用户用ios系统,有的用安卓系统)

3.了解测试软件运行的最低要求及用户使用的硬件配置

4.了解用户常使用的软件,避免我们做的软件配置与其相冲突(万一产生冲突可能会闪退或者别的错误,所以要避免和用户常用软件配置冲突。)

5.产品化的测试需要考虑兼容性测试(举例就是对外的app或者网页,即不管什么手机装了什么软件都能使用我的软件)

6.营造独立的测试环境,不同人员和项目不要对当前测试产生影响(希望我们的测试不要因为其他人员,项目而改变。比如我现在做的测试,万一开发也能看到他改动了,对我的测试就会有影响。)

7.构建可复用的测试环境

通过备份或数据隔离的方式。

重复运用一套测试环境进行多版本多时间段的测试。

1.2 环境搭建模式

线下搭建:在公司本地进行搭建

申请独立测试服务器或者虚拟机

测试环境配置

测试项目导入

例如:

对于搭建java环境:

  • 配置java环境(下载jdk并配置环境变量)
  • 下载并安装中间件(tomcat、 jetty或其他)
  • 安装数据库并导,入初始化脚本

线上搭建:

Docker模式(我把我的环境,想要的东西封到一个大盒子里,然后想用的时候就把盒子扔出去,盒子就直接构建出环境。)

构建自己的image镜像,然后执行deploy

依赖第三方平台:

比如一个云环境,上面有可以使用的虚拟机,数据库等,自己按需组合即可
eg.蚂蚁金融云

1.3 测试环境建设思路

考虑点:

用途、使用成本、维护成本

基本架构:

  • 研发环境:用于研发自测、集成测试(基于研发使用的环境,他自己可以进行自调)
  • 测试环境:用于日常单系统或两两微服务之间测试,可同时集成自动化测试回归

联测环境:

完备环境,用于大型联测。(整体的联测涉及到所有的业务流,接口等,所以要一个非常完备的环境)

外联环境(如果有需求) :

稳定版本环境,用于外部商户等联调

灰度/沙箱环境:

用于生产数据测试,仿真测试。

仅仅在测试中自己造数据可能会遗漏,所以引入生产数据(灰度 生产验证等;沙箱 数据查询 生产数据,生产文件校验等)

2.测试过程

在逻辑上,测试活动是按顺序进行的,但是实际测试过程中,这些活动是可以重叠或同时进行的(比如支付宝的加好友,登录,转账等。对于加好友模块的测试,还是需要先登录这个模块的操作的)

2.1 测试策划过程

测试策划分为以下三个部分:

测试策划步骤:

  • 进行测试需求的分析
  • 确定需要测试的内容或质量特征
  • 明确测试的充分性要求
  • 提出测试的基本方法

测试策划需要进行:

  • 确定测试的资源和技术需求
  • 进行风险分析与评估
  • 根据上述分析结果制 定测试计划
  • 根据测试计划开展相应的 测试控制活动
2.1.1 需求分析

过往的软件生命周期中,需求分析阶段是没有测试人员参与的。但随着软件过程的优化, 测试人员的加入对需求分析阶段有了更大的作用。

测试在需求分析阶段加入的原因

  1. 测试工程师参与需求分析, 对需求了解很深刻,减少与开发人员的交互,节省时间(针对一些功能,测试需要在初期和开发人员来进行沟通)
  2. 早期确定测试用例的编写思路, 为测试打好了基础
  3. 可以 获取一些测试数据,为测试用例设计提供帮助(产品可能会更了解用户的需求和掌握更多的数据,所以早一点可以获取一些测试数据)
  4. 可以 发现需求不合理的地方,降低测试成本(违反正常的操作准则等 可以提早发现,避免更多的回炉重造。)

需求测试的作用:

  1. 测试需求的分析用来确定整个测试工作,明确测试对象以及测试工作的范围和作用,并作为测试覆盖的基础。
  2. 被确定的测试需求项必须是可核实的,测试需求必须有一个可观察、可评测的结果。
  3. 如果无法核实的需求就不是测试需求。
  4. 测试需求分析还包括与客户的交流以澄清某些混淆
  5. 明确哪些需求更重要
  6. 确保风险承担者尽早对项目达成共识
  7. 对将来的产品有清晰的认识
  8. 测试需求是制订测试计划的基本依据
  9. 测试需求是设计测试用例的指导
  10. 确定了要测什么、测哪些方面才能有效设计用例

需求验证:

◆审查需求文档
◆对需求文档及相关模型进行仔细检查
◆另外在需求开发期间所做的非正式评审也是有所裨益的

应当这样做:

以需求为依据编写测试用例:

编写用户手册

在需求开发早期即可起草一份浅显易懂的用户手册,用以描述出所有对用户可见的功能并用它作为需求规格说明的参考并辅助需求分析

确定合格的标准:

  • 让用户描述什么样的产品才算满足他们的要求和适合他们的使用
  • 将确认合格的测试建立在使用情景描述或使用实例的基础之上

余额宝需求测试实战


以支付宝上余额宝业务为例分析

1.原始需求:

早在2012年左右,支付宝虽然很快被大众接受,但是却面临着一种比较普遍的现象:支付宝账户余额内总是有一 笔闲置资金,虽然不同账户资金数额有多有少,但总的来说,这笔躺在账户什么做不了的闲置资金数额还是比较庞大的,对于支付宝的发展而言非常不利

2.产生需求:

于是,产生了这样一个需求,与基金公司合作推出货币基金产品,同时用户购买货币基金后,可直接通过货币基金金额进行支付购买商品或服务。

货币基金可以视同余额、集分宝一样作为支付工具进行消费。

3.审查需求文档:

我们一起简单看下需求文档,大概分为以下:

  • 需求分析
  • 流程图
  • 文字流程
  • 约束条件
  • 扣款的优先级
  • 异常处理
  • 安全控制
  • 页面

需求分析过程中我们会将上面的流程分为:

货币基金购买、提现、消费、资产管理、交易查询几部分

可以通过需求规格说明书检查列表进行检查

2.1.2 测试策略

测试之前需要考虑的问题:

  • 你知道要测试的系统是干什么的吗?
  • 你了解系统有些什么特点吗?
  • 系统有些什么功能?
  • 系统哪些部分需要测试?哪些不要测试?
  • 系统对性能有什么要求?
  • 系统对安全性有什么要求?

由以上问题可以得出测试策略的要求:

  • 测试策略是描述测试项目和测试任务之间的关系。
  • 它用来说明要测什么,如何测,如何协调测试资源和测试时间等。

测试策略要素:


1.测试安排、发布计划

罗列测试项目本身重要的里程碑,每个里程碑都需要有明确的结束时间,这个时间可以指导我们后续的测试

2.测试时间

如果测试时间安排不足,我们就可以在后续的测试范围中挑选优先级比较高的特性来执行测试,这样可以最大限度的保证产品的质量

3.测试范围(按照优先级排列)

分为In Scope和Out Of Scope(分为在范围内和范围外)

需要说明哪些模块是在测试范围中的,哪些是本阶段测试不考虑的

  • 对于在测试范围中的模块,需要给出优先级,以便相应测试时间不足的情况
  • 对于不在测试范围中的模块,需要给出原因

4.测试资源

测试资源在测试策略中也是很重要的一环,它分为人力和工具两部分

  • 人力资源主要说明参与测试的人员,当然可以包括很多的角色,如专业测试人员,客户,产品经理等
  • 工具即可能用到的其他软件

5.测试环境

测试环境主要包括推荐环境解决方案,操作系统要求,软硬件要求

对于推荐解决方案,需要陈述的是对测试项目对其他软件的依赖

  • 比如测试项目对JAVA有依赖,推荐版本可能就是1.7

6.测试方法

测试方法的罗列主要是为了说明针对测试项目我们要开展哪些类型的测试

功能测试是必须的,非功能测试是可选的

7.文档管理

对于一个完整的产品来说,文档是很重要的一环,它一般包括安装、升级文档,用户指南等
文档不单单是一个文件,已经是软件的一部分,所以需要完成测试才能发给用户,以免文档不正确误导用户从而使他们对测试项目失去信心。

8.风险管理

风险管理模块需要罗列出来现在已知的可能会出现不确定性的因素(比如我们这个公司的技术没法达到用户的要求,比如同时有3亿人来访问某个app)

这些因素可能来自技术,资源或者其他方面的(对于需要的软件,有可能非常贵,公司负担不起,或者需要和银行对接才能测试成功,但是有可能无法和银行对接)

2.1.3 测试方案设计

测试策略:

  • 侧重需求分析,评估风险,定义测试范围
  • 确定测试方法,制定测试启动、停止、完成标准和条件

测试计划:

  • 制定项目 测试过程中的测试重点
  • 各个阶段的任务分配以及时间进度安排
  • 并提出对各项任务的评估,风险分析,可以包括测试策略

测试方案:

  • 侧重测试的方法,测试环境的规划
  • 测试工具的设计和选择,测试用例的设计方法,测试代码的设计方案

测试策略VS测试计划VS测试方案

  • 实际实施过程中,往往存在这样类似的方式:
  • 测试方案=测试计划+用例设计方案+工具选择+自动化/性能测试具体方案
  • 测试计划=测试策略+测试任务分配+时间进度安排

货币基金消费测试方案分析过程

  1. 分析需求:当前测试包含需求项(需求文档或wiki链接等)
  2. 测试计划(里程碑)及负责人:整理当前项目各模块测试负责人、任务分配及测试时间安排
  3. 测试范围、测试重点:那些point需要测试, 重点放在什么地方,优先级安排
  4.  策略及工具:是否需要进行自动化、性能、安全测试?使用哪些工具.
  5. 测试用例设计方法:使用什么样的黑盒测试方法进行设计(等价类?边界值?因果图?等等)
  6. 测试环境:测试环境是什么?需要哪些服务器、数据库,配置如何等
  7. 联调测试:是否需要与第三方或其他部门进行联调?何时开展?联调包括哪些功能?例如基金公司
  8. 测试限制:在测试环境中哪些内容无法测试?
  9. 测试风险:在测试或计划测试过程中由于时间安排、测试限制、优先级分布可能带来的测试风险考量
2.1.4 测试方案评审

如果不进行测试方案的评审,会造成严重后果:

  • 仅从文档、沟通获取信息,可能会造成信息不对称,认识片面,理解错误或不深入等问题
  • 缺少同行交叉评审和开发评审机制,无法充分发挥集体智慧,个人的思维难以突破,可能会出现测试遗漏的情况

测试评审的目的:

  • 呈现测试的工作
  • 与开发达成共识.(比如发红包这个操作,对于开发来说:钱到了账上 就算操作完成;对于测试:用户是否有不想要这个红包的需求)
  • 不同的思维方式碰撞出火花,借鉴被人的思考方式
  • 培养这样的行为模式:愿意为团队或他人出谋划策
  • 发挥团队协作,最大限度发挥个人的经验,特长,实现技能互补

评审重点:

  • 采用的测试方法(比如我认为这个项目不需要用性能测试,但是有可能他需要)
  • 等价类划分的依据
  • 测试数据的选取和准备方法(比如现在做一个加法计算器,验证它是否选取,不可能输入所有的数据,那么选取那些数据为什么选取就是需要评审的)
  • 流程测试的路径组合(在淘宝中如何进行购买商品的流程)
  • 数据比对选取的对象和检查点(比如在淘宝上买了新手机,评估下单后数据库的接口,数据等是否正常)
  • 是否需要模拟数据及模拟数据的方法(比如预言双十一的活动,那么需要模拟多少数据多少下单量来制定方案)
  • 基于风险的测试取舍(当克服不了风险的时候需要批漏出来)

最后感谢每一个认真阅读我文章的人,礼尚往来总是要有的,虽然不是什么很值钱的东西,如果你用得到的话可以直接拿走:

这些资料,对于做【软件测试】的朋友来说应该是最全面最完整的备战仓库,这个仓库也陪伴我走过了最艰难的路程,希望也能帮助到你!凡事要趁早,特别是技术行业,一定要提升技术功底。

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

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

相关文章

实战 | C# 中使用YOLOv11实现实例分割 (步骤 + 源码)

导 读 本文主要介绍在C#中使用YOLOv11实现实例分割,并给详细步骤和源码。 C# YOLO11实例分割——本文实现效果:

C#窗体程序学生管理

代码如下: public static string constr "Data SourceFUSHUAI;Initial Catalogproduct;Integrated SecurityTrue"; public static SqlConnection con new SqlConnection(constr); private void Form1_Load(object sender, EventArgs e) { gettable…

特朗普画像

任务内容 Description 特朗普当选了,网上流传着很多段子,也出了特朗普的头像。有人说,特朗普 的头像像一团云。所以今年马云去了美国和特朗普谈中美企业的发展。那么你能帮 忙打印出特朗普的头像吗? 抽象派认为,特朗普…

【Linux 篇】Docker 启动和停止的精准掌舵:操控指南

文章目录 【Linux篇】Docker 启动和停止的精准掌舵:操控指南前言docker基本命令1. 帮助手册 2. 指令介绍 常用命令1. 查看镜像2. 搜索镜像3. 拉取镜像4. 删除镜像5. 从Docker Hub拉取 容器的相关命令1. 查看容器2. 创建与启动容器3. 查看镜像4. 启动容器5. 查看容器…

Android环境搭建

Android环境搭建 第一步:安装 Homebrew 执行以下命令来安装 Homebrew: /bin/zsh -c "$(curl -fsSL https://gitee.com/cunkai/HomebrewCN/raw/master/Homebrew.sh)"检测是否安装成功: brew --version第二步:安装 No…

【调试工具】USB 转 UART 适配器(USB 转 TTL)

「USB 转 TTL 转换器」是错误的叫法&#xff0c;正确的叫法应该为 「USB 转 UART 适配器」。 Device connection 注意端口的交叉连接&#xff0c;Device1_TX<---->Device2_RX USB-to-UART adapter GND 记得接地。 使用&#xff1a; 当 TX,RX 需要电平为 0-3.3V 时&am…

Stable Diffusion核心网络结构——U-Net

本文详细详细介绍Stable Diffusion核心网络结构——U-Net&#xff0c;作用&#xff0c;架构&#xff0c;加噪去噪过程损失函数等。 目录 Stable Diffusion核心网络结构 SD模型整体架构初识 U-Net模型 【1】U-Net的核心作用 【2】U-Net模型的完整结构图 &#xff08;1&#xff0…

利用【AOP+自定义注解】实现项目中【日志记录】

利用AOP自定义注解实现日志记录 需求: 日志记录 操作日志记录,类似如下 思路:AOP自定义注解 AOP面向切面编程,利用 一种称为"横切"的技术&#xff0c;剖开封装的对象内部&#xff0c;并将那些影响了 多个类的公共行为抽取出封装到一个可重用模块&#xff0c;并将其…

JAVA-二叉树的概念和性质

目录 一.树形结构 1.1 概念 1.2 树的概念(重要)​编辑 补充&#xff1a;高度和深度的区别 1.3 树的应用 二. 二叉树&#xff08;重点&#xff09; 2.1 概念 2.2 两种特殊的二叉树 2.3 二叉树的性质 2.4 选择题 一.树形结构 1.1 概念 树是一种 非线性 的数据结构&…

SSM虾米音乐项目2--分页查询

1.分页查询的底层逻辑 首先根据用户输入的流派&#xff0c;进行模糊查询根据查询的数据进行分页需要前端用户提供pageNo(当前页数)和pageSize(每页的数据量)并且要从后端计算count(总数据量)和totalPage(总页数)&#xff0c;以及startNum(每页开始的记录)从而将对应的页面数据…

debian编译失败

A、缘由和分析 debian的代码在删除该路径下的2个包后&#xff0c; 重新全编&#xff0c;编译不过的问题。 至于我为什么删除这2个包&#xff0c;这是因为在sdk第一次编译时一些文件已经打包进去了&#xff0c;我现在的修改无法更新进img中&#xff0c;而现在我的项目中不需要…

Thonny IDE + MicroPython + ESP32 + A9G 发短信打电话

A9G模块的使用说明 详见该博客&#xff1a;a9gdfgdfhguyiuh-CSDN博客 接线 ESP32 DEVKIT_C A9G GND GND D23 RX A9G开发板用板载MiniUSB&#xff08;安卓口&#xff09;供电 代码 from machine import UART # 导入串口模块 # import timeUART0 UART1 UART2 TX …

在GITHUB上传本地文件指南(详细图文版)

这份笔记简述了如何在GITHUB上上传文件夹的详细策略。 既是对自己未来的一个参考&#xff0c;又希望能给各位读者带来帮助。 详细步骤 打开目标文件夹&#xff08;想要上传的文件夹&#xff09; 右击点击git bash打开 GitHub创立新的仓库后&#xff0c;点击右上方CODE绿色按…

沈阳工业大学《2024年827自动控制原理真题》 (完整版)

本文内容&#xff0c;全部选自自动化考研联盟的&#xff1a;《沈阳工业大学827自控考研资料》的真题篇。后续会持续更新更多学校&#xff0c;更多年份的真题&#xff0c;记得关注哦~ 目录 2024年真题 Part1&#xff1a;2024年完整版真题 2024年真题

初始化webpack应用示例

1、初始化npm mkdir webpack_test cd webpack_test npm init 2、安装webpack依赖 npm install webpack webpack-cli -D 3、添加文件夹&#xff0c;入口文件 mkdir src touch index.js touch add-content.js 文件夹结构 index.js import addContent from "./add-cont…

重邮+数字信号处理实验三:z变换及离散LTI系统的z域分析

实验目的&#xff1a; &#xff08; 1 &#xff09;学会运用 Matlab 求离散时间信号的有理函数 z 变换的部分分式展开&#xff1b; &#xff08; 2 &#xff09;学会运用 Matlab 分析离散时间系统的系统函数的零极点&#xff1b; &#xff08; 3 &#xff09;学会运用 …

前端开发底层逻辑全解析

前端开发就像是构建一座数字大厦的外表装饰与交互系统&#xff0c;而理解其底层逻辑则是打好坚实基础的关键。今天&#xff0c;我们就来深入剖析前端开发的底层逻辑。 一、浏览器的工作机制&#xff1a;幕后的魔法手 当我们在浏览器中打开一个网页时&#xff0c;一系列复杂的操…

MySQL -- CURD(下)

1. Update 修改 1.1 语法 对符合条件的结果进⾏列值更新 UPDATE [LOW_PRIORITY] [IGNORE] table_referenceSET assignment [, assignment] ...[WHERE where_condition][ORDER BY ...][LIMIT row_count]1.2 示例 将吕布的数学成绩改为99分 update exam set math 99 where …

【计算机网络】 —— 数据链路层(壹)

文章目录 前言 一、概述 1. 基本概念 2. 数据链路层的三个主要问题 二、封装成帧 1. 概念 2. 帧头、帧尾的作用 3. 透明传输 4. 提高效率 三、差错检测 1. 概念 2. 奇偶校验 3. 循环冗余校验CRC 1. 步骤 2. 生成多项式 3. 例题 4. 总结 四、可靠传输 1. 基本…

亚马逊 aws-waf-token 算法生成,协议逆向,通杀!!!

声明 本文章中所有内容仅供学习交流&#xff0c;抓包内容、敏感网址、数据接口均已做脱敏处理&#xff0c;严禁用于商业用途和非法用途&#xff0c;否则由此产生的一切后果均与作者无关&#xff0c;若有侵权&#xff0c;请联系我立即删除&#xff01; 难度不大&#xff0c;核…