吐血整理,APP测试+自动化测试面试题+答案(汇总)


前言

1、APP测试篇

1)app测试与web测试的区别

系统架构:web端系统,更新服务器,不需要更新客户端;APP如果更新了服务端,客户端也要更新并测试;

兼容性。Web端要考虑不同的浏览器内核进行测试(IE、chrome、Firefox),APP的兼容性要考虑选择主流的机型,不同的分辨率、尺寸, 以及不同的操作系统;

App要考虑交叉事件测试,安装,卸载,前后台切换测试;
App还要考虑界面操作,如:横竖屏切换,多点触控,事件触发区域。

2)怎么做app测试的?

测试前,先熟悉app的原型图和业务需求,确定测试点,开发做完接口之后,先做接口测试,App开发好后,先做一个冒烟测试,看看软件的基本功能是否可用,如果正常,我们再做功能测试,UI测试,兼容性测试,交叉事件测试,安装卸载测试等。

如果面试官问具体某个测试类型怎么,就要举例子加以说明。
比如:
UI测试:检查app的UI是否和原型图一致。
功能测试:xxxx
兼容性测试:xxxx
用户体验测试:xxxx
(补上app的8大测试点,并举例子说明)

功能,兼容性,用户体验,安全性,安装卸载升级测试,交叉事件,UI测试,性能测试。

3)App的性能测试怎么做的

App的性能分为服务器端的性能和手机端的性能。
服务器端的性能,我们用Jmeter工具进行测试的,和web的端性能测试方法一样的。

我们是用monkey做手机端App的稳定性测试的,使用monkey跑10万次,看它会不会出问题,如果出了问题,我们再定位原因,具体的做法是这样的:
在跑monkey前,先使用adb logcat -c清空手机的logcat日志
接下来,使用adb logcat -v time获取logcat日志并导入本地文件

使用monkey运行被测应用:adb shell monkey -p 包名 -v 10万次 并将执行结果导入到本地

测试完成后查看monkey日志,如果说它跑的次数跟我设的次数不一样.就说明monkey中途跑失败了。那我就要去看看monkey日志中有没有crash或者anr的关键字,如果有还需定位到是什么原因导致的anr或者crash的问题。

并且将相关日志和logcat日志与进程号提交给开发定位,如果是anr的问题,还需要从安卓中获取/data/anr/traces.txt文件提交给开发定位。

4)用MONKEY做APP测试,怎么做的?如果有问题的话怎么定位?

在跑monkey前,先使用adb logcat -c清空手机的logcat日志
接下来,使用adb logcat -v time获取logcat日志并导入本地文件
使用monkey运行被测应用:adb shell monkey -p 包名 -v 10万次 并将执行结果导入到本地

测试完成后查看monkey日志,如果说它跑的次数跟我设的次数不一样.就说明monkey中途跑失败了。

那我就要去看看monkey日志中有没有crash或者anr的关键字,如果有还需定位到是什么原因导致的anr或者crash的问题。并且将相关日志和logcat日志与进程号提交给开发定位,如果是anr的问题,还需要从安卓中获取/data/anr/traces.txt文件提交给开发定位。

5)如何判断客户端还是后台的问题

客户端问题:

文字,图片有误;
无法输入,按钮不可用;
抓包信息显示客户端发送的信息有误。

服务器端问题:

通过抓包检查服务器返回的信息,如果信息有误,就可以断定是服务器的问题;
客户端向服务器发送信息后,服务器无响应。

2、自动化测试篇

1)自动化测试是怎么做的?

就拿简历上的xxx项目来说吧,在编写脚本前,我们会对系统进行评估,确认这个系统可不可以实现UI自动化,如果可以的话,就筛选出能实现自动化测试的用例,一般优先把冒烟测试用例的转为成脚本。

我们是用selenium工具来实现自动化,采用python脚本语言,基于unittest/pytest框架进行用例的编写。

比如,下单这个功能的脚本,我们是这样做的:首先,我们会构建一个测试工程,测试工程包含testcase,主要用来存放测试用例,report用来存放测试报告,其次我们会把用例中公共的部分封装到public中,最后用runAllCase的python文件运行项目自动化用例,脚本调试完后,我们会用jenkins持续集成工具,设置脚本每天晚上10点跑一遍脚本,跑完后生成html格式的自动化测试报告。

2)自动化脚本失败的原因

可能是测试环境的网络不稳定;
开发修改了代码没通知到测试人员修改脚本;
开发引入了新的问题。

3)测试脚本用到了哪些技术

元素定位,表单切换,模块调用,JS定位等等,脚本是基于python自带的unittest单元测试框架,或者pytest单元测试框架,采用了模块化方式编写,把复用性高的操作封装到公共模块中,如果脚本需要用到对应的操作,直接调用就可以了,如果元素发生变化,只需要调整元素封装的代码就可以了,提高测试用例的可维护性。

4)脚本怎么组织的?(编写自动化脚本,你的思路是什么?)

构建一个测试工程,测试工程包含testcase,主要用来存放测试用例,report用来存放测试报告,其次我们会把用例中公共的部分封装到public中,最后用runAllCase的python文件运行项目自动化用例。

测试脚本使用的是python的unittest单元测试框架组织管理,将所有测试脚本通过单元测试框架组织起来运行,这样做的好处是,维护起来方便,可以生成测试html格式的测试报告,报告包括:测试用例,通过数,失败数。

5)自动化率多少

一般是30%到40%,这个没有固定的,我们是优先将优先级高的测试用例,比如,冒烟测试的测试用例转换成自动化脚本的,后面有时间的时候再不断补充,能写多少写多少。

6)怎样用python连接mysql数据

我们之前主要是用python语言来写web端的自动化测试脚本,连接数据库的话,我们主要使用pymysql这个模块来进行连接的。一般在进行完自动化测试之后,我们会连接上数据库,将数据进行清除。

7)元素的属性值是动态变化的,怎么定位这个元素?

如果元素有属性值是动态变化的,我们就不要使用这个属性进行定位;
我们可以使用这个元素的非动态变化,并且是唯一的值属性进行定位;
也可以使用xpath或者css,使用层次+属性的方式定位。

3、经典测试举例篇

1)一个身份证号码输入框,怎么设计用例?

校验身份证号规则的有效性(包括地址码、生日期码、顺序码和校验码校验15位身份证号和18位身份正好都是可用的校验末位是X的情况校验不足15位、16-17位和大于18位的情况如果是必输项,校验不输入的时候会不会有正确的提示如果不是必输项,则要校验不输入的时候流程能否正常进行校验输入非数字的情况,是否会有正确提示信息(包括大小写字母、汉字、特殊字符和标点符号)校验输入全角的数字的时候,系统是否会识别(这个得根据需求确定是否可以使用全角的数字)

2)登录功能怎么设计测试用例?

具体需求:
有一个登录页面,有一个账号和一个密码输入框,一个提交按钮。

此题的考察目的:

了解需求(测什么都是从了解需求开始);
是否有设计Test Case的能力;
是否熟悉各种测试方法;
是否有丰富的Web测试经验;
是否了解Web开发;

了解需求:
登录界面应该是弹出窗口式的,还是直接在网页里面;
账号长度和密码的强度(比如需要多少位、大小写敏感、特殊字符混搭等);
界面美观是否有特殊要求?(即是否要进行UI测试);

用例设计:
测试需求分析完成后,开始用例设计,主要可以从以下几个方面考虑:

功能测试:

输入正确的账号和密码,点击提交按钮,验证是否能正确登录。(正常输入)
输入错误的账号或者密码,验证登录会失败,并且提示相应的错误信息。(错误校验)

登录成功后能否跳转到正确的页面(低)
账号和密码,如果太短或者太长,应该怎么处理(安全性,密码太短时是否有提示)
账号和密码,中有特殊字符(比如空格),和其他非英文的情况(是否做了过滤)

记住账号的功能
登录失败后,不能记录密码的功能
账号和密码前后有空格的处理
密码是否加密显示(星号圆点等)
牵扯到验证码的,还要考虑文字是否扭曲过度导致辨认难度大,考虑颜色(色盲使用者),刷新或换一个按钮是否好用

登录页面中的注册、忘记密码,登出用另一帐号登录等链接是否正确
输入密码的时候,大写键盘开启的时候要有提示信息。
什么都不输入,点击提交按钮,看提示信息。(非空检查)

界面测试:
布局是否合理,2个Testbox和一个按钮是否对齐;
Testbox和按钮的长度,高度是否符合要求;
界面的设计风格是否与Ul的设计风格统一;
界面中的文字简洁易懂,没有错别字;

性能测试:
打开登录页面,需要几秒;
输入正确的账号和密码后,登录成功跳转到新页面,不超过5秒;

安全性测试:
登录成功后生成的Cookie是否有HttpOnly(降低脚本盗取风险);
账号和密码是否通过加密的方式,发送给Web服务器;
账号和密码的验证,应该是用服务器端验证,而不能单单是在客户端用javaScript验证;

账号和密码的输入框,应该屏蔽SQL注入攻击;
账号和密码的输入框,应该禁止输入脚本(防止XSS攻击);
错误登录的次数限制(防止暴力破解);
考虑是否支持多用户在同一机器上登录;
考虑一用户在多台机器上登录;

可用性测试:
是否可以全用键盘操作,是否有快捷键;
输入账号,密码后按回车,是否可以登录;
输入框是否可以以Tab键切换;

兼容性测试:
主流的浏览器下能否显示正常已经功能正常(IE6-11,FireFox.Chrome,Safari等);
不同的平台是否能正常工作,比如Windows,Mac;
移动设备上是否正常工作,比如iPhone,Android;
不同的分辨率;

最全Python自动化测试进阶之路视频教学 (全集)

下面是我整理的2025年最全的软件测试工程师学习知识架构体系图

一、Python编程入门到精通

请添加图片描述

二、接口自动化项目实战

请添加图片描述

三、Web自动化项目实战

请添加图片描述

四、App自动化项目实战

请添加图片描述

五、一线大厂简历

请添加图片描述

六、测试开发DevOps体系

请添加图片描述

七、常用自动化测试工具

请添加图片描述

八、JMeter性能测试

请添加图片描述

九、总结(尾部小惊喜)

人生最动人的篇章,往往写在最艰难的转折之后。当你觉得力不从心时,请记住:每一个"不可能"的突破,都始于"再试一次"的勇气。你的坚持,正在为世界书写新的可能!

别让他人的质疑成为你的枷锁!你体内蕴藏着改变命运的力量,每个微小的进步都在为辉煌铺路。当别人停下脚步时,你的坚持就是最有力的回应。向前走,属于你的舞台正等待绽放!

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值