本篇文章给大家谈谈接口测试用例分层管理,以及接口测试用例需要考虑哪些测试点对应的知识点,希望对各位有所帮助,不要忘了收藏本站喔。
今天给各位分享接口测试用例分层管理的知识,其中也会对接口测试用例需要考虑哪些测试点进行解释,如果能碰巧解决你现在面临的问题,别忘了关注本站,现在开始吧!
本文目录一览:
如何简单设计接口测试用例
接口测试是项目测试的一部分
接口测试用例分层管理,它测试的主要对象是接口
接口测试用例分层管理,是测试系统组件间接口的一种测试。接口测试主要用于检测外部系统与所测系统之间以及内部各系统之间的交互点。测试的重点是检查数据交互、传递、和控制管理过程以及系统间的相互依赖关系等。
如何设计接口测试用例?首先,明确出发点,和所有的测试一样
,接口测试出发点是你要证明所测的程序是错误的。以这个出发点为导向
,你的设计行为就会尽量朝这个方向,更易发现问题
其次,选择好测试对象。对于一个系统做接口测试选择好的测试对象是接口测试关键。一个系统有无数的接口
,每个接口如果分别测试
,那将是很痛苦的一件事情,而且任何一个内部接口的变动
,都将导致
接口测试用例分层管理我们用例的不可用。
可将这些最外层的接口分为两类:一类是数据进入系统的接口;一类是数据流出系统的接口。进入系统的接口实际是我们用例的执行调用的接口。可通过变化参数对这些接口进行调用
,模拟外部的使用;而流出的接口则是我们用例真正该验证的点。数据从哪里流出,流出时的状态如何
,此时系统又是什么状态都是我们所应该验证的。
然后,确认完整的测试对象的功能:确认外部接口提供给使用这些接口的外部用户什么样的功能,外部用户真正需要什么样的功能。此两个功能一定要准确详细,用例的设计要严格按照测试对象功能设计才是正确的用例。
最后当出发点、对象、功能都确定了,就可以真正设计用例了。下面详细介绍下如何去设计一个结构好、可读性高、渗透性强的接口测试用例。
接口测试用例设计和测试用例设计一样,用例设计的内容应该包括:主要测试功能点、测试环境、测试数据、执行操作以及预期结果。
1)接口测试环境分为两种:一种是程序内部的环境;一种是程序的所调用外部接口的环境。
2)接口测试测试数据分为接口参数数据和用例执行所需系统数据。数据的设计、准备测试用例的数据上需要花费更多的心思。要通过好的测试数据使用例查找问题。接口参数数据需对每个参数根据测试接口的实际的功能进行分析,在符合业务逻辑的情况下进行逻辑组合排列
,不要遗漏了某些边界值和错误点的数据。每个用例执行所需系统数据和接口参数数据尽可能的采用不一样的数据
,使用例更容易发现问题。
3)测试功能点,如果一个接口功能复杂时推荐对接口用例进行结构划分
,这样子用例具有更好的可读性和维护性。接口划分原则为以接口提供的功能点的不同进行合适粒度的划分。同一功能点的用例又可根据测试环境的不同、数据的不同进行用例的填充。
4)接口测试用例执行操作非常简单,就是所测接口的调用。
5)预期结果验证,这也是接口用例设计的很关键的一步
,应该细而不冗余。每个用例均需验证
,避免一个用例中重复做相同的验证
,提高测试用例的效率。
如何设计接口测试用例小例子:
简单划分可以按照2个基本组成要素进行划分:1.
参数
2.
业务
以下为最简单的一种划分用例的方法,可能涵盖不全,但只为说明一种划分接口用例的方法方式以及需要考虑的测试用例的测试点
为何要如此设计,是为了更好的将用例分类为程序规定型以及业务限制型,尽量的保证覆盖,尽量细化到点的划分形式来保证工作时间的预估和计划。
所有的自动化接口的测试用例
都基本围绕三部曲进行,传数据,执行,校验返回的数据和期望数据是否一致来构成每个简单的测试用例。
有清晰的线路和清晰的思维,才能做好整体测试的掌控。
接口自动化测试测试用例设计
浅谈接口自动化测试测试用例设计
一、 前言
很多中台项目,大部分为接口测试。为了使新入职的测试同事尽快融入项目,以及迭代开发中方便管理测试用例。完成该总结。
二、 测试用例设计思路
1、 接口类型概述及优先级
1) 提供给第三方调用的接口
2) 内部系统使用,核心功能接口
3) 内部系统使用,非核心功能接口
基本按照1)2)3)的顺序进行测试,特别情况除外
2、 单接口测试优先级
1) 优先测试正向测试用例,保证基本功能实现
2) 设计逆向测试用例,确保接口的健壮性
3) 满足前提条件的测试用例
4) 默认参数是否满足
5) 参数校验
6) 参数间联动关系
7)多参数错误处理的优先顺序校验
三、 设计分析
1、 满足前提条件的测试用例
测试目标接口需要满足前置条件才能成功获取数据。
例如:需要登录token,通过传入参数获取下游接口数据
2、 携带默认参数的测试用例
携带默认参数的测试用例仅需要设计一条,所有默认参数的字段都不填写,其他字段输入正常。
[if !supportLists]3、 [endif]参数校验
参数校验包含如下几方面:
[if !supportLists]1)[endif]输入参数是否为必须输入项
[if !supportLists]2)[endif]输入参数的类型
[if !supportLists]3)[endif]输入参数的枚举值校验
[if !supportLists]4)[endif]输入参数长度校验
以上测试用例最好根据字段一一校验,排除互相干扰
[if !supportLists]4、 [endif]参数间联动
有些参数见存在彼此制约的关系,根据实际情况设计测试用例
例如:A字段为1时,B字段一定为空。否则报错。
那么测试用例设计时应为:A字段为1时,B字段为空;A字段为1时,B字段不为空;A字段不为1时,B字段为空;A字段不为1时,B字段不为空;四条测试用例
这样基本覆盖所有分支流程。
[if !supportLists]四、 [endif] 测试用例实践操作
接口测试用例样例:
多条件查询接口
测试方法:使用robotFramework测试doubbo接口
协议请求方式:post
接口协议:JSON
消息请求列表
字段名数据类型默认值必须项备注
IDint 是长度为2
Tokenstring 是设备令牌
Statusstring 是1:正常
2:异常
typeint Status为1时,为必须输入项
sizestring 默认值
消息返回列表
字段名数据类型必须项备注
Codeint是正常:20000
异常:20001
Messagestring是
typeMessageint Status=1的所有ID
用例设计
NO. 测试内容 前置条件 输入参数 输出参数 用例属性
1目标数据为一条预置一条符合条件的数据Status=1,其他参数输入正常返回code=20000
typeMessage中返回的ID与预置数据一致
正向测试用例
2目标数据为多条预置多条符合条件的数据Status=1,其他参数输入正常返回code=20000
typeMessage中返回的ID与预置数据一致
正向测试用例
3 Token必须项检查 预置多条符合条件的数据Status=1,token输入为空,其他参数输入正常返回code=20001
typeMessage中返回为空
满足前提条件
4 Token正确性检查 预置多条符合条件的数据Status=1,token输入错误,其他参数输入正常返回code=20001
typeMessage中返回为空
满足前提条件
5 Status 必须项检查 预置多条符合条件的数据Status为空,其他参数输入正常返回code=20001
typeMessage中返回为空
参数校验
6 Status枚举预置多条符合条件的数据Status为1,其他参数输入正常返回code=20000
typeMessage中返回的ID与预置数据一致
参数校验
7 Status枚举预置多条符合条件的数据Status为2,其他参数输入正常返回code=20000
typeMessage中返回的ID与预置数据一致
参数校验
8 Status枚举预置多条符合条件的数据Status为3,其他参数输入正常返回code=20001
typeMessage中返回null
参数校验
9 Status=1,时联动校验预置多条符合条件的数据Status为1,type为空;其他参数输入正常返回code=20001
typeMessage中返回null
联动校验
10 Status!=1,时联动校验预置多条符合条件的数据Status!=1,type为空;其他参数输入正常返回code=20000
typeMessage中返回对应ID
联动校验
11 Status!=1,时联动校验预置多条符合条件的数据Status!=1,type不为空;其他参数输入正常返回code=20000
typeMessage中返回对应ID
联动校验
12 Size默认值输入校验预置多条符合条件的数据Size输入为空,其他参数输入正常返回code=20000
typeMessage中返回对应ID
默认值校验
13 Size默认值输入校验预置多条符合条件的数据Size输入不为空,其他参数输入正常返回code=20000
typeMessage中返回对应ID
默认值校验
14 ID 必须项检查 预置多条符合条件的数据ID为空,其他参数输入正常返回code=20001
typeMessage中返回为空
参数校验
15 ID 长度检查 预置多条符合条件的数据ID长度大于2,其他参数输入正常返回code=20001
typeMessage中返回为空
参数校验
16 破坏性测试预置多条符合条件的数据输入的参数类型错误请求未接收,返回404 稳定性测试
17 破坏性测试预置多条符合条件的数据输入的参数与提供的参数名称不一致请求未接收,返回404 稳定性测试
18 破坏性测试预置多条符合条件的数据输入的参数与提供的参数数量不一致请求未接收,返回404 稳定性测试
19 破坏性测试预置多条符合条件的数据输入的参数与提供的参数格式不一致请求未接收,返回404 稳定性测试
总结:自动化测试过程中会有一条自动化测试用例覆盖多种情况的可能(例如:正向测试用例与联动性验证的 Status=1,type输入不为空的测试用例重复,所以选择一条用例验证 。 ),以上的测试用例满足自动化的要求,手动测试过程中需要增加部分验证性的测试用例。且由于使用的测试工具特殊性,无需检查输入参数的类型。
【经验分享】软件测试用例管理
本文涉及到测试用例的编写规范,以及用例管理的分享,因此,无论是对于初级测试工程师,还是质量团队的管理者,都有一定的参考意义。文中涉及到的方法和工具并不是唯一解决方案,希望大家收获到的不仅仅是文字表面,而是文中分享的一些思路。
有人说:测试用例还不知道?不就是描述测试步骤吗?
这么回答确实没什么错,只是如果内心上也仅仅这么认为的话,只能说并未理解测试用例。
测试用例除了作为测试行为的描述,更多的是作为被测目标是否达到需求的验证,主要还是考验了一个测试工程师的组织归纳能力,其输入来源往往是承诺书、用例(Use Case) 以及自身对业务领域知识的经验,一个软件测试工程师的专业度往往体现在他设计的测试用例上。
专业的工程师设计出的测试用例集,不仅能够描述自己的行为,还能指导别人实施,不仅强调深度,还具有优秀的用户思维。
虽然从格式上来说,基本就定型了:
关于这部分,网络上的教程只多不少,就不赘述了。
只不过要强调的重点是, 格式只能保证测试用例明晰,并不能提升测试用例的设计能力 。因此,测试用例该怎么写?还是要从结构化设计开始。这里需要提到一个概念 HLTD [ High Level Test Design ],可以简单粗暴的理解为测试大纲的设计。
就如同我们写文章一般,提笔正文之前,会先拟个草稿,列出中心思想及段落提纲,然后再攥写润色。
写测试用例也是类似的套路,先列出测试点作为大纲,并且具有结构化布局。通常以大的功能或模块进行分类,再细化二级甚至三级类别,最终列出具体的测试点。该阶段的设计,笔者倾向于利用思维导图(脑图),相较于传统的文档软件工具,思维导图的展现更直观。
由于最终会是一张大图,所以硬伤也随之体现,只适合用于思路梳理,不适合用于文档化管理。
把这些结构化好的测试点文档化,就是我们所说的测试用例了。
所以从这里我们可以看出,每一条测试用例的目的很明确,是验证一个或一类测试点,颗粒度需要根据公司实际情况权衡,太粗不利于对于测试点覆盖的总结,拆太细会消耗更多的精力。
测试用例其实是一个非常详尽的文档,必然会消耗测试工程师相当一部分的精力。在传统软件开发时代,甚至作为 KPI 的一项指标。
但随着敏捷时代的兴起,有一种声音开始冲击这种认知。
早期的敏捷实践者,对敏捷宣言的解读仅仅停留在了文字表面,认为“只需要软件,不需要文档”。这直接导致了这一时期,大量的团队缺失了详尽的文档,甚至连一些基本的文档都没有。
如今,越来越多的敏捷实践者认识到,敏捷宣言所宣扬的并不是“不用详尽的文档”,恰恰相反, 敏捷宣言认同了“详尽的文档很重要”这件事,并且提出了更高的要求 —— “工作的软件更重要”
对于测试用例文档化工具的选择,很多团队仍然停留在传统的办公软件,如 Word、Excel
但如今凡事比快的市场环境下,团队成员高效协作、团队信息实时共享的需求越来越高,测试用例平台化管理必然还是最终归属,除了文档化,还利用平台制定计划,展示进度和结果。
事实上,在传统时代,大一些的软件公司就已经使用平台来管理测试用例了,这再一次证明了敏捷时代并不意味着推翻过去的经验和成果,而是提出了更高的要求。
如今,相对知名的管理平台有基于 Jira 做插件的,如:Zephyr、Xray、synapseRT、TM4J,也有独立的开源平台: 如:TestLink,或收费的独立平台: 如:TestRail
我们主要从其生态、推行成本、可扩展、费用角度去综合考虑。
Zephyr 的名气一直都很大,但实际上并不太符合国人使用的习惯,使用起来诸多不便。用例直接使用 Jira issue,功能比较简单,用例管理主要在计划和循环的关联上。由于其是 Jira 插件,因此能很好的跟 Jira 上其他 issue (需求、任务、缺陷) 进行关联。但其用例管理的可视化不是很好,没有用例集的概念。迁移方面,数据导入支持类型有限。扩展方面,若要使用其 API,还需要另外装一个插件。其费用中等。
Xray 算中规中矩,也是使用 Jira 的 issue 来创建测试用例。但其新增的 issue 类型多达 5 类,显得极其复杂。关联能力与 Zephyr 相同,数据导入支持类型有限,本身有 API 可供使用。其费用中等。
synapseRT 是国人开发,汉化效果最好,功能强大。有用例集的概念,用例也是用的 Jira issue 来扩展。数据导入支持了 TestLink、Zephyr 这样的其他平台。关联能力同 Zephyr,数据导入支持类型依旧有限,其本身也有 API 可使用。而费用相对较低。
TM4J 使用独立页面管理测试用例,脱离复杂的 Jira issue 页面,上手难度低。数据导入功能强大,覆盖很多类型及一些知名平台。关联能力与上述插件一致,本身也有 API 可使用。但费用相对较高。
TestLink 作为独立的测试管理平台,功能全面,开源免费。可以关联 Jira 这样的知名平台,但由于不是 Atlassian 体系,所以生态体验不高。硬伤是界面丑陋,容易影响工程师的心情。笔者曾经使用其本身的 API 进行 UI 美化。
TestRail 是一个强大的商业平台,笔者接触不多,不乱作评论。
综合考虑,虽然 TestLink 作为免费开源用例管理平台中的 TOP,在用例管理上做得非常科学,一直值得学习,但笔者所在公司已经在使用 Jira,并在落地 DevOps,外加笔者常受 Atlassian 中国社区研究院副院长的支持,TM4J 成为最终选择:
出品方还是挺强的,除了 TM4J,Zephyr 其实也是其下产品,Swagger 也已经是目前认知度很高的产品了。
从官网介绍上可以看出,TM4J 还是比较现代化的:
首先我们看看利用 TM4J 如何来编写测试用例。
层级结构上,我们根据 HLTD 来创建目录以及子目录,以方便所有人理解和阅读,最后的测试点则实例化为一个测试用例,它拥有全局唯一的 Key。
点击 New 按钮创建新测试用例,默认在 Details 标签页,在这里定义用例名称、目的、前提条件,详情中可以设置状态、优先级、所属组件,并可以添加一些便于管理的标签。
切换到 Test Scripts 标签页,默认是 Step-by-Step 类型,按照 STEP - TEST DATA - EXPECTED RESULT 添加每一个测试步骤。
另外值得一提的是,在 Traceability 标签页,可以关联 Jira issue、Confluence page
通常我们针对每次产品发布交付,需要制定范围,因此计划管理是必不可少的。
计划管理推荐按照发布版本来制定顶层目录,然后针对测试类型创建二级目录,如回归、新功能、端到端、接口、性能等等。
测试计划的创建本身操作倒并不复杂,除了定义计划名称、目的、状态、责任人,外加一些标签。
还需要关联一下需求或者 Confluence 页面。测试周期在刚创建测试计划的时候可能并不存在,可以在之后创建测试周期的时候,会双向关联。
测试周期是一个承上启下的关键,往上关联测试计划,往下关联具体的测试用例。
通常一次发布交付会经历 3-5 次冲刺,每轮冲刺的范围不一定完全相同。
在新建完测试周期名称、描述以及详情之后。
进入 Test Cases 标签页,点击 + Add test cases 添加已经编写好的测试用例。
这一步操作使得测试用例具备了项目属性。
最后在测试周期的 Traceability 标签页点击 Test Plans 后面的放大镜。
通过查找来关联已经做好的测试计划。
创建完测试周期,就可以进入该周期浏览到分配到自己名下的测试用例了,这是所有测试执行者都需要用到的界面,还可以通过 Group by 根据不同规则进行归类,比如根据测试周期中制定的不同目录。
对于用例步骤的执行,TM4J 提供了一些快捷按钮,可以直接标记通过、失败、阻塞,并且可以点击齿轮按钮,快速创建、查找 Jira issue 进行关联,当然,除了对于步骤关联 issue,也可以针对该用例标记 issue,点击 Issues 后面的 + ▼ 可进行操作。统一平台的好处便是在此了。
虽然我们在查看测试周期列表的时候可以看到测试的进度,但更多数据展示可以通过测试报告来体现。
TM4J 的 Reports 功能给我们提供了丰富的模板,方便一些经验不足的测试质量管理者。
最后,笔者想说, 测试工作不能作为一个独立的业务,应该更多的与其他角色协作 ,特别是在现在的敏捷时代,测试用例的执行可以要求开发工程师关注,测试的状况可以要求产品经理随时介入,因此,强烈建议我们软件测试工作者尽量选择一些跨职能协作平台。
关于接口测试用例分层管理和接口测试用例需要考虑哪些测试点的介绍到此就结束了,不知道你从中找到你需要的信息了吗 ?如果你还想了解更多这方面的信息,记得收藏关注本站。
接口测试用例分层管理的介绍就聊到这里吧,感谢你花时间阅读本站内容,更多关于接口测试用例需要考虑哪些测试点、接口测试用例分层管理的信息别忘了在本站进行查找喔。
版权声明:本文内容由网络用户投稿,版权归原作者所有,本站不拥有其著作权,亦不承担相应法律责任。如果您发现本站中有涉嫌抄袭或描述失实的内容,请联系我们jiasou666@gmail.com 处理,核实后本网站将在24小时内删除侵权内容。
暂时没有评论,来抢沙发吧~