设计测试用例的万能公式 + 6大具体方法 = 面试就像聊天?

目录

一、设计测试用例的万能公式

二、设计测试用例的具体方法

2.1、等价类

2.2、边界值

2.3、判定表(因果图的另一种形式)

 2.4、场景设计法

2.5、正交法(用的少,基本不可见)

2.4.1、使用allparis构建正交表

2.6、错误猜测法


一、设计测试用例的万能公式

面试的时候,一慌,什么都不会了?那么请你一定要记住以下万能公式,关键时候可保命!

万能公式:

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

解释:

功能测试:在以后的工作中来自于需求文档,面试的时候功能测试用例来源于生活经验;

性能测试:考虑一些极端情况,如高并发量,响应时间等;

界面测试:工作中参考设计图,面试的时候我们可以对颜色、形状、大小、材质、文字、输入框、图片、下拉框...所有可以看到的元素进行分析;

兼容性测试:考虑不同的浏览器、不同版本、不同系统、不同数据的兼容性;

易用性测试:软件是否具备简单易上手的属性;

安全测试:隐私数据是否加密,例如:用户密码在界面展示、接口参数是否位明文、数据库对隐私数据是否加密、SQL注入、越权(水平越权:你访问到了你同事的隐私信息;垂直越权:你访问到了你上级的隐私信息);

示例:QQ登录界面的测试(以下内容建议多练)

那么问题来了:

        浏览器版本那么多,难道我们每一个都要测吗?当然不是,要测就测用户使用的最多的...

        QQ用户密码设置为6~18位,难道6、7、8、9....18每一位都要测一遍吗?如果范围改到6~10000,难道你也一个一个测吗?那么就需要引入我接下来要讲的测试用例的6大具体方法


二、设计测试用例的具体方法

2.1、等价类

        简而言之就是 分区/分块检测,从每一个区块选择一个进行测试代表这个区块的结果即可,这个区块就是等价类;等价类也分为两种,有效等价类(对需求文档有意义的集合)和无效等价类(对需求文档无意义的集合),一般是结合着这两类进行测试~ 不明白?看下面栗子!

例如:测试用户密码为6~18位

        利用等价类的方法,我们需要从6~18位中取出一位进行检测(有效等价类),比如取出8位,我们只需要输入8位密码进行检测即可;另外我们还需要从小于6位和大于18位中取出一位进行检测(无效等价类)即可,整理一下,步骤如下:

第一步,输入长度为6~18位的密码,假设是8位;

第二步,输入长度小于6为的密码,假设是1位;

第三步、输入长度为大于18位的密码,假设19位;

2.2、边界值

边界值指的是有效边界+无效边界;

例如:测试用户密码为6~18位

边界值:

6、18(有效边界)

5、19(无效边界)

不理解?看下图:

 例如:数字大于60

        那么他的边界值就是:60(无效边界),61(有效边界);

2.3、判定表(因果图的另一种形式)

        判定表法和因果图画法步骤差不多,只不过多了一步是“画因果图”这一步非常难(一般人画不出来),且没有一个明确且具体的画法;所以这里主要讲判定表法~用它一般也比较少,一般用于输入条件的组合对应不同的结果;

判定表设计测试用例的步骤:

1、明确输入条件和输出条件;

2、找出输入条件和输出条件之间的关系;

3、画判定表;

4、根据判定表编写测试用例;

例如:当订单使用红包或者订单金额大于300,则该订单是优惠订单,否则就是不优惠订单

1、明确输入条件和输出条件:

输入条件:红包(编号A)、金额大于300(编号B)、订单已提交(编号C);

输出条件:有优惠(编号1)、无优惠(编号2);

2、找出输入条件和输出条件之间的关系;

确定输入输出之间所有可能的组合关系,最后根据组合(编号)给出对应结果,如下:

3、画判定表:(如下)

4、根据判定表编写测试用例:(如下)

 2.4、场景设计法

        场景设计法讲事件分为基本事件流和备选事件流,基本事件流就是我们原本按计划要进行的事情,备选事件流可以认为是意外情况;

例如:去ATM中取钱

编写测试用例:

1.基本事件流:先插卡,输入正确密码,选择取款功能...退卡;

2.备选事件流:

        (1) 插入后,卡被ATM卡住......退卡;

        (2) 插入后,输错密码......退卡;

        ......

后面的测试用例就是刚刚图中所画的流程;

2.5、正交法(用的少,基本不可见)

        正交法就是指从大量的实验中挑选出适量的、有代表性的点,依据“正交表”从而合理的设计出测试用例;

正交表的特性:

1、每一列中,不桶的数字出现的次数相等;

2、任意两列中数字的排列方式齐全而且均衡;

根据正交表设计测试用例的步骤:

1、找出因素和水平;

2、生成正交表;

3、根据正交表来编写测试用例;

4、补充可能存在遗漏但是非常重要的测试用例;

例如:测试如下注册页面

第一步:找出因素和水平

        因素:姓名、电子邮箱、密码、确认密码、验证码;

        水平:填写、不填写;

第二步:使用allparis生成正交表(如何使用,后面有介绍)

(注意:使用allparis生成的正交表跟实际的正交表可能有出入,但是影响不大);

第三步,第四步、根据正交表编写测试用例,并补充可能存在的遗漏但是很重要的测试用例

2.4.1、使用allparis构建正交表

1.将水平和因素写入Excel(可以使用其他工具,但不推荐)

2.在allparis同级目录下创建一个新的txt文件,复制刚刚Excel表中的所写的信息,粘贴到你创建的xxx.txt文件中,保存(不要再做其他任何操作);

3.在cmd中使用allparis工具生成正交表

4.在目录中就可以查看到你刚刚生成的正交表

2.6、错误猜测法

        错误猜测法是对被测试软件设计的理解,过往经验以及个人直觉,推测出软件可能存在的缺陷,从而针 对性地设计测试用例的方法。

        这个方法强调的是对被测试软件的需求理解以及设计实现的细节把握,还有个人的经验和直觉。

        错误推测法和目前流行的“探索式测试方法”的基本思想一致,这类方法在敏捷开发模式下的投入产出比 很高,被广泛应运于测试。 这个方法的缺点是难以系统化,并且过度依赖个人能力。

总的来讲,需要依赖测试人员的工作经验和积累

例如对登录功能进行测试:密码是否加密、考虑SQL注入问题、密码是否以明文进行传输......


<think>好的,用户现在想了解软件测试中测试用例设计的常用方法。首先,我需要回顾之前的对话,确保这次回答符合用户的要求。用户在上一个问题中询问了软件测试的具体流程,我详细分成了七个阶段,其中测试设计与开发阶段提到了等价类划分、边界值分析等方法,并生成了相关问题,包括测试用例设计的常用方法。现在用户正是针对这个问题提问,所以需要详细展开。 根据用户提供的引用内容,引用1提到了测试用例的基本概念和设计思路,包括功能、性能、界面、兼容、易用、安全等方面。引用2介绍了正交表法,引用3和4提到了错误推断法和流程分析法,引用5详细说明了等价类划分法。需要将这些方法整合起来,确保覆盖用户所需的所有常用方法。 接下来要确定回答的结构。用户希望了解常用方法,所以需要分点说明,每个方法包括定义、应用场景和例子。同时,需要引用用户提供的引用资料中的信息,正确标注引用标识。例如,等价类划分在引用5中有详细说明,正交表法在引用2,错误推断法在引用4等。 需要注意的是,用户之前的问题回答中已经提到了等价类划分和边界值分析,所以在这次回答中需要详细展开这些方法,并补充其他方法如正交实验法、场景设计法、错误推测法等。同时,要确保每个方法都有对应的引用标注,并且例子部分使用行内数学公式,如边界值的例子可能需要用到$符号。 还要检查是否遗漏了用户提供的引用中的其他方法,例如引用1提到的万能公式中的兼容性、易用性等,可能需要结合到各个方法的应用场景中,或者作为测试用例设计的考虑因素。此外,回答的结构要清晰,帮助用户逐步理解每个方法的用途和实际应用。 最后,生成相关问题时要参考之前的回答,确保问题具有连贯性,比如关于如何选择合适的方法,或者在不同场景下的应用比较。同时,要遵循用户的要求,使用中文回答,正确应用LaTeX格式,并添加引用标识。</think>软件测试中测试用例设计的常用方法可分为以下七类,涵盖功能验证、边界探索、组合优化等多个维度: ### 一、等价类划分法 **定义**:将输入域划分为有效/无效等价类,选取代表值进行测试。例如: - 有效等价类:$1 \leq x \leq 100$ 时取$x=50$ - 无效等价类:$x<1$ 时取$x=-5$[^5] **应用场景**:表单输入验证、数值范围检测 ### 二、边界值分析法 **定义**:针对输入域边界值设计测试用例 **公式**:若输入域为$[a,b]$,测试点应包含$a-1, a, a+1, b-1, b, b+1$ **案例**:验证年龄输入框范围$[18,60]$时,测试17/18/19/59/60/61[^5] ### 三、正交实验法 **定义**:通过正交表减少测试用例数量 **参数模型**: $$L_n(m^k)$$ 其中$k$为参数个数,$m$为参数取值水平,$n$为最小用例数[^2] **案例**:浏览器兼容性测试时,组合操作系统(Win/Mac)、浏览器(Chrome/Firefox)、分辨率(1080P/4K) ### 四、场景设计法 **定义**:基于用户操作流程构建测试场景 **典型结构**: ``` 基本流:A→B→C→D 备选流1:A→B→X 备选流2:C→异常处理 ``` **应用**:电商订单流程测试[^4] ### 五、错误推测法 **定义**:依据经验推测易错点 **常见方向**: - 空值提交(如未上传附件点击提交) - 极端并发(瞬间$10^4$次请求) - 异常中断(支付过程断网)[^4] ### 六、判定表法 **定义**:通过条件组合设计用例 **四要素结构**: | 条件桩 | 动作桩 | |--------|--------| | 条件项 | 动作项 | **案例**:登录功能测试时组合用户名正确性、密码正确性、验证码状态 ### 七、状态迁移法 **定义**:基于系统状态变化设计用例 **模型**: $$S_i \xrightarrow{Event/Action} S_j$$ **应用**:订单状态机测试(待支付→已支付→发货中→已完成) ### 方法选择策略 $$测试效率 = \frac{缺陷发现数}{执行用例数} \times 100\%$$ 根据项目阶段动态调整方法组合,例如: - 迭代初期:错误推测法+等价类划分 - 系统测试:正交实验法+场景设计法 - 回归测试:边界值分析+判定表法[^1]
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

陈亦康

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值