软件测试之【基于开源商城系统fecmall功能测试项目实例】

本文涉及的产品
RDS MySQL Serverless 基础系列,0.5-2RCU 50GB
云数据库 RDS PostgreSQL,高可用系列 2核4GB
云数据库 RDS MySQL,高可用系列 2核4GB
简介: 软件测试之【基于开源商城系统fecmall功能测试项目实例】

🔥前言

本文为软件测试项目的实例训练,是对fecmall开源电商系统进行相应的功能测试,主要是在Linux系统上进行的操作。

涉及的技能点:

⭐️测试基础理论

⭐️linux系统命令

⭐️mysql数据库

🚀Fecmall简介及相关功能

Fecmall简介

🔥fecmall电商系统是一款面向程序员的电商商城系统,比较多的考虑了跨境电商系统二次开发的支持。

🔥fecmall电商系统使用php编程语言,默认的数据库是mysql数据库,可以通过配置支持mongodb数据库和redis数据库的支持,可以将数据存储在不同的数据库软件中。

🔥fecmall电商系统本身实现的是比较简单的电商功能的框架,可以借助于各种应用系统插件来实现更复杂的功能。

Fecmall功能介绍

🅰️fecmall电商系统包含六大入口:

1)appfront,对应pc前台。

2)apphtml5,对应移动端网页。

3)appadmin,对应pc后台。

4)appserver,各种移动端访问的前台服务器。

5)appapi,对外接口,方便和其它系统集成。

6)console,离线脚本入口,可以运行各种shell脚本。

🅱️fecmall电商系统的基本功能:

前台功能主要有注册、登录、购物车、订单、支付等常规电商功能。后台功能主要有产品管理、产品分类管理、订单管理、优惠券管理、用户管理、CMS管理、网站配置等。

🚀Fecmall项目配置与部署

Fecmall项目的配置

1️⃣进入Fecmall官网下载Fecmall压缩包


2️⃣进入Fecmall安装文档使用自己熟悉的技术进行安装

3️⃣使用运行Shell脚本进行部署启动Fecmall

命令解析:

- echo #命令将本地dns解析追加到etc/hosts文件中
 - fecmall #软件系统后端采用php语言开发的
 - fecmall #的数据存储在MySql
 - fecmall #的文本服务使用的是NGINX

🚀对Fecmall进行功能测试

熟悉被测系统的业务和术语及业务的规则

被测系统的业务模块

  1. 属于电商系统业务
  2. Fecmall电商系统(有B端(Business)–后台子系统,有C端(Customer)–前台子系统)
  3. Fecmall可用于二次开发的系统(根据框架进行二次加工)
  4. 有两个子系统:(管理员后台,用户前台)
    前台子系统:功能为:购买用户可以查看展示的商品;搜索商品,选择商品加入购物车;支付等
    后台子系统:产品分类、商城管理、应用中心、控制面板、网站配置
    以该系统的产品分类业务为例,将数据库和测试用例设计方法与用例写作进行相结合。

被测系统的业务规则、专业术语

  1. 产品分类管理
  2. 产品管理
  3. URL重写管理:将产品的URL进行重写便于用户查看
  4. spu:库存量单位,唯一的产品代码,通常由数字和字母组成,用于区分不同的商品
  5. sku:标准产品单位,一个商品的标准化描述,通常由商品的名称、描述、图片、品牌等信息组成。spu可以区分不同的商品,但不能区分不同的属性。

    产品管理的测试
  • 增删改查的相关操作
  • 商品添加

商品属性组管理

Fecshop产品

添加商品;需要为商品选定属性组;

添加属性组;属性组由属性组成;先有各种属性:属性与商品类型有关(衣服的属性:尺码、颜色、材质;水杯属性:颜色、容量、材质;电脑属性:)

测试人员在测试时还要涉及到数据库的检查;需要了解自己所负责测试的模块关联数据库表是哪几张;表里的信息字段有哪些;字段的约束

表是哪几张;表里的信息字段有哪些;字段的约束

  • 从前面系统的启动获取到数据库采用的是mysql
  • 需要和开发人员(负责你所测试模块的开发工作)沟通,我是测试后台产品管理模块,请问有哪些表是涉及到这个产品管理;设计文档----数据库表的详细设计文档
  • 看看数据库相关的表:直接就去mysql console或者通过第三方界面(sqlyog;navicat;dbeaver)工具去连接mysqlFecmall 数据库
  • 本篇使用的是dbeaver操作数据库

    在数据库查询表记录

编写系统测试计划、方案、用例

系统测试计划

系统测试负责人(小组长;资深的测试人员完成)

系统测试方案

按照道理讲是由测试技术专家(测试架构师完成);如果被测试软件系统规模比较小,人员也没有那么多;小组长直接负责

目前有很多项目采取敏捷开发模式:追求快速;直接小组长将测试计划和测方案中整合在一起;计划和方案的编写后续有详细的内容;

(1)计划和方案中分析出测试点;要测试什么

(2)分析测试点的维度

  • 从被测试系统各种测试类型角度出发:功能测试;性能测试;易用性测试;兼容性;安全性。。。。。。。
  • 测试单个功能:针对后台的产品管理的功能
  1. 产品信息管理:添加商品功能;修改商品功能(单条修改;批量修改);删除商品功能(单条删除;批量删除);查询商品功能能(单条件查询;多个条件组合查询;针对查询结果功能测试)
  2. 属性管理
  3. 其他子模块测试点分析相同
  • 多个功能之间的操作会有影响:功能互操作测试
  1. 属性管理:删除一个属性(有属性组已经添加你这个属性);添加产品选择一个属性组(正好这个属性组含有你要删除的属性)
  2. 删除属性对属性组对产品的影响

(3) 测试设计方法的选择

  • 等价类划分法
  1. 特点是效率高;效果一般;将被测试的内容划分成几种情况,选择代表数据进行测试会出现漏测的情况,但是快;不考虑组合
  2. 找出有效等价类、无效等价类:要看具体的需求说明根据需求描述的情况(取值范围值的个数:一个有效 两个无效;布尔量:一个有效一个无效;同时满足多个要求:多个无效一个有效;集合必须如何的条件:一个有效一个无效;细分。。。。。。。。)
  3. 一条测试用例尽量覆盖多条有效;一条测试用例只覆盖一个无效
  • 边界值分析法
  1. 边界是一个问题多发区;要重视边界
  2. 对于边界测试找出边界值:两点边界值法(上点、离点);三点边界值法(边界和边界左右的值)
  3. 对等价类的补充;具有等价类划分法的特点

  • 正交实验法
  1. 测试组合的方法;比等价类划分测试的全,效果好一些;
  2. 比判定表测试的要少
  3. 套用正交表:因子/状态—套合适表
  4. 用于三个及三个以上的条件组合搜索
  • 状态迁移图法
  1. 适用于系统中一些需求关于状态机特点的描述
  2. 有限状态机:状态;让状态发生变化的触发事件;通过触发时间让状态发生各种变化;找出变化迁移的路径;状态的变化不一定是单个触发事件,多个触发事件的组合;
  • 流程分析法(场景测试法)
  1. 先确定用户角色
  2. 用户想通过这个系统做什么
  3. 把要完成要做的事情有多少功能点;将功能点串起来:有正常的流程—完成了;有异常的流程—提前结束任务完成

系统测试用例之属性管理

(1)添加属性的测试用例

输入条件 有效等价类 无效等价类
属性类型 必选并且是类型列表 不选;非列表的值
属性名称 必填4~10个字符不能有特殊 不填;少于4;多于10个;含非法字符
状态 必选并且是类型列表 不选;非列表的值
数据类型 必选并且是string 不选;非string类型
图片显示 必选并且是类型列表 不选;非列表的值
必填选项 必选并且是类型列表 不选;非列表的值
默认值 必填项并且是数字 不填;非数字
类型 必填且六个类型之一 不填;不在类型内

等价类用例编写原则

  • 一条测试用例尽量覆盖多个有效等价类:建议至少写6条测试用例

  • 一条测试用例只覆盖一个无效等价类

(2)查询属性的测试用例

  • 按照查询条件测试 ----等价类划分法
输入条件 有效等价类 无效等价类
状态 激活;关闭 其他
  • 按查询结果测试----等价类划分法
输入条件 有效等价类 无效等价类
查询结果 有一条记录;无记录;有多条记录(单页、多页)) 其他
用边界值进行补充:最多能显示多少条;单页选择20条显示;50条显示
对于查询测试:需要提前构造一些想要达到预期结果的数据(需要设置预置条件)
测试用例1:想要测试没有激活状态的属性(事先将激活状态的属性全部关闭)
测试用例2:想要测试有一条激活状态的属性记录(事先要去将一个属性设置为激活状态)

(3)修改属性的测试用例—编辑属性信息

  • 思路与添加属性一样

(4)删除属性的测试用例

  • 删除单条;删除多条:使用等价类划分和边界值
输入条件 有效等价类 无效等价类
删除记录条数 选择一条或以上 没有记录选择

系统测试用例之产品信息管理

(1)添加产品

(2)查询产品

  • 针对某个单一的查询条件进行测试:等价类划分(参照属性查询的测试设计方法运用)
  • 找出你关注的两个输入条件进行组合查询:比如状态(上架、下架)和库存状态(有货、无货)做组合查询(四种组合:上架与有货;上架与无货;下架与有货;下架与无货)
  • 找出你关注三个输入条件、四个输入条件、五个输入条件、六个输入条件进行组合查询:可以用正交实验法(如果你觉得查询条件太多;可以加权筛选);六个输入条件
因子 状态
状态 上架;下架
库存状态 有货;无货
产品名字 有;无
SPU 有;无
SKU 有;无

更新时间开始:小于等于系统时间;大于系统时间

六因子两状态:找对应的表

  • 按照查询结果进行测试的思路参照属性查询
  • 每页显示多少条:做提前设置
  • 查不到结果
  • 查询一条结果:想查询一条下架状态的产品信息(了解到有两张表的的数据与产品信息相关)ful_search_produt 、product_flat(可以通过更新数据、插入数据)
  • 查询多条结果
  • 查询多条结果分页

在做查询测试的时候:需要提前准备符合查询结果的数据;需要构造数据(手工构造;数据库插入数据;数据工厂工具)

数据库的产品信息的SQL语句

(3)修改产品

参照产品增加

(4)删除产品

参照属性删除用例编写思路

执行测试用例

(测试人员自己部署环境—参照开发人员给的环境部署手册)–冒烟测试(初步检查这个提测被测试软件系统符合我们测试要求吗)—全面的测试执行—提交缺陷—回归测试

开发团队整合一个版本—提交给测试部门—提测申请

做一个冒烟测试—验证这个提测版本质量如何,具有可测试性

(1)Fecmall:后台可以添加商品

(2)前台可以查看商品;购买商品;支付

冒烟通过

全面执行测试用例

(1)电商经常会搞活动;满减;所有商品全部便宜50块;或者打几折;搞活动还有时间限制

(2)这样批量信息处理需要用shell脚本按照时间自动去修改一些数据

(3)某个商品每月8号全部面包商品减10块

⭐️⭐️⭐️总结

本文主要是介绍一整个完整的测试流程,及相关的操作,当然仅仅是挑选了该商城系统的主要功能进行测试,其他的功能测试,是可以直接借鉴的。

相关实践学习
每个IT人都想学的“Web应用上云经典架构”实战
本实验从Web应用上云这个最基本的、最普遍的需求出发,帮助IT从业者们通过“阿里云Web应用上云解决方案”,了解一个企业级Web应用上云的常见架构,了解如何构建一个高可用、可扩展的企业级应用架构。
MySQL数据库入门学习
本课程通过最流行的开源数据库MySQL带你了解数据库的世界。   相关的阿里云产品:云数据库RDS MySQL 版 阿里云关系型数据库RDS(Relational Database Service)是一种稳定可靠、可弹性伸缩的在线数据库服务,提供容灾、备份、恢复、迁移等方面的全套解决方案,彻底解决数据库运维的烦恼。 了解产品详情: https://www.aliyun.com/product/rds/mysql 
目录
相关文章
|
4月前
|
数据采集 算法 数据管理
频标频稳比对测试系统重新定义测量边界
在上海张江实验室的超净间里,一束激光正以每秒 30 万公里的速度穿越真空腔,与原子跃迁频率进行着纳米级的较量。而在千里之外的西安高新区,一台黑色金属机箱内,SYN5609A 型频标比对测量系统正以同样的精度,为这场量子级的时间竞赛提供着基准坐标。这台看似普通的仪器,正在用双混频时差技术,将人类对时间的掌控精度推向新的维度。
|
2月前
|
Java 测试技术 Spring
简单学Spring Boot | 博客项目的测试
本内容介绍了基于Spring Boot的博客项目测试实践,重点在于通过测试驱动开发(TDD)优化服务层代码,提升代码质量和功能可靠性。案例详细展示了如何为PostService类编写测试用例、运行测试并根据反馈优化功能代码,包括两次优化过程。通过TDD流程,确保每项功能经过严格验证,增强代码可维护性与系统稳定性。
147 0
|
2月前
|
人工智能 数据可视化 测试技术
UAT测试排程工具深度解析:让验收测试不再失控,项目稳稳上线
在系统交付节奏加快的背景下,“测试节奏混乱”已成为项目延期的主因之一。UAT测试排程工具应运而生,帮助团队结构化拆解任务、清晰分配责任、实时掌控进度,打通需求、测试、开发三方协作闭环,提升测试效率与质量。本文还盘点了2025年热门UAT工具,助力团队选型落地,告别靠表格和群聊推进测试的低效方式,实现有节奏、有章法的测试管理。
|
5月前
|
jenkins 测试技术 Shell
利用Apipost轻松实现用户充值系统的API自动化测试
API在现代软件开发中扮演着连接不同系统与模块的关键角色,其测试的重要性日益凸显。传统API测试面临效率低、覆盖率不足及难以融入自动化工作流等问题。Apipost提供了一站式API自动化测试解决方案,支持零代码拖拽编排、全场景覆盖,并可无缝集成CI/CD流程。通过可视化界面,研发与测试人员可基于同一数据源协作,大幅提升效率。同时,Apipost支持动态数据提取、性能压测等功能,满足复杂测试需求。文档还以用户充值系统为例,详细介绍了从创建测试用例到生成报告的全流程,帮助用户快速上手并提升测试质量。
|
7月前
|
人工智能 自然语言处理 测试技术
Potpie.ai:比Copilot更狠!这个AI直接接管项目代码,自动Debug+测试+开发全搞定
Potpie.ai 是一个基于 AI 技术的开源平台,能够为代码库创建定制化的工程代理,自动化代码分析、测试和开发任务。
565 19
Potpie.ai:比Copilot更狠!这个AI直接接管项目代码,自动Debug+测试+开发全搞定
|
7月前
|
缓存 Java 测试技术
【01】噩梦终结flutter配安卓android鸿蒙harmonyOS 以及next调试环境配鸿蒙和ios真机调试环境-flutter项目安卓环境配置-gradle-agp-ndkVersion模拟器运行真机测试环境-本地环境搭建-如何快速搭建android本地运行环境-优雅草卓伊凡-很多人在这步就被难倒了
【01】噩梦终结flutter配安卓android鸿蒙harmonyOS 以及next调试环境配鸿蒙和ios真机调试环境-flutter项目安卓环境配置-gradle-agp-ndkVersion模拟器运行真机测试环境-本地环境搭建-如何快速搭建android本地运行环境-优雅草卓伊凡-很多人在这步就被难倒了
788 3
【01】噩梦终结flutter配安卓android鸿蒙harmonyOS 以及next调试环境配鸿蒙和ios真机调试环境-flutter项目安卓环境配置-gradle-agp-ndkVersion模拟器运行真机测试环境-本地环境搭建-如何快速搭建android本地运行环境-优雅草卓伊凡-很多人在这步就被难倒了
|
3月前
|
Java 测试技术 容器
Jmeter工具使用:HTTP接口性能测试实战
希望这篇文章能够帮助你初步理解如何使用JMeter进行HTTP接口性能测试,有兴趣的话,你可以研究更多关于JMeter的内容。记住,只有理解并掌握了这些工具,你才能充分利用它们发挥其应有的价值。+
720 23
|
8月前
|
数据可视化 前端开发 测试技术
接口测试新选择:Postman替代方案全解析
在软件开发中,接口测试工具至关重要。Postman长期占据主导地位,但随着国产工具的崛起,越来越多开发者转向更适合中国市场的替代方案——Apifox。它不仅支持中英文切换、完全免费不限人数,还具备强大的可视化操作、自动生成文档和API调试功能,极大简化了开发流程。
|
5月前
|
SQL 安全 测试技术
2025接口测试全攻略:高并发、安全防护与六大工具实战指南
本文探讨高并发稳定性验证、安全防护实战及六大工具(Postman、RunnerGo、Apipost、JMeter、SoapUI、Fiddler)选型指南,助力构建未来接口测试体系。接口测试旨在验证数据传输、参数合法性、错误处理能力及性能安全性,其重要性体现在早期发现问题、保障系统稳定和支撑持续集成。常用方法包括功能、性能、安全性及兼容性测试,典型场景涵盖前后端分离开发、第三方服务集成与数据一致性检查。选择合适的工具需综合考虑需求与团队协作等因素。
642 24
|
5月前
|
SQL 测试技术
除了postman还有什么接口测试工具
最好还是使用国内的接口测试软件,其实国内替换postman的软件有很多,这里我推荐使用yunedit-post这款接口测试工具来代替postman,因为它除了接口测试功能外,在动态参数的支持、后置处理执行sql语句等支持方面做得比较好。而且还有接口分享功能,可以生成接口文档给团队在线浏览。
226 2

热门文章

最新文章