测试工程师面试圣经

1、自我介绍:
面试官,你好,我叫杨傲,今年28岁,来自江苏宿迁,18年在南京本科毕业。迄今为止,我从事软件测试工作已经5年了,在这5年了,我历经了不少的项目,积攒了丰富的理论知识和从业经验,可以独自面对大型复杂的需求的测试工作,期间也有带领过团队的经历。我在公司以前的工作范围主要是功能测试、接口测试和自动化测试,当然分析需求的时候安全测试和性能测试也会涉及到。市场上主流的测试工具等等我也都会使用。我个人的性格是十分外向开朗的,以前也是组内对外业务联调的接口人。这就是我个人的情况。

2、介绍你最近做的项目

项目一
我们做的项目叫PPS广告业务平台,也叫付费展示服务,它是一个基于B/S架构,能够为用户提供程序化广告交易和管理的一个平台。
以咱们经常在地铁上看到的 投放中国移动的橱窗广告为例,它是由几个部分组成的:
提供放置广告橱窗的地铁站(运营管理平台)
提供广告橱窗的媒体公司(供给方平台)
提供移动业务的广告公司(需求方平台)

同样的,PPS广告业务平台的构架也是由ops广告运营管理平台,ssp媒体供给方平台,dsp需求方平台,ADX广告交易平台,DMP数据管理平台,Billing话单消耗计算平台组成
接下来说下广告主注册以及创建广告的主流程:
1.登陆首页注册,填写信息。这是在usermgtportal模块跳转到up界面,此时user表已录入广告主信息
2.返回usermgtportal模块进行实名认证,实名信息封装给tthirdparty 
3.由ops进行实名审核,审核通过,发送DMQ消息给三方,三方消耗完DMQ消息调用cust接口更新实名信息
4.刷新界面,此时进入ppsdspportal页面在广告主页面,我们就可以创建广告了,
5、创建广告我们首先要创建计划,在计划里创建任务,创建任务我们需要选择版位,填写投放日期,出价方式等,当然我们也可以给任务添加定向。比如说定向到哪个国家,用哪种语言,定向的人群范围(性别、年龄)等。
6、创建完任务,我们就可以在任务中编辑创意,创意可以分为图片类创意和视频类创意,并且填写文案后,我们就可以保存提交进行审核。
当然创建广告这一操作我们是在DSPPortal领域进行的,然后我们可以到ops运营管理平台进行审核,审核通过后,利用postman模拟广告请求,当然请求广告一般是在ADx引擎这边进行的。最后到billing领域进行事件上报及查看消耗。

项目二

我们做的项目叫艾迪平台,是面对智能汽车AI软件产品算法研发的一站式数据驱动的云端闭环解决方案,包括问题分析、数据管理、模型训练、数据标注、感知评测这几个系统。我主要负责的就是感知评测系统中的测评业务。

3、介绍你公司的测试流程
面试官,我就不给你讲所谓的V模型、H模型、敏捷开发模型了,我就按照公司实际的操作流程给您讲解下。我们的项目每个月迭代一次,每次迭代都会有大量的新增需求。测试经理会以邮件的方式将需求分发给测试人员。测试人员到SVN文档里寻找SE技术方案也就是需求文档。
接着SE也就是特性经理会拉着产品、开发、服务测试、解决方案测试、安全测试等进行一个需求澄清。
需求澄清后,开发进行开发工作,测试人员进行测试设计以及测试用例的编写,编写完以后,还是拉着需求澄清的与会人员进行测试设计评审以及测试用例的评审工作。评审结束后,将评审结论以邮件的方式发送给与会人员。
开发工作完成以后,先在bbit环境上进行测试,测试通过进行预集成升级,功能环境升级以后,执行门槛用例的测试以及正式用例的测试。正式用例测试分为三轮,SIT1结束后测试人员需要拉产品进行需求的showcase工作,表明需求已经在功能环境上正常实现,接着执行第二轮第三轮测试,再把基线用例执行下,上线风险评估下,准备上线

4、UI自动化框架和接口自动化框架(重点、当然简历中可以不写)
接口自动化框架流程:
首先我们需要在pycharm里新建一个项目名称,然后我们需要建6个包:cms_api、config、report、run、testcase、utils包。
config:写入各个接口的相关的入参信息,如url,data,headers。
cms_api:用来组建接口、发送接口请求,导入requests模块,
创建一个全局的session对象、用来保持会话的状态和管理上下文,把各个接口的请求方式编写出来,根据不同的接口请求从config包里获取不同的接口请求参数。全部封装在一个类cms里。
report:存储测试用例生成的报告
run:加载和运行所有的测试用例,在这个包中定义生成的报告的路径和文件名称,封装一个发送邮件的工具函数
testcase:存放接口的测试用例,在testcase包中组建测试用例导入unittest模块和cms_api里面的Cms类
然后再定义一个类,且继承unittest中的TestCase,此模块需要在类开始时,创建一个类对象,也就是cms_api这个类的对象,保证所有的测试用例从头到尾都是同一个对象,通过这个对象就可以调用cms_api这个类里面的任何方法,然后可以添加断言判断接口的响应数据是否正确
utils:工具类、创建报告和发送邮件模块

UI自动化详细讲解:
UI自动化第一种方式用rf框架(rebotframework)加载第三方库,例如selenium2library、databaselibrary、requestlibrary
也可以在python/lib/site-packages目录下封装重要的关键字
第二种方式就是用python+selenium+unittest+HTMLTestRunner做UI自动化
以前在公司,自动化刚开始写的都是零碎的线性脚本,然后慢慢经过时间沉淀,逐渐优化。现在我们用的是框架,就是把之前零散的脚本进行封装和分层。
比如说当初做融联贷这个项目的时候。先在Pycharm里面建立一个项目RLD_Project,里面包含6个包:config、data、public、report、run、testcase。
1、Config包:放置配置文件。里面的config.py文件主要是用来存放项目的绝对路径,还有测试用例和测试报告的路径也放在里面。
2、Data包:存放项目的入参数据,比如说项目的url,账号和密码。,后面封装一个工具函数读取里面的内容。如果要增加数据的稳定性,(pip install confipeser)
   也可以通过excel表格来存放,但是后面得封装读取excel文档的工具类,来对excel文档数据进行读取。
3、Public包:从名字就可以看出来它是一个公共包,public包里面会有两个包,一个是跟页面相关公共的函数和方法的包pages,一个是读取data包里面的ini文件数据工具包utils
   pages:页面公共的函数和方法:

   pages包里面首先需要创建一个基类Basepage,这个基类需要有两个方法,一个设置driver驱动,通过set_driver传入一个driver对象来进行设置driver对象, 
   把driver对象这个类变成basepage这个类的属性.
   这其实就是单例设计模式的体现然后通过get_driver来拿driver对象本身,所以只要继承Basepage这个基类,就可以拿到这个类当中的一切类方法。
   然后定位页面元素用find_element这个类方法来进行封装,可以使得传入的参数是一个元组,然后这里其实用到了Java当中的page object设计模式,也就是所谓的PO设计模式,
   使得页面中的每一个控件都变成了对象的属性          
   utils:封装读取Excel、ini文件的方法,发送邮件的工具类(pip install configparser)
4、Testcase包:存放所有的测试用例,
5、Report;生成测试用例报告
6、Run:加载和运行所有的用例,并且生成测试报告和发送测试报告

5、如何定位bug是前端bug还是后端bug
用fidder打断点或者通过返回码来判断(200:成功、303重定向、401请求参数错误、403 Fobbiden没有权限、404请求资源不存在、502网关报错、504网关超时)

6、get和post区别?http和https区别?cookie和session区别?

答:1、get是查询型请求,post是提交型请求;get的请求速度比post快;get的请求参数会附在url后面,如果是用户名或密码,可能会泄密,因此安全性比较低;get的长度受限于url的长度,而url的长度限制是特定的浏览器和服务器限制的,而post则没有大小限制,http协议规范也没有进行大小限制;

2、连接方式不同,端口不同,http是80,https是443;http是超文本传输协议,明文传输。而httpsk是具有安全性的ssl加密协议;http是免费的,https需要到ca申请证书,需要费用;

3、cookie是缓存,session是会话;cookie保存在浏览器,session保存在服务器;cookie保持20个(每个4k)左右,seesion保存在服务器没有大小限制,但是会占用服务器资源;cookie容易被篡改,安全性较低。

7、列表和元祖有什么区别?

答:1.都是序列类型的容器对象,可以存储任意类型的数据,都支持迭代、切片等操作

2.列表是可变的,元祖是不可变的。


 

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 1
    评论
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值