软件工程
📌 Devops
一种软件开发与运维的文化与方法论,包括持续集成、持续交付、持续部署、自动化测试、容器化等技术和工具,旨在实现快速迭代和快速响应客户需求的目标。
核心思想: 将开发和运维团队紧密结合,共同协作,加快软件开发、测试和部署的速度,并保证软件的稳定性和可靠性。
🚁 CI/CD
持续集成/持续交付或部署
- CI(如jenkins、Azure DevOps、GitHub Actions)检测到代码更新时,自动触发构建。构建过程包括编译、单元测试、流水线质量检查等。
- 构建成功后,将构建产物如Docker镜像上传到镜像仓库。
- CD(如K8S)检测到有构建产物时自动触发部署,包括创建或更新容器、进行集成测试、自动化测试等。
🚁 敏捷持续集成
若干个小的迭代周期,每个迭代周期都会产生一个可用的软件产品。
特点: 强调团队合作与沟通,更快获取反馈并进行调整。
目标: 提高软件质量、更快发现问题、降低问题修改成本。
🚁 敏捷测试
Agile Testing,是遵循敏捷宣言的一种测试实践,它强调在敏捷开发过程中,通过迭代和持续反馈来确保软件的质量和用户满意度。
- 强调从客户角度进行测试
- 重点关注迭代测试新功能
- 强调尽早测试
- 强调持续反馈
- 预防缺陷重于发现缺陷
- 强调团队合作
📌 面试题
🚁 项目中遇到的最具挑战的测试问题是什么?你是如何解决的?
高并发场景下的订单重复提交问题
场景:在性能测试中,当并发数达到500时,发现有1%的订单重复提交(同一用户创建了多个相同订单)
问题分析:通过查看接口日志,发现用户点击“提交”按钮后,前端未禁用按钮,导致多次发送请求;同时,后端未做幂等性校验(如未使用唯一订单号)
解决过程:
- 前端:建议开发添加“提交后禁用按钮”的逻辑;
- 后端:要求开发添加幂等性校验(如生成唯一的request_id,同一request_id只能处理一次);
- 测试:修改性能测试脚本,模拟多次点击“提交”的场景,验证幂等性校验是否有效;
结果:优化后,重复提交率降至0,满足性能指标。