| 题源类型 | 押题 |
| 年份/批次 | |
| 适用项目 | 某互联网公司线上商品交易与运营平台 |
| 主题概念 | 集成测试以概要设计和接口设计为依据,主要检查模块之间、模块与已集成软件之间的接口关系,并验证已组装的软件是否符合设计要求 |
| 常见方法 | 单元测试、集成测试、系统测试、验收测试和回归测试等,测试方法可以结合黑盒测试、白盒测试、灰盒测试和自动化测试使用 |
| 已选论文点 | 接口关系测试 / 核心链路组装测试 / 自动化回归测试 |
| 项目位置/技术/需求 | 在服务接口联调阶段,我们采用接口关系测试来解决模块单独可用但协作不稳定的问题 |
| 解决的问题 | 该平台按照用户、商品、订单、库存、支付、运营和对账等能力划分模块,各模块在单元测试中能够完成自身功能,但一旦进入联调,字段含义、状态编码、异常处理和调用时序稍有不一致,就可能导致订单状态错误或库存处理失败 |
| 解决的方法 | 为解决这一问题,我组织项目组依据概要设计和接口规范建立接口清单,重点检查入参出参、状态码、幂等标识、超时返回和异常提示等内容 |
| 具体的实现 | 具体实施时,各服务通过 Nacos 和 Dubbo 完成注册与调用,外部请求统一经过 Spring Cloud Gateway 进入系统,测试人员使用接口测试工具和日志平台核对调用结果 |
| 例子 | 以订单模块调用库存模块为例,测试时不仅验证库存充足时能否正常占用,还模拟库存不足、重复提交和接口超时等情况,检查订单状态是否保持正确 |
| 效果 | 通过接口关系测试,项目组在系统组装早期发现并修正了若干字段约定和异常处理问题,减少了后续业务链路联调的反复成本 |
| 项目位置/技术/需求 | 在核心交易流程联调阶段,我们采用核心链路组装测试来验证系统整体业务流程是否符合设计要求 |
| 解决的问题 | 如果只验证单个模块功能,无法判断系统组装后是否能够正确支撑真实业务流程 |
| 解决的方法 | 为解决这一问题,项目组围绕下单支付、订单关闭、退款处理和运营对账等场景设计集成测试用例,把网关、商品、订单、库存、支付、消息和定时任务等模块纳入同一条测试链路 |
| 具体的实现 | 具体执行时,测试环境使用 MySQL 准备基础商品和订单数据,Redis 保存热点活动和库存信息,RocketMQ 负责衔接订单状态变化后的后续处理 |
| 例子 | 以用户参与限时活动为例,请求进入系统后,需要完成活动校验、库存占用、订单创建、支付结果确认和消息通知等步骤 |
| 效果 | 通过核心链路组装测试,项目组能够发现模块之间的流程断点和状态不一致问题,确保系统不是局部可用,而是在整体流程上满足业务要求 |
| 项目位置/技术/需求 | 在版本迭代和缺陷修复阶段,我们采用自动化回归测试来控制变更对已集成功能的影响 |
| 解决的问题 | 项目建设过程中,活动规则、库存策略、支付接口和后台查询经常根据业务反馈进行调整,如果每次变更后都完全依赖人工回归,不但效率较低,也容易遗漏边界场景 |
| 解决的方法 | 为解决这一问题,我要求项目组将高频、关键、易出错的集成测试场景沉淀为自动化脚本,并接入 Jenkins 构建流程,在主要服务发布前自动执行 |
| 具体的实现 | 具体实施时,测试脚本覆盖登录鉴权、商品查询、下单支付、订单关闭、库存释放和对账查询等流程,执行结果结合日志平台和 SkyWalking 调用链进行分析 |
| 例子 | 以库存策略调整为例,版本发布前自动化脚本会重新执行下单、取消和超时关闭流程,检查订单状态和库存数量是否一致 |
| 效果 | 通过自动化回归测试,项目组提高了集成测试的重复执行效率,也能在缺陷修复后及时确认原有核心流程没有被破坏 |