前些天发现了一个巨牛的人工智能学习网站,通俗易懂,风趣幽默,忍不住分享一下给大家。点击跳转到网站
🌈C++专栏: 南桥谈C++
🌈C语言专栏: C语言学习系列
🌈Linux学习专栏: 南桥谈Linux
🌈数据结构学习专栏: 数据结构杂谈
🌈数据库学习专栏: 南桥谈MySQL
🌈Qt学习专栏: 南桥谈Qt
🌈菜鸡代码练习: 练习随想记录
🌈git学习: 南桥谈Git
文章目录
- 概念
- 设计测试⽤例
- 常规思考+逆向思维+发散性思维
- 万能公式
- 弱网测试
- 安装卸载测试
- 设计测试用例的方法
- 基于需求的设计方案
- 具体的设计方法
- 等价类
- 边界值
- 正交法
- 判定表法
- 场景法
- 错误猜测法
- 接口测试工具
概念
测试⽤例(TestCase)是为了实施测试⽽向被测试的系统提供的⼀组集合,这组集合包含:测试环境、操作步骤、测试数据、预期结果等要素。
假设你现在买回来了一个手机,需要进行测试,根据个人经验需要测试以下:
- 开机测试
- 切换界面
- 视频分辨率
- 测试网络
- 蓝牙功能
- 像素等等
这些测试条目不会写在纸上,不会以文字形式展示出来,这里的一条条内容就是一个测试用例。
软件中涉及到太多的特性,仅仅通过脑子去想是无法完成完整的测试。通过编写测试用例可以想到测试哪些内容,一次又一次更新修改可以完善测试内容,功能覆盖率更高。
笔试面试小Tips:
- 笔试的时候编写测试用例题需要按照Excel表格的方式来答题(会涉及到测试用例的要素)
- 面试的时候回答测试用例题时需要按照思维导图方式一一道来即可(不会涉及到测试要素)
设计测试⽤例
案例:
现在有⼀款产品,要求我们对“⻔锁”设计测试用例
常规思考+逆向思维+发散性思维
- 测试⽤例的编写不仅应当根据有效和预料到的输⼊情况,⽽且也应该根据⽆效和未预料到的输⼊情况。
- 检查程序是否“未做其应该做的”仅是成功的⼀半,测试的另⼀半是检查程序是否“做了其不应该做的”
- 计划测试⼯作时不应默许假定不会发现错误
万能公式
设计测试⽤例的万能公式:功能测试+界⾯测试+性能测试+兼容性测试+易⽤性测试+安全测试
所谓的万能公式是给你一个考虑的方向。比如让你说出家里的电气,但是明明用过很多却在短时间内想不起来几个,此时如果给你几个提示:厨房电器、客厅电器、卫生间电器等这些方向,你就会顺着这些方向去进行思考。
- 功能测试:从产品功能角度出发,验证功能是否正确
- 界面测试:眼睛可以看到的元素都需要测试。界面设计到的内容:元素(大小、颜色、材质)
- 性能测试:功能测试检查软件是否做了,⽽性能测试测试软件做的好不好。性能测试是在特殊场景下做特殊的测试。
- 兼容性差测试:浏览器兼容性,版本兼容性,数据兼容性等
- 易用性兼容性:软件是否具备简单易上手属性以及新用户在使用时是否有新用户引导
- 安全测试:安全问题有很多,例如:密码是否有回显、隐私数据存储是否加密、接口返回值省略隐私数据
除了上述测试之外还有弱网测试、安装卸载测试
弱网测试
弱⽹测试的⽬的就是尽可能保证用户体验**,为了覆盖更多的网络场景**,关注的关键点包括:
- 页面响应时间是可以接受,关注包括热启动、冷启动时间、⻚⾯切换、前后台切换、⾸字时间,⾸屏时间等
- 页面呈现是否完全一致
- 超市文案是否 符合定义,异常信息是否显示正常
- 是否有超时重连
- 安全角度:是否会发生dns劫持、登录ip更换频繁、单点登录异常等
- 大流量事件风险:是否在弱网下进行更新apk包、下载文件等大流量操作
如何进行弱网测试?
弱⽹需要借助⼯具来构造弱⽹,这⾥推荐使⽤fiddler
- 打开弱网设置选项
- 打开设置弱网脚本
表示传输1KB需要多少毫秒,设置的数字越大,传输速率越慢
安装卸载测试
针对需要进⾏部署的软件,除了软件功能外,我们还需要关注软件的能够成功安装和卸载
设计测试用例的方法
基于需求的设计方案
测试和开发的依据:软件需求(需求文档/产品规格)
接到需求之后,要对需求进⾏分析和验证,从合理的需求中进⼀步分析细化需求,从细化的需求中找出测试点,根据这些测试点再去设计测试⽤例。
具体的设计方法
以下具体方法旨在提高我们测试的思路以及提高我们设计测试的能力。
等价类
穷举法:无法借助该方法进行测试,耗时耗力
依据需求将输⼊(特殊情况下会考虑输出)划分为若⼲个等价类,从等价类中选出⼀个测试⽤例,如果这个测试用例测试通过,则认为所代表的等价类测试通过,这样就可以⽤较少的测试⽤例达到尽量多的功能覆盖,解决了不能穷举测试的问题。
等价类的分类:
- 有效等价类:对于程序的规格说明书是合理的、有意义的输⼊数据构成的集合,利⽤有效等价类验证程序是否实现了规格说明中所规定的功能和性能
- ⽆效等价类:根据需求说明书,不满⾜需求的集合
缺点:等价类只考虑输⼊域的分类,没有考虑输⼊域的组合,需要其他的设计⽅法和补充
边界值
边界值分析法就是对输⼊或输出的边界值进⾏测试的⼀种⿊盒测试⽅法。通常边界值分析法是作为对等价类划分法的补充,这种情况下,其测试⽤例来⾃等价类的边界。
边界值包含:
- 边界值:给定返回的左数据和右数据
- 次边界值:若边界值为有效等价类中的数据,则次边界值为无效等价类中的边界;若边界值为无效等价类中的数据,则次边界值为有效等价类中的边界
举例:
- 有效范围是[6,15]
- 边界值:6、15(有效)
- 次边界值:5、16(无效)
- 有效范围是(6,15)
- 边界值:6、15 (无效)
- 次边界值:7、14(有效)
正交法
假如当前有两个选项A和B,可以设计出都填写、都不填写、填写A、填写B四个测试⽤例
假如当前有三个选项A、B、C,通过设计可以得到8个测试⽤例
… …
正交试验设计是研究多因素多⽔平的⼀种设计⽅法,它是根据正交性,由试验因素的全部⽔平组合中挑选出部分有代表性的点进⾏试验,通过对这部分试验结果的分析了解全⾯试验的情况,找出最优的⽔平组合。正交试验设计是⼀种基于正交表的、⾼效率、快速、经济的试验。
什么是正交表?以下是来自百度百科的讲解:
- 正交表的构成:因素数、⽔平数、⾏数。
- 因素:对指标的影响条件,通常是正交表中的⼀列。
- ⽔平:因素对应的可选项。
正交表的性质
- 每一列中,不同数字出现的次数相等
- 任意两列中数字的排列方式齐全而且均衡
正交法的⽬的是为了减少⽤例数⽬。⽤尽量少的⽤例覆盖输⼊的两两组合
设计正交表我们需要使用工具:allparis
,来生成正交表
正交法设计测试⽤例的步骤:
- 找到因素和水平
- 将因素和水平写到Excel表格中(表格不需要保存,建议使用微软的Excel)
- allparis⽬录下创建新的⽂本⽂件
.txt
,复制Excel中的因素和⽔平,直接粘贴到⽂本中保存并退出 - 使用allparis工具对文本文件生成正交表文件,命令:
allparis.exe xxx.txt > res_xxx.txt
判定表法
判定表是⼀种表达逻辑判断的⼯具,形如:
非常容易编写出测试用例,可以把所有条件对应的结果清晰的表达出来。
根据判定表法设计测试⽤例的步骤:
- 确认需求中输⼊条件和输出条件
- 找出输⼊条件和输出条件之间的关系
- 画判定表
- 根据判定表编写测试⽤例
场景法
现在的软件⼏乎都是⽤事件触发来控制流程的,例如步骤一完成之后才能触发步骤二,步骤二完成才能触发步骤三等等。事件触发时的情景便形成了场景,⽽同⼀事件不同的触发顺序和处理结果就形成事件流。
每一个业务都有一个基本流,但是会有多个备用流。
通过运⽤场景来对系统的功能点或业务流程的描述,从⽽提⾼测试效果的⼀种⽅法。
⽤例场景来测试需求是指模拟特定场景边界发⽣的事情,通过事件来触发某个动作的发⽣,观察事件的最终结果,从⽽⽤来发现需求中存在的问题。我们通常以正常的⽤例场景分析开始,然后再着⼿其他的场景分析。场景法⼀般包含基本流和备⽤流,从⼀个流程开始,通过描述经过的路径来确定的过程,经过遍历所有的基本流和备⽤流来完成整个场景。场景主要包括4种主要的类型:正常的⽤例场景,备选的⽤例场景,异常的⽤例场景,假定推测的场景。
错误猜测法
错误猜测法是对被测试软件设计的理解,过往经验以及个⼈直觉,推测出软件可能存在的缺陷,从⽽针对性地设计测试⽤例的⽅法。
强调的是对被测试软件的需求理解以及设计实现的细节把握,还有个⼈的经验和直觉。
错误推测法和⽬前流⾏的“探索式测试⽅法”的基本思想⼀致,这类⽅法在敏捷开发模式下的投⼊产出⽐很⾼,被⼴泛应⽤于测试
接口测试工具
使⽤接⼝测试⼯具来提供测试的质量和效率,常⽤的接⼝测试⼯具有postman,关于postman使用需要在实践中不断学习
- 创建请求
- 发起请求