押题正文

返回正文列表

动静结合软件测试正文

适用项目:线上商品的销售与运营平台

复习状态:已复习 1 次 (2026-05-22T03:15:50)

正文概述

软件测试是保证软件质量的重要手段,按照被测程序是否运行,可以分为静态测试和动态测试。静态测试是在不执行程序的情况下,通过检查需求、设计和代码发现问题;动态测试则是在程序运行过程中,通过输入测试数据并观察输出结果来验证功能、性能和逻辑是否正确。线上商品销售与运营平台涉及商品展示、购物车、订单创建、库存扣减、优惠券核销、支付回调和数据统计等核心流程,一旦出现价格计算错误、库存超卖或订单状态异常,就会直接影响用户交易和平台收入。因此,在本项目中,我采用静态测试与动态测试相结合的方法,在开发阶段提前发现代码和设计缺陷,在联调和测试阶段验证核心业务流程,从而提升系统的正确性和稳定性。

正文分点 1

首先,我在项目开发阶段采用静态测试方法,对核心模块进行代码检查、代码走查和代码审查。针对订单、库存、支付和营销等关键服务,我制定了代码检查清单,重点检查金额计算精度、库存扣减逻辑、支付回调幂等性、优惠券叠加规则和异常回滚处理。开发人员提交代码后,先使用 SonarQube 进行静态扫描,再由模块负责人组织代码走查,对订单状态机、库存锁定流程和优惠券核销流程逐行检查。例如在订单服务代码走查中,我们发现订单取消后只回滚了库存锁定记录,但没有同步释放已占用的优惠券,可能导致用户优惠券长期处于冻结状态。通过静态测试,我们在编码阶段共发现 38 个问题,其中 11 个属于核心交易逻辑问题,避免了这些缺陷进入后续联调和生产环境。

正文分点 2

其次,我采用动态黑盒测试验证平台核心业务功能。黑盒测试不关注程序内部结构,主要根据输入数据和预期输出结果判断系统功能是否正确。在本项目中,我重点对商品下单、优惠券使用、库存扣减和支付回调进行了等价类划分和边界值测试。例如针对满 199 减 30 的优惠券,我设计了订单金额为 198.99 元、199 元和 199.01 元三类边界数据,验证系统是否只在满足门槛时进行优惠;针对库存扣减,我设计了库存为 0、1 和 2 件时的下单用例,验证系统是否能正确阻止超卖;针对支付回调,我模拟成功、失败、重复回调和超时回调等场景。通过黑盒测试,我们共设计 420 条功能测试用例,发现优惠券边界金额判断错误、库存为 1 时并发下单超卖、重复支付回调导致订单状态反复更新等问题。修复后,核心下单流程测试通过率达到 99% 以上。

正文分点 3

最后,我采用动态白盒测试验证核心代码路径的覆盖情况。白盒测试关注程序内部逻辑结构,常用方法包括语句覆盖、判定覆盖和路径覆盖。对于商品详情查询、用户地址校验等顺序执行、逻辑较简单的功能,我采用语句覆盖,确保主要代码语句都被执行;对于订单创建、库存扣减和支付结果处理等存在多个分支的复杂功能,我采用判定覆盖和路径覆盖。例如订单创建流程中,系统需要依次判断商品是否上架、库存是否充足、优惠券是否可用、用户是否命中风控规则以及订单是否成功落库,我将该流程整理为 9 条主要执行路径,并针对每条路径设计测试用例。通过路径覆盖测试,我们发现当优惠券不可用但库存已锁定时,系统没有及时释放库存,导致部分 SKU 可售库存偏低。修复该问题后,我们又补充了库存回滚和异常补偿测试用例,最终核心交易流程的代码覆盖率达到 86%,订单异常回滚问题在压测中未再出现。