软件测试基本流程

article/2025/10/19 23:10:57

前言

“尽早的介入测试,遇到问题的解决成本就越低” 随着软件测试技术的发展,测试工作由原来单一的寻找缺陷逐渐发展成为预防缺陷,探索测试,破坏程序的过程,测试活动贯穿于整个软件生命周期中,故称为全程软件测试

全程软件测试,强调整个软件生命周期中,各阶段的测试活动。无论是需求阶段,开发阶段,还是测试阶段,都需要确定在当前阶段测试活动的内容以及成都,确保每个阶段的质量,才能保证产品最终的质量。

全程软件测试

全程软件测试图解

根据全程软件测试的时间轴线图,我们可以发现测试活动贯穿软件开发的整个生命周期,各个阶段测试活动内容如下:

​那每个测试活动又到底是如何进行的?需要用的哪些技能或者方法呢?

想了解到更多软件测试的的知识,请不要担心没有“软件测试”自学资料,现在就给大家奉上一份13G的超实用干货测试学习资源,涉及的内容非常全面。【私聊回复1领取】

需求阶段

一、测试需求分析

我个人一直认为需求分析是整个测试活动中除了测试用例设计之外最重要的部分。

  • 需求分析目的是理解需求,理解业务。

  • 弄清楚我们的产品有哪些功能?有哪些非功能性需求?

  • 明白我们的用户群体是什么?用户会如何来使用我们的产品?

那我们到底该怎么来进行需求分析呢?

具体执行如下:

二、测试计划制定

当对需求有完整和全面的理解后,接下来我们需要制定详细的测试计划,为即将开始的测试工作做好充足的准备。对于测试计划的理解,我一直分为两种工作规模去看(个人理解,不正确的地方还请见谅)

小公司团队

小公司测试团队可能本身都没几个人,按照传统理论需要考虑测试活动中各方面的问题,给人的感觉就像杀鸡用3米长的大砍刀一样。

我的理解是小团队的测试计划讲清楚以下四个要素就行。

  • 时间:根据以往经验以及需求理解进行时间估算(小建议:时间节点多争取1到2天时间缓冲,项目过程中难免出现意外事件)

  • 任务:将测试活动拆分成具体的任务

  • 人:任务的执行人以及质量监控负责人

  • 风险控制

大作坊团队

  大公司测试团队往往是涉及多个项目,整个公司的硬件、时间、人力等资源的分配就更为复杂。在这种情况下,需要对各方面有更为精细的计划。

  • 资源估算:整个项目需要多少资源?硬件资源,人力、时间资源等

  • 进度控制:每个测试活动时间点控制

  • 风险控制:对于在测试活动过程中出现问题的解决方案

  • 资源配置:如何更有效率的使用资源

  • 验收标准:文档、项目、测试过程的验收标准定义

  • 测试策略:测试中使用的测试策略

小结:

在需求分析阶段,测试人员既要详细的理解产品需要,又要从用户的角度出发,分析出需求中不完善的地方,还要协调开发与测试对于需求理解的一致性,保证需求信息在开发和测试双方中的统一。

这也就是尽早的将产品缺陷给暴露出来,也会有效的预防缺陷。

开发阶段

在经过需求阶段的准备工作后,进入开发阶段就意味着撸起袖子加油干的时候。开发阶段对于软件生命周期而言是最重要的阶段。那在这个阶段,又是如何开展测试活动的呢?

一、测试用例设计

测试用例设计是软件测试工作的灵魂。

任何一项测试活动的核心都是测试思维,即如何进行测试。而测试用例就是测试思维的体现。功能的测试优先级、如何操作、输入什么数据、应该有什么的结果等等都体现在测试用例中。那么问题来了

到底怎么设计测试用例呢?

(由于篇幅原因,这次我主要介绍一下接口测试用例设计方法)

首先,我们来看一看接口的执行过程

任何一个接口其实都由这三部分构成,那我们在设计测试用例时就可以根据这方面进行考虑。

针对接口的输入条件进行设计:

针对接口的处理逻辑进行设计:

针对输出结果设计:

其他方面考虑:

  • 接口超时处理

  • 废弃接口处理

二、测试用例评审

测试用例的评审无疑是为了给测试用例进行查漏补缺。

评审方式:

  • 测试内部评审

  • 项目组评审:项目相关人参与评审(开发、测试、产品)

注意:

项目组评审时,一般是会议的形式,由于测试用例的数量关系,会议上评审会占用很长的时间,造成时间资源的浪费。

建议大家在评审前先将测试用例邮件发送给评审会议相关人,让他们提前能对测试用例进行了解,熟悉。会议中进行反馈,记录后,会后再修改。

三、测试执行

前面的工作做的充足的话,在测试执行的时候就会非常简单了。只需要根据测试用例一条一条去执行程序即可。发现缺陷就提交缺陷,测试通过就继续回归。

各位看官现在应该是心里一万个XXX呼啸而过~~哪有说的那么简单。

其实测试执行的过程真的很简单,只是在执行的过程中各部门的协作,沟通以及各项文档的输出很复杂。下面我们来聊聊在测试执行过程要注意的几方面问题。

1、测试与开发的沟通

“XXX 我这有个问题,你过来看下” “什么问题?你演示下我看看” “这不是问题,这个地方只能这样做”或者 “这不是问题,我刚刚跟需求确认过的” “这样做不合逻辑啊!” “那你说怎么处理?” “我觉得应该....处理” “你先跟需求确认下吧”

这应该是测试工程师的日常吧。测试与开发沟通无疑是关于某个功能或者产品的,主要围绕几个以下几个点:

  • 程序某个地方存在问题

  • 产品需求信息在测试和开发中不统一

  • 程序某功能应该是怎么处理

  • 缺陷修复后的验证

既然知道问题的核心,我们就要想办法规避这些问题。假设一开始提问题的时候就把问题的特征,位置,以及操作步骤,截图都一目了然的提交给开发,是不是很大程度上可以节省测试演示的时间?

另一个最容易出现的问题就是信息不统一,这个需要整个项目组有意识的培养健全的工作流程,通过工作流程来规避这种信息不对称的情况。这种情况将大大增加测试与开发的沟通成本。

2、测试与需求的沟通

测试人员与需求的沟通难点主要还是体现在需求不明确或者需求变更上。

很多时候需求人员的需求文档都是不全面的,测试人员在写测试用例时需要一次又一次的与需求进行确认,一来二去,需求估计有种想把桌子里40米长的大刀放桌上来。

另一方面在项目过程中,不可避免的会出现需求变更,只要出现变更就意味着之前的测试准备工作就作废。

所以在与需求的沟通是非常频繁又火星四溅的,那怎么更好的与需求进行沟通呢?

  • 切记不能停留在口头沟通,确认

  • 所有的需求确认或者需求变更都需要文档化,实在不行也需要发邮件

  • 每一次确认、变更都需要通过项目相关人

  • 建立完善的需求变更体系,流程上控制需求变更

3、测试结果的反馈

相信大家应该遇到过偶现的缺陷,开发重现时就没有了,忙活了半天,被开发嫌弃了一顿

测试结果的反馈容易出现问题的地方就是结果描述不清楚,增加项目的时间和沟通成本。解决这个问题最好的办法就是将测试结果尽可能的描述清楚。

测试结果反馈分为两种:

  • 在沟通工具中向开发反馈缺陷

  • 在缺陷管理工具中提交缺陷

到底怎样提交/描述清楚一个缺陷?在下文中,我会详细介绍。

四、缺陷管理

在开发阶段,测试人员最重要的产出就是缺陷。缺陷不仅仅是数量多,就越有价值。更应该关注缺陷的质量、缺陷的管理以及缺陷分析。

怎么样提出质量高的缺陷?怎么样对缺陷进行管理和分析?见下图

​缺陷处理流程图

缺陷管理是软件测试活动中极其重要的一环,很多时候测试用例并没有发现多少缺陷,反而自己在运行程序的过程中发现了很多缺陷,那这些缺陷就是对测试用例的补充,对之后的测试就可以提供思路。

小结:

在开发阶段,测试人员最主要的工作就是发现缺陷,但是在这个过程中会伴随着很多其他的问题,需要我们在工作流程中去规避。最重要的就是把测试放在整个项目中,是各个部门的团队协作。

很多团队的问题并没有出在测试用例设计,测试执行,缺陷提交中,更多的出现在各部门之间的沟通、协作中。

发布阶段

进入发布阶段就意味着产品已经通过了测试,可以发布到线上,交付给用户使用。那如何确认测试已经通过?在发布过程中,我们测试人员又需要完成哪些工作?

测试通过准则规范

上线前,需要确认测试已经通过,现在程序越来越复杂,如果没有量化的规范,就很难确定测试到什么时候可以上线。所以我们需要设定测试通过的准则,只有达到准则才能上线

  • 测试需求功能覆盖率100%

  • 测试用例通过率95%以上

  • 遗留缺陷没有严重程度3级以及以上的缺陷

测试报告

完成测试后,提交测试报告,给出此次测试过程中的数据,例如:测试用例的数量,发现缺陷的总数,各个严重程度的缺陷数量,总共修复的缺陷数量以及缺陷修复率等等

系统回滚方案

每一次发布都不能说百分之百的没有问题,如果真的出现问题,我们该如何处理?

  • 如果线上出现的问题不是很严重,尽量当时处理掉再上线

  • 如果线上出现的问题很严重,就必须要系统回滚,保证线上用户的正常使用

  • 系统回滚方案须跟开发/项目经理确认

线上功能检查

  • 程序原有功能的回归测试

  • 新上线的功能全面测试

小结:

每一次发布后,测试人员都应该持续反馈,改进、总结每个版本中遇到的问题,不管是缺陷还是流程问题,从一次次的问题中总结一些经验,提高整个软件生命周期的质量

日常维护阶段

产品上线后,用户能稳定的长期使用,就意味着发布的功能进入到日常维护阶段。而这里并不是终点,这个阶段将一直存在。

在这个阶段,测试人员的主要工作就比较简单

  • 持续测试,没有产品是没有缺陷的

  • 即使收集用户反馈的问题,并尽快组织人员修复

  • 长时间稳定性测试(自动化测试)

总结

全程软件测试,关注的是在整个软件生命周期中,各个阶段的测试活动。

通过对各个阶段的过程质量把控,从而提高产品的测试质量。产品的质量并不是测试能决定的,而是整个项目构建过程中,通过一次次的优化过程,不断的总结成长,是整个项目团队决定的。

不同的工种都在这个过程中起到举足轻重的作用,而全程软件测试强调不断提高每个阶段的质量,最终提高项目团队的综合能力,从而提高产品质量

看到这里,非常感谢您的耐心,如果您觉得有收获,就记得帮我分享哦。

想了解到更多软件测试的的知识,请不要担心没有“软件测试”自学资料,现在就给大家奉上一份13G的超实用干货测试学习资源,涉及的内容非常全面。【私聊回复1领取】


http://chatgpt.dhexx.cn/article/lkZ8JfDT.shtml

相关文章

软件测试流程详解

1.软件测试的定义: 使用人工或自动手段,来运行或测试某个系统的过程。其目的在于检验它是否满足规定的需求或弄清预期结果与实际结果之间的差别。 百度百科定义:软件测试(英语:Software Testing)&#xff0…

超详细一文到底!软件测试基本流程

前言: 采用通用的测试流程,能高效、高质量的完成软件测试工作,有助于减少沟通成本,对各阶段产出有明确认知等等。最终目标:实现软件测试规范化、标准化。以下为非通用标准,仅供大家参考 一、软件测试流程图…

软件测试的完整流程

前言:测试的过程并不是固定的,要灵活的变化 其实测试的过程并不是固定的,它只是一种规范,也可以把它当作一种指导。但是真实的产品测试和项目测试中,一定是要灵活运用的,甚至是在不断的根据实际情况变化。…

软件测试的流程是什么?软件测试的基本流程

软件测试的基本流程 软件测试培训班的老师经常向学员强调测试的基本流程,因为软件测试和软件开发一样,是一个比较复杂的工作过程,如果无章法可循,随意进行测试势必会造成测试工作的混乱。为了使测试工作标准化、规范化&#xff0c…

pl oracle导出数据,利用PL/SQL从Oracle数据库导出和导入数据

转自:https://www.jb51.net/article/109768.htm 本文实例为大家分享了使用PL/SQL从Oracle数据库导出和导入数据的方法,供大家参考,具体内容如下 1.导出数据: 方式一:工具—>导出用户对象—>导出.sql文件 注:这种方式导出的是建表语句和存储过程语句 方式二:工具—…

导出Oracle数据库字典

在创建数据库表时,对应的表列信息存储于一下几个表中,通过以下几个表信息可以导出数据字典。 1 USER_TABLES 用户表信息 2 USER_TAB_COMMENTS 用户表备注信息 3 USER_TAB_COLUMNS 用户表列信息 4 USER_COL_COMMENTS 用户表列备注信息 CREATE OR REPLACE…

Oracle导出表结构和表数据

导出文件 找到oracle安装目录ORACLE_HOME,进入bin目录,找到 exp.exe exp 用户名/密码数据库连接 filedmp文件导出路径 log日志文件输出路径 例子: exp username/password127.0.0.1:1521/orcl filef:\123.dmp logf:\456.log 可能出现的错误 …

Oracle中的数据导出(4)

目录 法一:使用SQL plus命令脚本 法二:使用PLSQL Developer工具 前几篇文章描述了如何将Oracle中的数据导出到库外,但是导出的数据结果都是文本文档,这样页面查看不和谐,编辑又略显麻烦。因此这篇文章将描述如何将Or…

ORACLE之数据泵导出

ORACLE之数据泵导出 导出数据泵(expdp):执行导出时,expdp先创建MT表,并将对象的信息插入MT表,开始执行实际的导出任务,当所有的对象都导出以后,将MT表也一起导出到转储文件中&#…

ORACLE 导出数据csv文件,数字显示科学计数法

场景 ORACLE 查询数据,使用PLSQL导出csv数据,发现导出的数据字段,如果长度超过了12或者15,用excel打开,会自动显示成科学计数法,如下 解决方案 把oracle查询出来字段显示成 "字段",发现这样导出的…

从Oracle导出数据到TXT文件从TXT文件导入数据到Oracle

如果是txt文件的数据导入oracle中,数据量大的话用pl/sql会卡死,那么就要用到sqlload命令。 前两天在做一个不算任务的任务,用shell脚本将数据库中的数据导出到文件,在万能的百度上找了一些资料,自己亲手实践了一番&am…

oracle导出到hive,从Oracle导出数据并导入到Hive

1、配置源和目标的数据连接 源(oracle): 目标(Hive 2.1.1),需要事先将hive的驱动程序导入HHDI的lib目录中。 Hive2.1.1需要的jar包如下:可根据自身情况更换hadoop和hive的jar包。 hadoop-common-2.6.0.jar hive-common-2.1.0.jar hive-jdbc-2…

Oracle导出数据字典

由于项目是不断迭代更新,数据库表也是根据需求不断更改,导致现在数据库50多张表数据字典都没有整理,现在领导突然需要数据字典,一时很难弄出来,于是就想通过一个快捷的办法生成数据字典,具体的步骤如下&…

Oracle数据表导入导出_数据迁移用

0.背景:突然接到居家办公的通知,工作用数据全部在内网,需要全部拷出带走,最大的单个表3.7G左右。根据往常经验将Oracle库中表导出为xlsx(方便与同事沟通使用),发现效率太低,且受制于…

php设置中国时区方法

当我们输出:echo date(Y-m-d H:i:s,strtotime(now)); 发现输出的时间和当前系统的时间不一致的时候,我们需要改php.ini配置文件,使得输出的时间和当前系统时间一致 方法一:php.ini配置文件中设置中国时区,代码如下 da…

nginx php 设置时区,laravel5.8(二十)解决时区设置差8个小时解决办法

在使用laravel日志的时候,发现了一个问题,laravel日志记录的时候,总是要比我当前的时间差8个小时。 在服务器端输出格式化时间,也是当前的时间,这个就有点奇怪。百度了一下。 原来从php5.1.0开始,php.ini里…

php配置设置时区,php如何设置时区

php设置时区的方法:可以使用函数ini_set(date.timezone,Asia/Shanghai)来设置时区。还可以使用函数date_default_timezone_set(‘Asia/Shanghai)来设置。 在程序PHP 5以上版本的程序代码中使用函数date_default_timezone_set(‘Asia/Shanghai);来设置时区&#xff0…

php中的时间函数(如何设置时区有4种方法)------与时间相关的函数 (time、date、m‘ktime、microtime(true)、strtotime)

1.如何设置时区:服务器默认的时间都是国家统一时间格林威治,所以在使用服务器前需要设置当前服务器的时区位于用于指定的时区。 设置时区: 1、找到php.ini文件,找到date.zonetime。 (1)date.zonetime 大洲/城市 …

php:php时区的三种设置方式

格林威治标准时间和我们的时间(北京时间)差了正好8个小时。如果不设置时区,php时间默认使用格林威治标准时间。 方法一(推荐) 在php.ini里加上找到date.timezone项,设置date.timezone “Asia/Shanghai”,重启环境就…

Telnet的简单使用

当我们在cmd客户端输入telnet ip的时候,会提示telnet 不是内部或外部命令的错误,这是因为我们的Windows系统的Telnet客户端程序没有开启。例如: 1. 开启Windows系统的Telnet客户端 1) 打开控制面板,点击程序功能&…