测试用例分析设计

测试用例分析设计

用例分析模板

类型场景
功能正常场景,异常场景
资损
性能
安全
兼容性
稳定性监控,应急预案,灰度

测试用例场景设计

类型功能点场景
页面控件检查按钮检查:跳转,权限,跳转信息
链接检查:链接跳转,后退,窗口重新打开,链接拼接,权限
输入框检查:字符限制,长度限制,前后空格,特殊字符,敏感词,xss脚本,多个tab页公用输入框检查管理影响
对话框检查:页面检查,文字提示,对话框重新载入
下拉框检查:所选和传入后端枚举值匹配
页面检查元素布局
页面数据正确性
页面异常显示
页面权限检验
表单提交页面初始检查
表单提交成功
表单提交-分支提交
表单提交-异常提交
表单提交-正常字段校验
表单提交-异常字段校验
查询类页面初始检查
单条件查询
组合条件查询
查询结果排序
查询结果分页
数据正确性前后端交互数据流转,入参出参
正确或失败返回后页面展示
性能测试大数据量的查询
大数据量的导入导出
高并发
页面响应时间
安全测试xss、csrf、越权、敏感数据、sql注入
兼容性测试主流浏览器兼容性
操作系统兼容性
多语言支持
接口型参数校验必填项校验
类型校验
长度校验
取值范围校验
枚举值遍历
参数组合必填组合
非必填组合
响应结果返回值:正确返回,错误返回,返回的数据结构正确性,接收返回信息的系统能否正确解析
错误码:覆盖所有错误码的枚举
全链路接口有对应页面:需要在页面上回归一遍流程
接口有上游调用方:需要从真正的调用方走一遍链路
业务通用业务功能主干流程
正常分支流程
异常分支流程
全链路从真实场景出发,结合上下游走主流程
资损具体按照对应业务域资损场景进行评估
性能测试并发
RT 响应时间,通常指请求+响应 <200ms
CPU利用率 ≤ 75%
内存利用率 ≤ 80%
磁盘利用率 ≤ 80%
稳定性测试监控
预案
灰度
弱依赖降级
安全测试越权
敏感数据
SQL注入等
兼容性测试新老代码兼容
新老数据兼容
刷数据等等
消息型参数校验消息体入参出参
枚举值遍历
业务功能正常场景:消息是否发送成功,下游是否消费成功
异常场景
消息乱序对时序性高的业务,需要从业务层做消息乱序处理
消息重试消息失败后重试
重复消费/幂等
稳定性测试限流熔断:一般消息都有通用的熔断限流机制
监控
兼容性测试新老消息体的消费兼容
缓存型通用读缓存
写缓存
删除缓存
缓存自动过期
缓存更新
缓存空值
缓存一致性等等
高可用缓存击穿
缓存穿透
缓存血崩
热点
客户端通用正常功能
异常功能
安装
卸载
更新:跨版本,升级,降级
兼容性测试不同机型
不用系统版本
不同屏幕尺寸
多语言等等
稳定性断电
断网
弱网
低电量
内存
性能
能耗

测试用例内容

编号、模块、子模块、用例标题、前置条件、操作步骤、预期结果、测试阶段

编写测试用例的目的

① 防止测试遗漏
② 记录测试记录
③ 规范测试流程
④ 提前准备测试数据

软件测试用例设计方法

在测试用例的设计之前首先要仔细阅读开发的详细设计文档,充分了解产品的详细功能,不清的地方与开发人员进行沟通,搞懂每个功能,尽量详细到输入框、按钮等小功能,功能点清楚之后按照功能模块分类进行用例编写。在具体的用例设计中会运用到等价类 边界值等黑盒测试方法。

① 等价类
② 边界值
③ 因果图
④ 错误分析法
⑤ 场景法
⑥ 流程分析法
⑦ 正交实验法
⑧ 状态迁移法

例1:等价类:

QQ账号: 6—10位自然数

有效等价类:
1.6-10位的自然数
2.6位的自然数
3.10位的自然数

无效等价类:
4.小于6位的自然数
5.大于10位的自然数
6.字母
7.特殊符号
8.汉字
9.空格
10.小数
11.负数

例2:边界值:

数字范围(每个范围内都要测试到,随机取一个数)

——————————10————————15——————>

例3:因果图:

“有一个处理单价为1元5角钱的盒装饮料的自动售货机软件。若投入1元5角硬币,按下“可乐”、“雪碧”或“红茶”按钮,相应的饮料就送出来。若投入的是2元硬币,在送出饮料的同时退还5角硬币。”试利用因果图法,建立该软件的因果图。

原因:① 投入1元5角硬币; ② 投入2元硬币;③ 按“可乐”按钮; ④ 按“雪碧” 按钮; ⑤ 按“红茶”按钮。
中间状态:① 已投币; ② 已按钮。
结果:① 退还5角硬币; ② 送出“可乐”饮料;③ 送出“雪碧”饮料; ④ 送出“红 茶”饮料。
在这里插入图片描述

在这里插入图片描述

硬件测试的方法

① 界面测试
② 性能测试(压力测试 稳定性测试)
③ 恢复性测试
④ 兼容性测试
⑤ 安全性测试
⑥ 破坏性测试
⑦ 可用性测试
⑧ 易用性测试(是否适用于不同人群)
⑨ 功能操作的测试

软件测试要从哪些方面去考虑测试点?

写测试用例的时候,不能想到什么就写什么,要按照一定的测试用例模板去写,要有自己的思路,不能完全去套用模拟以前的测试用例,按照一整套的测试流程来分析重要的关注点,时间长也会有自己积累的一套的测试模式,按照框架的思路,可能会达到事半功倍的效果

功能测试框架一般情况就是包含以下几类:界面友好性测试、功能测试、页面链接测试、容错测试、稳定性测试、性能测试(简单方面)等等。

1 界面友好性测试

风格、样式的协调性是否合理
界面布局是否整齐,尽量不要使用滚动条
界面操作、标题描述要恰当
操作符合大众的常规习惯
提示界面符合规范(不要出现中英混写)
界面中各个控件是否整齐美观
日期控件是否可正常编辑、长度是否合理,保证修改时可以把时间全部显示
查询结果列表列宽是否合理、标签描述是否合理、太宽需要有横向滚动提示
对于信息比较长的文本,文本框需提供自动竖直滚动条
支持Tab键,使用时不会出现乱跳情况
有没有提供相关的热键
控件的提示语描述是否正确
模块调用是否统一,相同的模块是否调用同一个界面
用滚动条移动页面时,页面的控件是否显示正常
时期的显示格式是否正确
页面是否有多余无用的按钮或标签
窗口标题或图标要菜单栏统一,且最大化最小化操作是否正常
对于正常的功能,操作简单明了
执行风险操作时,要有相关的提示
正确性检查:检查页面上的form, button, table, header, footer,提示信息,还有其他文字拼写,句子的语法等是否正确。
系统应该在用户执行错误的操作之前提出警告,提示信息.
页面分辨率检查,不同的分辨率浏览是否会出现乱码等不友好的界面出现
合理性检查:做delete, update, add, cancel, back等操作后,查看返回的页面是否合理。

2 功能测试

先使用系统给出的默认值测试
遍历测试系统流程,参照相关文档资料
查看系统的流程逻辑是否合理
异常场景的分支遍历测试
根据需求文档的流程图遍历所有流程图路径
界面中的控件进行测试
如对于输入框测试:
一、字符型输入框:
字符型输入框:英文全角、英文半角、数字、空格、特殊字符“!@#¥%……&*?[]{}”特别要注意单引号和&符号。禁止直接输入特殊字符时,使用“粘贴、拷贝”功能尝试输入。
长度检查:边界值测试,无效等价类的测试,已经复制比较多的文本是否能够粘贴进去。
空格检查:字符间有空格、空格在前或在后、前后都有空格
多行文本框输入:允许回车换行、仅输入回车换行,检查能否正确保存
安全性检查:输入特殊字符串:比如HTML格式的语言
二、数值型输入框:
边界值:最大值、最小值、最大值+1、最小值-1
位数:最小位数、最大位数、最小位数-1最大位数+1、输入超长值、输入整数
3.异常值、特殊字符:输入空白(NULL)、空格或”
!@#$%^&()_+{}|[]:”<>?;’,./?;:’-=等可能导致系统错误的字符、禁止直接输入特殊字符时,尝试使用粘贴拷贝查看是否能正常提交、word中的特殊功能,通过剪贴板拷贝到输入框,分页符,分节符类似公式的上下标等、数值的特殊符号如∑,㏒,㏑,∏,+,-等、
输入负整数、负小数、分数、输入字母或汉字、小数(小数前0点舍去的情况,多个小数点的情况)、首位为0的数字如01、02、科学计数法是否支持1.0E2、全角数字与半角数字、数字与字母混合、16进制,8进制数值、货币型输入(允许小数点后面几位)、
安全性检查:黏贴不能输入的内容检查
三、日期型输入框:
合法性检查:(输入0日、1日、32日)、月输入[1、3、5、7、8、10、12]、日输入[31]、月输入[4、6、9、11]、日输入[30][31]、输入非闰年,月输入[2],日期输入[28、29]、输入闰年,月输入[2]、日期输入[29、30]、月输入[0、1、12、13]
考虑开始日期与结束日历的比较,特别是在查询的时候.
异常值、特殊字符:输入空白或NULL、输入~!@#¥%……&
(){}[]等可能导致系统错误的字符
安全性检查:黏贴不能输入的内容检查

3 业务流程测试(主要功能测试)

业务流程,一般会涉及到多个模块的数据,所以在对业务流程测试时,首先要保证单个模块功能的正确性,其次就要对各个模块间传递的数据进行测试,这往往是容易出现问题的地方,测试时一定要设计不同的数据进行测试。
如某一功能模块具有最基本的增删改查功能,则需要进行以下测试:
单项功能测试(增加、修改、查询、删除)
增加——>增加——>增加 (连续增加测试)
增加——>删除
增加——>删除——>增加 (新增加的内容与删除内容一致)
增加——>修改——>删除
修改——>修改——>修改 (连续修改测试)
修改——>增加(新增加的内容与修改前内容一致)
修改——>删除
修改——>删除——>增加 (新增加的内容与删除内容一致)
删除——>删除——>删除 (连续删除测试)

4 链接测试

主要保证链接的可用性和正确性。

5 容错测试

输入不符合规则的数据检查
停止某模块,检查对当前系统的影响
配置出现错误和删除配置文件检查
数据库错误注入

6 稳定性测试

系统7*24不间断运行,检查是否会出现内存泄露、系统其他资源是否存在泄露
一般压力很大的情况下,数据库连接数问题、内存泄露问题会曝露的比较快但是死锁可能不能体现。

7 常规性能测试

连接速度测试
如果响应速度太慢,用户可能还没来得及浏览内容,就需要重新登陆了。而且,连接速度太慢,还可能引起数据丢失,使用户得不到真实的页面。
负载测试
测量Web系统在某负载级别上的性能,以保证Web系统在需求范围内能正常工作。可以是某个时刻同时访问的用户数量,也可以是在线数据处理的数量。例如:最多支持多少用户同时在线?如果超出,系统会怎么样?
压力测试
负载测试应该安排在Web系统发布以后,在实际的网络环境中进行测试。只有放在Internet上负载测试,其结果才是正确可信的。
进行压力测试是指实际破坏一个Web应用系统,测试系统的反映。压力测试是测试系统的限制和故障恢复能力,也就是测试Web应用系统会不会崩溃,在什么情况下会崩溃。黑客常常提供错误的数据负载,直到Web应用系统崩溃,接着当系统重新启动时获得存取权。
压力测试包括表单、登陆和其他信息传输页面等

8 易用性测试

系统界面的控件是否可以通过tab键遍历,并且顺序合理
主要功能的入口和操作是否易于理解
界面是否布局合理,功能是否易于查找和使用
操作步骤和习惯是否符合逻辑
有足够的提示信息,且信息文字描述准确

9 兼容性测试

兼容性测试不只是指不同操作系统或浏览器下的兼容,
有些功能实现也会因为兼容性问题出现故障,这功能测试要考虑到兼容性问题

测试用例设计的点与思路

1、ui

关注:页面元素、元素位置
把每一个页面当做一张图片,关注页面元素的位置,元素的层级,页面整体的组合,元素(如,icon的样式、种类,文案的字数、内容,图片的大小等),还有一些特殊状态(如夜间状态还有未加载成功时的兜底状态以及默认图)

2、功能

关注:边界值、等价类
根据需求文档确定功能的范围,以及无明确要求但行业确定的,用户操作的需求(从用户(非专业)的角度功能是否有效以及是否好操作)

3、交互

关注:滑动、点击、双击、交互组合
页面上下、左右、或上左角度的滑动,单次和多次点击页面元素、元素边缘、页面边缘,页面点击后再次点击,页面滑动后再次点击

4、接口

关注:合法值、非法值
接口的存在和接口值得合法与非法

5、判断

关注:判断的真与假
在判断为真时的代码逻辑,功能交互
在判断为假时的代码逻辑,功能交互
还需要关注是否有代码没有覆盖的逻辑

6、打点

打点需要提供打点文档,确定哪些打点应该存在,哪些打点不该存在,打点的值应该是什么

7、网络

关注:4g、5g、wifi、弱网
不同网络下的交互与性能

8、数据

关注:数据的显示、数据的安全、数据的边界值、还有内存的情况
查看数据是否有空白和乱码的情况,以及在多条数据请求时的展示

9、兼容

关注:不同的系统(安卓、ios、重点关注基于安卓开发的系统如小米的miui)
不同的系统版本、不同的机型、不同的屏幕比和屏幕大小

设计APP测试用例需要考虑哪些维度?

一、APP的安装与升级

1)升级中用户数据、设置、状态是否正常保留
2)是否支持低版本、高版本的覆盖安装。覆盖安装后用户数据正常保存
3)测试升级安装,升级安装后用户数据正常
4)需考虑灰度升级的问题,提示是否友好,可以X掉
5)强升是否正常,不升级app无法使用

二、APP的启动与停止

1)首次启动app正常进入loading页,loading页展示的时间、页面都正常
2)启动时间符合需求
3)手动kill掉app可以重新打开
4)app遇到crash后可以正常启动
5)重启app后登录态正常拉取

三、网络和流量

1)查看弱网下app能否正常运行,不会频繁报错
2)分别查看wifi/数据流量情况下的升级情况
3)非wifi,移动网络下app可以正常使用

四、文本框输入

1)点击输入框,app可以自动调起手机输入法
2)可以正常输入
3)支持复制粘贴的功能

五、权限安全问题

1)启动app时会弹出权限提示设置权限

六、中断测试

1)关机 2)断电 3)来电 4)push 5)前后台切换

七、兼容

1)横竖屏切换 2)中英文切换、字体切换、日夜模式 3)机型适配(安卓、ios)

八、性能

1)CPU 2)耗电量 3)流量 4)稳定性

测试用例编写原则及规范

1.统一测试用例编写的规范,为测试设计人员提供测试用例编写的指导,提高编写的测试用例的可读性,可执行性、合理性。
2.测试用例,不仅仅用于QA阅读和执行。它们也可能会被开发、PD、PM等阅读审查或执行;也更可能被其他测试人员或者新员工作为业务学习、测试执行的参照。
3.编写测试用例的最终目标是:一个对于产品毫无所知的人员,也能够快速的熟悉用例并执行用例。

用例模块划分规范

要求:
1.产品、功能点同一层级的结构按同一个纬度来划分。如应用、同等级产品、同等级功能点等;
2.产品是指产品线下大的业务模块。如交易购物车、交易下单;
3.功能点指业务模块下的子功能点,是最小功能点叶子节点。如01 功能_02 购物车展示_01 顶部及导航;
4.功能点目前无法再细分层级,后续会扩展功能点层次,在此之前,允许使用功能点名进行分层用例划分。如06 边境仓_03 发货单管理_02 创建发货单;
5.产品、功能点划分不允许包含冒烟、回归、自动化这类以测试阶段或测试方法的命名的名称;
6.主干用例库中产品、功能点已废弃的需要删除;
7.主干用例库中产品、功能点是之前QC迁移过来的,命名格式需要修改标准格式;
用例颗粒度划分规范
用例颗粒度原则:测试用例是执行的最小实体
用例划分基本原则是以最小功能模块来划分,为保障用例的可执行性、覆盖度,规范编写用例的粒度要求如下:
1.一个功能正常流程,编写一个测试用例;
2.一个功能中多个异常流程,应分开编写多个测试用例;
3.同一功能不同入口,可合并编写一个测试用例;
4.同一功能不同数据准备,应分开编写多个测试用例;
5.同一个功能用例的自动化用例和功能用例要匹配,若自动化用例不能完全覆盖功能用例,自动化用例和功能用例拆分两个互补测试用例;

用例编写要求规范

用例编写最基本的要求:
1.具有清晰名称、前提条件、操作步骤、期望结果的;
2.可被他人理解的;
3.可被他人执行的;
具体分项要求如下:
1.用例名称
1)常用的结构“主、谓、宾”;
2)名称简洁易懂,不要包括具体操作步骤;
2.前置条件
1)执行用例测试步骤前需要做的所有必备条件,原则上所有用例都有前置条件;
2)不可将其他用例作为前置条件,前置条件需要语言描述;
3)完整清楚,包括入口、帐号类型、账号权限、数据准备等,具体要求如下:
3.1)入口:覆盖所有功能入口,包含URL直接访问;
3.2)账号类型和权限:覆盖全部会员类型,注意业务权限控制,比如子账号权限,disable会员权限;
3.3)数据准备:数据准备完整正确,覆盖到线上环境的所有情况;标识出业务流程处于的条;件,写明数据库表字段值,如OFFER.status=TBD;对于复杂的数据准备,写清具体SQL
3.操作步骤
1)操作步骤描述清晰。如:在什么页面,点击什么链接或按钮;页面入口、链接、按钮名称都要写清楚;
2)操作和结果是一一对应的,但操作中不要包含结果的检查;
3)用例描述中不允许存在连词、介词,比如:而且,和,还(这种情况可以拆分为多个点);
4)用例描述中不允许出现假设性词汇,比如:假如,或许,可能,…的时候等;
5)用例描述中不允许出现二义性语句;
4.预期结果
1)原则上每个用例必需要有预期结果,结果不能为空;
2)结果中只能包含结果,不能有步骤;
3)一个结果有多个检查点时,确保检查点完整;
3.1)结果含需要验证的所有结果输出,如页面检查、存储检查、消息检查等;
3.2)结果涉及页面,需明确页面提示结果、数据变化;
3.3)结果涉及存储:需明确关键值变化、数据库具体的表和关键字字段值变化;
3.4)结果涉及消息:需明确关键查看内容;
3.5)结果对应不同输入数据有差别时需分别对应描述清晰;

用例维护规范

测试用例编写完成后,应对测试用例进行持续的维护:
1.新项目需求变更,应及时对测试用例进行修改;
2.维护期项目,可根据项目组情况周期对用例进行维护;
3.所有发现的bug和故障,基于测试用例无法发现,需转化为测试用例;
4.项目发布后的三个工作日内,需将项目用例根据具体情况归入产品功能用例库下

编写测试用例的方法与原则

编写测试用例常用的方法:

白盒:
代码检查与走查
桌面检查
同行评审
逻辑覆盖

黑盒:
等价类划分法
边界值分析法
错误推论法
因果图法
判定表驱动法
正交试验法
功能图法
场景法

测试用例的综合策略:

1、在任何情况下都必须使用边界值分析方法,经验表明用这种方法设计出测试用例发现程序错误的能力最强。
2、必要时用等价类划分方法补充一些测试用例。
3、用错误推测法再追加一些测试用例。
4、对照程序逻辑,检查已设计出的测试用例的逻辑覆盖程度,如果没有达到要求的覆盖标准,应当再补充足够的测试用例。
5、如果程序的功能说明中含有输入条件的组合情况,则一开始就可选用因果图法。

测试用例的制定原则:

测试用例要包括欲测试的功能、应输入的数据和预期的输出结果。测试数据应该选用少量、高效的测试数据进行尽可能完备的测试;基本目标是:设计一组发现某个错误或某类错误的测试数据,测试用例应覆盖方面:
1、正确性测试:输入用户实际数据以验证系统是满足需求规格说明书的要求;测试用 例中的测试点应首先保证要至少覆盖需求规格说明书中的各项功能,并且正常。
2、容错性(健壮性)测试:程序能够接收正确数据输入并且产生正确(预期)的输出,输入非法数据(非法类型、不符合要求的数据、溢出数据等),程序应能给出提示 并进行相应处理。把自己想象成一名对产品操作一点也不懂的客户,在进行任意操作。
3、安全性测试:对未经授权的人使用软件系统或数据的企图,系统能够控制的程度,程序的数据处理能够保持外部信息(数据库或文件)的完整。
4、接口间测试:测试各个模块相互间的协调和通信情况,数据输入输出的一致性和正确性。
5、数据库测试:依据数据库设计规范对软件系统的数据库结构、数据表及其之间的数据调用关系进行测试。
6、边界值分析法:确定边界情况(刚好等于、稍小于和稍大于和刚刚大于等价类边界值),针对我们的系统在测试过程中主要输入一些合法数据/非法数据,主要在边界值附近选取。
7、 压力测试:输入10条记录运行各个功能,输入30条记录运行,输入50条记录运行。。。进行测试。

8、等价划分:将所有可能的输入数据(有效的和无效的)划分成若干个等价类。
9、错误推测:主要是根据测试经验和直觉,参照以往的软件系统出现错误之处。
10、效率:完成预定的功能,系统的运行时间(主要是针对数据库而言)。
11、可操作性:理解和使用该系统的难易程度(界面友好性)。
12、可移植性:在不同操作系统及硬件配置情况下的运行性。
13、回归测试:按照测试用例将所有的测试点测试完毕,测试中发现的问题开发人员 已经解决,进行下一轮的测试。
14、比较测试:将已经发版的类似产品或原有的老产品与测试的产品同时运行比较,或与已往的测试结果比较

点击查看

本文标题:测试用例分析设计

文章作者:Mango

发布时间:2023年08月21日 - 19:17:32

最后更新:2023年08月22日 - 14:55:31

原始链接:https://mango185.github.io/post/ecacbd89.html

许可协议: 署名-非商业性使用-禁止演绎 4.0 国际 转载请保留原文链接及作者。

-------------------本文结束 感谢您的阅读-------------------