十年测试老鸟带你玩转-测试用例

一、测试用例-模板

所属模块 相关需求 用例标题 前置条件 步骤 预期 优先级 用例类型
/MKT(#1000) 【MKT-需求】XXXXXXX 【9.9_MKT_WEB】优惠列表,XXXXXXXXXXX 1.操作一
2.操作二
P0
P1
功能测试
UI测试
兼容性测试

备注:步骤的格式需遵循导入禅道规则

二、测试用例-原则

  • 明确性:测试用例本身的描述是否清晰,是否存在二义性;
  • 可执行性:是否考虑到测试用例的执行效率,往往测试用例中步骤不断重复执行,用例验证点、期望结果明确;
  • 完整性:用例设计的结构安排是否清晰、合理,是否利于高效对PRD需求进行覆盖;
  • 正确性:是否完全遵守了PRD需求的规定,无歧义;
  • 健壮性:是否包含了足量的无效等价类用例;

三、测试用例-标题结构       结构:【版本-模块-渠道】页面,模块,功能点_场景

  • 页面、模块、功能点同一层级的结构按同一个纬度来划分。如同等级页面、同等级功能模块、同等级组件等;
  • 页面:指被测业务系统具体的页面:如活动落地页、首页、填写页;
  • 模块:指被测页面下的区块,如:如优惠列表页下的热门活动模块、领券中心模块等;
  • 功能点:指业务模块下的子功能点,是最小功能点
  • 场景:指具体的验证点

       例如:
          【9.9-MKT-PC】优惠列表页,热门活动,产线tab_无产线时显示
          【9.9-MKT-PC】优惠列表页,热门活动,产线tab_有一个产线时显示
          【9.9-MKT-PC】优惠列表页,热门活动,产线tab_有多个产线时显示
          【9.9-MKT-PC】优惠列表页,热门活动,产线tab_点击机票

四、测试用例-颗粒度划分     4.1、用例颗粒度基本原则:以最小功能模块来划分,为保障用例的可执行性、覆盖度,规范编写用例的颗粒度要求如下:

  • 流程
    • 一个功能的正常流程,编写一个测试用例;
    • 一个功能中多个异常流程,应分开编写多个测试用例;
  • 功能
    • 同一功能不同入口,逻辑一样,可合并编写一个测试用例;
    • 同一功能不同入口,逻辑和页面展示不一样,编写多个测试用例;
    • 根据等价类划分,有效等价类、无效等价类,每个类别的多个场景都编写一条用例;
  • 接口
    • 正常场景
    • 异常场景,多个异常场景编写多条用例
  • 数据
    • 同一功能不同数据准备,编写多个测试用例;
    • 根据边界值划分,创建多条场景用例
  • UI
    • 整体布局UI,编写一个测试用例
    • 模块区域UI,编写多个测试用例
  • 渠道
    • H5和WEB无论相同或差异场景,应分渠道多条记录编写


五、测试用例-场景设计

测试类型 场景设计 备注
功能测试 单运行正常值输入法、单运行边界值输入法、多运行顺序执行法、多运行相互作用法 (运行即测试人员模拟用户的操作或行为)、等价类、正交分析法、错误推断法、缓存测试、多tab测试、登录态对功能的影响
数据测试 等价类和边界值分析法
空校验、长度校验、重名校验、边界值校验、格式校验(链接https、邮箱)、输入限制:中文、英文、数字、特殊字符、表情图标、前后中间空格(富文本支持首位多个空格);手动换行(富文本、普通文本)、数据类型、多数据组合测试、中英文符号、英文单词拼写、英文大小写、单双引号规范、简繁体
流程测试 路径分析法 :语句覆盖、分支覆盖、全覆盖、最小线性无关覆盖
接口测试 “输入—输出表”分析法,传值和接口响应
优惠引导组件支持ruleData参数设置-测试场景

接口调用和传值场景:
1、多页面来回操作,检查传值是否正确,是否缓存上一次参数
2、第一次访问,接口调用验证
3、领券后或某些操作后,接口调用验证
UI测试 整体布局、字号、字体、颜色、背景色、间距、输入框内间距、边框阴影、点击热区(文字、按钮)、有背景时卡片白底效果、行高、字重、圆角、图片尺寸、图片清晰度、图片格式、对齐方式、风格统一、hover样式、渐变
可靠性测试 异常值输入法(如邮箱格式,输入不支持的特殊字符,可输入,但会校验不通过,提示错误)、故障值输入法(故障环境中,如网络异常、丢包) (异常系、容错性(接口出错,前端给予提示))、版本功能合并
兼容性测试 浏览器兼容(Chrome、edge、safai)、浏览器版本(高版本、低版本)、APP兼容(Android物理键返回、IOSX头部和底部被遮挡)、电脑屏幕(台式机大屏、笔记本小屏)、版本升级、旧版本兼容性
易用性 返回定位、快捷定位(易理解、易学、易操作、吸引性)、提示文案准确,无歧义、通俗易懂
安全性 权限校验(登录失效、无权限访问)、敏感信息(身份证、电话号码、银行卡、URL中不能带敏感信息)
性能 时间性、资源利用率、图片资源大小
待定 。。。


六、测试用例-常用设计方法
1、等价类划分法

就是将测试的范围划分成几个互不相交的子集,他们的并集是全集,从每个子集选出若干个有代表性的值作为测试用例。

即将测试过程中的输入、输出、操作等相似内容分组,从每组中挑选具有代表性的内容作为测试用例,划分份有效等价类和无效等价类

例如:测试一个用户名是否合法,用户名的定义为:8位数字组成的字符。

我们可以先划分子集:空用户名,1-7位数字,8位数字,9位或以上数字,非数字。然后从每个子集选出 若干个有代表性的值:
  
无效等价类

 空用户名:“”      

1-7位数字:"234"      

9位或以上数字:"1234567890"     

非数字:"abc&!!!"                 
有效等价类

8位数字:"00000000"     
  
转化为测试用例:

在确立了等价类后,可建立等价类表,列出所有划分出的等价类输入条件:有效等价类、无效等价类,然后从划分出的等价类中按以下三个原则设计测试用例:

1)为每一个等价类规定一个唯一的编号;

2)设计一个新的测试用例,使其尽可能多地覆盖尚未被覆盖地有效等价类,重复这一步,直到所有的有效等价类都被覆盖为止;

3)设计一个新的测试用例,使其仅覆盖一个尚未被覆盖的无效等价类,重复这一步,直到所有的无效等价类都被覆盖为止。

2、边界值分析法

  选出的测试用例,应选取正好等于、刚刚大于、刚刚小于边界的值,例如,对于在区间min,max的值,测试用例可以记为min,min+,max,max-。
  

例如,假定 X 为整数,10≤X≤100,那么 X 在测试中应该取的边界值为:9,10,11,99,100,101。

注:上面只是说边界值,如果是完整的测试,除了边界值外,还需要一个正常值,即12-98之间的任意值。

3、错误推测法

错误推测法是指:在测试程序时,人们可以根据经验或直觉推测程序中可能存在的各种错误,从而有针对性地编写检查这些错误的测试用例的方法。

这种方法没有固定的形式,依靠的是经验和直觉,很多时候,我们都会不知不觉的使用到。

若输入条件需要考虑组合情况,则可用因果图法和判定表法

4、判定表法

基于策略表的测试,是功能测试中最严密的测试方法,利于逻辑判断复杂的场景,通过穷举条件获得结果,对结果再进行优化合并,最终得到一个判断清晰的策略表。

方法适合于:

逻辑判断复杂的场景,通过穷举条件获得结果,对结果再进行优化合并,会得到一个判断清晰的策略表。
  
例如,某公司的对客户分类标准如下:顾客每次订货额在 1000元以上(含1000元),信誉好的,订单设“优先”标志;
生成判定表

初始判定表 1 2 3 4
条件桩 信誉好吗 Y Y N N
订货在1000以上吗 Y N Y N
动作桩 优先      
不优先  


简化,合并相似规则或者相同动作。(有两个或者多条规则具有相同的动作,并且条件项之间存在极为相似的关系就可以进行合并。)

得到的测试用例  :
信誉好,订货在1000以上,订单设“优先”标志;
订货在1000元以下,无法是否信誉好,订单设“正常”标志;
信誉不好,无论订货是否在1000元以下,订单设“正常”标志;
  
5、因果图法
用图解的方法表示输入的各种组合关系,写出判定表,从而设计相应的测试用例。
参数配置类的测试,可结合正交试验法筛选用例
减少用例数目,用尽量少的用例覆盖输入的组合。

正交表是按照一定规则生成的表。

业务流程清晰的系统,可选用场景法设计测试用例
同一种事件的不同触发顺序和处理结果就形成事件流,描绘事件触发时的情景,有利于测试设计者

设计测试用例,同时也使得测试用例更容易理解和执行。

对于有状态迁移和逻辑功能路径组合的情况,考虑使用功能图法。

功能图由状态迁移图和布尔函数组成。状态迁移图用状态和迁移来描述,一个状态指出数据输入的位置(或时间),而迁移则指明状态的改变,同时要依靠判定表或因果图表示的逻辑功能

对照程序逻辑,检查已设计出的测试用例逻辑覆盖度,如果没有达到要求的覆盖标准,应再补充足够的测试用例。

感谢每一个认真阅读我文章的人,礼尚往来总是要有的,虽然不是什么很值钱的东西,如果你用得到的话可以直接拿走:

十年测试老鸟带你玩转-测试用例_第1张图片

这些资料,对于【软件测试】的朋友来说应该是最全面最完整的备战仓库,这个仓库也陪伴上万个测试工程师们走过最艰难的路程,希望也能帮助到你!有需要的小伙伴可以点击下方小卡片领取

十年测试老鸟带你玩转-测试用例_第2张图片 

你可能感兴趣的:(测试用例,单元测试,测试工具,功能测试,selenium,postman,jmeter)