1.自动化岗位要求 2.面试流程,面试类型 3.沟通技巧,不同级别要求
1.一个输入框的面试题(有人拿到高级岗位,有人连初级都没拿到,为什么)
1.积累的知识决定了初入社会的岗位 2.什么是好的简历 3.需要掌握的基本知识
1.常见测试理论 2.python语言常见问题 3.python常问算法 4.linux基本命令 5.计算机网络 6.操作系统 7.数据库相关 8.fiddler抓包工具 9.android系统相关工具 10.adb相关问题 11.monkey相关问题
八.持续集成(概念) 九.服务端性能测试 十.兼容性测试 十一.调试
一.招聘要求 二.面试过程(笔试-技术-性格-薪资) 三.面试类型 四.问题类型 五.注意事项 六.高效沟通 七.岗位级别
软件的生命周期:定义规划——需求分析——软件设计——编码——测试——维护
面试案例:一个输入框的面试题(测试以下输入框,你会测试哪些内容)
面试者A:左侧顶部菜单——全部、图片切换——右侧顶部小工具——登陆功能——输入框——底部链接
面试者B:确认题目:是仅测试输入框,不考虑其他内容吗? 回复:是的,仅测试输入框
面试者B:大范围的话测功能、兼容性、稳定性、性能、安全、接口、线上监控、自动化八方面;小范围的话测功能、兼容性、安全三方面
如果时间允许,我想从各方面说一下考虑的内容:
关于功能:①常规:任意字符 ②非常规:有含义的字符串 ③边界、空格、超长文本(±1个字符,如-1个字符并输入中文)
关于兼容性:①用户分布:机型、分辨率 ②浏览器 ③页面布局、渲染,借助firebug调试
关于稳定性:①压力下,搜索是否正常返回 ②多次输入是否稳定
关于性能:①QPS-每秒处理请求数 ②点击开始到完全加载,平均耗时 ③加载页面大小、资源(js、css)数量
关于安全性:js注入、sql注入(输入框输入js代码)
关于接口:①接口正确性 ②异常数据的容错情况 ③非浏览器环境下(绕过页面限制输入)
关于线上监控:建立实时监控保障稳定性、降低影响
关于自动化:基于selenium实现UI自动化,用selenium调用工具模拟浏览器UA返回页面,去做UI自动化。通过自动化可以例行回归验证,提高效率。
比如有自动化,可以在所以浏览器/手机上去做功能验证,过程中同时截图,再用python的图像处理工具,对图片与图片之间进行对比,将异常图像拿出
简历要表现出:技术能力、管理能力、学习能力、沟通能力、创新能力、团队协作 不要写别人对自己的评价,文案简洁,概况说明突出重点,多用数据图标
①需求沟通——制定测试方案——设计测试用例——准备测试环境——测试执行——bug处理——回归验证——跟进上线
②测试文档——产品、测试、开发评审——测试计划——测试用例——测试评审——开发完成提测——冒烟测试——正式测试——bug处理——评估质量——测试报告——上线跟进
①bug分级:优先级、严重程度 ②bug分类:UI、系统、接口 ③bug状态:新建、待修改、待验证、已验证、遗留、关闭
单元测试(开发)——集成测试(开发)——系统测试——验收测试
需求沟通——制定测试方案——测试用例——测试环境——执行测试——bug处理——回归测试——跟进上线
5W原则:what明确测什么 why明确测试目标 when明确测试开始结束时间 how明确方案 where资料位置、路径、bug位置
1.等价类(相同属性集合,如0-9逻辑一样,只需验证一个) 2.边界值(±1) 3.错误推断 4.正交分析法(坐标系,如手机横坐标和浏览器纵坐标)
5.场景法(登陆成功、登陆失败) 6.因果图 7.判定表
①测试工程师、开发人员、bug日期 ②bug标题、bug正文、bug附件 ③优先级、严重程度 ④所属板块 ⑤bug状态(新建、修复、遗留、关闭) ⑥bug处理记录
UI自动化测试:针对不常变页面 接口自动化:周期短、变化频繁 单页测试(白盒)
B/S:浏览器与服务器 C/S客户端与服务器
①用户访问认证 ②传输数据加密 ③安全防护策略:安全日志、入侵检测 ④数据备份 ⑤防病毒 ⑥sql注入、js注入
①测试背景 ②测试范围 ③测试环境 ④测试方法 ⑤结论 ⑥质量风险评估
alpha测试:开发环境下测试 beta测试:用户真实环境下测试
①bug代码编写错误导致功能 ②defect缺陷,实现与需求不同 ③fault故障 ④error错误,逻辑语法错误,可能不影响用户体验
包含:类、继承、多态、实例、属性、方法
进程【网线】:不共享数据(QQ与word) 线程【网线小细线】:执行程序最小单元(多个word) 协程:程序员调度,一个线程分多个“微线程”
socket:套接字,应用程序通过套接字想网络发出请求,应用程序通过套接字应答网络请求,使主机间或者一台计算机的进程间可以通讯
tuple为元组(不可改),list为列表(可改)
返回一系列连续的整数,可以生成一个列表对象,工作方式类似于分片
re模块match(只在字符串开始匹配)、search(扫描整个字符串)
python操作文件:(把大象放冰箱,打开,操作,关)
常用算法:排序、冒泡、快排、堆排、二分查找
基础:cd切换目录 ls -l列出文件详细信息 ls -a列出当前目录文件 touch创建文件 mkdir创建目录 echo创建带内容文件 cat查内容 cp拷贝 mv移动 rm -r递归删除 rm -f强制删除 wc统计字节数 tree显示目录结构 grep查找 ln软连接
网络:curl文件传输 netstat网络信息 telnet远程主机
系统:ping连通 man查看帮助 kill杀死进程 top消耗最多进程信息 ps进程状态
更多参考本博客linux命令随笔
想象广州——北京快递过程
物理层(公路)——数据链路层(十字路口,马路相连)——网络层(选择的路径)——传输层(运输车):TCP确保建立/慢,UDP直接发容易丢包/快——会话层(快递员)
表示层(快递包裹内容)数据内容——应用层(使用包裹):有http、https、smtp协议。
功能:get——取东西(下载) post——提交(上传)
传输方式:get——url+参数 post——放在body传输,安全
借助局域网,设置代理转发,将手机数据流转发到fiddler 可以去修改返回内容,去autoResponder设置
1**成功接收 2**成功处理 3**重定向、跳转 4**客户端错误 5**服务器错误
持续等待还是强制关闭
monkey向系统发送伪随机的用户事件流,实现对正在开发的应用程序进行压力测试。
monkey进行压力测试命令?☆☆☆
如何重现crash、ANR过程?如何提取?
monkey是随机执行的(伪随机),添加参数 -s seed 只需要提供相同的seed值即可复现
如何设置monkey运行8小时
如何让monkey指定事件
※※鲤鱼跳龙门第一招——自动化工具※※
原理:通过直接调用被测app类实现自动化,要求与被测app在一个进程内
可以测功能、activity生命周期、模拟数据库操作测试和兼容性测试
什么时候使用??? 使用java Junit框架 进行白盒测试 使用mock技术模拟系统对象
robotium也是基于Instrumentation进行封装,实现android测试框架,封装了一个solo类库,提供自动化测试API,测试时也需要源码。
四.Appium 跨语言☆☆☆ 开源移动端UI自动化框架
理念:①不需源码②不限语言框架③接口统一,不需重复开发④开源
概念:c/s框架,核心是一个web服务器
session,客户端初始化session与服务器交互
综述:appium自动化框架,本身不能实现自动化测试过程,完全是借助于当前业界流行的自动化框架做的一次封装。
补充:(ID选择器# class类选择器.)(webDriver整个页面 webelement元素内部)
写脚本规则:love规则
locate定位 operate操作 verify操作 exception异常处理
①可以不使用App包路径(因为uiautomator不需要源码) ②默认使用appium驱动
基于webview部分:chrome浏览器的调试模式
写脚本规则:S-love规则
元素识别工具:firefox或者chrome的调试工具
定位方法:同上,例如用xpath:开发者选项——复制xpath——定位
IDE:pycharm 写代码的地方
元素识别:chrome开发者工具
※※鲤鱼跳龙门第二招——自动化测试框架※※
FestSuite 装载测试用例 suite相当于啤酒箱,可以装很多啤酒(测试用例)
黑盒(功能)、每行重复进行一中单元测试、使用多个输入值测试API
效果:使用多个数据测试一条用例,表现为多条用例 原理:通过python的装饰器,装饰每条用例
意义:代码复用高,异常排查效率高,代码可维护性高。
lettuce是基于python语言的行为驱动测试框架。(晚上想喝酒涮火锅,喝酒、涮火锅就是像个行为)
lettuce将测试用例与自动化测试代码分离,像写文本一样清晰。
也称为表格驱动测试或者行为驱动测试。 将创建测试程序的步骤氛围规划和实现两个阶段。 使不懂代码的人可以完成自动化测试过程。
Robot framework就是关键字驱动的一个自动化框架,就像lettuce实现了行为驱动,使用unittest实现了单元测试。
如何管理测试报告:
借助时间戳作为报告名称,防止同名覆盖
测试邮件通知:
※※鲤鱼跳龙门第三招——接口自动化※※
1.抓手机包:①pc设置端口号 ②手机wifi—高级设置—pc的ip+端口号 ③加载页面下载证书
3.如何设置autoResponde:①抓请求 ②制作数据 ③设置规则
6.抓https包:①fiddler相关设置 ②浏览器证书
请求报文格式是key-value形式,返回报文一般是json串。
构造url——构造参数——构造数据
对返回值进行校验 ①返回值检查点 ②状态码检查点
在Tests中添加
用soapUI等工具调用第三方数据接口webservice,通过返回值看是否调用正常,也可以利用mock工具模拟第三方数据返回,最大限度降低对第三方数据依赖。
※※鲤鱼跳龙门第四招——持续集成※※
是指开发阶段,对项目进行持续性 自动化编译、测试,以达到控制代码质量的手段 持续集成是一件软件开发实践
3.需要哪些配置:系统集配置(命令行) 工程级配置
※※鲤鱼跳龙门第五招——服务端测试工具※※
压力工具:loadrunner付费 Jmeter免费 自主研发工具
关注指标:cpu 内存(虚存、实存) QPS(每秒请求数包括均值、峰值) 平均响应时间
服务器压力测试方法:①.搭建服务器模块,并启动服务 ②.监控进程相关指标:内存、cpu ③.QPS(log)、平均响应时间 ④收集数据、分析曲线图 ⑤分析结果得结论
※※鲤鱼跳龙门第六招——兼容性测试※※
①系统(android、ios) 版本 ②分辨率 ③手机品牌 ④看产品用户群体 (top10)
①不同平台 不同浏览器 ②分辨率 ③转发到第三方平台显示
①操作系统(平板、windows、mac) ②浏览器 ③分辨率 ④缩放、字体
中和、交叉测试 云测平台
※※鲤鱼跳龙门第七招——调试※※
内容来源于网络如有侵权请私信删除