第一章、测试思路开拓
1.app端测试用例的设计+探索性测试
- 微信发红包、登录界面
app端为C/S架构
C/S架构无法保证每位用户的客户端完全一致(新老版本),只要服务端做修改,就要进行(新老)客户端的回归测试。
专项测试
-
安装卸载:安装过程中断电、断网、出现低电量弹框、储存空间不足;点击取消->取消安装->可再次重新安装、kill进程、点击home键再进入app、安装后能正常启动;卸载过程中断电、断网、点击取消、kill进程、点击home键,卸载完后没有残余文件
-
在线升级:跨单个版本升级、跨多个版本升级、强制升级、正常升级、高版本回退到低版本。升级中逻辑与安装一致;升级完成后可以正常启动app,且低版本数据保留。
-
弱电弱网:移动设备低电量模式下app运行情况。不同网络下:wifi、2G、3G、4G、5G网络下app运行情况;切换网络时:wifi->4g、4g->wifi app运行情况。弱网下的界面展示样式、刷新和多次点击是否触发二次提交。
-
中断测试:app运行中kill进程再进入app、home键返回菜单再进入app。app运行中打开蓝牙、闹钟、来电、来短信、打电话、发短信、充电、关机。
-
针对性测试:手势、手机横竖屏、ios13的dark mode、多点触控、分屏、勿扰模式、权限、通知栏
一般测试点
- 功能:
-
1.先分析场景->针对不同的属性有不同的场景。数量上:1V1,1V多;时间上:某个时间节点之前/之后;不同权限:拉黑关系/好友关系;特殊场景:节日/活动等
-
2.提炼功能点->拆解实现步骤,转换为可以进行测试的测试点
-
3.用场景法设计正常流/异常流->结合每一个测试点的上下游场景,根据“数据从哪来,到哪去”来设计。结合中断、弱网场景进行测试
-
4.设计单个测试点的测试用例,根据等价类和边界值方法。
- 思考方向:1->4 设计方向:4->1
-
性能:页面响应速度、流量、电量、CPU、GPU、Memory、安装包大小、接口压测
-
兼容性:
ios:系统8-13
Android:系统4-9、不同的厂商机型
ipad、过大/过小的屏幕分辨率,异形屏 -
易用:遵守行业规定,产品符合正常操作习惯
-
安全/合规:个人信息在请求和响应中是否加密传输,涉及安全项的接口使用https协议、考虑xss跨站脚本攻击(利用重定向)、考虑sql注入攻击(利用sql语句对数据库的表进行操作)、产品不触犯国际/国家/名族条款要求、对应权限的人只能看到对应权限的菜单,不能有越权操作、有拉黑/好友关系的需要验证不同场景下的界面交互
探索性测试:强调测试人员的主观能动性,抛弃繁杂的测试计划和测试用例设计过程,强调在碰到问题时及时改变测试策略。
web端为B/S架构
B/S架构只需要更新服务端,客户端就会更新。而且可以保证每位用户的客户端完全一致。
- 性能:关注聚合报告(请求数、并发数、吞吐量、最大/最小响应时间、中位数、失败率、QPS、TPS)
- QPS:“每秒查询率”,是一台服务器每秒能够响应的查询次数,衡量一个特定的查询服务器(比如读写分离架构中读的服务器)在规定时间内处理流量的多少。
- TPS:“每秒事务数”,一个事务指的从发送请求到接收到响应的过程。客户机在发送请求时开始计时,接受到响应后结束计时,计算使用的时间和完成的事务个数。
2.兼容性:不同浏览器、相同浏览器的不同版本
其他测试点:多次点击、快速滑动切换、对应功能的权限问题、对应功能父级的权限问题
2.逻辑题+发散性思维:
培养逻辑思维,可以作为一件可持续推进自身完善的任务。在理解需求阶段、用例设计阶段、测试策略设计阶段会节省大量时间。
- 建议:发散性思维需要从多个方面去考虑,不同纬度去发现尽量多的可能性,建议扩展自己的业务知识、行业知识。逻辑思维能让你尽快的去拆解一个需求,变为多条可实施的执行项。
3.bug定位:
出现bug先分析在什么场景下触发的,尽可能剔除多的【干扰项】,最后再判断是前端还是后端出现的问题。
-
剔除干扰项:确认是偶发还是必现,偶发->查日志,必现->拆分为多个步骤,确定在哪一步触发的bug,拆分场景->确定在哪些场景会触发、在哪些场景不会触发。
-
判断前后端:网上有。抓包看请求,确认前后端。请求有问题,前端;请求没问题,响应码有问题,后端;请求没问题,响应没问题,前端问题。
4.工具的使用:
-
抓包工具:charles/fiddler
-
接口测试工具:postman/jmeter
-
连接数据库:navicat/sqlyog
-
连接linux:xshell
-
代码开发者工具:pycharm/git
-
自动化框架:Seleinum、Pytest、allure、xlrd、Request、Assert
第二章、知识点回顾
-
常用的测试用例设计方法
-
https和http的区别
-
常见的请求方法,和对应的功能?get和post的区别?
-
协议的组成部分?
-
常见的响应状态码
-
adb常用命令
-
测试流程
-
linux常用命令?怎么查看日志
-
数据库常用sql语句?增删改查表链接
-
代码->题目:打开浏览器,打开网页,判断存在字段「百度」就打开新窗口,不存在就关闭浏览器
-
jemeter怎么做接口自动化?怎么实现参数化
-
python代码做接口自动化?怎么实现参数化
-
代码:UI自动化,代码重构和优化
-
jmeter:使用脚手架
三、软实力
-
抗压能力
-
团队合作意识和向上级反馈的意识
-
测试过程中遇到一个bug,开发不认为是bug,怎么解决?
- 从用户的角度去分析问题的严重性,引导开发站在用户的角度去思考。
- 给开发表述清楚问题出现的场景,可以举例用之前出现过的bug说明。
- 找产品确认需求点,再决定bug修补修复。
-
上线前出现bug,开发来不及修复。怎么办?
- 测试人员分析问题的严重性,和产品沟通
- bug改动大、影响广。可以请教其他同事,召开会议来讨论方案
- 第三方引入的问题。找到对应的负责人员,尽量推动问题的修复
bug修不修,测试要有自己的原则,同时要权衡利弊。不能说开发推不动就不修复,由着bug上线;也不能揪着一个小bug不放,影响上线时间。
网友评论