测试的基本概念

什么是软件测试

  1. 软件测试它就是一个过程
  2. 测试就是对软件的全方位进行全面的校验.
  3. 通过测试技术验证软件是不是符合用户的信息.

测试和开发的区别

在工作上的区别:

开发人员通过编程技能来开发和实现这个软件.

测试人员通过测试技能来验证软件是否符合用户需求.

在技术上的要求:

开发人员更加注重深度,而测试人员更加注重广度.

🔥测试和调试的区别

目的: 调试是发现问题和解决问题, 测试是发现问题和验证问题.

人员: 调试是开发人员来完成, 测试是测试 + 开发人员来完成(有一些白盒测试是开发人员完成的).

阶段: 调试是在开发阶段, 测试贯穿整个软件的生命周期(在需求阶段就开始了).

方法: 调试通过Debug,打印日志等. 测试通过白盒测试, 黑盒测试, 接口测试, 自动化测试等.

🔥测试人员需要具备的素质

非技术: 学习能力, 合作能力, 沟通能力, 抗压力, 文字表达能力

技术: 编程能力, 编写测试用例能力.

需求

什么是需求

需求分为两种,一种为用户需求,另一种为软件需求或者功能需求.

用户需求: 就是甲方提出的要求或者终端用户使用时需要实现的效果.

软件需求: 详细描述了开发人员必须要实现的软件功能.

为什么要有需求

需求是开发的标准,也是测试人员编写测试代码的依据.

如何深入理解需求

多参加各种会议,会议中会对产品进行剖析,深入了解产品的细节.

多阅读相关文档,(技术文档, 需求文档, bug库)

测试用例的概念

测试用例就是为了测试向被测试的系统提供的一组集合.里面包含了 测试环境, 操作步骤, 测试数据, 预期结果.测试用例是测试人员测试的依据.也可以减少测试工作的冗余度. 测试用例还是实行自动化的依据.

🔥🔥🔥bug的概念

bug就是程序没有实现用户合理的预期功能的要求.

如何描述一个bug

**1、发现问题的版本 **

开发人员需要知道出现问题的版本,才能够获取对应版本的代码来重现故障。并且版本的标识也有利于

统计和分析每个版本的质量。
2、问题出现的环境 **
环境分为硬件环境和软件环境,如果是web项目,需要描述浏览器版本,客户机操作系统等,如果是
app项目,需要描述机型、分辨率、操作系统版本等。详细的环境描述有利于故障的定位。
3、错误重现的步骤 **
描述问题重现的
最短
步骤。

**4、预期行为的描述 **

要让开发人员指导怎么样才是正确的,尤其要以用户的角度来描述程序的行为是怎样的。如果是依据需

求提出的故障,能写明需求的来源是最好的。

要相信:测试人员是最懂需求的。

**5、错误行为的描述 **

描述错误的现象。crash等可以上传log,UI问题可以有截图。

6、其他

某些公司会有一些其他的要求,例如故障的分类:功能故障,界面故障,兼容性故障等。有些有优先级

的分类,严重影响测试需要开发人员优先修改的,可以设置优先级为高。

bug的级别

Blocker(崩溃)Critical(严重)Major(一般)Minor(次要)

bug的生命周期

● New:新发现的Bug,未经评审决定是否指派给开发人员进行修改。

● Open:确认是Bug,并且认为需要进行修改,指派给相应的开发人员。

● Fixed:开发人员进行修改后标识成修改状态,有待测试人员的回归测试验证。

● Rejected:如果认为不是Bug,则拒绝修改。

● Delay:如果认为暂时不需要修改或暂时不能修改,则延后修改。

● Closed:修改状态的Bug经测试人员的回归测斌验证通过,则关闭Bug。

● Reopen:如果经验证Bug仍然存在,则需要重新打开Bug,开发人员重新修改。

无效的bug:open->closed open-rejected-closed

软件的生命周期

需求分析, 计划, 设计, 编码, 测试, 运行维护.

常见模型

瀑布模型

start -> 需求分析 -> 计划 -> 设计 -> 编码 -> 测试 -> end

特点: 是线性的.

优点: 每个阶段干什么都非常的明确

缺点: 发现的问题太晚,会导致人力, 时间资源的浪费.

适用: 比较小的项目.

螺旋模型

特点: 软件进行到每一个阶段都会进行风险分析.

优点: 风险分析可以避免一些问题暴露在线上.

缺点: 风险分析失败会导致问题直接暴露在线上.

适用: 适用与大型的,多风险的项目.

增量与迭代模型的区别

增量是逐快建造,迭代是精益求精. 就向画画: 增量是先画头再画身子,最后画腿. 而迭代是先画整体轮廓再细化.

敏捷

个体与交互重于过程和工具

可用的软件重于完备的文档

客户协作重于合同谈判

响应变化重于遵循计划

在每对比对中,后者并非全无价值,但我们更看重前者。

scrum

角色: scrum由产品经理, 项目经理, 研发团队(前端开发, 后端开发, 测试, 设计)

工作流程:

产品负责人负责整理user story,形成左侧的product backlog。

发布计划会议:product owner负责讲解user story,对其进行估算和排序,发布计划会议的产出

就是制定出这一期迭代要完成的story列表,sprint backlog。

迭代计划会议:项目团队对每一个story进行任务分解,分解的标准是完成该story的所有任务,每

个任务都有明确的负责人,并完成工时的初估计。

每日例会:每天scrum master召集站立会议,团队成员回答昨天做了什么今天计划做什么,有什

么问题。

演示会议:迭代结束之后,召开演示会议,相关人员都受邀参加,团队负责向大家展示本次迭代取

得的成果。期间大家的反馈记录下来,由po整理,形成新的story。

回顾会议:项目团队对本期迭代进行总结,发现不足,制定改进计划,下一次迭代继续改进,已达

到持续改进的效果。

V模型

特点是左边是开发,右边是测试,测试被分为许多类型.

缺点是介入需求太晚了.

W模型

W模型特点:测试的对象不仅是程序,需求、设计等同样要测试,测试与开发是同步进行的

W模型优点:**有利于尽早地全面的发现问题。**例如,需求分析完成后,测试人员就应该参与到对需

求的验证和确认活动中,以尽早地找出缺陷所在。同时,对需求的测试也有利于及时了解项目难度

和测试风险,及早制定应对措施,显著减少总体测试时间,加快项目进度。

W模型缺点:**测试和开发活动也保持着一种线性的前后关系. **上一阶段完全结束,才可正式开始下一个阶段工作。无法支持敏捷开发模式。并不能拥抱变化,不适用于敏捷.

🔥🔥🔥软件测试的生命周期

需求分析 -> 测试计划 -> 测试设计, 测试开发 -> 测试执行 -> 测试评估

如何开始第一次测试

刚进入公司的准备工作:

1、阅读所有项目有关的文档,包括:需求文档、设计文档、用户手册

2、尽可能参加各种项目会议,了解项目的背景、人员组成、尽可能的了解需求和业务。特别针对业务

专业性较强的项目,例如银行业务,需要了解各种业务知识,如高低柜、一二三类账户等、存款、贷款

等。

3、熟悉项目所使用的测试管理工具、配置管理工具,获取对应的地址和登录方式

4、阅读已有的测试方案和测试案例

5、阅读旧有的bug库,了解系统功能。尤其重要的是和现有的测试团队保持一致的故障定级原则

6、了解公司的规范要求,特别是用例编写规范、用例执行规范、bug提交规范、测试工具工具使用规

范等

当第一次测试来临时,我们需要和组长确定:

1、测试的计划是什么?

2、测试的内容是什么?test case有多少?安排了几天执行?有没有自由测试的时间?

3、我要测试的内容开发人员是谁?需求人员是谁?

4、分配给我的测试内容是否需要特殊的测试资源?资源是否满足需要?

在我们确认了以上内容之后,就可以开始测试的执行了

🔥🔥🔥当与开发产生争执时的解决办法

测试经常会遇到这些问题:

这不是bug

这个bug的级别太高了

bug影响不大,暂不修改

当遇到这些问题时,解决方式:
1、先检查自身,是否bug描述不清楚
2、站在用户角度考虑问题 应该让开发人员了解到Bug对用户可能造成的困扰 ,这样才能促使开发人员

更加积极地、高质量地修改Bug。在争执时,可以问一句:如果你是用户,你可以接受么?

**3、BUG定级要有理有据 **

BUG定级时,不仅要参考BUG级别,还要考虑BUG是否会影响到流程,往往用户的BUG级别和我们的

是有区别的,需站在用户的角度定考虑定位级别
4、提高自身的技术和业务水平. 不光要提出问题, 最好也能提出解决方案
5、开发人员不接受时,不要争吵
6、发起三方讨论会

相关推荐
测试杂货铺3 小时前
外包干了2年,快要废了。。
自动化测试·软件测试·python·功能测试·测试工具·面试·职场和发展
码农派大星。4 小时前
软件测试--BUG篇
功能测试·bug
测试界萧萧4 小时前
外包干了4年,技术退步太明显了。。。。。
自动化测试·软件测试·功能测试·程序人生·面试·职场和发展
王解6 小时前
Jest项目实战(4):将工具库顺利迁移到GitHub的完整指南
单元测试·github
Devil枫17 小时前
Vue 3 单元测试与E2E测试
前端·vue.js·单元测试
小袁在上班1 天前
Python 单元测试中的 Mocking 与 Stubbing:提高测试效率的关键技术
python·单元测试·log4j
测试19981 天前
外包干了2年,快要废了。。。
自动化测试·软件测试·python·面试·职场和发展·单元测试·压力测试
安冬的码畜日常1 天前
【The Art of Unit Testing 3_自学笔记06】3.4 + 3.5 单元测试核心技能之:函数式注入与模块化注入的解决方案简介
笔记·学习·单元测试·jest
王解1 天前
Jest项目实战(2): 项目开发与测试
前端·javascript·react.js·arcgis·typescript·单元测试
qq_433716951 天前
测试分层:减少对全链路回归依赖的探索!
自动化测试·软件测试·功能测试·测试工具·回归·pytest·postman