当前位置: 首页 > news >正文

【软件测试项目实战 】淘宝网:商品购买功能测试

一、用例设计方法分析

在对淘宝网商品下单功能进行测试时,不同的测试角度和场景适合运用不同的用例设计方法,以下是针对该功能各方面测试所适用方法及其原因的分析:

  1. 商品数量相关测试:对于商品数量的测试,主要采用等价类划分和边界值分析方法。等价类划分可将商品数量划分为有效等价类(如大于 0 的整数)和无效等价类(如 0、负数)。通过这种划分,能全面覆盖正常和异常的数量输入情况,确保系统对不同数量输入的处理正确性。边界值分析则着重考虑商品数量的边界情况,如数量为 1(最小值边界)和库存最大值。因为在边界值附近,系统的处理逻辑可能与中间值不同,容易出现错误,所以通过测试边界值能有效发现潜在问题。
  2. 收货地址和支付方式相关测试此部分测试适合使用因果图和判定表方法。收货地址、支付方式与订单能否成功提交之间存在多种因果关系。例如,有可用收货地址和支付方式是订单成功提交的必要条件;缺少其中任何一个,订单都无法提交。通过因果图可以清晰地梳理这些因果关系,再根据因果图构建判定表,将各种可能的输入条件组合及其对应的输出结果罗列出来,从而设计出全面且无遗漏的测试用例,确保系统在不同地址和支付方式组合下的行为符合预期。
  3. 下单流程整体测试场景图在测试下单流程整体情况时非常适用。从用户进入商品详情页开始,到选择商品、加入购物车、结算、确认订单信息等一系列操作,构成了不同的下单场景。通过绘制场景图,可以模拟用户在各种实际使用场景下的操作流程,包括正常下单流程、修改收货地址或支付方式的流程等。这样能更直观地发现系统在整个下单过程中可能出现的问题,确保系统的交互逻辑和功能完整性。
  4. 订单状态变化相关测试状态迁移图是测试订单状态变化的有效方法。在商品下单过程中,订单会经历“待支付”“待发货”“已发货”“已完成”“已取消”等不同状态,每个状态的转变都依赖于特定的事件,如支付成功、卖家发货、用户取消订单等。使用状态迁移图可以清晰地描述这些状态之间的转换关系和触发条件,帮助测试人员验证系统在不同事件触发下的状态迁移是否正确,避免出现状态混乱或错误的情况。
  5. 特殊情况和附加功能测试:对于如使用优惠券、积分抵扣、选择发票信息、包含预售商品等特殊情况和附加功能的测试,同样可以结合等价类划分、场景图等方法。以使用优惠券为例,可将优惠券的类型、适用条件等划分为不同的等价类,测试不同优惠券在下单过程中的使用情况。同时,通过场景图模拟用户在下单时使用优惠券的完整流程,确保系统在这些特殊功能上的正确性和稳定性。

二、测试用例表格

篇幅有限,仅做部分展示

篇幅有限,仅做部分展示

总结

在本次软件测试项目实战中,我们聚焦于淘宝网的商品下单功能,综合运用多种用例设计方法,精心设计了一系列测试用例,旨在全面、深入地检验该功能的质量与稳定性。

在方法运用上,我们采用了等价类划分、边界值分析、因果图、判定表、场景图和状态迁移图等多种方法。等价类划分帮助我们将输入数据进行有效分类,覆盖了正常与异常的各种情况,如商品数量的有效与无效取值,确保系统对不同输入的准确处理。边界值分析则着重关注商品数量等关键输入的边界情况,像数量为 1 以及库存最大值等,这些边界点往往是系统容易出现问题的地方,通过测试能有效发现潜在缺陷。

因果图和判定表的使用,让我们清晰梳理了商品库存、收货地址、支付方式等输入条件与订单提交结果之间的因果关系,从而设计出全面的测试用例,涵盖了各种条件组合下系统的响应。场景图从用户操作的实际场景出发,模拟了正常下单、修改收货地址或支付方式、选择发票信息等多种场景,真实反映用户使用过程,帮助发现系统在不同操作流程中的问题。状态迁移图则专注于订单状态的变化,验证了订单在“待支付”“待发货”“已发货”“已完成”“已取消”等状态间的正确转换,避免状态逻辑错误。

从测试用例的具体内容来看,我们覆盖了商品下单功能的各个方面。在正常下单流程测试中,不仅有单件商品和多件商品的下单,还考虑了使用优惠券、积分、红包等多种优惠方式的情况,以及不同支付方式(如货到付款、分期付款等)的应用。同时,针对可能出现的异常情况,如商品库存不足、无可用收货地址或支付方式、输入数据错误等,都设计了相应的测试用例,确保系统在面对各种异常时能够给出合理的提示和处理。

此外,对于商品下单过程中的附加功能,如选择发票信息(包括普通发票、增值税专用发票,以及发票信息填写错误、分开发票、合并发票等情况)、使用淘金币抵扣、店铺会员折扣、各种促销活动(满减、满赠、多件多折、限时抢购、秒杀等),以及订单后续操作(如取消订单、修改订单留言、提前还款等),都进行了细致的测试用例设计。

通过这些测试用例的设计,我们力求使每个用例都具备准确性、简洁性、可重用性、适用性和纯净性。准确性确保用例能够准确验证功能是否符合预期;简洁性避免用例过于复杂,提高测试效率;可重用性使得用例在不同版本或类似功能测试中能够复用;适用性保证用例适用于各种不同的场景和条件;纯净性则让每个用例专注于一个特定的测试点,避免多个测试点相互干扰。

当然,软件测试是一个不断完善的过程。在实际测试执行过程中,可能会发现新的问题或场景,需要我们进一步补充和优化测试用例。同时,随着淘宝网功能的不断更新和扩展,我们也需要持续关注并及时调整测试用例,以确保商品下单功能始终稳定、可靠地运行,为用户提供优质的购物体验。

此次对淘宝网商品下单功能的测试用例设计,为后续的测试执行工作奠定了坚实的基础,也为其他类似软件功能的测试提供了一定的参考和借鉴。我们将以严谨的态度和科学的方法,继续推进测试工作,不断提升软件质量。

相关文章:

【软件测试项目实战 】淘宝网:商品购买功能测试

一、用例设计方法分析 在对淘宝网商品下单功能进行测试时,不同的测试角度和场景适合运用不同的用例设计方法,以下是针对该功能各方面测试所适用方法及其原因的分析: 商品数量相关测试:对于商品数量的测试,主要采用等…...

TangoFlux 本地部署实用教程:开启无限音频创意脑洞

一、介绍 TangoFlux是通过流匹配和 Clap-Ranked 首选项优化,实现超快速、忠实的文本到音频生成的模型。 本模型由 Stability AI 提供支持🚀 TangoFlux 可以在单个 A40 GPU 上在 ~3 秒内生成长达 34.1kHz 的立体声音频。 二、部署 安装方式非常简单 1…...

Android多语言开发自动化生成工具

在做 Android 开发的过程中,经常会遇到多语言开发的场景,尤其在车载项目中,多语言开发更为常见。对应多语言开发,通常都是在中文版本的基础上开发其他国家语言,这里我们会拿到中-外语言对照表,这里的工作难…...

Mac cursor设置jdk、Maven版本

基本配置 – Cursor 使用文档 首先是系统用户级别的设置参数,运行cursor,按下ctrlshiftp,输入Open User Settings(JSON),在弹出的下拉菜单中选中下面这样的: 在打开的json编辑器中追加下面的内容: {"…...

Unity中在UI上画线

在UI中画一条曲线 我封装了一个组件,可以实现基本的画线需求. 效果 按住鼠标左键随手一画. 用起来也很简单,将组件挂到空物体上就行了,红色的背景是Panel. 你可以将该组件理解为一个Image,只不过形状更灵活一些罢了,所以它要放在下面的层级(不然可能会被挡住). 代码 可以…...

Unity中关于实现 管道水流+瀑布流动+大肠蠕动效果笔记

Unity中关于实现 管道水流瀑布流动大肠蠕动效果笔记 效果展示: 参考资料及链接: 1、如何在 Unity 中创建水效果 - 水弯曲教程 https://www.youtube.com/watch?v3CcWus6d_B8 关于补充个人技能中:顶点噪波影响网格着色器配合粒子实现水特效 …...

【ARTS】【LeetCode-704】二分查找算法

目录 前言 什么是ARTS? 算法 力扣704题 二分查找 基本思想: 二分查找算法(递归的方式): 经典写法(找单值): 代码分析: 经典写法(找数组即多个返回值) 代码分析 经典题目 题目描述: 官方题解 深入思考 模版一 (相错终止/左闭右闭) 相等返回情形…...

JavaWeb 学习笔记 XML 和 Json 篇 | 020

今日推荐语 愿你遇见好天气,愿你的征途铺满了星星——圣埃克苏佩里 日期 学习内容 打卡编号2025年01月23日JavaWeb笔记 XML 和 Json 篇020 前言 哈喽,我是菜鸟阿康。 以下是我的学习笔记,既做打卡也做分享,希望对你也有所帮助…...

【LeetCode】--- MySQL刷题集合

1.组合两个表(外连接) select p.firstName,p.lastName,a.city,a.state from Person p left join Address a on p.personId a.personId; 以左边表为基准,去连接右边的表。取两表的交集和左表的全集 2.第二高的薪水 (子查询、if…...

【深度解析Java 20天速成】04_IDEA的安装与使用

【Why IDEA ?】 【注】JetBrains官方说明: 尽管我们采取了多种措施确保受访者的代表性,但结果可能会略微偏向 JetBrains 产品的用户,因为这些用户更有可能参加调查。 此外,2022年,某美国软件开发商在对近千名专业的Ja…...

系统思考—业务协同

最近在和一些客户的沟通中,企业老板都提到一个共同的困惑:每个部门都感觉自己在解决问题,做了正确的事情,但为什么组织的绩效就是没有增长?更糟糕的是,大家都不知道问题到底出在哪里? 在这种情…...

windows安装ES

1. 下载ES 访问ES官网下载Download Elasticsearch | Elastic 2. 配置环境变量 ES_JAVA_HOME : D:\jdk-17.0.9 ES_HOME : D:\elasticsearch-8.17.1-windows-x86_64\elasticsearch-8.17.1 3. 添加一些ES的配置 <1>关闭ES安全认证 打开elasticsearch-8.17.1\config\e…...

[java] java基础-字符串篇

目录 API String 创建字符串对象的两种方式&#xff1a; Java的内存模型 字符串常量池&#xff08;串池&#xff09;存放地址 两种构造方法的内存分析 String的常用方法 号比较的是什么 字符串比较&#xff08;比较字符串的数据值&#xff09; 遍历字符串 StringBui…...

告别手动编辑:如何用Python快速创建Ansible hosts文件?

在自动化运维领域&#xff0c;Ansible是一款非常强大的工具&#xff0c;它可以帮助我们管理和配置大量的服务器。为了让Ansible能够有效地管理这些服务器&#xff0c;我们需要一个hosts清单文件&#xff0c;该文件定义了Ansible要管理的目标主机。在实际应用中&#xff0c;我们…...

神经网络|(二)sigmoid神经元函数

【1】引言 在前序学习进程中&#xff0c;我们已经了解了基本的二元分类器和神经元的构成&#xff0c;文章学习链接为&#xff1a; 神经网络|(一)加权平均法&#xff0c;感知机和神经元-CSDN博客 在此基础上&#xff0c;我们认识到神经元本身在做二元分类&#xff0c;是一种非…...

DAY6,使用互斥锁 和 信号量分别实现5个线程之间的同步

题目 请使用互斥锁 和 信号量分别实现5个线程之间的同步 代码&#xff1a;信号量实现 void* task1(void* arg); void* task2(void* arg); void* task3(void* arg); void* task4(void* arg); void* task5(void* arg);sem_t sem[5]; //信号量变量int main(int argc, const …...

Redis 集群模式入门

Redis 集群模式入门 一、简介 Redis 有三种集群模式&#xff1a;主从模式、Sentinel 哨兵模式、cluster 分片模式 主从复制&#xff08;Master-Slave Replication&#xff09;: 在这种模式下&#xff0c;数据可以从一个 Redis 实例&#xff08;主节点 Master&#xff09;复…...

计算机网络 (55)流失存储音频/视频

一、定义与特点 定义&#xff1a;流式存储音频/视频是指经过压缩并存储在服务器上的多媒体文件&#xff0c;客户端可以通过互联网边下载边播放这些文件&#xff0c;也称为音频/视频点播。 特点&#xff1a; 边下载边播放&#xff1a;用户无需等待整个文件下载完成即可开始播放…...

vue + element-ui 组件样式缺失导致没有效果

失效 代码&#xff1a; 修改方法&#xff1a; 在main.js文件里面加上&#xff1a; import element-ui/lib/theme-chalk/index.css; 最后&#xff1a;...

在 Windows 11 中为 SMB 3.x 文件共享协议提供 RDMA 支持

注&#xff1a;机翻&#xff0c;未校。 Enable SMB Direct in Windows 11 在 Windows 11 中启用 SMB Direct Provides RDMA support for the SMB 3.x file sharing protocol 为 SMB 3.x 文件共享协议提供 RDMA 支持 Vigneshwaran Vijayakumar November 3, 2024 Last Updat…...

250123-对象的比较(equals()和==)

1. Object类中的equals()方法 见20250103-Object类&#xff0c;使用构造函数创建的两个对象&#xff0c;见下例&#xff0c;即使输入参数是相同的&#xff0c;比较结果仍是不同&#xff0c;因为对象的堆内存地址不同&#xff0c;在任何情况下使用关键字new都会开辟出一个新的内…...

UE求职Demo开发日志#6 测试用强化页面UI搭建

1 反向实现思路设计 先看最终效果&#xff1a; 先做了一个大致的分区&#xff0c;右侧的上半部分用来显示数据&#xff0c;下半部分用来强化和显示需要的材料&#xff0c;至于这个背景设定上强化应该叫什么&#xff0c;。。。。&#xff0c;还没定&#xff0c;反正应该不叫强…...

华为支付接入规范

为了确保用户获得良好的支付体验&#xff0c;Payment Kit制定了相关接入设计规范&#xff0c;请开发者遵照执行&#xff0c;具体要求&#xff08;非强制性&#xff09;如下&#xff1a; 一、支付方式呈现 涉及支付公司名称&#xff0c;请统一使用&#xff1a;花瓣支付&#xff…...

论文速读|Matrix-SSL:Matrix Information Theory for Self-Supervised Learning.ICML24

论文地址&#xff1a;Matrix Information Theory for Self-Supervised Learning 代码地址&#xff1a;https://github.com/yifanzhang-pro/matrix-ssl bib引用&#xff1a; article{zhang2023matrix,title{Matrix Information Theory for Self-Supervised Learning},author{Zh…...

左叶子之和(力扣404)

这道题需要将左右子树的左叶子结点之和不断返回给该左右子树的父节点&#xff0c;这是典型的后序遍历。如果大家对于二叉树的遍历不熟悉的话&#xff0c;可以先去看一下我的关于二叉树遍历的博客。否则直接看这道题是很容易懵逼的。熟悉了二叉树的遍历之后&#xff0c;大家可以…...

微信小程序使用picker根据接口给的省市区的数据实现省市区三级联动或者省市区街道等多级联动

接口数据如上图 省市区多级联动&#xff0c;都是使用的一个接口通过传参父类的code。返回我们想要的数据 比如获取省就直接不要参数。市就把省得code传给接口&#xff0c;区就把市的code作为参数。 <picker mode"multiSelector" :range"mulSelect1" …...

iconfont等图标托管网站上传svg显示未轮廓化解决办法

打开即时设计 即时设计 - 可实时协作的专业 UI 设计工具 导入图标后拖入画板里面&#xff0c;右键选择轮廓化 将图标导出...

Mysql索引(学习自用)

目录 一、索引概述 优缺点 二、索引结构 1、索引数据结构 2、索引支持结构 3、B树 4、B树 5、hash索引 6、为啥采用B树索引 三、索引分类 四、索引语法 五、索引性能分析 5.1查看执行频率 5.2慢查询日志 5.3profiling 5.4explain 六、索引使用规则 6.1验证索…...

封装svg图片展示及操作组件——svgComponent——js技能提升

template部分 <template><div class"canvas-wrapper" ref"canvasWrapper"><svg:viewBox"computedViewBox"ref"svgCanvas"xmlns"http://www.w3.org/2000/svg"xmlns:xlink"http://www.w3.org/1999/xlink…...

数据从前端传到后端入库过程分析

数据从前端传到后端入库过程分析 概述 积累了一些项目经验&#xff0c;成长为一个老程序员了&#xff0c;自认为对各种业务和技术都能得心应手的应对了&#xff0c;殊不知很多时候我们借助了搜索引擎的能力&#xff0c;当然现在大家都是通过AI来武装自己。 今天要分析的话题是…...

【Pytest】结构介绍

1.目录结构介绍 project_root/ │ ├── tests/ # 测试用例存放目录 │ ├── __init__.py │ ├── test_module1.py │ ├── module1.py # 被测试的模块 ├── conftest.py # pytest配置文件&#xff0c;可定义fixture和钩子函数 ├── py…...

每日十题八股-2025年1月23日

1.快排为什么时间复杂度最差是O&#xff08;n^2&#xff09; 2.快排这么强&#xff0c;那冒泡排序还有必要吗&#xff1f; 3.如果要对一个很大的数据集&#xff0c;进行排序&#xff0c;而没办法一次性在内存排序&#xff0c;这时候怎么办&#xff1f; 4.面试官&#xff1a;你的…...

mysql相关知识(详细)

一、什么是数据库&#xff1f; 概念&#xff1a;数据库(Database,简称DB)&#xff0c;长期存放在计算机内&#xff0c;有组织&#xff0c;可共享的大量数据的集合&#xff0c;是一个数据"仓库"。作用&#xff1a;存放管理数据分类&#xff1a;关系型数据库、NoSQL数…...

C++ 静态变量static的使用方法

static概述&#xff1a; static关键字有三种使用方式&#xff0c;其中前两种只指在C语言中使用&#xff0c;第三种在C中使用。 静态局部变量&#xff08;C) 静态全局变量/函数&#xff08;C) 静态数据成员/成员函数&#xff08;C&#xff09; 静态局部变量 静态局部变量&…...

对grid布局有哪些了解【css】

CSS Grid 布局是现代网页设计中非常强大的布局方式之一&#xff0c;它能够使你以更加灵活且直观的方式来设计网页的布局&#xff0c;特别适用于复杂的多行多列的布局。它允许你在网页上创建非常精确的网格&#xff0c;帮助你把内容放置在多个行和列中。 1. Grid 布局的基本概念…...

IOS 安全机制拦截 window.open

摘要 在ios环境&#xff0c;在某些情况下执行window.open不生效 一、window.open window.open(url, target, windowFeatures) 1. url&#xff1a;「可选参数」&#xff0c;表示你要加载的资源URL或路径&#xff0c;如果不传&#xff0c;则打开一个url地址为about:blank的空…...

低空经济(9)低空飞行器零部件供应商国内外厂家

低空飞行器零部件供应商国内外厂家 1.概述2.国内供应商2.1 动力系统2.2 航电系统2.3 机身结构部件2.4 传动系统2.5 液压系统与气动系统 3.国外供应商3.1 动力系统3.2 航电系统3.3 机身结构部件3.4 传动系统3.5 液压与气动系统 tips&#xff1a;资料来自网络&#xff0c;仅供参考…...

3b1b线性代数基础

零、写在前面 3b1b之前没认真看&#xff0c;闲了整理整理。 一、向量 学习物理的时候&#xff0c;向量是空间中的箭头。由其方向和长度决定。 学习数据结构的时候&#xff0c;向量是有序的数字列表。向量的每一维度有着不同含义。 线性代数中&#xff0c;我们通常认为**向量…...

困境如雾路难寻,心若清明步自轻---2024年创作回顾

文章目录 前言博客创作回顾第一次被催更第一次获得证书周榜几篇博客互动最多的最满意的引发思考的 写博契机 碎碎念时也运也部分经验 尾 前言 今年三月份&#xff0c;我已写下一篇《近一年多个人总结》&#xff0c;当时还没开始写博客。四月份写博后&#xff0c;就顺手将那篇总…...

SAP 中的三种内表

文章目录 1 : Introduction2 : Summary3: Reerence document4 : Example 1 : Introduction In the abap development we deal with data and the carrier is internal table . it is transfered in the whole programe. In the interview we offten meet it . What is the dif…...

从0到1学习机器学习实践--1 安装Anaconda

机器学习首先安装conda环境&#xff0c;这个是比较靠谱手把手执行的安装教程 最新最全&#xff08;亲测&#xff09;的conda安装教程和虚拟环境安装环境配置...

整合管理输入、工具与技术 、输出

过程输入工具与技术输出制定项目章程1.项目立项文件2.协议3.事业环境因素4.组织过程资产1.专家判断2.数据收集头脑风暴、焦点小组、访谈3.人际关系与团队技能冲突管理、引导、会议管理4.会议1.项目章程2.假设日志制订项目管理计划1.项目章程2.其他过程输出3.事业环境因素4.组织…...

sed — 流编辑器:从入门到精通

内容速览 简介 sed&#xff08;Stream Editor&#xff09;是一个功能强大的文本处理工具&#xff0c;广泛应用于文本文件的自动化编辑和批量处理。它通过逐行读取文件内容并在内存中的临时缓冲区&#xff08;即“模式空间”&#xff09;中处理文本&#xff0c;实现高效的文本…...

【玩转全栈】----Django基本配置和介绍

目录 Django基本介绍&#xff1a; Django基本配置&#xff1a; 安装Django 创建项目 创建app 注册app Django配置路由URL Django创建视图 启动项目 Django基本介绍&#xff1a; Django是一个开源的、基于Python的高级Web框架&#xff0c;旨在以快速、简洁的方式构建高质量的Web…...

【Linux】文件操作、系统IO相关操作、inode和输入输出重定向

⭐️个人主页&#xff1a;小羊 ⭐️所属专栏&#xff1a;Linux 很荣幸您能阅读我的文章&#xff0c;诚请评论指点&#xff0c;欢迎欢迎 ~ 目录 1、理解文件1.1 狭义理解1.2 广义理解1.3 文件操作1.4 系统角度 2、系统文件IO2.1 文件相关操作2.2 文件描述符2.3 重定向 3、动静…...

Prometheus+grafana实践:Doris数据库的监控

文章来源&#xff1a;乐维社区 Doris数据库背景 Doris&#xff08;Apache Doris&#xff09;是一个现代化的MPP&#xff08;Massive Parallel Processing&#xff0c;大规模并行处理&#xff09;数据库&#xff0c;主要用于在线分析处理&#xff08;OLAP&#xff09;场景。 D…...

c语言(转义字符)

前言&#xff1a; 内容&#xff1a; 然后记一下转义字符 \? 在书写连续多个问号时使用&#xff0c;防止他们被解析成三字母词 \ 用于表示字符常量 \\ 用于表示一个反斜杠&#xff0c;防止他被解析为一个转义序列符 \n 换行 \r …...

TOGAF之架构标准规范-信息系统架构 | 数据架构

TOGAF是工业级的企业架构标准规范&#xff0c;信息系统架构阶段是由数据架构阶段以及应用架构阶段构成&#xff0c;本文主要描述信息系统架构阶段中的数据架构阶段。 如上所示&#xff0c;信息系统架构&#xff08;Information Systems Architectures&#xff09;在TOGAF标准规…...

快速排序:一种高效的排序算法

前言 排序是最基本和最常用的操作之一。无论是数据处理、搜索优化,还是各种应用程序的内部逻辑,排序算法的选择都直接影响到程序的性能。快速排序(Quick Sort)作为一种典型的分治算法,以其平均时间复杂度 O(n log n) 和优越的实际表现,成为了现代编程中最常用的排序算法…...

PHP:从入门到进阶的编程之旅

在Web开发的广阔天地中&#xff0c;PHP&#xff08;Hypertext Preprocessor&#xff0c;超文本预处理器&#xff09;无疑是一颗璀璨的明星。自1995年问世以来&#xff0c;PHP凭借其开源、跨平台、易于学习和使用的特性&#xff0c;迅速成为Web开发领域中最受欢迎的语言之一。本…...