测试工程师面试题

article/2025/10/8 21:21:48

选择题

  1. 进行兼容性测试的目的在于()
  • A、测试程序在不同的平台上可以正常运行
  • B、测试程序与平台上的其他程序可以同时正常运行
  • C、测试数据格式在不同应用程序之间可以通用
  • D、以上选项都正确
  1. 某个 Android 应用耗电问题严重,以下那个是可能的因素()
  • A、频繁 GC
  • B、开 GPS
  • C、网络连接
  • D、后台服务数量
  1. 以下那个是 Android APP 的测试工具()
  • A、QTP
  • B、Selenium
  • C、Robotium
  • D、Uiautomator
  1. 一个 Andorid 应用从按 home 键回到主屏,到重新启动 APP,其 activity 的生命周期执行顺序是()
  • A、onPause() -> onStop() -> onRestart() -> onStart() -> onResume()
  • B、onStop() -> onRestart() -> onStart() -> onResume()
  • C、onPause() -> onStop() -> onRestart() -> onResume()
  • D、onPause() -> onStop() -> onDestroy() -> onRestart() -> onResume()
  1. 以下哪个选项表示申请 GSM 网络的使用权限()
  • A、android.permission.CHANGE_WIFI_STATE
  • B、android.permission.ACCESS_WIFI_STATE
  • C、android.permission.ACCESS_NETWORK_STATE
  • D、android.permission.READ_SMS

问答题

1.请尝试简述 Android 四层架构,四层架构包含哪些?并挑选写出每层中一到两个部件。

在这里插入图片描述

2. 简述 Android 四大组件,并选择两个阐述生命周期。

  • Activity 活动
    应用程序中,一个 activity 通常就是一个单独的屏幕,它上面可以显示一些控件,也可以监听并处理用户的事件做出响应。
  • service 服务
    一个Service 是一段长生命周期的,没有用户界面的程序,可以用来开发如监控类程序。
  • Content Provider 内容提供者
    android平台提供了Content Provider使一个应用程序的指定数据集提供给其他应用程序。这些数据可以存储在文件系统中、在一个SQLite数据库、或以任何其他合理的方式,
    其他应用可以通过ContentResolver类(见ContentProviderAccessApp例子)从该内容提供者中获取或存入数据.(相当于在应用外包了一层壳),只有需要在多个应用程序间共享数据是才需要内容提供者。例如,通讯录数据被多个应用程序使用,且必须存储在一个内容提供者中。它的好处:统一数据访问方式。
  • BroadcastReceiver 广播接收器
    过滤外部事件做出响应。通知可以用很多种方式来吸引用户的注意力──闪动背灯、震动、播放声音等。一般来说是在状态栏上放一个持久的图标,用户可以打开它并获取消息。
    注意:
    • 生命周期只有十秒左右,如果在 onReceive() 内做超过十秒内的事情,就会报ANR(Application No Response) 程序无响应的错误信息

3. 如何对一个 Android 应用进行稳定性测试?请简述测试思路,可能用到的技术手段和工具。

使用 Monkey 进行稳定性测试,多次进行测试,对日志进行分析,保证程序在压力测试下不会崩溃。由于 monkey 是随机点击,所以有两个问题需要解决:

  • 会误触通知栏导致断网等其他操作,所以需要使用 simiasque屏蔽知栏;
  • 有时会跳到非测试 webview 页面,如广告页面或在同一页面点击过多不跳出,所以需要新增一个 monkey checker的线程来同步执行,加入跳出判断。

4. 如何对 Android APP 进行性能测试?请简述测试思路,测试方法,分析思路。

APP 性能测试主要为以下几个方面:

  • 专项测试
    通过 GT、Emmage、solopi 等工具查看并分析性能数据,或通过 profile 查看(需 debug 包)
  • 接口性能
    jmeter、loadrunner 进行接口压测/并发测试
  • 稳定性测试
    monkey 测试

5. 请描述 OOM 的成因。

Android 系统为每个应用程序设置了一个硬性的 Dalvik Heap Size 最大限制阀值,这个阀值在不同的设备上会因为 RAM 大小不同而各有差异。如果接近阀值,再次尝试分配内存,容易出现 Out Of Memory 的问题。

  • 加载大图/高清图/长图,需要先对 bitmap 进行压缩再放入 imageView 中显示;
  • Bitmap使用完没有释放,bitmap在使用完后要recycle后置null;
  • 文件流使用后没有关闭,文件流用后要close掉。

6. 请描述 ANR 的成因。

  • KeyDispatchTimeout最常见的一种类型,原因就是 View 的点击事件或者触摸事件在特定的时间(5s)内无法得到响应;
  • BroadcaseTimeout原因是 BroadcastReceiver 的 OnReceive() 函数运行在主线程中,在特定的时间(10s)内无法完成处理;
  • ServiceTimeout比较少出现的一种类型,原因是 Service 的各个生命周期函数在特定时间(20s)内无法完成处理。

典型的 ANR 问题场景:

  • 应用程序UI线程存在耗时操作。例如在UI线程中进行联网请求,数据库操作或者文件操作等;
  • 应用程序的UI线程等待子线程释放某个锁,从而无法处理用户的输入;
  • 耗时的动画需要大量的计算工作,可能导致CPU负载过重。

7. Adb 命令是 Android 测试中的重要工具之一,请写出实现如下功能的命令。

  • 安装一个 xx.apk
    adb install xx.apk

  • 查看将运行日志保存至 PC 1.txt 文件
    adb logcat > 1.txt

  • A 为手机路径,B 为电脑路径,分别写出将 a.txt 文件从电脑传输到手机和从手机传输到电脑的命令。
    手机->电脑:adb pull /sdcard/a.txt /Desktop
    电脑->手机:adb push /Desktop/a.txt /sdcard

  • 编写一个 monkey 命令,要求对包名为 com.test.android 的应用进行 50000 次测试,要求限定操作间隔时间为 1000 毫秒,触摸事件百分比为 10%,seed 值为 20

adb shell monkey -p com.test.android --pct-touch 10 --throttle 1000 -s 20 5000

8. 请说明 Android 多线程需要使用什么方法实现?

  • 继承 Thread 类
  • 实现 Runnable 接口
  • Handler

编程题

  1. 请使用数组实现一个栈。
class Stack(object):def __init__(self):self.items = []def is_empty(self):"""测试栈是否为空。不需要参数,并返回布尔值"""return self.items == []def push(self, data):"""将一个新项添加到栈的顶部它需要 item 做参数并不返回任何内容"""self.items.append(data)def pop(self):"""从栈中删除顶部项它不需要参数并返回 item,栈被修改"""return self.items.pop()def peek(self):"""从栈返回顶部项,但不会删除它。不需要参数。 不修改栈"""return self.items[-1]def size(self):"""返回栈中的 item 数量。不需要参数,并返回一个整数"""return len(self.items)def show_item(self):print(self.items)if __name__ == '__main__':stack = Stack()print(stack.is_empty())stack.push('cc')stack.push('aa')stack.show_item()print(stack.peek())stack.pop()stack.show_item()print(stack.size())

输出结果 >>>

True
['cc', 'aa']
aa
['cc']
1
[Finished in 0.1s]
  1. 按要求编写算法,输出两个字符串中相同的字符。例:String A = “abctd”,String B = “abfyt”,输入 “abt”
a = 'abctd'
b = 'abfyt'
c = []for i in range(len(a)):if a[i] in b:c.append(a[i])
print("".join(c))
  1. 冒泡排序。
a = [10, 6, 8, 53]for i in range(len(a)-1):for j in range(len(a)-1-i):if a[j] > a[j+1]:a[j], a[j+1] = a[j+1], a[j]print(a)

http://chatgpt.dhexx.cn/article/VOARWHfL.shtml

相关文章

软件测试工程师面试题汇总

小编热衷于收集整理资源,记录踩坑到爬坑的过程。希望能把自己所学,实际工作中使用的技术、学习方法、心得及踩过的一些坑,记录下来。也希望想做软件测试的你一样,通过我的分享可以少走一些弯路,可以形成一套自己的方法…

100道经典软件测试笔试题(附答案)一次性查缺补漏个够

千呼万唤始出来,很多群友说我看了这么多面试题,但是公司要笔试怎么办?有没有能够笔试给我们练练手,这边我也是特意帮大家整理了这么100道软件测试的笔试题,答案在最后,试试自己能答对多少吧!需要…

软件测试工程师笔试题(附带答案)

软件测试题目 一、 判断题 (每题2分,20) 1、软件测试就是为了验证软件功能实现的是否正确,是否完成既定目标的活动,所以软件测试在软件工程的后期才开始具体的工作。 (初级) ( ) 2、发现错误多…

初级测试工程师面试笔试题(附带答案)

1.编写测试用例有哪几种方法? 答:大刚法、等价类、边界值、因果图、场景法、正交法、错误推断法、正则表达式 2.测试的六条基本法则是什么? 答:功能、可靠性、易用性、效率、可维护性、可移植性 3.软件测试分类有哪些?…

2022年最新软件测试工程师笔试真题及答案(搜狐、华为、蓝港在线)

搜狐软件测试工程师笔试真题及答案 试题1.下列哪个覆盖的范围最广?条件、条件组合、语句、判定条件。 答案:条件组合。 试题2.Java Web应用的3层结构是什么? 答案:浏览器/中间层(Java ASP等…

hadoop安装前的网络环境配置

1.1 网络配置 对安装好的 VMware 进行网络配置,方便虚拟机连接网络,本次设置建议选择 NAT 模 式,需要宿主机的 Windows 和虚拟机的 Linux 能够进行网络连接,同时虚拟机的 Linux 可 以通过宿主机的 Windows 进入互联网。 1.1.1 编…

Windows下Hadoop的环境变量的配置以及Hadoop的配置文件修改

Hadoop的环境变量的配置 1.进入系统变量,右键单击我的电脑 –>属性 –>高级环境变量配置 –>高级选项卡 –>环境变量 –> 单击新建HADOOP_HOME 2.在系统变量path 里面 添加 %HADOOP_HOME%\bin; 3.测试:打开命令行cmd ,在任意路径下输入h…

Hadoop应用配置

文章目录 hadoop目录配置hadoop角色hadoop运行和使用hadoop 观察FsImage和EditLog分发配置 hadoop目录 bin :功能模块sbin:shell脚本etc:配置lib:使用库 bin和sbin目录都要加入到环境变量中。 vi /etc/profile增加: …

配置Hadoop_1

配置Hadoop_1 1. 配置jdk2. 配置Hadoop3.完全分布式运行环境(配置集群)3.1 编写集群分发脚本xsync3.2 rsync远程同步工具3.3 xsync集群分发脚本3.4 SSH无密登录配置3.5集群配置3.6 配置历史服务器3.7 配置日志的聚集 3.8 两个常用脚本asd 1. 配置jdk 上…

hadoop集群配置(保姆级教学)

目录 1 .集群配置 (1)集群部署规划 (2)配置文件说明 (3)配置集群 (1)核心配置文件 (2)HDFS配置文件 (3)YARN配置文件 (4)MapRedu…

Hadoop集群配置

一:集群部署规划 注意: ➢ NameNode和SecondaryNameNode不要安装在同一台服务器 ➢ ResourceManager也很消耗内存,不要和NameNode、SecondaryNameNode配置在同一台机器上。 二:配置文件说明 Hadoop配置文件分两类&#xff1a…

Hadoop配置环境变量(详解版)

1.运行hadoop的程序报错java.io.IOException: Could not locate executable nullinwinutils.exe in the Hadoop binaries. **这是因为windows环境变量不兼容的原因解决办法: 首先需要下载 hadoop的tar.gz包,前提是JDK必须配置成功,存放路径不…

hadoop配置文件

安装前的工作: jdk集群中节计算机互联互通关闭防火墙节点间的计算机免密码登录(authorized_keys认证文件root用户存放在/root/.ssh/) (User用户 /home/user/.ssh/) A计算机免密码登录B计算机,将A计算机的公钥存放在B计算机的认证…

4.Hadoop环境配置

4. 集群配置 4.1 集群部署规划 安装前先做好节点规划,完全分布式目前规划1个主节点(Master)和2个从节点(Slave)一共三个节点。 部署规划要求: NameNode和SecondaryNameNode不要安装在同一台服务器。Reso…

hadoop环境配置

hadoop环境配置 一、VmWare与linux版本VmWare版本:linux版本 二、使用VmWare来安装linux软件三、三台linux服务器环境准备1、三台机器IP设置2、三台机器关闭防火墙3、三台机器关闭selinux4、三台机器更改主机名5、三台机器更改主机名与IP地址映射6、三台机器同步时间…

hadoop详细安装及配置

一、下载 http://hadoop.apache.org/ hadoop官网 二、解压 注:使用管理员权限解压 三、配置环境变量 添加HADOOP_HOME配置:自己安装hadoop路径,我的是D:\hadoop-3.0.3 在Path中添加如下:自己安装hadoop路径/bin,…

Hadoop集群的配置

一.、创建虚拟机 (10条消息) CentOS 7 虚拟机的搭建_仄言2997的博客-CSDN博客 1. 创建虚拟机 2. 安装 CentOS 二、虚拟机网络设置 (10条消息) 虚拟机网络配置_仄言2997的博客-CSDN博客 三、 安装JDK (10条消息) 虚拟机安装jdk,运行java文件_仄言2997的博客-CSDN博客…

Hadoop集群环境配置搭建

一、简单介绍 Hadoop最早诞生于Cutting于1998年左右开发的一个全文文本搜索引擎 Lucene,这个搜索引擎在2001年成为Apache基金会的一个子项目,也是 ElasticSearch等重要搜索引擎的底层基础。 项目官方:https://hadoop.apache.org/ 二、Linux环…

超详解Hadoop集群环境配置,步步附有截图,一篇讲解清楚

写在最前,在配置Hadoop之前,要确定已经准备好了Hadoop的准备环境,并且已经在机器上安装完了Hadoop,以及编写了一些必要的集群脚本,具体操作详情见这两篇文章 Hadoop安装及集群脚本编写 Hadoop集群准备环境搭建 一、Ha…

大数据开发之Hadoop学习3--Hadoop运行模式

Hadoop运行模式 目录 Hadoop运行模式 4.1 本地运行模式(官方wordcount) 4.2 完全分布式运行模式 4.2.1 虚拟机准备 4.2.2 编写集群分发脚本xsync 4.2.3 SSH无密登录配置 4.2.4 集群配置 4.2.5 群起集群 4.2.6 集群启动/停止方式总结 4.2.7 配置…