跳转至

软件工程

📌 Devops

一种软件开发与运维的文化与方法论,包括持续集成、持续交付、持续部署、自动化测试、容器化等技术和工具,旨在实现快速迭代和快速响应客户需求的目标。

核心思想: 将开发和运维团队紧密结合,共同协作,加快软件开发、测试和部署的速度,并保证软件的稳定性和可靠性。

🚁 CI/CD

持续集成/持续交付或部署

  1. CI(如jenkins、Azure DevOps、GitHub Actions)检测到代码更新时,自动触发构建。构建过程包括编译、单元测试、流水线质量检查等。
  2. 构建成功后,将构建产物如Docker镜像上传到镜像仓库。
  3. CD(如K8S)检测到有构建产物时自动触发部署,包括创建或更新容器、进行集成测试、自动化测试等。

🚁 敏捷持续集成

若干个小的迭代周期,每个迭代周期都会产生一个可用的软件产品。

特点: 强调团队合作与沟通,更快获取反馈并进行调整。

目标: 提高软件质量、更快发现问题、降低问题修改成本。

🚁 敏捷测试

Agile Testing,是遵循敏捷宣言的一种测试实践,它强调在敏捷开发过程中,通过迭代和持续反馈来确保软件的质量和用户满意度。

  1. 强调从客户角度进行测试
  2. 重点关注迭代测试新功能
  3. 强调尽早测试
  4. 强调持续反馈
  5. 预防缺陷重于发现缺陷
  6. 强调团队合作

📌 面试题

🚁 项目中遇到的最具挑战的测试问题是什么?你是如何解决的?

高并发场景下的订单重复提交问题

场景:在性能测试中,当并发数达到500时,发现有1%的订单重复提交(同一用户创建了多个相同订单)

问题分析:通过查看接口日志,发现用户点击“提交”按钮后,前端未禁用按钮,导致多次发送请求;同时,后端未做幂等性校验(如未使用唯一订单号)

解决过程:

  • 前端:建议开发添加“提交后禁用按钮”的逻辑;
  • 后端:要求开发添加幂等性校验(如生成唯一的request_id,同一request_id只能处理一次);
  • 测试:修改性能测试脚本,模拟多次点击“提交”的场景,验证幂等性校验是否有效;

结果:优化后,重复提交率降至0,满足性能指标。