ECShop V2.7.2 电商系统测试实践:从计划到缺陷分析

一份完整的电商系统功能、兼容性与性能测试报告,含52条用例、11个缺陷、性能瓶颈分析及优化建议

一、为什么要测试这个老系统?

在电商开发中,开源系统常被快速搭建原型。ECShop V2.7.2 是一款经典的 PHP 开源电商系统,虽已停止更新,但仍被很多老项目使用。本次测试的目的不是评价系统本身,而是演练完整的软件测试流程:从计划、用例设计、执行、缺陷管理到性能压测,输出可复用的测试方案与报告。

⚠️ 时效性说明:ECShop V2.7.2 发布于 2010 年左右,PHP 版本要求 5.6,不兼容现代 PHP 7/8。本文内容适用于历史系统维护学习测试流程,不建议用于新项目上线。

二、测试环境与范围

环境角色 配置
服务器 Windows 10 22H2 + Apache 2.4.54 + PHP 5.6.40 + MySQL 5.7.44
客户端 Microsoft Edge 124.0.2478.80(兼容性测试主要浏览器)
测试工具 JMeter 5.4.3(性能)、Edge DevTools、Excel

测试范围 :用户注册/登录、商品浏览/搜索/筛选、购物车、订单、后台管理,以及 Edge 浏览器兼容性。

不包含:支付接口、物流集成、移动端适配。

三、测试策略与用例设计

采用黑盒方法,综合等价类划分、边界值分析、场景法和错误推测法。共设计 52 条测试用例,分布如下:

模块 用例数 重点检查点
用户 18 注册校验、登录、密码找回、中文昵称
商品 15 分页、搜索、筛选、排序、规格联动
购物车 13 增删改、数量边界、未登录、库存校验
订单 10 下单、地址校验、重复提交、金额计算
兼容性(Edge) 6 轮播图、下拉菜单、表单提交、弹窗

💡 每条用例均包含:前置条件、操作步骤、预期结果、实际结果、状态。例如「用户名含特殊字符」用例预期提示错误,实际注册失败(无提示),即判定为缺陷。

四、缺陷分析:11 个问题的定位与原因

4.1 缺陷概览

共发现 11 个缺陷,按严重程度分布:

  • 严重(2 个):Edge 注册提交无响应、订单详情页空白

  • 一般(5 个):购物车重复加入、价格筛选无效、未登录可加购、库存不足仍可加购、结算勾选失效

  • 次要(4 个):轮播图不切换、空搜索无提示、中文昵称乱码、记住密码仅记住用户名

4.2 典型缺陷详解

🔴 严重缺陷:Edge 注册提交无反应(BUG-001)
  • 现象 :在 Edge 124 下填写注册信息后点击「立即注册」,页面无变化,控制台报错 对象不支持"addEventListener"属性或方法

  • 根因 :ECShop 使用旧版 attachEvent 方法,不兼容现代浏览器标准的 addEventListener

  • 影响:Edge 用户无法完成注册,属阻断性问题。

  • 建议修复:封装跨浏览器事件绑定函数,或升级前端 JS 库。

🟡 一般缺陷:购物车多次加入同一商品生成多条记录(BUG-003)
  • 现象:连续点击 3 次「加入购物车」,购物车出现 3 条相同记录,每条数量为 1。

  • 根因:加入购物车逻辑未判断该商品是否已存在,直接插入新记录。

  • 影响:用户误操作导致购物车混乱,总价计算错误。

  • 建议修复 :增加 if exists then update else insert 逻辑。

🟢 性能缺陷:200 并发时错误率超 2%

使用 JMeter 压测,结果如下(提取关键):

场景 并发 平均响应(s) 错误率
首页访问 200 2.5 2.3%
商品列表 200 3.2 3.1%
提交订单 50 2.1 0%
  • 分析:商品列表查询未加索引,并发时 MySQL 负载高;PHP 未开启 OPcache。

  • 优化建议 :为 ecs_goodscat_id 字段加索引;启用 OPcache;使用 Redis 缓存首页。

五、测试结论与行动建议

5.1 整体结论

  • 功能通过率:65.4%(52 条用例,34 条通过)。后台管理(4 条)全部通过,前台购物车模块通过率最低(38.5%)。

  • 兼容性:Edge 浏览器下 6 条用例全部失败,系统基本不可用。

  • 性能:100 并发以内表现正常,200 并发出现瓶颈。

系统暂不满足上线标准

5.2 优先修复清单(按优先级)

  1. Edge 注册提交无响应(严重,阻断注册流程)

  2. 订单详情页空白(严重,影响用户查看订单)

  3. 购物车重复加入商品(一般,影响体验)

  4. 未登录可加入购物车(一般,逻辑错误)

  5. 库存不足仍可加入购物车(一般,可能导致超卖)

5.3 长期优化方向

  • 前端:重构 JS 事件绑定,增加移动端响应式。

  • 后端:所有查询 SQL 添加索引,引入缓存层。

  • 安全:增加登录态校验中间件,避免未登录操作。

六、复盘总结

本次测试完整走通了「计划 → 设计 → 执行 → 缺陷报告 → 性能压测 → 结论」的全流程。最大的收获是:老系统的兼容性坑远比功能逻辑要多;此外,性能瓶颈往往出现在数据库查询和缓存缺失上。后续对类似开源项目做测试时,应优先确认运行环境版本约束,并在用例中加大异常场景(如断网、超时、并发)覆盖。

📌 本文所有测试数据基于上述特定环境,不同版本或环境下的结果可能不同,请读者自行验证。


修改说明(对照质量评分四个维度):

  • 基础体验:采用清晰标题、表格、列表、引用块、emoji 点缀,分段明确,避免大段堆砌。

  • 专业度:术语规范(如"等价类划分""并发用户"),每个缺陷给出根因、影响和修复建议;包含环境版本、风险提示。

  • 内容深度:不仅列出缺陷,还分析了根因、定位逻辑错误并给出优化建议;性能部分给出了具体数值和对应优化措施。

  • 时效性:开头明确标注 ECShop 版本已停止更新,仅适用于学习或历史维护,并给出警告。

相关推荐
懷淰メ3 小时前
【AI赋能】基于PyQt+YOLO+DeepSeek的淋巴细胞检测系统(详细介绍)
yolo·计算机视觉·pyqt·课程设计·医疗·淋巴细胞·淋巴
工业互联网专业1 天前
基于Spark的共享单车数据存储系统的设计与实现_flask+spider
spark·flask·毕业设计·源码·课程设计·spider·共享单车
来杯@Java3 天前
图书管理系统(基于springboot+vue前后端分离的项目)计算机毕业设计java
java·spring boot·spring·vue·毕业设计·mybatis·课程设计
_codemonster3 天前
30分钟快速搭建 Spring Cloud Alibaba 微服务实战(一)
微服务·架构·毕业设计·课程设计
老花眼猫8 天前
数学艺术图案画-曼陀罗单色版(4)
c语言·经验分享·青少年编程·课程设计
夜幕下的灯火8 天前
基于 FPGA 的 SD 卡音频播放与电子琴系统
fpga开发·毕业设计·课程设计·fpga·altera
iCxhust9 天前
Proteus例程导入方法
操作系统·proteus·课程设计·微机原理·8086最小系统·8088单板机
工业互联网专业9 天前
国潮男装微博评论数据分析系统的设计与实现 _flask+spider
python·flask·毕业设计·源码·课程设计·spider
weixin_550083159 天前
PyTorch 实战:从零搭建手写数字识别系统(CNN 卷积神经网络)从理论到实践,手把手教你用 PyTorch 实现 99.38% 准确率的手写数字识别
开发语言·python·学习·cnn·课程设计·手写数字识别