软件测试面试题APP篇

在线wifi跑包 金刚包跑包 cap跑包 hccapx ewsa在线 就来 握手包跑包

各位好 又见面了 我是曹操 今天给大家带来一篇新的教程

希望各位细心学习 低调用网

跑包软件

关于APP的兼容性测试,我们会测试不同机型和版本的兼容性。对于Android的兼容性测试,我们使用Jmeter工具进行服务器端性能测试,与Web端性能测试方法相似。而对于手机端的稳定性测试,我们使用Monkey工具进行测试。我们会运行10万次Monkey测试,观察是否出现问题。如果出现问题,我们会定位原因,具体的步骤如下:

  1. 在运行Monkey测试之前,我们会使用adblogcat-c命令清空手机的logcat日志。
  2. 接下来,使用adblogcat-vtime命令获取logcat日志并导入到本地文件。
  3. 使用iTest开始监控App的资源,并使用adb shell monkey -p包名 -v 10万次命令运行被测应用,并将执行结果导入到本地。
  4. 测试完成后,我们会查看Monkey日志。如果运行次数与设定的次数不一致,说明Monkey在中途失败了。我们会检查Monkey日志中是否有关键字”crash”或”anr”,如果有,我们会定位导致ANR或Crash的原因,并将相关日志和logcat日志与进程号提交给开发人员进行定位。如果是ANR问题,我们还需要从安卓中获取/data/anr/traces.txt文件并提交给开发人员进行定位。

关于Android和iOS的资源监控,对于Android手机,我们使用iTest进行资源监控;而对于iOS,我们在App中嵌入了一些代码进行监控。

如果在Monkey测试过程中出现Crash,我们会通过在Monkey日志中搜索”crash”来定位问题,并将日志提供给开发人员进行定位。

当开发人员修复了问题后,我们会进行回归测试。我们会按照之前的轨迹(seed)运行Monkey,命令是:adb shell monkey -p包名 -s seed值 -v 次数。

关于APP出现ANR的原因,有以下几点:

  1. 主线程执行了耗时操作,比如数据库操作或网络编程。
  2. 其他进程占用CPU导致本进程得不到CPU时间片,比如其他进程的频繁读写操作。
  3. 细分的原因包括耗时的网络访问、大量的数据读写、数据库操作、硬件操作(如相机)、调用线程的join()方法、sleep()方法、wait()方法或等待线程锁的时候、service binder的数量达到上限、system server中发生WatchDog ANR、service忙导致超时无响应、其他线程持有锁导致主线程等待超时、其他线程终止或崩溃导致主线程一直等待。

关于APP出现Crash的原因,有以下几点:

  1. 内存管理错误,如可用内存过低、app所需内存超过设备限制、内存泄漏等。
  2. 程序逻辑错误,如数组越界、堆栈溢出、并发操作、逻辑错误等。
  3. 设备兼容性,由于设备多样性,app在不同设备上可能有不同表现。
  4. 网络因素,如网速欠佳、网络切换等。

判断客户端还是后台问题的方法如下:

  1. 客户端问题:文字、图片有误;无法输入、按钮不可用;抓包信息显示客户端发送的信息有误。
  2. 服务器端问题:通过抓包检查服务器返回的信息,如果信息有误,可以断定是服务器的问题;客户端向服务器发送信息后,服务器无响应。

在进行APP测试时,我们会先熟悉APP的原型图和业务需求,确定测试点。在开发完成接口后,我们会先进行接口测试。当APP开发完成后,我们会进行冒烟测试,检查基本功能是否可用。如果一切正常,我们会进行功能测试、UI测试、兼容性测试、交叉事件测试、安装卸载测试等。如果面试官询问具体的测试类型,我们会举例说明,如UI测试检查APP的UI是否与原型图一致,功能测试等。

Appium的工作原理是,我们在电脑端运行自动化测试脚本,调用Appium的WebDriver接口。Appium服务器接收到来自客户端的命令后,将其转换为UIAutomator可识别的命令,并在设备上执行自动化操作。

赞(0)