广元网站建设优化,千牛商家版网站建设,全国企业信用信息公示系统云南,手机手机网站建设#x1f345; 点击文末小卡片#xff0c;免费获取软件测试全套资料#xff0c;资料在手#xff0c;涨薪更快 1、接口测试发现的典型问题接口测试经常遇到的bug和问题#xff0c;如下#xff1a;传入参数处理不当#xff0c;导致程序crash类型溢出#xff0c;导致数据读…点击文末小卡片免费获取软件测试全套资料资料在手涨薪更快1、接口测试发现的典型问题接口测试经常遇到的bug和问题如下传入参数处理不当导致程序crash类型溢出导致数据读出和写入不一致因对象权限未进行校验可以访问其他用户敏感信息状态处理不当导致逻辑出现错乱逻辑校验不完善可利用漏洞获取非正当利益等2、接口测试用例设计一个接口通常是有输入输出的输入就是我们常见的入参输出有时有有时没有。调用相关接口接口会执行相关处理逻辑。接口测试的用例设计主要从输入和接口处理两方面考虑针对输入可按照参数类型进行设计。针对接口处理可按照逻辑进行用例设计。针对输出可根据结果进行分析设计。2.1 针对输入设计对于接口来说输入就是入参。常见参数类型有数值型(int、long、float、double等字符串类型数组或链表结构体结构体(struct)是一些元素的结合元素实际也是数值型字符串型数组或链表。2.1.1 数值型如果参数规定了值的范围则需要考虑等价类取值范围内、取值范围外取值的边界如有需要可能会遍历取值范围内的各个值。常见问题和风险特殊值处理不当导致程序异常退出类型边界溢出取值范围外值未返回正确的错误信息等设计举例检查权限的接口TaskChecker.checkTask(int taskID)taskID的取值范围是1-35那么设计时考虑1-35范围内和范围外的值1-35的边界0、1、2、34、35、36类型的特殊值-1、0、非数字、特殊字符数据类型的边界值int的最小值最大值因为1-35代码的权限ID不同可能需要遍历1-35的每个值2.1.2 字符串型字符串型的参数主要考虑字符串的长度和内容。常见问题和风险传入非特定类型导致程序异常退出超长字符未进行处理导致存储、显示等异常其他用户可见设置的敏感字设计举例接口转换设置闹钟的接口DateUtil.getDayOfDDHH(String ddhh)用例可以考虑长度为4位比4位少比4位多边界值String的最大长度特殊值空字符字符串内容可考虑类型数字非数字特殊字符如果是输入用户输入且其他用户可见的内容则还需要考虑敏感字是否被正常过滤2.1.3 数组或链表类型常见问题和风险0个item时程序异常退出重复的item处理时未去重导致结果异常等设计举例批量提交任务的接口submitTask(int[] taskID)参数用例设计考虑正常取值1-5个权限范围外6个权限元素边界值1-35的边界值请求允许最大最小值特殊值0个合法ID和不合法的重复的ID等2.2 针对逻辑设计接口需要进行一些逻辑处理的那么按逻辑设计用例可以从以下几个角度分析。2.2.1 约束条件分析约束条件的测试在功能测试中经常遇到在接口测试中更为重要。它的意义在于用户进行操作时在该操作的前端可能已经进行了约束条件的限制故用户无法直接触发请求该接口。但是实际上在其他情况下例如UI有bug或者通过技术手段直接调用接口那么接口是否针对这些条件进行了限制就尤为重要。常见的约束条件数值限制分数限制、金币限制、等级限制、时间限制等等。例如兑换Q币活动要求积分50才可参与。状态限制登录状态等。例如同步用户信息需要先登录账号。关系限制绑定的关系好友关系等。例如帮家人防骗功能只能查询绑定家人的来电信息。权限限制管理员等。常见的问题和风险约束条件判断不足导致用户可通过特殊手段获取利益设计举例要兑换5Q币需要200积分但是由于积分不足所以兑换按钮是灰色无法点击的状态。正常用户是无法操作的但是兑换其实是调后台的一个接口如果绕过页面按钮的限制直接调用后台接口兑换呢是否可以兑换预期当然是不能兑换的。因此积分这个数值限制就需要针对接口进行测试并且非常重要。2.2.2 操作对象分析操作通常是针对对象的对象分析主要是针对合法和不合法对象进行操作。常见的问题和风险用户可访问非权限内的其他用户信息、敏感信息从而利用这些信息谋取利益设计举例用户绑定电话号码电话号码就是操作对象而这个电话号码的话费、流量也是对象用户A查询电话P1话费用户A查询电话P1流量用户A查询电话P2话费用户A查询电话P2流量后台的逻辑处理如果一个电话已经被绑定过从后台的角度是可以查询到该电话的话费和流量的。但是在用户侧应该是A绑定了的电话才能让A查询到该电话的话费。故类似对象的测试也必不可少。2.2.3 状态转换分析被测逻辑可以抽象成状态机各个状态之间根据功能逻辑从一个状态切换到另一个状态。如果我们打乱了这个次序从一个状态切换到另一个不在它下一状态集中的状态那么逻辑将会打乱就会出现逻辑问题。常见的问题和风险可通过特殊手段达到原本不能的状态从而谋取利益从某状态改变到新的状态依赖于转换接口。而对于某转换接口其输入状态是确定的比如Fun23这个函数只能把状态2转换为状态3而不能把状态1转换为状态3。那么测试点就可以是状态为状态2调用接口Fun23状态切换到状态3状态为1,3等调用接口Fun23状态不能切换。设计举例在做任务的时候任务有三种状态未领取已领取未提交已完成三种状态。那么可以这样设计正常的状态切换未领取状态领取任务后变为已领取未提交状态已领取满足任务条件提交后变成已完成状态完成后可以再次领取任务。非正常的状态切换未领取任务满足任务条件直接提交任务已领取时再次领取任务等等。2.2.4 时序分析在一些复杂的活动中一个活动是由一系列动作按照指定顺序进行的这些动作形成一个动作流只有按照这个顺序依次执行才能得到预期结果。在正常的流程里这些动作是根据程序调用依次进行的并不会打乱。在接口测试时需要考虑如果不按照时序执行是否会出现问题。常见的问题和风险非顺序执行后数据出现异常可能还会出现程序其他异常通过打乱顺序获取利益设计举例客户端数据同步是由客户端触发进行的期间的同步用户无法干预。功能测试的时候可见的就是是否能正常进行同步而进一步分析同步流程实际涉及了一组动作从时序图可以看出后台有3个接口登陆获取用户ID上报本地数据上报本地冲突。三个接口需要依次调用执行才能完成同步。那么在接口测试就可以考虑打乱上述接口的执行顺序去执行会有怎样的结果是否会出现异常。例如获取用户ID后不上报本地数据而直接上报本地冲突。2.3 针对输出设计针对输出设计其实是针对接口返回的结果进行分析。2.3.1 针对输出结果接口处理正确的结果可能只有一个但是错误异常返回结果有很多情况很多值。如果知道返回结果有很多种就可以针对不同结果设计用例。覆盖返回码也是用例设计的一种思路。常见的问题和风险错误前端处理不足导致前端异常错误提示处理不当导致用户看到晦涩的错误码错误提示不当导致用户不知道哪里出了问题如何解决设计举例提交积分任务的时候我们通常能想到的是返回正确和错误。错误可能想到无效任务无效登录态但是不一定能否完全覆盖所有错误码。而接口返回定义的返回码可以设计更多用例。2.3.2 接口超时接口正常情况下是有返回的但如果接口不返回呢也就是说接口超时后的处理也是测试需要考虑的部分。常见的问题和风险如果超时处理不当可能未进行超时处理导致整个流程阻塞如果超时处理不当可能超时后又收到接口返回导致逻辑出现错乱2.4 其他测试设计2.4.1 已废弃接口测试已废弃协议是指之前有定义但是因为需求变更或其他原因目前版本不用。这些接口虽然不再使用但有可能代码并没有及时删除。如果利用技术手段调用这些接口可能获取额外利益。常见的问题和风险如果利用技术手段调用这些接口可能获取额外利益。因此新版本在考虑兼容旧版本的同时还应做好相关废弃接口的检查避免用户获得额外利益。设计举例任务之前有个清理任务在一个版本需求里将清理任务替换为下载任务。在新版本客户端已不再调用完成清理任务的接口但是如果该接口未关闭用户就可以继续请求submitTask(int taskID)接口完成清理任务获得积分。2.4.2 接口设计合理性分析接口定义是否合理可以从以下几个方面分析接口字段是否冗余接口是否冗余接口是否返回了调用方期望得到的信息接口定义是否可满足所有调用需求接口定义调用是否方便3、接口功能测试用例模板接口测试的步骤中最重要的是向接口发送预设请求结果则要关注响应信息及后续处理。所以接口功能测试用例编排可以考虑下列两种形式1、用例名称、用例编号、接口地址、请求方式、前置条件、步骤描述、请求头、请求参数、状态码、预期结果和实际结果。2、用例编号、标题、模块、优先级、描述、前置条件、请求类型、请求参数、步骤、结果。要特别注意的是实际工作场景中我们可能还会对接口之间的串联和混合场景进行测试。就是上一个接口返回的数据有可能作为后边的接口的参数传入后边的接口。4、测试报告模板测试报告是指把测试的过程和结果写成文档对发现的问题和缺陷进行分析为纠正软件的存在的质量问题提供依据同时为软件验收和交付打下基础。测试报告是测试阶段最后的文档产出物。优秀的测试经理或测试人员应该具备良好的文档编写能力。接口测试报告很多时候会和接口性能测试报告一起。单独报告的话可以考虑以下内容1系统接口概况简要描述与测试项目相关的一些背景资料如被测系统简介项目上线计划等。对于系统接口的定义和设计做出介绍。比如系统一共有多少个接口采用哪种协议都涉及到哪些发送方法采用怎样的请求格式使用怎样的返回标准可用表格说明。2测试目的与范围描述本次接口测试的目的、范围与目标内容应与本次接口测试的《接口测试实施方案》中的对应内容保持一致。测试目的本次测试的目的在于确保系统接口功能和逻辑处理已验证符合《接口定义说明书》的定义和要求满足系统需要。测试对象范围测试用例设计简要介绍测试用例的设计方法。例如等价类划分、边界值、因果图以及用这类方法(3-4句)。测试指标范围被测接口接收请求和返回报文、被测接口返回状态、被测接口对应业务逻辑处理、涉及数据沉淀的处理、复杂场景下多接口串联交互3测试工具及资源简要介绍测试中采用的方法(和工具)。4测试记录及结果分析5测试问题及结果分析结合测试中发现的问题对于整体测试结果进行分析做出判断接口业务功能错误类缺陷情况接口异常处理类缺陷情况接口处理数据沉淀缺陷类情况接口安全性缺陷情况混合接口业务功能错误类缺陷情况混合接口业务数据传递类缺陷情况6测试结论给出本次性能测试的测试总结论一般以测试结果与测试目标的比较结果作为测试结论。测试执行是否充分可以增加对安全性、可靠性、可维护性和功能性描述。对测试风险的控制措施和成效。测试目标是否完成。测试是否通过。是否可以进入下一阶段项目目标。最后感谢每一个认真阅读我文章的人礼尚往来总是要有的虽然不是什么很值钱的东西如果你用得到的话可以直接拿走这些资料对于做【软件测试】的朋友来说应该是最全面最完整的备战仓库这个仓库也陪伴我走过了最艰难的路程希望也能帮助到你凡事要趁早特别是技术行业一定要提升技术功底。