面试指南

一、关于你做过的事情:
1、项目简介、角色介绍,你的工作介绍,在项目中担任的角色越重要,干的活涉及面越广,越好

2、能画出你所负责测试的系统的架构图

3、所负责测试的系统所用的是什么框架,这个框架有什么特点

4、测试内容所涉及到的算法,算法的特点

二、关于测试的基本技能:
1、根据系统特性能够独立定位bug,给开发提供线索,知晓bug产生原因

2、HTTP协议

协议特点
支持客户/服务器模式
简单快速:客户向服务器请求时,只需传送请求方法和路径,常用的方法有post、get、head。由于协议简单,因而通信速度快
灵活:HTTP允许传输任意类型的数据对象,正在传输的类型由Content-Type加以标记。
无连接:限制每次连接只处理一个请求。服务器处理完客户请求,并收到客户的应答后,即断开连接。这种方式可以节省传输时间
无状态:协议对于事务处理没有记忆能力。缺少状态意味着后续处理需要前面的信息,则它必须重传,这样可能导致每次连接传送的数据量增大。另一方面,在服务器不需要先前信息时它的应答就比较快。
HTTP请求:请求行、消息报头、请求正文
HTTP响应:状态行、消息报头、响应正文
HTTP工作流程:客户与服务器建立链接后,浏览器可以向web服务器发送请求并显示收到的网页。
从浏览器中输入url:
应用层DNS解析域名:客户端检查本地是否有对应的IP地址,找到则返回响应的IP地址。没找到则请求上级DNS服务器,直至找到或者根节点
应用层客户端发送HTTP请求:请求报头和请求主体,请求报头包含了请求的方法、目标url、遵循的协议,返回的信息是否需要缓存,以及是否像客户端发送cookie等
传输层TCP传输报文:三次握手(发送端发送一个带有SYN标志的数据包给接收端,在一定的延迟时间内等待接收的回复)、(接收端收到数据包后,传回一个带有SYN/ACK标志的数据包以示传达确认信息)、(接收包接收到之后再发送一个带有ACK标志的数据包给接收端以示握手成功。规定时间内没有回复默认为没有收到,重新发起请求直至收到回复为止)
网络层IP协议查询MAC地址:IP协议作用是把TCP分割好的数据传送给接收方,确保能传到接受方还需要接收方的MAC(物理)地址
数据到达数据链路层:找到MAC地址后,就将数据发送到数据链路层传输,这是,客户端发送请求的阶段结束
服务器接收数据:接受端的服务器在链路层收到数据包,再层层向上直到应用层,过程中运输层通过TCP协议将分段的数据包重新组成原来的HTTP请求报文
服务器响应请求:服务器收到客户端请求后,查找客户端请求的资源,并返回响应报文,其中包含状态码。
页面渲染:解析HTML以构建DOM树–>构建渲染树–>布局渲染树–>绘制渲染树
3、常用的sql、Linux命令

4、测试用例编写方法:

等价类划分:
边界值分析:
错误推测法:
因果图方法:
正交表分析法:
场景分析法:根据用户场景来模拟操作步骤
三、测试需要的技能
1、shell脚本编写能力

2、接口性能测试

3、Java、python读写能力,或者说diff代码的能力

四、根据招聘要求准备
1、招聘要求里提到的,即便不是深入了解,也得略知一二

2、如果是app端测试,需要了解基本的app测试方法以及ios、安卓间的区别

1)app测试

功能测试
客户端性能测试:CPU,内存,耗电量,流量,安装启动耗时
适配兼容测试:不同品牌不同操作系统不同型号,安装拉起点击卸载
网络测试:2G、3G、4G、弱网或者断网测试
耗电量测试
流量测试
协议测试
安全测试
服务器性能测试:内存泄露,容载量
服务器容灾测试:崩溃后是否有恢复能力
中断测试:操作时来电话短信或者闹钟响起
    2)ios、安卓区别

运行机制方面
1、ios用的沙盒运行机制(发现可疑行为后让程序继续在虚拟的“沙盒”里充分表演,记下每一个动作,当其暴露了其不当属性后,“沙盒”就会执行回滚机制,将其动作和痕迹抹去,恢复到正常状态,程序不可直接访问其他程序),运行过程中不需要虚拟机查收,效率高。而Android用的是java虚拟机执行(引用运行在一个虚拟的环境中,由底层传输数据到虚拟机----UI,任何程序都可以访问其他程序),系统需要占用大量内存来换取执行速度,加上不定期的内存自动回收机制。
2、ios大部分切换到后台就会停止运行,部分再任务完成后也会停止,后台补耗用cpu,但时内存保持占用。Android切换后台进入onstop()状态,不是真正停止。部分应用自带后台服务,需要消耗CPU,占用内存,直至没有内存关闭
操作系统
安卓可以通过刷机等方式实现系统降级,ios只能单向升级不可降级,如果新的ios资源库不能兼容低版本的ios中的应用,低版本的ios系统应用调用新的资源库,会直接导致闪退
测试方面:
1、操作习惯:Android,Back键是否被重写,测试点击Back键后的反馈是否正确;可以插内存卡的手机,注意应用数据从内存移动到SD卡后能否正常运行等;
2、 push测试:Android机点击home键,程序后台运行时,此时接收到push,点击后唤醒应用,此时是否可以正确跳转;ios,点击home键关闭程序和屏幕锁屏的情况(红点的显示);
3、 安装卸载测试:Android的下载和安装的平台和工具和渠道比较多,ios主要有app store,iTunes和testflight下载;
4、 升级测试:可以被升级的必要条件:新旧版本具有相同的签名;新旧版本具有相同的包名;有一个标示符区分新旧版本(如版本号),对于Android若有内置的应用需检查升级之后内置文件是否匹配(如内置的输入法)另外:对于测试还需要注意一下几点:
并发(中断)测试:闹铃弹出框提示,另一个应用的启动、视频音频的播放,来电、用户正在输入等,语音、录音等的播放时强制其他正在播放的要暂停;
数据来源的测试:输入,选择、复制、语音输入,安装不同输入法输入等;
push(推送)测试:在开关机、待机状态下执行推送,消息先死及其推送跳转的正确性;应用在开发、未打开状态、应用启动且在后台运行的情况下是push显示和跳转否正确;推送消息阅读前后数字的变化是否正确;多条推送的合集的显示和跳转是否正确;
分享跳转:分享后的文案是否正确;分享后跳转是否正确,显示的消息来源是否正确;
 触屏测试:同时触摸不同的位置或者同时进行不同操作,查看客户端的处理情况,是否会crash等。
3、如果是server端测试,需要了解基本的server端测试方法

功能测试:
性能测试:
配置的正确与合理性:缓存机制、并发机制(连接数)、负载均衡、链接是否超时等;
接口测试:客服端发送请求是否带有时间戳、客户端发送的网络请求是否需要有固定的参数;数据加密、来源的校验、返回数据和状态码是否正确
代码功能逻辑测试:定义的变量是否出水花、对客户发送的数据进行异常校验、数据库操作是否有未释放的情况、判断逻辑是否有功能隐患、连接数据库是否正确、数据库的操作是否有关闭操作
体验方面:流量、稳定性测试、异常性测试(网络、机器挂掉、系统挂掉重启数据是否会丢失)    
五、其他问过的问题
1、测试用例三要素:前提、输入、输出

2、你提过的最牛、影响力最大的bug

3、为什么跳槽?怎么确保跳槽后不会遭遇和上家公司一样的状况?

4、微信朋友圈怎么测试?

作者:Sabrina_FN
来源:CSDN
原文:https://blog.csdn.net/Sabrina_FN/article/details/79397354
版权声明:本文为博主原创文章,转载请附上博文链接!

你可能感兴趣的:(日记)