🎉🎉🎉点进来你就是我的人了
博主主页:🙈🙈🙈戳一戳,欢迎大佬指点!欢迎志同道合的朋友一起加油喔🤺🤺🤺
目录
测试用例就是测试人员向被测试系统发起的一组集合,该集合包括测试环境,测试数据,测试步骤,预期结果
在测试前都要先设计测试用例,设计测试用例有如下好处:
测试用例的编写往往是根需求编写的,那么如何根据需求来编写测试用例?
在基于需求设计测试用例之前,测试人员要进行如下操作:
在测试人员分析需求时往往分析功能性需求和非功能性需求
功能性需求是为了满足软件的基本功能,往往从以下几个方面进行分析考虑
比如QQ登陆页面,有许多的按钮对应不同的功能
比如增加一条用户信息,然后是查询,修改或者删除
比如微信发朋友圈,你发送的内容要和微信好友在朋友圈看到的一致
比如登陆功能,要使用不同的账号和密码进行登陆测试
主要是验证用户在使用上是否符合用户使用习惯,使用起来是否舒适等
比如滴滴打车,一个顾客叫了一个车,系统要根据某些算法算出距该顾客最近的车
下面让我们一起来看个具体的例子:思考一下我们要如何去分析这个日历页面,才能做到毫无保留把相关功能分析完呢❓🤔
答案就是:页面分析可以从上到下,从左到右,依次去分析每个测试点
非功能需求是在功能性需求的基础上做一些限制,满足特定场景的需求,让用户有更好的体验,比如软件的兼容性,性能,安全性,可靠性,可移植性,易用性等
不同的软件对于非功能性的需求往往是不同的,如:
设计测试用例的常用方法有:等价类,边界值,错误猜测法,场景设计法,因果图,正交法,下面就对这几种常用设计测试用例的常用方法展开具体的介绍
根据输入(特殊情况下考虑输出),把输入划分成若干个等价类,从每一个等价类当中取一个测试用例进行测试,如果这个测试用例通过,我们就说这个测试用例代表的等价类测试通过
等价类可以解决测试用例无法穷举
的情况
等价类有有效等价类和无效等价类
注意:测试的时候有效等价类和无效等价类都得测试
示例:注册网易邮箱时,针对邮箱账号找到对应的等价类
等价类思想设计测试用例步骤:
对输入和输出的边界
针对性的进行测试用例的设计,叫作边界值法
边界值要取边界上的值,和边界左右两边的值。
边界值测试(Boundary Value Analysis,BVA)主要关注的是在接受范围的边缘测试输入数据。这包括了测试可用(有效)和不可用(无效)的边界值。
测试可用(有效)的边界值:这部分测试的目的是确保在定义的接受范围的边界上,系统能够正确地处理有效的输入。
测试不可用(无效)的边界值:这部分测试的目的是确保系统能够正确地拒绝那些位于接受范围之外的输入。这样做有助于确保系统的健壮性和稳定性。
示例:就拿上边的那个例子来说,它的有效范围为6-18位,找出边界点
注意:边界值往往和等价类结合在一起使用
边界值测试中离点的测试是一种重要策略,有助于捕获可能的边界条件错误。开区间和闭区间的离点测试有所不同,下面解释其测试方法及原因:
闭区间
在闭区间a,b中,边界点a和b是有效的。所以离点测试应该包括:
- 测试边界点本身:验证a和b是否被正确接受。
- 测试边界外的离点:选择一个紧挨着边界外的点,例如a-1和b+1,验证它们是否被正确拒绝。
开区间
在开区间a,b中,边界点a和b是无效的。所以离点测试应该包括:
- 测试边界内的离点:选择一个紧挨着边界内的点,例如a+1和b-1,验证它们是否被正确接受。
- 测试边界点本身:验证a和b是否被正确拒绝。
- 测试边界外的离点:选择一个紧挨着边界外的点,例如a-1和b+1,验证它们是否被正确拒绝。
边界值设计测试用例方法:
判定表(Decision table)是另一种表达逻辑判断的工具。
关系:
如何设计测试用例:
案例一:
假设业务单据的处理规则为:“淘宝618活动,订单已提交,订单合计金额大于300元或有红包,则进优惠”。
1. 对于这条业务规则,首先通过分析所有可能的输入和可能的输出,可以得到如下结果:
2. 找出输入与输出之间的对应关系:
3. 判定表:
4. 把判定表对应到每一个测试用例
判定表的每一列都是一个测试用例
最后之所以写成这样,是因为我们后期要针对这些测试点补充测试要素
最简单的正交表是L4(23),含意如下:“L”代表正交表;L 下角的数字“4”表示有 4 横行,简称行,即要做四次试验;括号内的指数“3”表示有3 纵列,简称列,即最多允许安排的因素是3 个;括号内的数“2”表示表的主要部分只有2 种数字,即因素有两种水平1与2。正交表的特点是其安排的试验方法具有均衡搭配特性。
继续以注册的需求为例: 姓名、邮箱、密码、确认密码、验证码必须全部输入,才能进行注册
allpairs画正交表:allpairs压缩包百度网盘链接(提取码:e578)
① 将因素和水平放到Excel表格中
② 将Excel表格内容直接复制到TXT文本中并保存到allpairs路径下
③ cmd进入到allpairs安装路径下
④ 生成正交表 (输入下面指令)
⑤ 将正交表转换成测试用例 (每一个横行就是一个测试用例)
很多软件不同的场景,是基于不同的事件的触发。不同事件的触发,导致场景走向不同的事件流。不同的功能点串起来形成一个场景,不同的功能点又有不同的输出,不同的输出导致不同的测试场景。
场景设计法中涉及到两个概念:基本事件流和备选事件流。用下面的一个例子进行解释,以去ATM取款机取款的流程为例
除了基本事件流以外,可能出现的以外情况称之为备选事件流
如何通过这个方法设计测试用例:
充分理解需求-> 确定主事件流->确定次事件流->每一个事件流就是一个测试用例
根据上图编写测试用例:
错根据测试人员的经验,知识积累,猜测某一块功能有问题,有针对性的进行测试用例的编写。类似于探索性测试,针对性比较强,比较依赖测试人员个人的水平。适用于在用例设计后,作为补充,加强去设计测试用例。
案例:已注册为例
- 校验中特殊字符空格的处理?
- 密码校验中的大小写?
- 姓名中的特殊字符?
- 密码发送是否明文
首先,为"水杯"设计一个测试用例,我们可能会想到水杯是否可以盛水、水杯是否漏水、水杯携带是否方便、水杯是否保温、水杯的形状和外观是否符合用户预期…但这些用例是我们想一个写一个的,并不是按照某个具体步骤详细而全面的来设计测试用例。因此学会万能公式对我们设计测试用例将很有帮助
测试用例的万能公式:功能测试+性能测试+界面测试+兼容性测试+易用性测试+安全测试
【SQL注入问题】
select * from info where id=1 or 1=1; 这条SQL语句的结果是返回所有的用户信息
【越权问题】
越权又分为垂直越权和水平越权
垂直越权是指,比如在一个教务系统中,有教师和学生不同的身份,教师可能有布置作业的功能,学生没有作业的功能,但如果学生也能进行布置作业,那么这就属于是垂直越权
水平越权是指,学生有张三和李四,张三不能进入到李四的界面中进行操作,但如果张三可以操作李四的界面,那这就是水平越权
在学完万能公式之后,借助万能公式对"水杯"进行设计测试用例
【设计测试用例一定是越多越好吗?】
不是的,测试用例能够提高质量覆盖率才是最好的