个人简历面试复习-----测试理论篇(一)

目录

1.软件测试流程

2.如何去设计测试用例

3.印象最深的bug

4.提交一个bug给开发,开发不认为这是一个bug怎么办

5.如果遇到产品需求变更怎么办

6.如何定位一个bug是前端bug还是后端bug

7.接口测试怎么测

8.在做接口测试时,需要用到用户信息,Token值怎么办

9.性能测试怎么测

10.怎么做自动化测试

[11. Bug 的回归](#11. Bug 的回归)

12.开发模型


1.软件测试流程

1.首先产品会组织我们测试和开发进行一个需求评审,我们在需求评审上会去熟悉需求,包括我们对需求一些不合理的地方,我们可以提出自己的意见和建议

2.需求评审结束后,我们就开始制定测试计划,制定好版本要由谁来测,要测哪些东西,要测多久,然后我们再根据分配任务,就自己去写各自需求的测试用例

3.等测试用例完成后,这个时候后端就差不多把接口开发出来了,我们就可以先对接口进行接口测试,也就是使用postman去调用接口,看这个接口是否通,是否返回跟接口文档一致

4.接口测试完毕后,前端也差不多对APP开始提测了,我们可以对提成版本进行一个冒烟测试,简单测一下,看功能是否能够正常实现,如果冒烟测试通过,我们就可以进行专门的功能测试了,我们就拿好我们之前写好的测试用例,进行这样一个执行,检测他有没有bug,如果发现bug,我们也是通过禅道这样的bug管理软件,把bug提上去给开发让开发解决,并且我们对bug进行这样一个持续的跟踪,直到bug进行关闭

5.等到整个功能测试完成以后呢,我们还会进行一些专项性测试,比如一些兼容性测试,网络测试像弱网测试,可能还会进行安全测试

6.等新功能测试完成后,我们还会对老功能进行回归测试,已保证老功能也是没有问题的

7.所有测试完成之后,我们就会编写一个测试报告,写清楚这个版本测试是否通过,这个版本的测试信息,像测试人测试时间或测试内容或者版本有没有什么可能遗留的一些问题

8.整个的测试完成之后,开发就开始打包上线了,等上线通过后,还会进行一些线上验证,把线上的包下载下来用一下,看新的功能是否真正上线了,老功能是否受到一些影响,并且我们还会可能持续的跟踪一些用户的反馈

2.如何去设计测试用例

1.使用场景法去拆分这个功能有哪些功能点

2.然后使用等价类去划分每个功能点,去看他有哪些有效的情况和无效的情况,涉及到边界值的地方,使用边界值法去进行设计测试用例

3.除了以上测试,还可以考虑一些专项测试,比如兼容性测试,弱网测试,考虑权限测试,考虑一些数据的数据效验,最后考虑一些ui

3.印象最深的bug

4.提交一个bug给开发,开发不认为这是一个bug怎么办

1.首先我们会看这个是一个什么样的bug,如果是功能性bug,我们可以先提交给开发,并且可以演示给开发看,这确实是存在这样一个bug的,如果说,还觉得不行,我们可以跟开发的领导进行一些反馈

2.如果说是需求不明确所导致的问题,这种情况下,我们去找产品,让产品来明确这个需求到底是怎么样的,按产品的一个意见去做就可以了

5.如果遇到产品需求变更怎么办

1.考虑在什么样的情况下的一个需求变更

如果只是在开发阶段,他变更需求了,时间还很充足,那没关系,开发就重新开发,测试就重新去写测试用例

如果是时间很紧急,明天就上线了,这个需求不行,要重新改,我们可以跟产品提出我们的意见,首先呢,这个需求变更能不能放到下一个版本去处理,这个版本还是按原来的功能先上,如果说可以的话最好,如果不可以的话,我们可以沟通一下,看能不能延长这个上线时间,延迟发布时间,因为要给我们测试留足够的测试时间,以避免这种质量不行所带来的风险,包括我们可以在测试报告里面写清楚这样一个情况,产品需求变更对我们测试造成的一些影响,如果实在是这些方法都不行,那我们也只能加班加点的去处理了

6.如何定位一个bug是前端bug还是后端bug

我们可以使用fiddler去抓包查看是前端bug还是后端bug

1.首先我们可以使用fiddler去抓包,看看发送请求有没有问题,比如一个登录功能,我们输入正确的账号和密码,点击登录,没有登录成功,正确密码是123456,然而发送请求的密码是12345,或者我们点击登录,这个请求根本没有发送,这个时候就是前端,还没到我们服务器呢

2.如果我们正确发送请求,服务器这边有问题,就像今天服务器关机了,或者服务器通了,他返回信息不对,就像我们发送正确的用户名和密码,正常返回登陆成功,但是他返回登录失败,这时候属于是后端问题,因为他没有处理这个逻辑出来问题,或者是压根没处理

哪边流程出了问题就是谁的问题

3.数据库信息问题属于后端问题

7.接口测试怎么测

使用jmeter测试

1.先添加线程组

2.然后再添加http请求

3.然后再添加查看结果树

4.在http请求里面再具体添加这个接口的一些信息,比如接口的ip地址,url地址还有接口的请求参数,还有接口的请求方式

5.添加完信息后,我们再去调用接口,看接口的结果树的返回结果,看接口有没有通,是否返回正确的结果

6.除此之外,我们还可以搞些错误的传参,看接口会不会报错

7.对于一些涉及到数据库的接口,还可以去数据库看看,数据库有没有发生变化

8.我们还可以使用fiddler抓包看看前端发出去的请求有没有问题,对于一些加密的数据,看看他有没有加密,能不能被篡改

8.在做接口测试时,需要用到用户信息,Token值怎么办

1.token值:用它来进行鉴权,具有唯一性,具有临时性

登录以后生成的,我们可以先登录,获取到token值,这个token值他会在返回结果里面返回,我们在要使用的地方去引用一下这个token值就可以了,使用的地方一般可能是传到头文件里面,或者直接传到他的参数里面

2.我们可以先通过登录获取到这个token值,然后我们在jemeter里面,通过正则表达式提取器,写一个正则表达式,比方说(.*?)把这个token提取下来,然后把他设置成一个参数,在后面需要用到的地方,使用${参数名}去引用这个参数就可以了

9.性能测试怎么测

使用jemeter,先添加线程组,http请求,聚合报告

我们可以先添加少量线程数,持续跑一段时间,看一下聚合报告里面的值,包括他的错误率,吞吐量,响应时间,然后往上加线程数,去观察聚合报告的吞吐量这个值,发现不管怎么加,吞吐量不变,这个时候就达到了他的一个瓶颈了

另外呢,在做压测的时候,可以在服务器上使用一个top指令,去监测服务器上的性能指标,可以看到被压服务器上的一个cpu占有率,内存占有率

10.怎么做自动化测试

1.首先使用python的requests库去调用接口,去看一下接口的请求方式,get请求就用requests.get,post请求就用requests.post,然后跟jemeter一样,添加他对应的ip地址和url地址还有他的参数,把发送的信息打印出来,添加一个assert断言,对比一下预期跟结果是否一致,最后呢,还可以添加一个pytest框架,把用例封装成方法,如果预期跟实际一致,返回绿色,如果预期跟实际不一致,那就返回红色,还可以通过pytest生成一个测试报告

11. Bug 的回归

Bug 回归是指开发修复 Bug 后,测试人员再次验证该问题是否已解决,并确保修复没有引入新问题的过程:

  1. 验证原 Bug:按照原 Bug 的复现步骤,确认问题已不复存在。
  2. 验证关联功能:检查与该 Bug 相关的模块、依赖功能是否正常,避免 "修复一个 Bug,引出十个新 Bug"。
  3. 回归测试用例:执行相关的测试用例,确保核心功能不受影响。
  4. 结果确认:若验证通过,关闭该 Bug;若仍存在或出现新问题,重新打开并反馈给开发。

12.开发模型

瀑布模型

核心特点

  • 线性顺序:阶段严格按顺序执行
  • 阶段不可逆:必须完成上一阶段,才能进入下一阶段
  • 文档驱动:每个阶段都要输出完整文档
  • 需求必须提前明确,中途很难改需求

优点

  • 流程清晰、管理简单
  • 适合需求稳定、规模小、不易变更的项目
  • 文档齐全,便于交接和审计

缺点

  • 风险高:后期才看到成品,问题发现晚
  • 不适应需求变化,改造成本极高
  • 灵活性差,不适合互联网快速迭代项目

敏捷模型

敏捷开发是一种以人为核心、迭代、循序渐进、快速响应需求变化的软件开发方法。

它不追求一开始就把所有需求定死、一次性做完,而是把项目拆成很多小周期(迭代),每轮都做出可运行、可演示的软件,持续交付、持续优化。

scrum模型

  1. 定义

Scrum 是一种轻量级敏捷开发框架,以短周期迭代(Sprint)为核心,实现快速交付、持续改进。

  1. 三大角色

  2. **Product Owner(PO)**负责需求优先级、产品价值、Backlog 管理。

  3. Scrum Master保障流程、清除障碍、促进协作。

  4. 开发团队跨职能、自组织,负责交付可用软件。

  5. 三大工件

  6. Product Backlog:产品需求池

  7. Sprint Backlog:迭代任务列表

  8. 增量(Increment):迭代结束可交付的可用软件

  9. 五大事件

  10. Sprint 计划会:确定迭代目标与任务

  11. Sprint 迭代:周期 2~4 周

  12. 每日站会:15 分钟,同步进度与障碍

  13. Sprint 评审会:演示成果、收集反馈

  14. Sprint 回顾会:总结问题、优化流程

  15. 核心特点

  • 迭代增量开发
  • 快速响应需求变化
  • 强调透明、检视、适应
  • 轻流程、重交付
相关推荐
Java练习两年半2 小时前
互联网大厂 Java 求职面试:技术栈与微服务深度解析
java·微服务·面试·技术栈
Moment2 小时前
想转 AI 全栈?这些 Agent 开发面试题你能答出来吗
前端·后端·面试
abant22 小时前
leetcode 739 单调栈模板题
算法·leetcode·职场和发展
pao__pao_10 小时前
计算机系统大作业 程序人生-Hello’s P2P
程序人生·职场和发展·课程设计
java1234_小锋10 小时前
Java高频面试题:Redis的Key和Value的设计原则有哪些?
java·redis·面试
munubak10 小时前
程序人生-Hello’s P2P
程序人生·职场和发展
iPadiPhone10 小时前
流量洪峰下的数据守护者:InnoDB MVCC 全实现深度解析
java·数据库·mysql·面试
努力学算法的蒟蒻10 小时前
day109(3.10)——leetcode面试经典150
面试·职场和发展
芝士爱知识a11 小时前
【程序人生】码农考公指南:是“降维打击”还是“围城自困”?
程序人生·职场和发展·程序员·公务员·考公·职场规划