功能测试的分类,分别有什么作用?
目录
前言
一、链接测试
二、表单测试
三、搜索测试
四、删除测试
六、数据库测试
七、峰值测试/容量测试
八、相容性测试/安全测试
前言
功能测试主要包括链接测试、表单测试、搜索测试、删除测试、cookies、session测试、数据库测试等部分。功能测试对产品的各功能进行验证,根据功能测试用例,逐项测试,检查产品是否达到用户要求的功能。
一、链接测试
测试所有链接是否按指示的那样确实链接到了该链接的页面;测试所链接的页面是否存在;测试web应用系统上没有孤立的页面。
二、表单测试
表单一般指在界面进行数据提交操作的,包括新增和修改数据。它涉及到的测试包括以下方面:
1、输入框测试,长度、数据类型、必填、重复、空格、sql注入以及一些业务相关约束
2、下拉框测试,默认值、数据完整性/正确性、第一个/最后一个/中间一个选取、手动输入值模糊匹配、联动选择;业务常见选取的操作
3、大小、尺寸、格式、数量、文件内容规则验证
4、表单提交按钮测试,是否支持回车/单击、快速多次点击是否重复提交表单、网络中断(弱网、提交、提交之后是否有提示、提交后内容是否加密、提交是否做权限校验控制、多人针对表单同时操作的场景测试。
三、搜索测试
搜索条件一般为2种情况:输入框、下拉框。对于多个条件的页面搜索可以按照下面的编号顺序去进行测试。
- 任单个条件查询:模糊搜索、超长搜索、不存在与之匹配的条件、为空
- 任两个组合查询:确保任两个组合查询的正确性,验证两个组合的所有情况。
- 三个组合查询:不需要测试三个组合的全部级组合。因为前面针对所有单个条件的搜索、两个组合的所有组合进行测试了,那么在这里选择2-3组三种组合进行测试即可。
- 全条件组合查询:确保最大组合的正确性。
- 默认条件查询:补充默认条件查询的用例
- 根据需求或者业务规则选取重点条件组合查询
搜索框搜索还有一种常见的情况就是:时间输入框,按时间来搜索的测试点,可以从以下考虑:
- 开始时间<=结束时间,测试一个小时、跨时、当天、跨天、跨月、跨年的数据
- 开始时间大于/小于当前时间,若是针对出生年月搜索,验证大于的情况;若是定时任务时间搜索验证小于的情况
- 只输入开始时间/结束时间
- 开始时间、结束时间都不输入
- 结束时间早于开始时间
- 手动输入时间,注意时间格式验证
四、删除测试
- 没选择数据,点击删除,是否有友好提示?
- 选择一条数据,点击删除,是否提示删除确认信息,需二次确认?
- 删除一条数据后,点击添加,是否可以添加相同的数据
- 连续删除多个产品,选择批量删除;是否支持?
- 选择全选,点击删除,注意是否把所有的数据删除?
- 删除一个有关联性的数据,如删除QQ分组,组下好友会有提示?
- 所有删除数据操作,要注意相应查询页面及其关联界面的数据是否及时更新
五、cookies/session测试
cookies/session通常用来存储用户信息,Cookie通过在客户端记录信息确定用户身份,session通过在服务器端记录信息确定用户身份。
cookies/session测试同理,测试的内容可包括:
- 打开WEB系统后,在浏览器默认存储cookies的目录下看此cookies目录是否存在。
- 已知cookies的保存时间,测试时间范围之内和之外的cookies文件是否正常
- 将浏览器下的所有cookies文件全部删除。再次登录web系统,会怎么处理
六、数据库测试
在web应用技术中,数据库就是一个“仓库”,我们在进行功能测试的任何操作都可以归溯到是对于数据库的增删改查。数据库测试实际就是通过前面讲过的测试手段来完成、只不过关注点是数据库表及表字段值的变化。
- 数据库脚本执行——数据库表添加、修改是否正常
- 页面提交表单、修改、查询、删除 —数据库表信息是否正常
七、峰值测试/容量测试
峰值测试在这种情况下,测试应用程序时用户负载会突然增加和减少。通过执行峰值测试,我们还可以了解应用稳定的恢复时间。
容量测试为了分析充斥大量数据时应用程序的行为和响应时间。
八、相容性测试/安全测试
相容性测试执行兼容性测试以确保该应用程序可以在不同的硬件,操作系统,网络环境和屏幕尺寸上正常运行。
安全测试是移动应用程序测试过程中最重要的部分,它可确保您的应用程序安全且不会受到恶意软件和病毒等任何外部威胁的攻击。通过这样做,我们可以找出应用程序中的漏洞,这些漏洞可能导致数据丢失,收入增加或对组织的信任。
相关文章:
功能测试的分类,分别有什么作用?
目录 前言 一、链接测试 二、表单测试 三、搜索测试 四、删除测试 五、cookies/session测试 六、数据库测试 七、峰值测试/容量测试 八、相容性测试/安全测试 前言 功能测试主要包括链接测试、表单测试、搜索测试、删除测试、cookies、session测试、数据库测试等部分…...
51单片机学习笔记_14 红外遥控
红外传感器 遥控器通过红外 LED 发送调制后的信号,开发板上的红外接收模块接收遥控器的红外线。 单工异步,940nm 波长(还有一种 250nm 的N,可见光),EC 通信标准。 38KHz:红外线频率。 IN&…...
【我是土堆 - Pytorch教程】 知识点 学习总结笔记(五)
此文章为【我是土堆 - Pytorch教程】 知识点 学习总结笔记(五)包括:完整的模型训练套路(一)、完整的模型训练套路(二)、完整的模型训练套路(三)、利用GPU训练(…...
JUC篇:CopyOnWriteArrayList的应用与原理
系列文章目录 JUC篇:volatile可见性的实现原理 JUC篇:synchronized的应用和实现原理 JUC篇:用Java实现一个简单的线程池 JUC篇:java中的线程池 JUC篇:ThreadLocal的应用与原理 JUC篇:Java中的并发工具类 文…...
【总结】爬虫1-requests
爬虫1-requests 1. requests的基本用法 requests需要提前导入,才能使用 1.1 请求网络数据:requests.get(请求地址) response requests.get(https://cd.zu.ke.com/zufang)1.2 设置解码方法(罗马的是需要设置 - 一定要在获取请求结果之前设…...
基于springboot实现学生综合成绩测评系统【源码】分享
基于springboot实现学生综合成绩测评系统演示开发语言:Java 框架:springboot JDK版本:JDK1.8 服务器:tomcat7 数据库:mysql 5.7 数据库工具:Navicat11 开发软件:eclipse/myeclipse/idea Maven包…...
uniapp初体验———uView组件库的使用与钉钉小程序的运行
这周学长给了我一个校企合作的项目,要求是用uniapp开发,最终打包成钉钉小程序,不过我并不会uniapp,也是学了一段时间,开始写项目,中间也遇到过很多问题,比如开发者工具还有如何运行到开发者工具…...
初始Go语言2【标识符与关键字,操作符与表达式,变量、常量、字面量,变量作用域,注释与godoc】
文章目录Go语言基础语法标识符与关键字操作符与表达式变量、常量、字面量变量类型变量声明变量初始化常量字面量变量作用域注释与godoc注释的形式注释的位置go docgodocGo语言基础语法 标识符与关键字 go变量、常量、自定义类型、包、函数的命名方式必须遵循以下规则ÿ…...
Vue计算属性详解
目录 编辑 1、什么是计算属性 2、为什么要有计算属性 1. 为什么不是使用模板语法 2. 为什么不是使用method对于复杂逻辑 3. 什么时候要用计算属性 4. 定义计算属性fullName 5. 计算属性的配置项 1、什么是计算属性 写在computed对象中的属性,本质上是…...
rk3568-AD按键驱动调试
rk3568-AD按键驱动调试转载请备注:daisy.skye的博客_CSDN博客-Qt,嵌入式,Linux领域博主dts设备树节点 /rk356x_linux_220118/kernel/arch/arm64/boot/dts/rockchip/rk3568.dtsi 板级设备树dts /home/scooper/jkD7/20221221/ido_evb3568_v2_android11_sdk/kernel/…...
Docker三剑客之swarm
一、什么是docker swarm Swarm是Docker公司推出的用来管理docker集群的平台,几乎全部用GO语言来完成的开发的,代码开源在https://github.com/docker/swarm, 它是将一群Docker宿主机变成一个单一的虚拟主机,Swarm使用标准的Docker…...
Lucene Solr Elasticsearch三者之间的关系,怎么选?
Lucene简介: Lucene主要用于构建文本搜索应用程序,包括Web搜索引擎、桌面搜索工具和商业应用程序。它提供了诸如单词分析、查询解析、搜索结果排序等功能,可以轻松地在大量文档中快速搜索和查找相关信息。 Lucene具有以下特点: …...
为你的网站加上Loading等待加载效果吧 | Loading页面加载添加教程
为你的网站加上Loading等待加载效果吧 | Loading页面加载添加教程 效果图 : 教程开始 新建一个loading样式css 将以下代码放进去 然后引用这个文件 code #Loadanimation{ background-color:#fff; height:100%; width:100%; position:fixed; z-index:1; ma…...
Redis安装和配置
网上有海量的Redis文章,写的都很详细。这里就是简单记录一下自己查aof问题过程中遇到的问题,主要是aof文件所在目录在redis.conf里的位置 1。在ubuntu16上安装Redis sudo apt-get install -y redis-server 2。修改redis配置 sudo vim /etc/redis/re…...
MobTech|如何使用秒验
什么是秒验? 秒验是MobTech公司提供的一款实现一键验证功能的产品,从根源上降低企业验证成本,有效提高拉新转化率,降低因验证带来的流失率,3秒完成手机号验证(一键登录)。 秒验主要整合了三大…...
CSS实现自动分页打印同时每页保留重复的自定义内容
当需要打印的内容过长时系统会产生自动分割页面,造成样式不太美观。使用CSS的 media print 结合 <table> 可以实现对分页样式的可控。效果如下: 假设有50条数据,打印时系统会自动分成两页,同时每页保留自定义的header和foo…...
基于prometheus的监控告警怎么实现?
基于 Prometheus 的监控告警实现一般需要以下几个步骤: 安装和配置 Prometheus:安装 Prometheus 并配置好需要监控的目标。可以使用 Prometheus 的配置文件(prometheus.yml)来指定需要监控的目标,例如服务、主机、容器…...
2007年4月全国计算机等级考试二级JAVA笔试试题及答案
2007年4月全国计算机等级考试二级JAVA笔试试题及答案 一、选择题 (1)已知一棵二叉树前序遍历和中序遍历分别为ABDEGCFH和DBGEACHF,则该二叉树的后序遍历为 A.GEDHFBCA B.DGEBHFCA C.ABCDEFGH D.…...
灌水玩玩 ChatGPT AIGC生成的有栈协同程序实现(例子)
CO: 你是一名 C/C 高级软件工程师。 请使用 stackful 协程,实现一个 Sleep 随眠的协同程序,注意并非 stackless 协程,不允许使用 C/C 17 以上的语言标准实现,允许使用 boost 基础框架类库。 ChatGPT: 好的…...
【砝码称重】暴力DFS(一半分)+ dp(可AC)
题目描述: 题目分析: 我也没有完全搞太明白,简单说说我的理解 1.dp【i】【j】表示前 i 个砝码,是否可以称出来重量为 j 的物品,如果可以的话,值为1,不可以 为0; 2.针对当前第 i 个…...
wordpress后台更新后 前端没变化的解决方法
使用siteground主机的wordpress网站,会出现更新了网站内容和修改了php模板文件、js文件、css文件、图片文件后,网站没有变化的情况。 不熟悉siteground主机的新手,遇到这个问题,就很抓狂,明明是哪都没操作错误&#x…...
Debian系统简介
目录 Debian系统介绍 Debian版本介绍 Debian软件源介绍 软件包管理工具dpkg dpkg核心指令详解 安装软件包 卸载软件包 查询软件包状态 验证软件包完整性 手动处理依赖关系 dpkg vs apt Debian系统介绍 Debian 和 Ubuntu 都是基于 Debian内核 的 Linux 发行版ÿ…...
鸿蒙中用HarmonyOS SDK应用服务 HarmonyOS5开发一个医院挂号小程序
一、开发准备 环境搭建: 安装DevEco Studio 3.0或更高版本配置HarmonyOS SDK申请开发者账号 项目创建: File > New > Create Project > Application (选择"Empty Ability") 二、核心功能实现 1. 医院科室展示 /…...
屋顶变身“发电站” ,中天合创屋面分布式光伏发电项目顺利并网!
5月28日,中天合创屋面分布式光伏发电项目顺利并网发电,该项目位于内蒙古自治区鄂尔多斯市乌审旗,项目利用中天合创聚乙烯、聚丙烯仓库屋面作为场地建设光伏电站,总装机容量为9.96MWp。 项目投运后,每年可节约标煤3670…...
安宝特方案丨船舶智造的“AR+AI+作业标准化管理解决方案”(装配)
船舶制造装配管理现状:装配工作依赖人工经验,装配工人凭借长期实践积累的操作技巧完成零部件组装。企业通常制定了装配作业指导书,但在实际执行中,工人对指导书的理解和遵循程度参差不齐。 船舶装配过程中的挑战与需求 挑战 (1…...
JS手写代码篇----使用Promise封装AJAX请求
15、使用Promise封装AJAX请求 promise就有reject和resolve了,就不必写成功和失败的回调函数了 const BASEURL ./手写ajax/test.jsonfunction promiseAjax() {return new Promise((resolve, reject) > {const xhr new XMLHttpRequest();xhr.open("get&quo…...
从 GreenPlum 到镜舟数据库:杭银消费金融湖仓一体转型实践
作者:吴岐诗,杭银消费金融大数据应用开发工程师 本文整理自杭银消费金融大数据应用开发工程师在StarRocks Summit Asia 2024的分享 引言:融合数据湖与数仓的创新之路 在数字金融时代,数据已成为金融机构的核心竞争力。杭银消费金…...
【LeetCode】3309. 连接二进制表示可形成的最大数值(递归|回溯|位运算)
LeetCode 3309. 连接二进制表示可形成的最大数值(中等) 题目描述解题思路Java代码 题目描述 题目链接:LeetCode 3309. 连接二进制表示可形成的最大数值(中等) 给你一个长度为 3 的整数数组 nums。 现以某种顺序 连接…...
适应性Java用于现代 API:REST、GraphQL 和事件驱动
在快速发展的软件开发领域,REST、GraphQL 和事件驱动架构等新的 API 标准对于构建可扩展、高效的系统至关重要。Java 在现代 API 方面以其在企业应用中的稳定性而闻名,不断适应这些现代范式的需求。随着不断发展的生态系统,Java 在现代 API 方…...
tomcat指定使用的jdk版本
说明 有时候需要对tomcat配置指定的jdk版本号,此时,我们可以通过以下方式进行配置 设置方式 找到tomcat的bin目录中的setclasspath.bat。如果是linux系统则是setclasspath.sh set JAVA_HOMEC:\Program Files\Java\jdk8 set JRE_HOMEC:\Program Files…...
