软件测试 - 测试用例(设计测试用例的思路、万能公式、测试用例设计的方法)

news2024/12/25 13:08:56

一、测试用例

1.1 概念

测试用例( Test Case )是为了实施测试而向被测试的系统提供的一组集合,这组集合包含:测试环 境、操作步骤、测试数据、预期结果等要素。

1.2 编写测试用例

1)excel 表格编写

笔试题的测试用例基本上用 excel 编写

2)思维导图编写

面试用思维导图的方式编写

二、设计测试用例的思路

工作中,测试用例的设计并不是越多越好,而是能够达到更大的功能覆盖率则式更好的!
学习中、面试中,一定是越多越好的!!

2.1 使用 常规思维+逆向思维+发散性思维

常规思维: 根据有效数据和预料到的输入情况

逆向思维:根据无效的和未料到的输入情况

发散性思维:检查程序 是否 “做了其该做的”,有没有“未做其应该做的”,是否“做了不该做的”

例如:登录页面

正常思维

        输入正确的用户名和密码,登录成功。输入错误的用户名或者密码,登录失败。

逆向思维

        输入各种特殊符号:!~·《》{}——+ 等,或者不填,或者全填空格

        或者使用十六进制的数字、八进制的数字

发散性思维

        空格 + 正确的用户名 和 空格 + 正确的密码 ?正确的用户名 + 空格 和 正确的密码 +空格 ?或者用sql注入的攻击方式?把用户名和密码的位置填反?

sql注入 ,在输入框填写 or 1 =1

2.2 测试用例 - 万能公式 - 六个测试方向

 功能测试 + 界面测试 + 性能测试 + 兼容性测试 + 易用性测试 + 安全测试

功能测试:从产品功能角度出发,验证功能是否正确

界面测试:用户肉眼能看到的各种。(页面的大小、图片、输入框、按钮、文字、弹窗等)

性能测试:在极端情况下,验证功能是否正常。

兼容性测试:系统兼容性(pc(Windows 、MacOS、Linux)、移动端(IOS、安卓))、浏览器兼容性(谷歌、ie、火狐等 xxx.xx.xx版本)、数据兼容性(新增功能,是否影响以前功能)等

易用性测试:具备简单易上手的属性,(引导教程)能让用户快速上手使用。

安全测试:用户数据的安全性、md5加密等、预防黑客恶意攻击(sql注入、xss攻击等)

                密码是否加密展示、隐私数据存储是否加密(身份证号)

根据上面的万能公式对 水杯 进行测试

功能测试:水杯材质、容量、瓶口大小、开关盖子是否正常、关盖是否漏水、过滤茶叶

界面测试:水杯大小、颜色、形状

性能测试:保温、防烫、防爆、防腐

兼容性测试:携带是否便利、瓶子直径是否能放入正常大小的书包、是否能能上地铁、高铁、飞机?

易用性测试:是否容易注入和倒水、是否好开盖关盖、是否容易清洗、拿起来是否费力?

安全测试:儿童是否能使用、材质是否有毒、会不会刮伤皮肤

2.3 弱网测试

为了覆盖更多的网络场景 :wifi 、5G、4G、3G、2G 

• ⻚⾯响应时间是否可以接受,关注包括热启动、冷启动时间、⻚⾯切换、前后台切换、⾸字时间, ⾸屏时间等。

• ⻚⾯呈现是否完成⼀致。

• 超时⽂案是否符合定义,异常信息是否显⽰正常。

• 是否有超时重连。

• 安全⻆度:是否会发⽣dns劫持、登陆ip更换频繁、单点登陆异常等。 • ⼤流量事件⻛险:是否会在弱⽹下进⾏更新apk包、下载⽂件等⼤流量动作。

在网上找的一张图:

弱网测试工具:抓包工具 fiddler 可以模拟2345g

再点击customize rules(建议再把上面的弱网设置点一下,这个是一次性的,每次测试都有重新点一下)

会自动弹出来这样的页面,使用ctrl + f 搜索 m_simu 找到这段代码

这里表示 上传 1kb 的数据需要的时间,默认上行速度 300ms,下行速度150ms

当我们修改时间

时间设置的越大,传输速率越慢 (可以模拟弱网)

发现加载的确变慢了

fiddler上可以设置抓指定网页的包,这个网页的包会标成蓝色

2.4 安装卸载测试

移动端、客户端软件

安装:安装包是否可以安装、卸载之后是否可以继续安装、重复安装..

卸载:安装完成后卸载、安装一半后卸载、卸载一次后继续安装卸载、卸载一半后停止是否可以卸载..

更新:更新之后安装包是否会整合、更新一半停止后继续更新..

三、设计测试用例

测试和开发工作开展的依据:软件需求(软件需求是再用户需求基础上进行需求分析总结出来的)

参考需求⽂档/产品规格说明书来设计测试⽤例

3.1 根据需求文档 写出初步的测试用例

例如

 3.2 具体的设计方法

1.等价类

将输入的数据划分为若干个等价类,从等价类中选出⼀个测试⽤例,
如果这个测试用例测试通过,则认为所代表的等价类测试通过,这样就可以⽤较少的测试⽤例达到尽量多的 功能覆盖,解决了不能穷举测试的问题。
1)确定 有效等价类 和 无效等价类:

等价类分类:

有效等价类 :(有效的输入集合)
        对于程序的规格说明书是合理的、有意义的输⼊数据构成的集合,利⽤有效等价类验证程序是否实现了规格说明中所规定的功能和性能
⽆效等价类
        根据需求说明书,不满⾜需求的集合。

例如:

“姓名必填,6~15位的字符类型”,这样⼀个具体的需求
         有效等价类 : 6~15位
         无效等价类 :<6 和 >15位
2)设计具体测试数据

 2.边界值

        边界值分析法就是对输⼊或输出的边界值进⾏测试的⼀种⿊盒测试⽅法。
        通常边界值分析法是作为对等价类划分法的补充,这种情况下,其测试⽤例来⾃等价类的边界。

边界值包含:边界值 和 次边界值

例如:

有效范围是[6,15]

        边界值:6 15 (有效)

    次边界值:5 16 (无效)

有效范围是(6,15)

        边界值:6 15 (无效)

    次边界值:7 14 (有效)

例如:

“姓名必填,6~15位的字符类型”,这样⼀个具体的需求

3.场景法 

        现在的软件⼏乎都是⽤事件触发来控制流程的,事件触发时的情景便形成了场景,⽽同⼀事件不同的 触发顺序和处理结果就形成事件流。
        
        场景法⼀般包含基本流和备⽤流,从⼀个流程开始,通过描述经过的路径来确定的过程,经过遍历所 有的基本流和备⽤流来完成整个场景。
        场景主要包括4种主要的类型:正常的⽤例场景,备选的⽤例场 景,异常的⽤例场景,假定推测的场景
例如逛街买衣服
        基本流:出门到商业街 - > 去服装店 -> 挑选衣服 -> 购买衣服
        备用流:商业街 -> 这个服装店关门了-> 去其他服装店 -> 挑选衣服 -> 购买衣服
        备用流:商业街 -> 去服装店 -> 挑选衣服 -> 衣服价格太高 -> 去其他服装店 -> 挑选衣服 -> 购买衣服
        备用流:天气不好,不出门了-> 改天去商业街 - > 去服装店 -> 挑选衣服 -> 购买衣服
...

确定基本流和备用流后,编写测试用例:

 4.正交法

1)正交表

        结合了数学和概率学,研究多因素多水平的一种设计方法,是根据正交性,有试验因素的全部水平组合中挑选出部分有代表性的点进行试验,通过对这部分试验结果的分析,了解全面试验的情况,找到最优的水平组合。正交试验设计是一种基于正交表的、高效率、快速、经济的试验。

为了减少用例数目,用尽量少的用例覆盖输入的两两组合。

 2) 正交表的特性

3)使用工具 allpairs.ext 设计正交表

根据需求找到 因素 和 水平

将因素 和 水平 写到excel(微软自带的软件)中

在 allpairs.exe 同级文件下创建文本文档(.txt),将excel里写好的数据复制粘贴到 .txt文本里,(不要有其他的操作)直接保存,关闭

在allparis.exe 工具所在的文件路径下,在路径位置输入cmd,对txt文件生成正交表文件

使用命令 allpairs.exe test01.txt > res-test01.txt

没有任何提示,就表示生成成功了

生成了这个 res-test01.txt 文本

根据生成好的正交表,编写测试用例,并补全重要的测试用例

原本2^5是32个测试用例,使用正交表后,就只需要使用6个测试用例了

加上 全部不填写的测试用例,一共7个。

注意:如果手动在 txt 里写 因素 和 水平,那么 使用allpairs工具的时候,会报错

分析allpairs生成的正交表

根据正交表的特性

每⼀列中,不同的数字出现的次数相等。
任意两列中数字的排列⽅式⻬全⽽且均衡
发现生成的正交表并不完全满足 第二条特性,有的排列出现两次,有的只出现一次。
allpairs工具生成的正交表和实际的正交表会出现一定出入,但这并不影响整体的情况

5. 判定表法

通过具体的⽅法能够将测试⽤例设计的更加完整和规范。
需求中会存在各种各样的场景
例如:
        ⽤⼾输⼊的账号中包含admin字符,或者通过内部链接进⼊注册⻚⾯,提交注册按钮成为管理员⾝份;反之⽆管理员⾝份。
1)判定表

相比上面这样排列,判定表就很直观

 

2)判定表法 设计测试用例的步骤
根据判定表法设计测试⽤例的步骤:
1. 确认需求中输⼊条件和输出条件
        
2. 找出输⼊条件和输出条件之间的关系
3. 画判定表
4. 根据判定表编写测试⽤例

 

6.错误猜错法 

        过往经验以及个⼈直觉,推测出软件可能存在的缺陷,从⽽ 针对性地设计测试⽤例的⽅法。
        这个⽅法强调的是对被测试软件的需求理解以及设计实现的细节把握,还有个⼈的经验和直觉。
        错误推测法和⽬前流⾏的“探索式测试⽅法的基本思想⼀致,这类⽅法在敏捷开发模式下的投⼊产出⽐很⾼,被⼴泛应⽤于测试。

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.coloradmin.cn/o/2048608.html

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

【Nginx】Nginx 安装(平滑升级和回滚)

一、 Nginx 概述 Nginx 介绍 Nginx &#xff1a; engine X &#xff0c; 2002 年开发&#xff0c;分为社区版和商业版 (nginx plus ) 2019 年 3 月 11 日 F5 Networks 6.7 亿美元的价格收购 Nginx 是免费的、开源的、高性能的 HTTP 和反向代理服务器、邮件代理服务器、以…

路由器VLAN配置(H3C)

路由器VLAN配置&#xff08;H3C&#xff09; 控制页面访问 路由器默认处于192.168.1.1网段&#xff08;可以短按reset重置&#xff09;&#xff0c;如果要直接使用需要设置静态IP处于同一网段&#xff1b; 对路由器进行配置也要将电脑IP手动设置为同一网段&#xff1b; 默…

音频剪辑软件哪个好用?五大音频剪辑软件分享

如果你正打算在家自学视频制作&#xff0c;那么恭喜你&#xff0c;你已经踏上了一段充满魔法与惊喜的旅程&#xff01;不过&#xff0c;别忘了&#xff0c;视频的灵魂不仅仅在于画面&#xff0c;更在于那直击心灵的音效。 想象一下&#xff0c;一个精心剪辑的片段&#xff0c;…

如何拯救非正常专利申请?

在无忧专利微信公众号2023年年初的一篇文章中提到&#xff0c;出于提质增效的考虑&#xff0c;专利局加大了对非正常申请的打击力度。 专利局打击非正常申请的方式包括&#xff1a;建立黑名单、启用新的业务办理系统、使用大数据识别技术、惩罚非正常申请和非正常代理行为。 …

Vehicle Perception from Satellite(2024 TPAMI 卫星视频车流量监控)

Vehicle Perception from Satellite&#xff08;2024 TPAMI 卫星视频车流量监控&#xff09; 前言1.1 动机1.2 概述1.3 贡献 2 相关工作2.1 遥感中的目标检测2.2 计算机视觉中的相关任务2.3 卫星交通监控 3 TMS 数据集3.1 数据收集与预处理3.2 数据统计3.3 应用任务 4 实验4.1 …

C++奇迹之旅:手写vector模拟实现与你探索vector 容器的核心机制与使用技巧

文章目录 &#x1f4dd;基本框架&#x1f320; 构造和销毁&#x1f309;vector()&#x1f309;vector(const vector& v)&#x1f309;vector(size_t n, const T& value T())&#x1f309;赋值拷贝构造&#xff1a;vector<T>& operator(vector<T> v)&a…

XSS的DOM破坏

目录 1、DOM破坏案例解释 1.1先写一个demo.html文件 1.2、执行demo&#xff0c;看到是否将全部移除%20scr1%20οnerrοralert(1)> 分析&#xff1a; 解决&#xff1a;把两个for不在同一个数组进行操作 1.3、接下来我们要想办法让第二个for循环不能删除&#xff0c;留下…

android FD_SET_chk问题定位

android FD_SET_chk问题定位 一、FD报错二、问题定位2.1 APM定位2.2 adb定位2.3. 代码获取FD数 三、FD优化 一、FD报错 App在运行中记录报错如下&#xff0c;FD_SET&#xff0c;这个问题大概是文件描述符&#xff08;File Descriptor&#xff0c;简称FD&#xff09;超过了最大…

首款会员制区块链 Geist 介绍

今天&#xff0c;Pixelcraft Studios 很高兴地宣布即将推出 Geist&#xff0c;这是一个由 Base、Arbitrum、Alchemy 以及 Aavegotchi 支持的全新 L3。 Geist 之前的代号为 “Gotchichain”&#xff0c;是首个专为游戏打造的会员专用区块链。 为什么选择 Geist&#xff1f; …

Spring DI 简单演示三层架构——Setter 注入

Spring IOC 的常见注入方法有3种&#xff1a;Setter注入、构造注入和属性注入。想了解更多可点击链接&#xff1a;Spring 注入、注解以及相关内容补充 属性注入 不推荐。原因&#xff1a;使用私有的成员属性变量&#xff0c;依靠反射实现&#xff0c;破坏封装&#xff0c;只能依…

~Keepalived高可用集群~

一、Keepalived简介 是一个用于实现高可用性的解决方案&#xff0c;它主要应用于云主机的主备切换&#xff0c;以达到高可用性&#xff08;HA&#xff09;的目的。当主服务器发生故障无法对外提供服务时&#xff0c;动态将虚拟IP切换到备服务器&#xff0c;继续对外提供服务&a…

DOM破坏

XSS Game 1、第一关 Ma Spaghet! <!-- Challenge --> <h2 id"spaghet"></h2> <script>spaghet.innerHTML (new URL(location).searchParams.get(somebody) || "Somebody") " Toucha Ma Spaghet!" </script> S…

【ubuntu24.04】wget配置代理加速下载

参考之前的wget代理配置 wget速度非常慢 配置控制台代理不行 配置wget代理 本机部署了代理程序:all_proxy 不识别:root@PerfSvr:~# cat set65proxy.sh #!/bin/sh export

[STM32F429_硬件知识01]

知识点1 &#xff1a;J-Link的使用步骤&#xff1a; step1 : 安装J-Link驱动程序 step2 : keil的魔术棒中 -> Debug -> Use中选择J_Link ->点击 Settings ->

AI 时代风暴:程序员的核心竞争力大揭秘

引言&#xff1a; 在当今科技浪潮以排山倒海之势汹涌澎湃之际&#xff0c;人工智能宛如璀璨星辰般不断涌现&#xff0c;AIGC&#xff08;如 chatgpt、midjourney、claude 等&#xff09;大语言模型如雨后春笋般破土而出&#xff0c;AI 辅助编程工具更是以风驰电掣之速迅速席卷编…

智能电销机器人提升工作效率

随着科技的不断发展&#xff0c;电销行业也在不断探索创新&#xff0c;其中电销机器人作为一种高效的工具&#xff0c;正逐渐成为企业提升工作效率的利器。让我们一起看看电销机器人如何助力企业提高效率&#xff1a; 1. 自动化拨打电话 电销机器人每天可以自动拨打大量电话&a…

element-plus表格组件el-table 的使用

表格是在前端页面中是经常被用到的&#xff0c;尤其是管理系统&#xff0c;几乎每个页面都会存在表格&#xff0c;所以掌握表格组件是非常有必要的。element-plus提供el-table&#xff0c;el-table-column来渲染表格&#xff0c; 1. el-table 组件主要属性 属性名作用值类型…

【C语言小项目】五子棋游戏

目录 前言 一、游戏规则 1.功能分析 2.玩法分析 3.胜负判定条件 二、游戏实现思路 三、代码实现与函数封装 1.项目文件创建 2.头文件说明 3.函数封装 1&#xff09;菜单实现 2&#xff09;进度条实现 3&#xff09;main函数实现 4&#xff09;Game函数 5&#xff0…

Java语言程序设计——篇十三(4)

&#x1f33f;&#x1f33f;&#x1f33f;跟随博主脚步&#xff0c;从这里开始→博主主页&#x1f33f;&#x1f33f;&#x1f33f; 欢迎大家&#xff1a;这里是我的学习笔记、总结知识的地方&#xff0c;喜欢的话请三连&#xff0c;有问题可以私信&#x1f333;&#x1f333;&…

下载中心: 使用异步方法生成文件任务+键集分页查询

文章目录 引言I 下载中心功能进度表设计异步处理文件生成案例II 键集分页查询提高查询效率解决分页查询出现数据重复或丢失案例III 工具线程池基于EasyExcel 生成 excel文件存储系统see also引言 需求: 根据查询条件导出数据,比如交易流水、设备安装资料。 流程设计:点击导…