春节刚刚过去,也是各大公司开始抢人的时刻。最近帮忙准备几个自动化相关的题目,以前参加面试的时候总被问到些奇怪的问题,所以我出题本着开放的原则,题目本身没有什么答案,要的是你能说服我,或者让我知道你比较关注于技术圈子的事情。知识面我觉得很重要,呵呵…
1、如何理解自动化测试,用测试工具进行测试等于自动化测试这句话对不对?
关注点:测试工具的使用是自动化测试的一部分工作,但“用测试工具进行测试”不等于“自动化测试”。自动化测试,模拟手工测试步骤,通过执行程序语言编制的 测试脚本自动地测试软件。 自动化测试,强调借助工具(不仅仅是工具,有时包括策略和工件)来完成测试的执行,也就是用工具来帮助或辅助测试。但是用测试工具进行测试有可能是自动化,半自动化,或者手工测试。
2、介绍下比较了解的自动化框架,watir,selenium,QTP…..任选一个说说,这个框架的工作原理是什么?
随便选取一个,重要的是原理,而不是使用。大家在用这些框架的时候,一定要关注背后的执行原理.看源码是一个比较简单的途径。
3、介绍下SoapUI,如果你用着的话。这个框架需要注意什么?
soapUI是一款桌面应用程序,能够监测、触发、模仿以及测试(功能和负载)基于SOAP/WSDL和REST/EADL的HTTP网络服务。
和大多数的工具一样,都是使用HTTPREQUEST对相应的资源进行请求很提取。再得到response之后进行相应的处理,对XML进行XPATH定位。注意的是SOAP方法中包含GET,POST的方法,POST的方法主要使用Application/xml的MIME形式发送相应的POST数据。
4、对webservice层面的自动化测试,你认为比较重要的是什么?
对webservice的测试主要分为两个阶段,首先是对WEB Ui层面的数据XML Response与webservice的schema进行对比测试,其次是web Ui层面的数据与数据库服务器中相应的数据进行验证。
5、对持续集成工具有了解过吗?类似于Jenkins(hudsoon)/Bamboo/Teamcity这些持续集成的工具,有了解过这些吗?
目前比较这几个还算比较流行,阿里主要集中在用hudson。Teamcity在以前的公司了解过。
6、桌面自动化测试和WEB 自动化测试的区别?
驱动方式不同,C/S架构(或者桌面类型)界面自动化测试,采取的方式可以调用操作系统本身的API(windows桌面软件)来构建自动化测试或者可以采用虚拟机内(java swing程序)的事件处理机制来完成了。
WEB 自动化测试 B/S架构,原理就是依靠JS来进行客户端的操作,然后寻找对象是采用了DOM解析技术,将web方面的节点进行解析定位
7、自动化测试碰到比较难解决的问题是什么?如果出现这些问题给出你的解决方案?
重点引导到测试结果定位准确这个角度上来, 在自动化程度比较高,case很多,就会存在排查失败的case过程。
解决方案; case错误分类,有效的log日志,异常信息的抓取
8、IOS支持UI自动化,主要有2种方式,介绍下这2种方式?
1)苹果官方提供的技术, UI Automation。
2)就是在应用中注入测试代码。
Instrument uiautomation 是苹果官方提供的iPhone手机应用的自动化测试工具。控件元素的识别准确,属性获取,元素操作的API丰富。可以很方便的录制测试脚本、回放和查看运行结果。