| |
|
开发:
C++知识库
Java知识库
JavaScript
Python
PHP知识库
人工智能
区块链
大数据
移动开发
嵌入式
开发工具
数据结构与算法
开发测试
游戏开发
网络协议
系统运维
教程: HTML教程 CSS教程 JavaScript教程 Go语言教程 JQuery教程 VUE教程 VUE3教程 Bootstrap教程 SQL数据库教程 C语言教程 C++教程 Java教程 Python教程 Python3教程 C#教程 数码: 电脑 笔记本 显卡 显示器 固态硬盘 硬盘 耳机 手机 iphone vivo oppo 小米 华为 单反 装机 图拉丁 |
-> 开发测试 -> 通用测试技术【二】测试方法 -> 正文阅读 |
|
[开发测试]通用测试技术【二】测试方法 |
1.等价类划分法?? ? 把程序的输入域划分成若干部分,然后从每个部分中选取少数有代表性的数据出来进行测试。 ? ? 有效等价类:对于被测对象来说是合理的、有意义的、可以接受的输入。简单来说就是正确的数据。 ? ? 无效等价类:对被测对象而言是不合理的、无意义的、不能接受的输入。简单来说也就是错误的数据。 ? ? 举例:规定用户名的长度为6-18位,如果输入数据在这个长度内,就是有效等价类。不在这个范围内(少于6位或超过18位),就是无效等价类。因此,设计用例时,针对这个要求,可以设计出一条正向用例和两条反向用例。 ? ? 用例设计方法: ? ? ? ? 设计正向用例时,使其尽可能多地覆盖尚未覆盖的有效等价类。重复这一步,直至所有的有效等价类都被测试用例所覆盖。 ? ? ? ? 设计反向用例时,使其只覆盖一个无效等价类。重复这一步,直至所有的无效等价类都被用例覆盖到。用科学实验的思维来看,就是控制变量法。 2.边界值分析法? ? 这个通常作为等价类划分法的补充,主要对输入或输出的边界值进行测试。 ? ? 即:如果输入条件规定了取值范围,则取边界值以及最接近这个边界的值来进行测试。? ? ? 举例:假设年龄的取值范围规定为[18,30],则它的边界值是18,30,最接近这两个边界的数分别是17,19和29,31。因此,这六个数可以作为边界值来进行测试。如果测试时间紧的话,也可以只取17、18和30、31。 ? ? 如果是开区间(18,30)的话,因为年龄只能取整,所以本质上,它的取值范围在[19,29]之间,即它的边界值是19,29。离边界最近的数是18,20和28,30。由此可知,这种条件下年龄的边界值取值有18,19,20和28,29,30。 ? ? 一些常见的边界值:循环的第0次、第一次、倒数第二次和最后一次;有序集合的第一个和最后一个元素(如下拉列表);具备一些开发知识也可以帮助我们挖掘出隐藏的边界值条件,如java中byte类型的取值范围就是[-128,127]等。 3.决策表(判定表)? ? 主要用于多条件的组合和结果分析。 ? ? 设计步骤: ? ? (1)确定规则的个数 ? ? ? ? ? ? 假设有n个输入条件,则规则有2^n个(因为每个条件只有两个值,真或假),这也就是初始的决策表的列数。 ? ? (2)列出所有的条件桩和动作桩 ? ? ? ? ? ? 条件桩:所有的输入条件 ? ? ? ? ? ? 动作桩:所有的输出条件 ? ? (3)填入条件项和动作项,得到初始的判定表 ? ? ? ? ? ? 条件项:该条件的具体取值,0或1 ? ? ? ? ? ? 动作项:所有条件项组合得到的输出结果 ? ? (4)简化、合并相似规则或相同动作 ? ? ? ? ? ? 规则:一列就是一条规则 ? ? 举例:见千锋测试课程P66-判定表法分析,或者自己取网上找吧。 ? ? 注1:条件的取值只能有两种,如果不是,则不适用决策表。 ? ? 注2:有时候条件太太太多了,不可能全部列完或者测完,就需要我们进行优化。优化的策略是均匀覆盖,使每个条件都取到真假值。例如: 4.因果图? ? 根据输入条件的组合、约束关系和输出条件的因果关系,分析输入条件的各种组合情况,从而设计测试用例。 ? ? 因果图的优势就是在于发现设计中的不足。对于一些只有输入没有输出的情况,这是一种缺陷,不能设计成测试用例。用例编写要以需求为主,需求中没有的输出结果,那就不能写出来。可以先跟产品经理提,完善需求,然后再补充用例。典例:千锋测试课程P63--自动售货机案例。 ? ? 因果图举例:?? ? ? ?注:因果图和决策表都是基于正向思维设计的用例。二者虽然都是针对输入条件的多组合分析,但因果图更侧重于输入条件之间、输入和输出之间的因果关系。 5.正交试验法? ? 因子、因素:对实验结果有影响的量 ? ? 水平:因子的取值数 ? ? 正交试验法只适用于水平数都相同的情况。如果因子A有3种取值,因子B有4种取值,那么这种情况就不在正交试验法的适用范围内。 ? ? 设计步骤:(1)分析所有对结果有影响的因素 ? ? ? ? ? ? ? ? ? ? ? (2)分析每个因素的水平数 ? ? ? ? ? ? ? ? ? ? ? (3)选择合适的正交表,找最贴近的。一般来说,会大于实际的因子数和水平数 ? ? 工具:正交设计助手。输入因子和水平,可以自动生成正交结果。 6.场景法? ? 基于业务场景(用户的操作过程,正确的或错误的)来设计测试用例。 ? ? 基本流:所有的操作都是正确的,最终能达到目标的流程。 ? ? 备选流:有部分操作是错误的,导致流程反复,但最后还是能达到目标的流程。 ? ? 异常流:操作错误导致最后没有达到目标的流程。 ? ? 举例:去ATM机取款。 ? ? ? ? ①插的卡是对的,是可以使用的银行卡;密码输入正确,输入的钱数没超过卡的余额且ATM机内有这么多钱,最终取到了钱。这就是基本流,整个过程的操作没任何问题。 ? ? ? ? ②插错卡了,重插对的卡;密码输入错了,再输一次,对了;输入的钱数没超过余额也没超过ATM机里的钱,最后把钱给取出来了。这是备选流,中途虽然出了一点差错,但是最终还是达到了目标要求。 ? ? ? ? ③插卡对了,密码输错了三次,卡被冻结了,取不了钱。这是异常流,业务流程没走到终点。 ? ? 用例设计步骤:(1)找出程序的基本流(正确的操作流程)和备选流、异常流?(出错的环节) ? ? ? ? ? ? ? ? ? ? ? ? ? ? ?(2)分析业务流程,画出流程图; ? ? ? ? ? ? ? ? ? ? ? ? ? ? ?(3)一条路径就是一个场景。 7.功能图法? ? 有点复杂,不太懂,懒得写了,以后再看吧。 8.错误推测法? ??基于经验和直觉推测程序中存在的错误,从而有针对性地设计测试用例。 9.其他设计方法? ? 9.1测试大纲法? ? ? ? ? ? 着眼于需求,列出各种测试条件,将需求转换成大纲。 ? ? ? ? ? ? 树形思维导图,从根节点开始到叶子结点为一条测试用例。因此,该方法不用写具体的测试用例。 ? ? 9.2探索性测试法? ? ? ? ? ?基于经验和直觉 ? ? 9.3猴子测试? ? ? ? ? ?无意识行为,像不懂事的猴子一样乱点,发现一些意想不到的错误。 ? ? ? ? ? ?也不用写用例。 |
|
开发测试 最新文章 |
pytest系列——allure之生成测试报告(Wind |
某大厂软件测试岗一面笔试题+二面问答题面试 |
iperf 学习笔记 |
关于Python中使用selenium八大定位方法 |
【软件测试】为什么提升不了?8年测试总结再 |
软件测试复习 |
PHP笔记-Smarty模板引擎的使用 |
C++Test使用入门 |
【Java】单元测试 |
Net core 3.x 获取客户端地址 |
|
上一篇文章 下一篇文章 查看所有文章 |
|
开发:
C++知识库
Java知识库
JavaScript
Python
PHP知识库
人工智能
区块链
大数据
移动开发
嵌入式
开发工具
数据结构与算法
开发测试
游戏开发
网络协议
系统运维
教程: HTML教程 CSS教程 JavaScript教程 Go语言教程 JQuery教程 VUE教程 VUE3教程 Bootstrap教程 SQL数据库教程 C语言教程 C++教程 Java教程 Python教程 Python3教程 C#教程 数码: 电脑 笔记本 显卡 显示器 固态硬盘 硬盘 耳机 手机 iphone vivo oppo 小米 华为 单反 装机 图拉丁 |
360图书馆 购物 三丰科技 阅读网 日历 万年历 2024年11日历 | -2024/11/18 12:27:42- |
|
网站联系: qq:121756557 email:121756557@qq.com IT数码 |