写在文前:
欢迎你接触软件测试这一行业。
刚接触它时,你肯定或多或少会有疑惑,我该做什么?大家口口相传的软件测试就是 【点点点】 真的是你日常的工作吗?
那么本文我将陪你一起,对我们刚接触到测试这个工作以后,应该怎么样学习测试方法、开展测试工作来做一个梳理。
1、软件测试的工作内容是什么?
首先,我们要了解到软件测试的工作流程;
我们已经开始进入工作了,就不能够再一言不发地埋头苦干了,沟通是你需要掌握的第一个技巧了。
如何进行有效进行沟通?
先来了解一下团队的组成:项目经理,产品经理,开发团队(前端,后端),测试团队,UI
在我们公司一个比较完善的人员组成是:前端1人、移动端1人、后端2-4人、测试1人、产品经理1人、UI1人
下面是我们日常要沟通的人员:
对于整个测试团队人员的角色和职责如何理解:
- 测试工程师/测试人员:负责执行测试用例,发现并报告软件中的缺陷,参与缺陷的跟踪和验证。
- 测试经理/测试主管:负责测试团队的管理和组织,制定测试策略和计划,协调进度,负责测试质量的保证。
对于整个测试团队的目标如何理解:
- 发现缺陷:通过测试活动发现软件中的缺陷,确保软件质量。
- 验证功能:验证软件功能是否符合需求和规格说明,保证软件的功能性。
- 提高质量:通过测试过程持续地提高软件质量,站在用户角度考虑问题。
- 降低风险:通过测试活动降低软件发布和运行过程。
其次,我们也要通晓软件测试的文档如何管理维护:
测试用例
测试用例是日常工作中必不可少的内容,也是我们接触软件测试的基础的重中之中,一个好的测试用例的编写,有助于我们有效地开展测试。
测试用例中一个必须部分是对预期输出或结果的定义。
1.其一是对程序的输入数据的描述
2.其二是在上述输入数据下的正确输出结果的精确描述
测试报告
平时用的是禅道这个工具,在项目执行创建以后,可以创建一个测试单,在测试单里编写测试用例。方便项目管理。
下面是对于测试报告是什么chatgpt的回答。
- 概述:介绍测试的目的、范围和背景信息。
- 测试执行情况:描述测试的执行情况,包括测试周期、测试用例执行情况、覆盖范围等。
- 测试环境:列出测试所用的软硬件环境,包括操作系统、浏览器、数据库等信息。
- 测试方法:说明测试所采用的方法论、技术和工具。
- 测试结果:总结测试的结果,包括通过的测试用例数量、失败的测试用例数量、未执行的测试用例数量等。
- 缺陷报告:描述发现的缺陷,包括缺陷的严重程度、优先级、重现步骤、影响范围等信息。
- 风险评估:对测试中发现的风险进行评估和分析,包括风险的影响程度和可能性。
- 建议和改进:根据测试结果和风险评估提出改进软件质量和测试过程的建议和意见。
- 总结:对测试活动进行总结和回顾,提出未来改进的建议和展望。
测试报告是测试工作的重要成果之一,它为项目管理、开发团队和其他利益相关者提供了对软件质量和测试过程的全面了解,帮助他们做出正确的决策和改进措施。
缺陷报告
缺陷报告就相当于是我们在禅道上面的提BUG,涉及到的内容多数是在测试工作开展之后,在测试过程中遇到的与需求不相符合的功能实现
下面是对于缺陷报告所涉及到的内容chatgpt的回答
- 缺陷编号:为每个缺陷分配一个唯一的标识符,方便追踪和管理。
- 缺陷标题:简洁明了地描述缺陷的主要问题或现象。
- 缺陷严重程度:根据缺陷的影响程度和严重性,分配一个严重程度等级,如严重、一般、轻微等。
- 缺陷优先级:根据缺陷对系统功能和质量的影响程度,分配一个优先级等级,如高、中、低等。
- 缺陷描述:详细描述缺陷的现象、触发条件、重现步骤、期望行为和实际行为等信息。
- 缺陷影响范围:描述缺陷对系统功能、性能或用户体验的影响范围,以及可能的风险和后果。
- 缺陷环境:描述缺陷出现的环境和条件,包括操作系统、浏览器、设备等信息。
- 附件:包括可能的截图、日志文件、测试数据等附件,帮助更好地理解和重现缺陷。
- 报告人和报告时间:记录报告缺陷的测试人员和报告缺陷的时间。
缺陷报告是测试团队向开发团队和项目管理人员传达发现的问题的主要方式之一。
2、软件测试的项目流程是什么?
让我们先来了解一下整个团队的开发流程是怎样的(敏捷开发流程为例):
项目立项阶段(项目经理):
确定项目目标和范围:明确项目的目标和期望的成果,确定项目的范围和边界。
制定项目计划:规划项目的时间、资源,确定项目的执行策略和方法。
需求分析阶段(产品经理):
收集需求:与利益相关者沟通,收集项目需求和功能要求。
分析需求:对收集到的需求进行分析和整理,明确需求实现方式。
制定需求规格说明书:主要是编写需求文档,详细描述项目的功能和行为,应该要呈现出什么样的效果。
界面设计:设计项目的用户界面,确定页面布局,UI来进行界面设计。
设计阶段(开发团队-前端+后端):
技术方案设计:根据需求和规格说明书,制定项目的技术架构和设计方案。
界面设计:设计项目的用户界面和交互流程,确定页面布局和功能设计。
数据库设计:设计项目的数据库结构和数据模型,确定数据表和关系设计。
开发阶段(开发团队-前端+后端):
编码实现:根据设计文档和规格说明书,进行程序编码和开发工作。
单元测试:对开发的功能模块进行单元测试,验证功能的正确性和健壮性。
测试阶段(测试团队):
集成测试:将各个模块集成到一起,进行系统级别的测试,验证模块之间的交互和整体功能,咱们公司一般是前后端和测试一块进行集成测试,主要为了确保不同模块之间的交互和系统整体功能正常。
功能测试:验证项目的功能是否符合需求和规格说明书。
因为目前只做到了功能测试,所以先讲到功能测试阶段,后面如果学习到其他测试内容会进行补充
测试的工作流程
那么,测试的工作流程是什么样的呢?
- 需求分析阶段:
**维基百科:**在建立一个新的或改变一个现存的系统或产品时,确定新系统的目的、范围、定义和功能时所要做的所有工作。
问:需求分析主要做什么?
先深入了解需求文档上面的内容,对于不明确的需求记录下来,一般来说在开始进入需求分析阶段之前,产品经理会发送需求文档让你了解产品,在你了解过整个产品需求是什么以后,你就要从各方面明确需求。
渠道可以通过:
1、需求文档
2、需求评审会议
需求评审会议是比较重要的一环,是在整个产品进行开发之前大家要进行讨论产品需求的一次议。对于在需求文档上面不明确的,开发和测试都可以在这个会议上提出疑问,前提是你一定要提前看这个需求文档,并且足够了解整个功能。
- 设计阶段:
1、设计测试数据。
比如在做下单操作的时候,你提前构建好下单所需要的商品、设置好商品的金额以及购买的个数;
2、制定测试策略和方法。
熟悉常用的测试方式,如等价类划分法、边界值法、错误猜测法、场景分析法等,一般来说等价类划分法要可以结合着边界值法来设计测试用例,场景分析法更加要注重贴近于需求来进行设计测试用例。这些设计测试用例的方法一定要足够熟悉。
3、准备测试工具。
测试工具的准备,目前就是根据利用禅道来进行测试用例的编写,能够更加方便地进行测试结果的同意、测试报告的生成。
4、设计测试用例
设计测试用例时,对于参数类的部分可以使用等价类划分法+边界值法,确定参数的输入。
比如说勾选类和多选类的组件,存在有对立的情况;
使用中台中新建礼品卡这一例子来讨论。
首先明确的是参数部分有哪些? 礼品卡名称、上传卡封面、面额、售价、库存、使用须知,这些使用等价类划分法+边界值法来进行分析测试用例即可,
对于选择有效期、选择适用商品、赠送他人的开启和关闭、是否赠送礼包这些,都属于两个或多个等价类,因为只能选择一种情况,比如你选择了赠送他人的开启,那开启就是有效等价类,关闭就是无效等价类。
然后创建礼品卡是一个完整的流程,在设计正向测试用例时,将这些参数、等价类的设计组合到一条测试用例里,组成完整的创建礼品卡的流程,这就是一条用例。
如果涉及到用户端、PC端的联动,礼品卡创建的有效期、库存、礼包等,能够在创建以后在界面上呈现出来的,可以在创建的时候就写到预期结果中去。
像下图这样组成一个比较庞大的测试用例,虽然很庞大,但是保证了创建礼品卡测试流程的完整性。
正确创建权益卡的用例编写
错误创建权益卡的用例编写
对于反向的测试用例,比如在填写权益卡参数的时候,将礼品卡名称设置为空,很明显这是一个不能被接受的错误,这单独作为一条测试用例,一个反向的测试点对应一条测试用例,在正向的测试用例组合完成以后,再进行反向测试用例的编写,就可以不写创建的步骤,只针对于这个测试点的错误来进行描述。
- 执行阶段:
1、执行测试用例,包括手动测试和自动化测试。
目前阶段能做的就是手工测试,但要做到完全模拟出测试用例的设计,根据你所设计的测试用例逐条来执行,确保在出现BUG的时候能够按照你的步骤来进行复现BUG。
下图是按照步骤执行的测试用例。
2、记录测试结果和缺陷。
如果出现问题,记得及时记录,做好复现工作。
下图是出现问题的测试用例步骤
出现缺陷以后,立刻停止手中的测试工作,确保本条BUG被完整复现并做好记录后,再执行下一条测试用例。
3、跟踪和管理缺陷的修复和验证过程。
将BUG提交给开发以后,如果他们对你的BUG描述读不懂,要求你复现的时候,不要着急,询问一下他们为什么看不懂之后再进行BUG复现工作,之后做好记录,下次对BUG进行描述的时候争取能够更加清晰。
- 评估阶段:
- 分析测试结果和缺陷统计信息。
- 评估软件质量和测试覆盖度。
- 提出改进测试流程和方法的建议。
- 报告阶段:
- 编写测试报告,总结测试活动和结果。
- 向项目管理者传达测试成果和建议。
- 改进阶段:
-
根据测试报告和评估结果,提出改进措施和建议。
-
修改测试计划和测试用例。
-
不断优化测试流程和方法,提高测试效率和质量。
3、软件测试你要掌握哪些知识?
可能你是刚毕业的学生,也可能你是打算转行进入软件测试这个行业,那么首先以下基本的理论你是必须要掌握的:
软件测试的定义、生命周期、工作流程、需求分析;
测试用例的设计、编写、评审;
bug的基本知识以及禅道的使用;
测试计划、测试报告的编写;
SVN、Git版本控制工具的使用;
搞定上面的这些基本必备内容,就已经知道可以做具体的实战内容,这个时候最好是先找一个web测试项目去做一下,假如一个项目拿到手之后,按照下面的一套流程跑一遍:
发布项目进行立项,建立项目组进行分工;
需求评审,学会如何看需求文档,进行需求分析,罗列测试点;
整理测试点,编写测试用例,然后进行用例评审;
执行测试,比如功能、界面、前后台、兼容性、数据库,对于发现的bug提交到禅道;
分析、总结、编写测试报告;
这个流程完整的跑一遍之后,只能说对于整体的测试流程算是掌握了,但是仍然不足以找到一份合适的工作,想要学会做功能测试,以下的内容也是必须掌握的:
Linux相关技能
操作环境、命令、安装数据库、部署测试环境等
数据库相关技能
各种命令用法、字段、增删改查
接口测试相关技能
接口测试基本理论、http协议、测试方法;
接口测试需求分析、用例编写、评审;
几种工具的掌握,jmeter、postman、soupUI;
APP测试相关技能
安装/卸载、离线、UI、登录等测试内容;
兼容性测试、monkey、fiddler抓包;
软件测试的目的
软件测试的主要目的是确保软件产品的质量和可靠性,以满足用户需求和预期。具体来说,软件测试的目的包括
4、如何进行团队配合处理BUG?
BUG的生命周期通常包括以下几个主要阶段:
- 新建(New):当测试人员或其他团队成员发现软件中的缺陷时,将其标记为新建状态,并记录缺陷的详细信息。
- 确认(Confirmed):经过验证后,确认缺陷的存在,并将其状态更新为确认状态。确认阶段通常由测试人员或负责缺陷管理的团队成员完成。
- 分配(Assigned):将已确认的缺陷分配给相关的开发人员或团队,负责处理和修复该缺陷。
- 修复(Fixed):开发人员根据缺陷的描述和复现步骤进行修复,并将修复后的代码提交到版本控制系统中。
- 重新测试(Reopen):测试人员对修复后的缺陷进行验证和重新测试。如果发现修复不完整或存在其他问题,将缺陷重新打开。
- 关闭(Closed):经过重新测试后,确认缺陷已被修复并且不再存在问题,将缺陷关闭,并记录相关的测试结果和修复信息。
我们在进行执行测试以后,新建BUG提交到禅道上面,
如果问题出在前端,而不涉及到后端,由测试团队确认BUG后,分配给前端开发人员。
如果涉及到因为后端参数等没有返回导致的问题,在和前端人员进行沟通交流以后,可以先将这个BUG指派给后端,让前端人员和后端进行交涉,后端将前端所需要的参数等传递过去之后,再由后端将BUG指派给前端处理。
开发人员根据缺陷的描述和复现步骤进行修复,并将修复后的代码提交到版本控制系统中。
测试人员对修复后的缺陷进行验证和重新测试。如果发现修复不完整或存在其他问题,将缺陷重新打开。 经过重新测试后,确认缺陷已被修复并且不再存在问题,将缺陷关闭,并记录相关的测试结果和修复信息。
总结
第一篇文章主要介绍了
1、软件测试做什么?
2、软件测试怎么做?
3、软件测试的流程
4、如何与团队进行配合
认真读完本文,你应该会有一些不错的收获,后续我会持续更新,敬请期待。