测试的艺术--通用测试案例篇(一)

来源:互联网 发布:阿普利亚gpr125数据 编辑:程序博客网 时间:2024/05/21 06:51

ps:针对通用测试点,只说明测试的关注点和方向。 对于具体的项目测试,细化为相关case即可。

常用测试用例设计方法:
1. 边界值
2. 等价类
3. 场景法
4. 错误推测法
5. 针对参数测试

1. web页面通用测试 case


测试点case关注点UI/UE原则: 页面元素的显示   和  界面,提示的友好性

】 页面元素的对齐
图片,文案等元素 左右对齐,还是上下对齐(文案过长过短时对齐);

】 页面遮挡
文案过长过短时,页面显示是否遮挡;
所有的下拉框等是否不恰当的遮挡了其他元素显示;

】规范性
页面无结果时,footer,header不上移或下移
html页面:对keyword,description的描述,有利于seo

不同端的图片大小,标题显示;
公司logo等


】 无js报错

】 图片加载不出时,有无默认图片(不好的设计:图片加载不出时,直接显示空白);

页面显示的固定部分
公司logo;
固定的footer部分;
回顶部等页面固定按钮;
固定的导航;

】图片 : 默认 +lazyload 加载(不然图片加载出来前会显示空白)

】 文案

文字太长时展示;
文字太短时展示;

文字大小是否合适  + 文字颜色

】 页面浮层
页面显示的H,N 等等缩写,是否有相关解释文案
功能提示:边界值,等价类划分,场景法在这里使用的最多

原则:
每一个功能点
,至少有3种以上正常情况,3种以上异常情况的分别测试
一个操作后,注意检查其涉及的后续操作是否正确(如成功注册后,是否可正常登录;购买vip后,是否可正常观看vip;)



】 输入框
输入框的长达;
输入为空;
输入特殊字符

】上传下载
上传的大小格式限制


】对不同参数的排列组合的运用

不同场景下,不同参数,不同处理情况的处理;

入口法;

例如:找到所有的登录入口:隐藏的入口,登录--》找回密码---》登录(账号,第三方登录)----》是真正的第三方登录/账号登录
浏览器兼容不兼容点:
1. 不同浏览器的页面元素遮挡,
2. 元素显示,
3. 页面提交(有一个项目,空白的输入框,一个浏览器传给后端的值为空字符串,另一个浏览器传给后端的却是空白字符串),
4. 浏览器的默认行为是否影响正常的功能(如h5的video元素播放视频时,不同浏览器对播放器会有不同的接管行为, 导致播放视频时广告展示,全屏等会受不同的影响)

】 pc端 的网站:

 window:
ff,chrome,IE6-11,360 等
mac:
safari
】 手机端的网站:
android:
qq浏览器,uc浏览器,百度浏览器,360浏览器,欧朋浏览器,ff,chrome,猎豹,海豚浏览器等
ios:
safari(注意检查无痕浏览中的行为是否正常)


注:手机浏览器兼容性常见问题
】 使用refer记录上一页信息:问题红米2上百度,欧朋,猎豹,360等浏览器的refer获取不到(红米note3可以获取)
】 同一个浏览器,不同手机型号下的 兼容性 不同;
android 版本的不同,可能也会有浏览器兼容性问题安全提示:安全信息包括cookie ,url 和页面上显示的信息

】cookie
添加:登录或其他导致添加cookie的操作:cookie值,过期时间等正确,无敏感词
删除:退出登录或其他导致删除cookie的操作:cookie已失效
修改:某操作  导致  cookie值变化时,注意检查;

cookie禁用: 禁用时,登录或其他涉及cookie修改的操作时,是否有cookie禁用提示;
对于不支持cookie的手机浏览器,涉及cookie的操作如何处理(不支持cookie的比例大约:3%)


】 url
url中不能含有ip地址,必须使用域名
url中敏感词已加密:如手机号等
post body 中的密码等敏感词已加密


】页面显示
页面上信息的手机号,邮箱,订单号等 是否需要加密显示

】次数限制

如,密码多次输入错误时,账号禁用;

】页面输入
输入框中随意输入一些sql, js等,是否会越过前端检查

】其他信息
一些错误页面,比如404,或500页面,是否给出了友好的错误提示信息比如“你访问的页面不存在”等,而并非曝露一些程序代码
数据与缓存提示:根据代码中的if/else等处理,和接口本身的异常返回,mock接口返回

】接口(依赖与接口的mock)
接口的返回字段过长(页面的遮挡)
接口的返回为空(页面的无结果提示,header,footer没有上下移动)
接口返回超时时,页面提示;
接口返回异常时,页面错误提示

】cookie缓存
重点检查各种操作涉及cookie添加,修改,删除时的cookie:
cookie的值(无敏感词),过期时间

】localstorage(H5特有)
对于不需要实时调用的接口,接口的json返回存入localstorage(注意检查有信息修改时,缓存的数据没有影响页面显示的及时性);web页面检查】按钮
接口未返回时,按钮灰掉,或是否可点击
按钮多次点击
】表单
如注册时,重复提交表单
】图片,链接 打开方式
新标签打开?还是在当前页打开(曾经一个项目,因使用当前页打开,严重影响了用户使用习惯)
每次操作(如成功注册,成功登录,成功支付后)后页面跳转/ 停留到的页面
】enter键
页面输入时,enter键的行为和处理
】后退键--后退键时的页面处理和提示
登录后,点击后退键,页面是否允许后退,页面是否仍处於登录状态;
支付时不可点击后退(https)
有输入的页面,直接点击后退键,是否有页面离开提示(一旦直接后退,所有的输入将丢失,后果严重)不同端提示:如果有ios,android等不同端之间的使用,测试一个端进行修改操作,是否在另一个端实时显示修改结果
注:防止因为缓存原因,页面信息更新不及时慢网速手机端的网速较慢,或断网时,页面加载检查:
网速慢时,页面不能一片空白不可能情况的处理提示:错误猜测时,对不可能情况的处理

如一个不可能出现的负值,如何处理页面的上报+监控 对于一个页面而言,需要的上报:

】区分这个页面调用本身的监控;
】页面各个区块的监控;
】页面异常显示等的上报  

2. 接口测试通用case

ps: 接口测试 重点 在于 diff代码找测试点(代码中的if/else等的不同处理情况

测试点case关注点功能ps: 边界值,等价类等设计case

】参数
不同参数的排列组合
接口参数含有特殊字符(
根据HTTP 协议要求,传递参数的值中如果存在特殊字符(如:&,@ 等),那么该值需要做URL Encoding(UTF-8),这样请求接收方才能接收到正确的参数值
代码中的if/else的不同处理情况

】空指针
是否含有空指针
】结果排序
如果结果有某个字段的排序时,考虑有0,1,多个相同的字段值时,结果的排序情况

】依赖的接口
如果接口的实现中调用的其他的接口,对其他接口的返回进行不同的mock返回

】对response header的检查

安全有证据表明在恶意输入的时候,应用仍然可以充分满足需求

】 敏感词加密
接口返回的敏感词汇
】必选参数
接口参数,必含参数,可选参数

】 负面测试中的安全
银行存款为负值时,接口的处理;
构造恶意输入:怎么输入可能导致堆栈或内存使用过量, 代码走到 异常处理的代码部分;

DB】 数据准备
db中无接口数据,一条接口数据,或多条符合要求的接口数据的返回情况

】db中数据敏感词加密跨域如果接口提供给前端使用,需要确定跨域策略

】 pc端网站跨域,参数添加callback, 接口返回jsonp

】 手机端网站跨域,通过reponse header中的Security 域控制(Access-Control-Allow-Origin) 性能
接口的返回时间(接口的返回json是否过大,从而影响接口速度)
接口可承受的qps
服务器的cpu等资源情况规范性
参数命名,代码规范性
日志和监控】 日志
日志的位置(关键处理步骤),级别(方便调试),日志关键词(避免调用的null指针,正确),大小(避免线上的日志增加速度太大,影响服务器性能)

】监控
监控的位置,监控的指标,接口  正常/异常  时的监控
监控点(关键的正常处理; 重要的异常处理; 技术方面的监控; 产品统计方面的监控):
如果涉及到多线程,影响内存方面的改动,特别注意检查或添加此方面的监控
缓存
】 监控
如果接口涉及redis,mem等的缓存,对缓存的监控,
缓存的大小,缓存的命中率

】 缓存的分布式配置和选择
如果一个缓存down掉, 可以正常切换备用;

】 缓存部署的机器
一般和应用部署的机器分开, 防止内存占用过大,影响应用
错误提示

错误返回状态和错误提示
错误提示明确,无二义性
创造合适的输入,查看所有的错误提示码及 提示 是否合适
多线程和性能提示:如果接口涉及多线程


】增删改查的正确性保证

保证先删除后增加(diff代码)
线程的先后顺序(数据的一致性)

注:多线程处理时,会涉及锁表,打印相关日志及报错

】服务器内存回收
linux jstat等命令检查服务器的内存回收情况,防止内存泄露;    





0 0
原创粉丝点击