13.3测试用例进阶
一.测试对象划分
1.界面测试(参考软件规格说明书和UI视觉稿)
a.什么是界面
1)WEB站(浏览器)
2)app
3)小程序
4)公众号
b.测试内容
1)界面内容显示的一致性,完整性,准确性,友好性.比如界面内容对屏幕大小的自适应,换行,内容是否全部清晰展示.
2)验证整个界面布局和排版是否合理,不同板块字体的设计,图片的展示是否符合需求.
3)对界面不同控制的测试,比如,对话框,文本框,滚动条,选择按钮等是否可以正常使用,有些和无效的状态是否设计合理.
4)界面的布局和色调符合当下时事的发展.
2.兼容性测试
a.软件
1)系统自身版本的兼容,用户已有数据的兼容,数据兼容是重中之重.
2)与应用环境的兼容性,比如操作系统,应用平台,浏览器的兼容.
3)测试与第三方以及第三方数据的兼容性.
3.易用性测试
a.标准型和规范性: 一些常用的UI已经成为标准,用户已经习惯使用.
b.直观性: 软件功能特性清晰易懂,用户界面布局合理,见名知意.
c,灵活性: 软件要有不同选择来满足有不同使用习惯的用户,比如输入法的全键盘,九宫格,手写和语音输入.
d.舒适性: 界面友好,美观,使用流程.
4.安装卸载测试
a.软件不同的安装和卸载方式.
b.应用是否可以在不同的环境系统,版本下安装(安装兼容性).
c.安装或者卸载过程中是否可以手动暂停,或者取消,是否后台进行.
d.安装空间不足的时候系统是否有提示.
e.是否可以正常卸载,以及应用软件不同的卸载方式.
f.安装和卸载过程中出现环境问题,系统是否可以应对,比如死机,断电,断网.
5.可靠性测试(可用性)
可靠性 = 正常运行时间 / (正常运行时间 + 非正常运行时间) * 100%
借助工具
6.容错性测试
a.定义: 系统能够处理异常,用户的错误操作不至于系统崩溃,从而提高系统可靠性.
b.两个方面:
1)输入异常数据或进行异常操作,以检验系统的保护性.如果系统容错性好,系统只会给出提示或者内部消化,而不会导致系统出错甚至崩溃.如数据级测试,校验测试,环境容错性测试,界面容错性测试.
2)灾难恢复性测试,通过各种手段,让软件强制性地发生故障,然后验证系统已保存的用户数据是否丢失,系统和数据是否能尽快恢复.
c.举例:
1)测试计数器,使用除以0的操作.
2)测试不存在的网页,是否回到首页.
7.文档测试
接触最多的是测试文件,开发文件,产品文件.
8.安全性测试
a.输入域,如输入恶性或者带有病毒的脚本或长字符串.
b.代码中的安全性问题,如SQL注入,XSS.
c.不安全的数据存储或者传递.
d.数据文件,邮件文件,系统配置文件等里面有危害系统的信息或者数据.
e.有问题的访问控制,权限分配等.
f.假冒ID,身份欺骗
g.篡改,对数据的恶意修改,破坏数据的完整性.
9.性能测试
a.资源泄露.
b.资源瓶颈.
c.线程死锁,线程阻塞.
d.查询速度慢或效率低.
e.受外部系统影响越来越大.
10.内存泄露测试
a.分类
1)分配完内存后忘记回收.
2)程序写法有问题,造成没法回收(如死循环,或者内存回收的代码被架空,无法执行到).
3)某些API方法使用不正确,造成内存泄漏.
b.测试方法
1)(推荐使用)人工静态法: 走读代码,人工查找未被回收的内存.
2)自动工具法: Visual Leak Detector(记录每次内存分配).
二.是否查看代码划分
1.黑盒测试
a.定义
黑盒测试就是在完全不考虑程序逻辑和内部结构的情况下,检查系统功能是否按照需求规格说明书的规定正常使用,是否能适当的接收输入数据,而输出正确的结果,满足规范需求,所以黑盒测试又称之为数据驱动测试,只注重软件的功能.
b.优点
1)不需要了解程序内部的代码以及实现,不关注软件内部的实现.
2)从用户角度出发,设计测试用例很容易的知道用户会用到哪些功能,会遇到哪些问题,锻炼测试人员的产品思维.
3)测试用例是基于软件需求开发文档,不容易遗漏软件需求文档中需要测试的功能.
c.缺点
不可能覆盖所有代码.
d.方法: 等价类,边界值,因果图,场景法,错误猜测法.
2.白盒测试
a.定义:
白盒测试又称结构测试或逻辑测试,它一般用来分析程序的内部结构,针对程序的逻辑结构来设计测试用例进行测试.
b.目的:
通过检查软件内部的逻辑结构,对软件中的逻辑路径进行覆盖测试,在程序不同地方设立检查点检查程序的状态,以确定实际运行状态与预期状态是否一致.
c.方法: 语句覆盖,判定覆盖,条件覆盖,判定条件覆盖.条件组合覆盖,路径覆盖.
d.优点: 代码覆盖率高.
e.缺点: 业务功能覆盖低.
3.灰盒测试
a.定义:
灰盒测试是介于白盒测试和黑盒测试之间的一种测试,灰盒测试多用于集成测试阶段,不仅关注输出输入的正确性,同时也关注程序内部的情况.
三.开发阶段划分

1.单元测试
a.测试阶段: 编码后或者编码前(TDD).
b.测试对象: 最小模块(Java是类,方法; C语言是函数).
c.测试人员: 白盒测试工程师或开发人员.
d.测试依据: 代码, 注解, 设计文档.
e.测试方法: 白盒测试.
f.测试内容: 模块接口测试,局部数据结构测试,路径测试,错误处理测试,边界测试.
2.集成测试
a.测试阶段: 单元测试之后进行.
b.测试对象: 模块间的接口.
c.测试人员: 白盒测试工程师或开发人员.
d.测试依据: 单元测试的模块,概要设计文档.
e.测试方法: 黑盒测试和白盒测试结合.
f.测试内容: 模块之间的数据传输,模块之间的功能冲突,模块组装功能正确性,全局数据结构,单模块缺陷对系统的影响.
3.系统测试
a.测试阶段: 集成测试之后进行.
b.测试对象: 整个系统(软,硬件).
c.测试人员: 黑盒测试工程师.
d.测试依据: 需求规格说明文档.
e.测试方法: 黑盒测试.
f.测试内容: 界面,功能,性能,安全,网络,易用,兼容,可靠.
4.回归测试
使用不同的环境进行测试,为了提高效率,使用自动化测试.
5.冒烟测试
冒烟测试的对象是每一个新编译的需要正式测试的软件版本,目的是确认软件主要的功能的核心流程正常,在进行正式测试之前执行.冒烟测试一般是开发人员在开发完毕之后,提交给测试人员进行测试之前,先进行冒烟测试,保证基本的功能正常,不阻碍后续的测试.
6..验收测试(交付测试)
a.测试阶段: 系统测试之后进行.
b.测试对象: 整个系统(软,硬件).
c.测试人员: 产品经理,用户,甲方.
d.测试依据: 用户需求,验收文档(测试人员编写的).
e.测试方法: 黑盒测试.
f.测试内容: 界面,功能,性能,安全,网络,易用,兼容,可靠.
四.实施组织划分
1.α测试
a.环境: 公司内部.
b.测试人员类型: 公司内部人员.
c.测试人员数量: 少.
d.阶段: 先.
e.测试时间: 短.
2.β测试
a.环境: 不确定.
b.测试人员类型: 用户.
c.测试人员数量: 多.
d.阶段: 后.
e.测试时间: 长.
3.第三方测试
介于开发法和用户之间的组织.
五.是否运行代码划分
1.静态测试
不运行,检查代码.
2.动态测试
运行代码进行测试.
六.是否手工划分
1.手工测试
点点点.
2.自动化测试
分为接口,UI,
七.地域划分
1.国际化测试
时间,语言,货币,日期,字符串长度........
2.本地化测试
相关文章:
13.3测试用例进阶
一.测试对象划分 1.界面测试(参考软件规格说明书和UI视觉稿) a.什么是界面 1)WEB站(浏览器) 2)app 3)小程序 4)公众号 b.测试内容 1)界面内容显示的一致性,完整性,准确性,友好性.比如界面内容对屏幕大小的自适应,换行,内容是否全部清晰展示. 2)验证整个界面布局和排版…...
[云原生1] Docker网络模式的详细介绍
1. Docker 网络 1.1 Docker 网络实现原理 Docker使用Linux桥接,在宿主机虚拟一个Docker容器网桥(docker0), Docker启动一个容器时会根据Docker网桥的网段分配给容器一个IP地址,称为Container-IP, 同时Docker网桥是每个容器的默认…...
uni——底部弹框显示,底部导航隐藏
案例 在uni-app中,如果你在tabbar页面显示一个底部弹框,底部导航默认是会依旧显示的。如果你想在弹框显示时隐藏底部导航,你可以使用uni.hideTabBar和uni.showTabBar方法来控制底部导航的显示和隐藏。 export default {methods: {openPopup(…...
HammerDB的安装和使用(超详细)
目录 编辑 一、HammerDB的介绍 二、HammerDB的安装 1、下载hammerdb安装包 2、权限配置以及安装 3、查看安装目录 三、安装前的配置 1、启动监听 2、启动数据库 3、创建表空间 1.修改临时表空间 2…...
java经典面试题总结
1.请简述Java的继承,重写和多态的概念和运用 继承是一种Java中重要的面向对象编程方式,它允许一个类从另一个类继承某些属性和方法,在这种关系下,子类可以重写父类的方法,从而实现不同的行为。 多态是继承实现的一种关…...
django中template中post请求接口csrf问题
$(function () {$.ajaxSetup({headers: { "X-CSRFToken": getCookie("csrftoken") }}); });// 为防止CSRF(Cross-site request forgery)跨站请求伪造,发post请求时需要在cookie中创建随机码 function getCookie(name) {v…...
聊聊RocketMQMessageListener的实现机制
序 本文主要研究一下RocketMQMessageListener的实现机制 示例 Service RocketMQMessageListener(nameServer "${demo.rocketmq.myNameServer}", topic "${demo.rocketmq.topic.user}", consumerGroup "user_consumer") public class UserC…...
ConfigurationProperties注解详解
ConfigurationProperties和Value注解用于获取配置文件中的属性定义并绑定到Java Bean或属性中 一个简单的例子 ConfigurationProperties需要和Configuration配合使用,我们通常在一个POJO里面进行配置: Data Configuration ConfigurationProperties(pre…...
三、组件与数据交互
一、组件基础 1、单文件组件 第一步:引入组件 import ComponentTest from ./components/ComponentTest.vue 第二步:挂载组件 components: {ComponentTest } 第三步:显示组件 <ComponentTest></ComponentTest><!-- 父组件 --…...
#define 宏定义看这一篇文章就够了
前言:在c/c学习的过程中,宏定义(#define)是作为初学者学习到的为数不多的预处理指令,在学习的时候我们被告知他可以帮助我们更高效的写程序,可以增加程序的可读性,但宏定义(#define&…...
LeetCode算法栈—验证图书取出顺序
验证图书取出顺序 目录 验证图书取出顺序 题解: 代码: 运行结果: 验证图书取出顺序 现在图书馆有一堆图书需要放入书架,并且图书馆的书架是一种特殊的数据结构,只能按照 一定 的顺序 放入 和 拿取 书籍。 给定一个…...
PAM从入门到精通(十八)
接前一篇文章:PAM从入门到精通(十七) 本文参考: 《The Linux-PAM Application Developers Guide》 PAM 的应用开发和内部实现源码分析 先再来重温一下PAM系统架构: 更加形象的形式: 六、整体流程示例 2.…...
【区间 DP】热门区间 DP 运用题
题目描述 这是 LeetCode 上的 「312. 戳气球」 ,难度为 「困难」。 Tag : 「区间 DP」、「动态规划」 有 n 个气球,编号为 0 到 n - 1,每个气球上都标有一个数字,这些数字存在数组 nums 中。 现在要求你戳破所有的气球。戳破第 i …...
正则表达式,日期选择器时间限制,报错原因
目录 一、正则表达式 1、表达式含义 2、书写表达式 二、时间限制 1、原始日期选择器改造 2、禁止选择未来时间 3、从...到...两个日期选择器的时间限制 三、Uncaught (in promise) Error报错 一、正则表达式 1、表达式含义 (1)/^([a-zA-Z0-9_.…...
YOLOv7 改进原创 HFAMPAN 结构,信息高阶特征对齐融合和注入,全局融合多级特征,将全局信息注入更高级别
💡本篇内容:YOLOv7 改进原创 HFAMPAN 结构,信息高阶特征对齐融合和注入,全局融合多级特征,将全局信息注入更高级别 💡🚀🚀🚀本博客 改进源代码改进 适用于 YOLOv7 按步骤操作运行改进后的代码即可 💡本文提出改进 原创 方式:二次创新,YOLOv7 专属 论文理…...
django建站过程(1)
django建站过程(1) 使用pycharm创建过程运行项目创建数据库创建超级用户登录生成的后台:界面本地化 准备以django,bootstrap来做一个过程记录,文章主要阐述过程的细节。 使用pycharm创建过程 创建项目“schoolapps”,…...
使用 Typhoeus 和 Ruby 编写的爬虫程序
以下是一个使用 Typhoeus 和 Ruby 编写的爬虫程序,用于爬取 ,同时使用了 jshk.com.cn/get_proxy 这段代码获取代理: #!/usr/bin/env rubyrequire typhoeus require jsondef get_proxyurl "https://www.duoip.cn/get_proxy"respon…...
Git 安装和基础命令、IDEA 基础操作
目录 总结命令:1、安装:1、安装2、配置环境变量: 2、Git操作:1、初始化:1、姓名邮箱:2、初始化仓库:3、工作区和暂存区分析 2、提交文件3、查看版本库状态4、安装小乌龟git不显示图标 5、查看提…...
做一个最新版的淘宝客返利程序源码有多难?
我们都知道淘宝客返利程序成为了很多人的创业和赚钱的工具。这种程序允许通过推广淘宝商品来获得佣金。然而,你知道构建这样一个淘宝客返利程序有多难吗?今天我们就从最基本的API说起,现在我将介绍构建一个最新版淘宝客返利程序所需的关键API…...
day5:Node.js 第三方库
day5:Node.js 第三方库 文章目录 day5:Node.js 第三方库使用 Express.js 构建 Web 应用安装 Express第一个 Express 框架实例第二个 Express 框架实例Node.js 连接 MySQL查询数据插入数据更新数据删除数据使用 Express.js 构建 Web 应用 Express框架是Node.js生态系统中的一…...
网络编程(Modbus进阶)
思维导图 Modbus RTU(先学一点理论) 概念 Modbus RTU 是工业自动化领域 最广泛应用的串行通信协议,由 Modicon 公司(现施耐德电气)于 1979 年推出。它以 高效率、强健性、易实现的特点成为工业控制系统的通信标准。 包…...
接口测试中缓存处理策略
在接口测试中,缓存处理策略是一个关键环节,直接影响测试结果的准确性和可靠性。合理的缓存处理策略能够确保测试环境的一致性,避免因缓存数据导致的测试偏差。以下是接口测试中常见的缓存处理策略及其详细说明: 一、缓存处理的核…...
渲染学进阶内容——模型
最近在写模组的时候发现渲染器里面离不开模型的定义,在渲染的第二篇文章中简单的讲解了一下关于模型部分的内容,其实不管是方块还是方块实体,都离不开模型的内容 🧱 一、CubeListBuilder 功能解析 CubeListBuilder 是 Minecraft Java 版模型系统的核心构建器,用于动态创…...
对WWDC 2025 Keynote 内容的预测
借助我们以往对苹果公司发展路径的深入研究经验,以及大语言模型的分析能力,我们系统梳理了多年来苹果 WWDC 主题演讲的规律。在 WWDC 2025 即将揭幕之际,我们让 ChatGPT 对今年的 Keynote 内容进行了一个初步预测,聊作存档。等到明…...
linux 下常用变更-8
1、删除普通用户 查询用户初始UID和GIDls -l /home/ ###家目录中查看UID cat /etc/group ###此文件查看GID删除用户1.编辑文件 /etc/passwd 找到对应的行,YW343:x:0:0::/home/YW343:/bin/bash 2.将标红的位置修改为用户对应初始UID和GID: YW3…...
Typeerror: cannot read properties of undefined (reading ‘XXX‘)
最近需要在离线机器上运行软件,所以得把软件用docker打包起来,大部分功能都没问题,出了一个奇怪的事情。同样的代码,在本机上用vscode可以运行起来,但是打包之后在docker里出现了问题。使用的是dialog组件,…...
C++使用 new 来创建动态数组
问题: 不能使用变量定义数组大小 原因: 这是因为数组在内存中是连续存储的,编译器需要在编译阶段就确定数组的大小,以便正确地分配内存空间。如果允许使用变量来定义数组的大小,那么编译器就无法在编译时确定数组的大…...
CVE-2020-17519源码分析与漏洞复现(Flink 任意文件读取)
漏洞概览 漏洞名称:Apache Flink REST API 任意文件读取漏洞CVE编号:CVE-2020-17519CVSS评分:7.5影响版本:Apache Flink 1.11.0、1.11.1、1.11.2修复版本:≥ 1.11.3 或 ≥ 1.12.0漏洞类型:路径遍历&#x…...
Proxmox Mail Gateway安装指南:从零开始配置高效邮件过滤系统
💝💝💝欢迎莅临我的博客,很高兴能够在这里和您见面!希望您在这里可以感受到一份轻松愉快的氛围,不仅可以获得有趣的内容和知识,也可以畅所欲言、分享您的想法和见解。 推荐:「storms…...
深度学习之模型压缩三驾马车:模型剪枝、模型量化、知识蒸馏
一、引言 在深度学习中,我们训练出的神经网络往往非常庞大(比如像 ResNet、YOLOv8、Vision Transformer),虽然精度很高,但“太重”了,运行起来很慢,占用内存大,不适合部署到手机、摄…...
