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