2021-04-14

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测试主要测那些以及对应的测试工作
功能
首先设计的功能必须是100%的测试,而且是最基本的测试。
安装卸载
App可以正常安装启动,各大应用市场下载安装,升级安装,跨版本升级安装,手机存储满时安装。安装时的权限也是很重要的。
App的卸载应该很容易,直接系统自带卸载。
流畅度
App的流畅度最能考验一款软件的易用性。如果一个软件打开就卡,随便滑动几下页面就卡死,谁还会用第二次?
兼容性
对于兼容性,因为公司不可能给你所有市场上的安卓机,所以尽量在自己有的机子上测试通过的条件下,去各大网站远程真机测试,有很多都是免费的。
对于iOS,可以在电脑上模拟真机测试跑跑smoke。
网络
弱网,2g,2.5g,3g,4g,wifi情况下的使用。网络切换时的使用,模拟地铁,停车场等的测试都是很有必要的。
流量消耗
偷偷盗用流量的手机app,只要发现我就会删除,所以流量消耗的测试一定要多测试。主要看看断开wifi情况下会不会偷跑流量。
低配手机
低配手机一般都指安卓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命令

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
1 目标检测的定义 目标检测(Object Detection)的任务是找出图像中所有感兴趣的目标(物体),确定它们的类别和位置,是计算机视觉领域的核心问题之一。由于各类物体有不同的外观、形状和姿态,加上成像时光照、遮挡等因素的干扰,目标检测一直是计算机视觉领域最具有挑战性的问题。 目标检测任务可分为两个关键的子任务,目标定位和目标分类。首先检测图像中目标的位置(目标定位),然后给出每个目标的具体类别(目标分类)。出结果是一个边界框(称为Bounding-box,一般形式为(x1,y1,x2,y2),表示框的左上角坐标和右下角坐标),一个置信度分数(Confidence Score),表示边界框中是否包含检测对象的概率和各个类别的概率(首先得到类别概率,经过Softmax可得到类别标签)。 1.1 Two stage方法 目前主流的基于深度学习的目标检测算法主要分为两类:Two stage和One stage。Two stage方法将目标检测过程分为两个阶段。第一个阶段是 Region Proposal 生成阶段,主要用于生成潜在的目标候选框(Bounding-box proposals)。这个阶段通常使用卷积神经网络(CNN)从入图像中提取特征,然后通过一些技巧(如选择性搜索)来生成候选框。第二个阶段是分类和位置精修阶段,将第一个阶段生成的候选框入到另一个 CNN 中进行分类,并根据分类结果对候选框的位置进行微调。Two stage 方法的优点是准确度较高,缺点是速度相对较慢。 常见Tow stage目标检测算法有:R-CNN系列、SPPNet等。 1.2 One stage方法 One stage方法直接利用模型提取特征值,并利用这些特征值进行目标的分类和定位,不需要生成Region Proposal。这种方法的优点是速度快,因为省略了Region Proposal生成的过程。One stage方法的缺点是准确度相对较低,因为它没有对潜在的目标进行预先筛选。 常见的One stage目标检测算法有:YOLO系列、SSD系列和RetinaNet等。 2 常见名词解释 2.1 NMS(Non-Maximum Suppression) 目标检测模型一般会给出目标的多个预测边界框,对成百上千的预测边界框都进行调整肯定是不可行的,需要对这些结果先进行一个大体的挑选。NMS称为非极大值抑制,作用是从众多预测边界框中挑选出最具代表性的结果,这样可以加快算法效率,其主要流程如下: 设定一个置信度分数阈值,将置信度分数小于阈值的直接过滤掉 将剩下框的置信度分数从大到小排序,选中值最大的框 遍历其余的框,如果和当前框的重叠面积(IOU)大于设定的阈值(一般为0.7),就将框删除(超过设定阈值,认为两个框的里面的物体属于同一个类别) 从未处理的框中继续选一个置信度分数最大的,重复上述过程,直至所有框处理完毕 2.2 IoU(Intersection over Union) 定义了两个边界框的重叠度,当预测边界框和真实边界框差异很小时,或重叠度很大时,表示模型产生的预测边界框很准确。边界框A、B的IOU计算公式为: 2.3 mAP(mean Average Precision) mAP即均值平均精度,是评估目标检测模型效果的最重要指标,这个值介于0到1之间,且越大越好。mAP是AP(Average Precision)的平均值,那么首先需要了解AP的概念。想要了解AP的概念,还要首先了解目标检测中Precision和Recall的概念。 首先我们设置置信度阈值(Confidence Threshold)和IoU阈值(一般设置为0.5,也会衡量0.75以及0.9的mAP值): 当一个预测边界框被认为是True Positive(TP)时,需要同时满足下面三个条件: Confidence Score > Confidence Threshold 预测类别匹配真实值(Ground truth)的类别 预测边界框的IoU大于设定的IoU阈值 不满足条件2或条件3,则认为是False Positive(FP)。当对应同一个真值有多个预测结果时,只有最高置信度分数的预测结果被认为是True Positive,其余被认为是False Positive。 Precision和Recall的概念如下图所示: Precision表示TP与预测边界框数量的比值 Recall表示TP与真实边界框数量的比值 改变不同的置信度阈值,可以获得多组Precision和Recall,Recall放X轴,Precision放Y轴,可以画出一个Precision-Recall曲线,简称P-R
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值