一、主流自动化测试技术
Selenium: Web UI自动化测试应用
Appium: APP UI自动化测试应用
Requests: HTTP 1.1接口自动化测试应用
二、编写测试用例时,一般会使用到什么样的方法来进行用例的设计?
边界值:
大量错误是发现在输入或输出范围的边界上,而不是发生在输入输出范围的内部,因此针对各种边界情况设计测试用例,可以查出更多错误。
等价类:
等价类测试方法是把所有可能的输入数据,即程序的输入域划分为若干部分,然后从每一部分中选取少数有代表性的数据作为测试用例。使用等价类划分方法设计测试用例要经过划分等价类和选取测试用例两步。理想的测试是使用最少的测试数据达到最好的测试质量。
类型划分:有效等价类;无效等价类
设计测试用例步骤:1、确定需求2、确定有效等价类和无效等价类3、对每条等价类设计测试用例
案例:QQ登录
#QQ登录:6-10位的QQ号,包括6位和10位,QQ号码必须为整数,不能以0开头
#有效等价类:6位数字、7位数字、8位数字、9位数字、10位数字(不能以0开头)
#无效等价类:6位数字、7位数字、8位数字、9位数字、10位数字(以0开头);小数、字母、特殊字符、汉字以及以上组合
与边界值法的区别:
等价类划分法可以挑选等价范围内任意一个数据作为代表,边界值分析法要求每个边界值都要作为测试条件;边界值分析法不仅考虑输入条件,同样考虑输出产生的测试情况。
场景分析法:
从起点,通过一系列操作步骤达成某一结果,到终点的过程测试。场景法主要用于冒烟测试。在通过了场景测试后,再通过其他方法进行更为细腻的测试。
因果图:
因果图法是一种利用图解法分析输入的各种组合情况,从而设计测试用例的方法,它适用于检查程序输入条件的各种组合情况。
等价类划分法和边界值分析法都是着重考虑输入条件,但没有考虑输入条件的各种组合,输入条件的相互制约关系,这样可能会忽视多个输入条件组合起来出错的情况。因此考虑采用一种适用于描述多种条件的组合,产生多个动作的形式来进行测试用例的设计---因果图。
错误推断:
基于经验和直觉推测程序中所有可能存在的各种错误,从而有针对性的设计测试用例的方法。
根据经验,列举出程序中所有可能有的错误和容易发生错误的特殊情况,根据他们选择测试用例。
正交:
正交法也叫正交实验法,就是使用最小的测试过程集合获得最大的测试覆盖率。
三、测试过程中,为什么要做接口测试?
1、可以绕过前端,发现很多在页面操作过程中发现不了的BUG
2、检查系统的异常处理能力
3、检查系统的安全性
4、保障服务端的质量
四、测试过程中,遇到不可复现的BUG该如何处理?
1、在哪个版本发现的BUG,就在哪个版本复现
2、与开发沟通,一同协作复现BUG
3、记录操作步骤与BUG具体信息,在后续测试中保持关注
五、如何提交一条完整的BUG信息?
1、缺陷的标题
2、缺陷的具体复现步骤及缺陷具体描述
3、缺陷的发现版本
4、缺陷对应的开发人员
5、缺陷的严重等级
6、缺陷的优先级
7、缺陷的附件信息(包含截图、日志等)
六、给你一支笔应该如何测试?
参考软件质量模型(六大特性与二十七大子特性)
七、Web的兼容性如何测试?
1、了解主流浏览器
2、校验主流程以及页面的展示效果
如果不正常,比如页面的排版错位,有些样式加载失败,页面上的一些功能失效等。
八、Selenium的运行原理是什么?为什么能够实现web自动化?
1、Selenium本身不操作浏览器,是基于Webdriver来对浏览器进行操作的。Webdriver作为一个HTTP协议下的服务,在后端以进程的形态启动,再通过指令调用到对应的浏览器,让其运行和操作。
2、Selenium.webdriver库是Web自动化执行的核心库,其中包含有各类对浏览器以及页面元素的操作,通过这个库,结合webdriver服务来实现对web的自动化测试。
基于Selenium.webdriver库的源代码可以看出,所有的操作行为都是基于封装的指令来进行的,实际的操作模式是通过selenium下发代码指令至WebDriver服务器,经由HTTP网络协议,以请求的形式将所接收到的内容,下发至浏览器,直接显示在用户眼前。
九、在自动化测试中,遇到动态元素如何有效对其进行定位?
所谓动态元素,即每次加载时,部分元素属性都会发生变化的元素。
可以选择相对更为灵活的元素定位方法(XPATH,CSSSELECTOR),基于元素路径、不变的属性等其他内容进行定位。
十、在自动化测试中,元素定位失败的原因是什么?
1、是否添加有等待
2、是否新增了句柄,而没有切换
3、元素是否在页面的Iframe之中
4、元素是否被遮挡
5、元素定位值是否正确
6、元素定位到的是否是第一个
7、页面加载策略是否正确