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

article/2025/6/7 15:20:13

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

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.hkcw.cn/article/KtqShlfjGl.shtml

相关文章

Go语言学习-->从零开始搭建环境

Go语言学习–>从零开始搭建环境 1 开发环境 Go官网下载地址:https://golang.org/dl/ Go官方镜像站(推荐):https://golang.google.cn/dl/ windos 平台下载: 我这里下载1.22稳定版 双击下载好的.msi文件 修改安装…

Mac 芯片系列 安装cocoapod 教程

安装声明: 本人是在搭梯子的环境下安装成功,前提是必须安装好安装homebrew环境。 1.检测rudy的源 2.查看源(目的:检测rudy的源) gem sources - l 3.移除源(目的:移除rudy自带的源) gem sources --remove https://rubygems.org/ 4.更换源(目的:替换成国…

idea不识别lombok---实体类报没有getter方法

介绍 本篇文章,主要讲idea引入lombok后,在实体类中加注解Data,在项目启动的时候,编译不通过,报错xxx.java没有getXxxx()方法。 原因有以下几种 1. idea没有开启lombok插件 2. 使用idea-2023…

JavaWeb是什么?总结一下JavaWeb的体系

一:Maven 1.1 定义 不需要导入依赖,在配置文件描述配置信息,maven会自动导入 统一项目结构: 项目构建: 1.2 ideal集成 (1)maven配置 (2)创建maven项目 ‘ (3&…

MEMCPY引发的非对齐访问

目录 前言背景代码直接运行的现象问题原因解决办法 前言 1,memcpy在keil中是伪装成函数的C语言关键字,有可能会被优化为字对齐形式__rt_memcpy_w 2,编译到memcpy位置的时候,编译器会检查地址类型,如果两个指针都是4字…

CSS(2)

文章目录 Emmet语法快速生成HTML结构语法 Snipaste快速生成CSS样式语法快速格式化代码 快捷键(VScode)CSS 的复合选择器什么是复合选择器交集选择器后代选择器(重要)子选择器(重要)并集选择器(重要)**链接伪类选择器**focus伪类选…

AI+在线教育系统源码:开发智能化互动网校平台全流程详解

在数字化浪潮席卷各行各业的当下,教育行业也不例外。从最早的PPT网课,到今天“AI互动教学”深度融合的智能网校系统,在线教育平台的底层逻辑和技术架构已然发生翻天覆地的变化。今天,笔者将为正计划进入在线教育领域的创业者、产品…

Prj09--8088单板机C语言8253产生1KHz方波(1)

1.8253原理图 2.Deepseek给出的参考程序 #include <stdio.h> #include <conio.h> #include <dos.h>// 8253定时器端口定义 #define PORT_8253_CNT0 0x9000 // 计数器0地址 #define PORT_8253_CNT1 0x9001 // 计数器1地址 #define PORT_8253_CNT2 …

女儿回应48岁妈妈顺产得子 意外怀孕引发热议

女儿回应48岁妈妈顺产得子。近日,广东河源一位48岁的再婚妈妈怀孕7个月自己都没察觉,还以为是“绝经发福”了。她28岁的女儿透露,妈妈和现任丈夫相识仅40天就闪婚,已经共同生活了7年。此前医生曾诊断这位妈妈没有卵泡无法怀孕,没想到却意外怀上了。女儿最初心情复杂,但现…

js-day7

JS学习之旅-day7 1.事件流1.1 事件流与两个阶段说明1.2 事件捕获1.3 事件冒泡1.4 阻止1.5 解绑事件 2. 事件委托3. 其他事件3.1 页面加载事件3.2 页面滚动事件3.3 页面尺寸事件 4. 元素尺寸与位置 1.事件流 1.1 事件流与两个阶段说明 事件流指的是事件完整执行过程中的流动路…

【Typst】5.文档结构元素与函数

概述 本节介绍Typst文档的核心文档结构元素及其对应函数&#xff0c;还有函数的用法。通过本节你将可以更好的使用脚本创建和控制页面元素。 系列目录 1.Typst概述2.Typst标记语法和基础样式3.Typst脚本语法4.导入、包含和读取5.文档结构元素与函数6.布局函数 set语句和sho…

每日八股文6.3

每日八股-6.3 Mysql1.COUNT 作用于主键列和非主键列时&#xff0c;结果会有不同吗&#xff1f;2.MySQL 中的内连接&#xff08;INNER JOIN&#xff09;和外连接&#xff08;OUTER JOIN&#xff09;有什么主要的区别&#xff1f;3.能详细描述一下 MySQL 执行一条查询 SQL 语句的…

【Linux】pthread多线程同步

参考文章&#xff1a;https://blog.csdn.net/Alkaid2000/article/details/128121066 一、线程同步 线程的主要优势在于&#xff0c;能够通过全局变量来共享信息。不过&#xff0c;这种便携的共享是有代价的&#xff1b;必须确保多个线程不会同时修改同一变量&#xff0c;或者某…

Spring AOP:面向切面编程 详解代理模式

文章目录 AOP介绍什么是Spring AOP&#xff1f;快速入门SpringAop引入依赖Aop的优点 Spring Aop 的核心概念切点(Pointcut)连接点、通知切面通知类型PointCut注解切面优先级Order切点表达式executionwithinthistargetargsannotation自定义注解 Spring AOP原理代理模式&#xff…

Ubuntu20.04用root(管理员身份)启动vscode

1.终端输入 code --user-data-dir~/.vscode --no-sandbox .

第7章 :面向对象

一、面向对象 面向过程&#xff1a;关心的是我该怎么做&#xff0c;一步步去实现这个功能 面向对象&#xff1a;关心的是我该让谁去做&#xff0c;去调用对象的操作来实现这个功能 面向对象 对象&#xff08;Object&#xff09; 分类&#xff08;Classification&#xff09; …

嵌入式linux八股文

1.指针的大小 指针大小的计算方式。指针的大小并非由其类型决定&#xff0c;而是与编译器的位数相关。具体来说&#xff0c;在 32 位的系统下&#xff0c;指针的大小为 4 个字节&#xff0c;而在 64 位的系统下&#xff0c;指针的大小为 8 个字节。通过示例代码的运行&#xf…

python可视化:端午假期旅游火爆原因分析

python可视化&#xff1a;端午假期旅游火爆原因分析 2025年的旅游市场表现强劲&#xff1a; 2025年端午假期全社会跨区域人员流动量累计6.57亿人次&#xff0c;日均2.19亿人次&#xff0c;同比增长3.0%。入境游订单同比大涨近90%&#xff0c;门票交易额&#xff08;GMV&#…

ubuntu22.04安装taskfile

sh -c "$(curl --location https://taskfile.dev/install.sh)" -- -dsudo mv ./bin/task /usr/local/bin/测试 task --version

Ubuntu22.04 安装 Miniconda3

Conda 是一个开源的包管理系统和环境管理系统&#xff0c;可用于 Python 环境管理。 Miniconda 是一个轻量级的 Conda 发行版。Miniconda 包含了 Conda、Python和一些基本包&#xff0c;是 Anaconda 的精简版本。 1.下载安装脚本 在 conda官网 找到需要的安装版本&#xff0…