2021-04-12笔试题

1.web测试和app测试的相同点和区别

相同点:
不管是传统行业的web测试还是app测试,都离不开测试的基础知识;同样的设计测试用例方法:边界值分析法、等价类划分法、错误推测法、场景法同样的测试方法:黑盒测试,验证业务功能是否正确符合用户设计预期;都要检查UR:界面的布局、风格和按钮等是否简介美观、是否统一等;页面性能检测:测试页面载入和翻页的速度、登录时长、内存是否溢出等;应用的稳定性:测试应用系统的稳定性,不会闪退卡死等;

不同点:
相对于web测试,app测试除了要考虑基本的功能、性能等等,还要考虑手机本身固有的属性特性,所以在app测试过程中还需要注意以下几个方面特性:手机作为通信工具:来去点,接收短信等操作都会对APP应用程序产生影响,所以APP测试第一个要考虑的属性特性是:中断测试。中断测试有人为的,也有新任务中断以及意外中断等几种情况,主要从以下几个方面验证:a.来电中断:呼叫挂断、被呼叫挂断、通话挂断、通话被挂断;b.短信中断:接收短信,查看短信c.其他中断:蓝牙闹钟插拔数据线、手机锁定、手机断电、手机问题(系统死机、重启)

手机用户对APP产品的安装卸载操作:
a.从上一个版本上两个版本直接升级到最新版本b.全部安装新版本c.新版本覆盖旧版本安装d.卸载旧版本,安装新版本e.卸载新版本,安装新版本

web自动化测试使用工具比较常用的是qtp,而安卓手机自动化测试工具比较常用的是monkey/moneyrunner/appium;

界面操作:现在app产品的用户都是使用的触摸屏手机,所以测试的时候还要注意手势、横竖屏切换,多点触控,事件触发区域等测试;

2.如何测试一个APP的登录功能

功能测试(Function test)
  1.输入正确的用户名和密码,点击提交按钮,验证是否能正确登录。
  2.输入错误的用户名或者密码, 验证登录会失败,并且提示相应的错误信息。
  3.登录成功后能否能跳转到正确的页面
  4.用户名和密码,如果太短或者太长,应该怎么处理
  5.用户名和密码,中有特殊字符,和其他非英文的情况
  6.记住用户名的功能及已输入的用户名和密码是否会自动清除
  7.登陆失败后,不能记录密码的功能
  8.用户名和密码前后有空格的处理
  9.密码是否以星号显示

界面测试(UI Test)
  1.布局是否合理,2个testbox 和一个按钮是否对齐
  2.testbox和按钮的长度,高度是否复合要求

性能测试(performance test)
  1.打开登录页面,需要几秒
  2.输入正确的用户名和密码后,登录成功跳转到新页面,不超过5秒

安全性测试(Security test)
  1.登录成功后生成的Cookie,是否是httponly (否则容易被脚本盗取)
  2.用户名和密码是否通过加密的方式,发送给Web服务器
  3.用户名和密码的验证,应该是用服务器端验证, 而不能单单是在客户端用javascript验证
  4.用户名和密码的输入框,应该屏蔽SQL 注入攻击
  5.用户名和密码的输入框,应该禁止输入脚本 (防止XSS攻击)
  6.错误登陆的次数限制(防止暴力破解)
7. 考虑是否支持多用户在同一机器上登录;
8. 考虑用户在多台机器上登录

可用性测试(Usability Test)
  1. 是否可以全用键盘操作,是否有快捷键
  2.输入用户名,密码后按回车,是否可以登陆
3.牵扯到验证码的,还要考虑文字是否扭曲过度导致辨认难度大,考虑颜色(色盲使用者),刷新或换一个按钮是否好用

兼容性测试(Compatibility Test)
  1.主流的浏览器下能否显示正常已经功能正常(IE,6,7,8,9, Firefox, Chrome, Safari,等)
  2.不同的平台是否能正常工作,比如Windows, Mac
  3.移动设备上是否正常工作,比如Iphone, Andriod
  4.不同的分辨率

软件辅助性测试 (Accessibility test)
  软件辅助功能测试是指测试软件是否向残疾用户提供足够的辅助功能
  1. 高对比度下能否显示正常 (视力不好的人使用)

3.推送消息如何测试

1、检查Push消息是否按照指定的业务规则发送。
2、检查不接收推送消息时,用户不会在接收到Push消息。
3、如果用户设置了免打扰的时间段,检查在免打扰时间段内,用户接收不到Push。在非免打扰时间段内,用户能正常收到Push。
4、当Push消息是针对登录用户的时候,需要检查收到的Push与用户身份是否相符,没有错误的将其他人的消息推送过来。一般情况下,只对手机上最后一个登录用户进行消息推送。
5、测试Push时,在开关机、待机状态下执行推送,消息及其推送跳转的正确性。
6、push消息时,会有红点展示,推送消息阅读前后数字的变化是否正确;
7、应用在开发、未打开状态、应用启动且在后台运行的情况下是push显示和跳转是否正确。
8、多条推送的合集的显示和跳转是否正确。

4.APP闪退是由哪些原因造成的

带宽限制:带宽不佳的网络对App所需的快速响应时间可能不够。
  网络的变化:不同网络间的切换可能会影响App的稳定性。
  内存管理:可用内存过低,或非授权的内存位置的使用可能会导致App失败。
  用户过多:连接数量过多可能会导致App崩溃。
  代码错误:没有经过测试的新功能,可能会导致App在生产环境中失败。
  第三方服务:广告或弹出屏幕可能会导致App崩溃。

5.测试过程中遇到APP出现ANR的时候,你会怎么处理

可以先把日志过滤出来: adb logcat | findstr xxxxx(过滤日志信息) ,然后再搜索其中的关键字,比如:exception、crash,看看是那些方法或者异常导致了问题的发送,初步定位问题原因后,可以交给开发人员去具体查找深层原因并修复。

6.如何查看移动端的日志以及报错的异常有哪些

网上现在有的日志收集框架包括log4j、logback、CocoaLumberjack、Xlog、Logan、Glog(谷歌)等等

异常:
1、ArithmeticException - 算术运算中,被0除或模除。
2、ArrayIndexOutOfBoundsException - 数组越界访问。
3、ArrayStoreException - 数据存储异常,写数组操作时,对象或数据类型不兼容。
4、ClassCastException - 类型转换异常。

7.APP测试需要测哪些,如何展开测试工作

  1. 功能
    首先设计的功能必须是100%的测试,而且是最基本的测试。

  2. 安装卸载
    App可以正常安装启动,各大应用市场下载安装,升级安装,跨版本升级安装,手机存储满时安装。安装时的权限也是很重要的。
    App的卸载应该很容易,直接系统自带卸载。

  3. 流畅度
    App的流畅度最能考验一款软件的易用性。如果一个软件打开就卡,随便滑动几下页面就卡死,谁还会用第二次?

  4. 兼容性
    对于兼容性,因为公司不可能给你所有市场上的安卓机,所以尽量在自己有的机子上测试通过的条件下,去各大网站远程真机测试,有很多都是免费的。
    对于iOS,可以在电脑上模拟真机测试跑跑smoke。

  5. 网络
    弱网,2g,2.5g,3g,4g,wifi情况下的使用。网络切换时的使用,模拟地铁,停车场等的测试都是很有必要的。

  6. 流量消耗
    偷偷盗用流量的手机app,只要发现我就会删除,所以流量消耗的测试一定要多测试。主要看看断开wifi情况下会不会偷跑流量。

  7. 低配手机
    低配手机一般都指安卓4.4.0以下版本的手机,运行内存不大,很容易卡住。可以看看低配手机下是否能正常运行app,该显示的都能正常显示。

8.APP的性能测试的关注点有哪些

app性能测试分类:
1、响应
2、内存
3、cpu
4、FPS (app使用的流畅度)
5、GPU过度渲染
6、耗电
7、耗流

(app除了这些性能测试,还有:手机版本号兼容性,屏幕分辨率兼容性,稳定性测试,安全测试等,后续会持续更新… 流量测试同这些一起更新,这里就不在说明了 )

App性能测试响应点:
主要测试点:
1、冷启动:首次启动app的时间间隔(只是启动时间,不包括页面加载)
2、热启动:非首次启动app的时间间隔(只是启动时间,不包括页面加载)
3、完全启动:从启动到首页完全加载出来的时间间隔
4、有网启动:从发起跳转,到页面完全加载出来的时间间隔
5、无网启动:从发起跳转,到页面完全加载出来的时间间隔
(在项目中,主要测试关注点是冷启动,热启动)
测试标准:冷启动时间不超过1.5s, 热启动不超过1s.

内存:
测试点:
1、空闲状态:切换至后台或者启动后不做任何操作,消耗内存最少。
2、中强度状态:时间偏长的操作应用。
3、高强度状态:高强度使用应用,可以跑monkey来测试(通常用来测试内存泄漏)。

CPU:
CPU测试,主要关注的是cpu的占用率。很多时候,我们玩手机时,会出现发热发烫,那是因为CPU使用率过高,CPU过于繁忙,会使整个手机无法响应用户,整体性能降低,用户体验就会很差,也容易引起ANR(application not responding, 主线程(UI线程)如果在规定时内没有处理完相应工作,就会出现ANR)等等一系列问题。

测试点:
1).在空闲时间(切换至后台)的消耗,基本没大应用使用cpu
2).在运行一些应用的情况下,cpu已占50%的情况下,观察应用程序占用cpu的情况
3).在高负荷的情况下看CPU的表现(cpu占用应是在80%以上)

FPS (应用的使用流畅度)
FPS是图像领域中的定义,是指画面每秒传输帧数,通俗来讲就是指动画或视频的画面数。FPS是测量用于保存、显示动态视频的信息数量。每秒钟帧数愈多,所显示的动作就会愈流畅。
´一般来说,Android设备的屏幕刷新率为60帧/s,要保持画面流畅不卡顿,要求每一帧的时间不超过1000/60=16.6ms,这就是16ms的黄金准则,如果中间的某些帧的渲染时间超过16ms,就会导致这段时间的画面发生了跳帧,因此原本流畅的画面变发生了卡顿。

GPU渲染
GPU渲染是指在一个像素点上绘制多次(超过一次):显示一个什么都没有做的activity界面算作画了1层,给activity加一个背景是第2层,在上面放了一个Text View(有背景的Text View)是第3层,Text View显示文本就是第4层仅仅只是为了显示一个文本,却在同一个像素点绘制了四次,这是一定要优化的。过度绘制对动画性能的影响是极其严重的,如果你想要流畅的动画效果,那么一定不能忽视过度绘制。

耗电量
测试应用对电量的消耗前需要对手机本身的电量消耗有个大概了解,测试前先看规定时间内手机正常待机下(重启后待机)电量消耗为多少。然后再启动待测试APP看看消耗的电量增加了多少取差值。

测试点:
  测试手机安装目标APK前后待机功耗无明显差异;
  常见使用场景中能够正常进入待机,待机电流在正常范围内;
  长时间连续使用应用无异常耗电现象。

9.如何对APP进行弱网测试

弱网测试主要是对2G/3G/4G以及高延迟高丢包的这几种状态做模拟然后看下app的容错性如何。那么弱网测试的主要关注点在哪里呢?

(1)页面相应时间是否可接受,关注包括热启动,冷启动时间,页面切换,前后台切换,首字时间,首屏时间等。
(2)页面成仙是否完整一致
(3)超时文案是否符合定义,一场信息是否显示正常。
(4)是否会有超时重连
(5)大流量时间风险:是否会在弱网下进行更新Apk包,下载文件等大流量动作

弱网测试工具
fiddler 模拟网络延迟
lNetwork Emulation for Windows Toolkit 模拟网络丢包

10.常见的ADB命令 monkey命令

常用的adb命令
常用的monkey命令

你可能感兴趣的:(2021-04-12笔试题)