【软件测试】金九银十,APP面试题经验分享

news2024/9/24 19:49:36

Web 端测试和 App 端测试有何不同?

① 系统架构方面

  1. Web 项目,b/s架构,基于浏览器的;Web 测试只要更新了服务器端,客户端就会同步会更新;

  2. App 项目,c/s架构的,必须要有客户端;App 修改了服务端,则客户端用户所有核心版本都需要进行回归测试一遍;

② 兼容方面

  1. Web项目:a. 浏览器(火狐、谷歌、IE等)b. 操作系统(Windows7、Windows10、Linux等);

  2. App项目:a. 设备系统: iOS(ipad、iphone)、Android(三星、华为、联想等) 、Windows(Win7、Win8、win10)、OSX(Mac)b. 手机设备可根据 手机型号、分辨率不同;

③性能方面

  1. web项目 :需监测响应时间、CPU、Memory

  2. app项目 除了监测响应时间、CPU、Memory外,还需监测流量、电量等

④相对于 Web 项目,APP有专项测试

  1. 干扰测试:中断,来电,短信,关机,重启等;

  2. 弱网络测试(模拟2g、3g、4g,5G, wifi网络状态以及丢包情况);网络切换测试(网络断开后重连、3g切换到4g/wifi 等);

  3. 安装、更新、卸载;

  4. 安装:需考虑安装时的中断、弱网、安装后删除安装文件等情况;

  5. 卸载:需考虑 卸载后是否删除 App 相关的文件;

  6. 更新:分强制更新、非强制更新、增量包更新、断点续传、弱网状态下更新;

  7. 界面操作:关于手机端测试,需注意手势,横竖屏切换,多点触控,前后台切换;

  8. 安全测试:安装包是否可反编译代码、安装包是否签名、权限设置,例如访问通讯录等;

  9. 边界测试:可用存储空间少、没有SD卡/双SD卡、飞行模式、系统时间有误、第三方依赖(QQ、微信登录)等;

  10. 权限测试:设置某个 App 是否可以获取该权限,例如是否可访问通讯录、相册、照相机等。

App是如何测试的?

一般从界面,功能,兼容性,稳定性,交互性,安全性,易用性,性能,网络,异常情况,权限,等方面进行测试。

  • 界面测试:主要测试界面展示是否与UI设计的原图一致,测试手机屏幕大小及分辨率对界面的影响。

  • 功能测试:除安装,卸载,更新 和web端差不多,都需要考虑人员与权限,场景与步骤,异常场景,用户补充场景,关联模块,但是app测试功能,在相关功能模块需要添加一项,就是web界面的变化,如你在手机上投资了一笔钱,你需要在web端查看投资情况是否一致。

  • 兼容性测试:就是用不同的厂商,型号,安卓系统版本进行测试。

  • 稳定性测试:一般我们是功能测试完成情况下,再进行稳定性测试,一般主要是检查软件长时间运行,会不会出现崩溃,crash,anr 超时不响应,exception异常,  出现了bug,我们会提交bug,等开发修复完成,进行回归测试。

  • 交互性测试:跟手机固有的功能模块,进行交互使用,像音量的调节,锁屏,旋转,返回键,主菜单键,截图,闹钟,待机,插拔数据线,耳机,wifi、蓝牙,电话,短信,低电量,看功能是否正常使用,界面是否为原来界面,输入数据是否保存,还有跟其他app进行交互性测试,一般 跟应用排行榜前100 是否可以同时使用。

  • 安全性测试:主要考虑的是sql语句的注入,xss脚本的攻击,数据加密还有就是权限测试。

    sql语句的注入和xss脚本的攻击的检查因为手动操作比较麻烦与繁琐,app我们一般是通过腾讯优测来进行测试的,web界面我们一般是通过appscan进行扫描测试的,把扫描结果发给开发进行修复的数据加密主要是考虑在前端输入的时候进行加密,传输过程中进行加密,数据库进行加密,在服务日志文件中也是需要加密的。

  • 易用性:主要是把控用户的体验问题,驾驭需求以外,用户使用是否方便,好用。

  • 性能测试:我们通常使用Emmagee去测试APP的性能,去监测cpu、内存、fps等性能指标。

  • 网络测试 :分 2G,3G,4G,5G,移动,联通,电信,wifi 网络之间组合 网络之间的切换,还弱网,用fiddler 工具进行模拟。

  • 权限:1-前台不能访问后台 ;2-不能通过url连接支架访问;3-后台不能直接进入界面。

  • 异常测试 :关机,重启,网络中断,服务器卡死,服务器重启。

app闪退的可能原因?

  • APP闪退的原因可能是:

  1. 缓存垃圾太多,Android系统的特性,如果长时间不清理垃圾文件,会导致越来越卡,甚至闪退。

  2. 运行程序太多,导致内存不足。

  3. 应用版本兼容问题,分辨率兼容问题。

  4. APP中访问网络的地方,组件能否正常下载并显示。

  5. APP的SDK与手机系统不兼容。

  6. 系统升级后,新版本不兼容老版本的API,返回对象失败,报空指针。

  7. 软件权限未开放。

给你一个登录页面,你要如何测试?

APP登录场景大体从以下几个方面进行:

  • 页面基本元素的操作。

  • 大量字符,特殊字符,边界值,必填项校验。

  • 注册手机号的特殊性验证,注册邮箱的格式验证。

  • 密码大小写是否敏感,密码是否加密展示,密码是否有可见按钮功能,密码框能否使用复制粘贴。

  • 验证码校验:必填项,过期,错误,无网络时获取验证码,多次获取,超过获取次数,输入验证码后,修改手机号。

  • 登录时与系统的交互:锁屏,蓝牙,home,后退,横竖屏,修改字体字号。

  • 逆向思维:已注册账号注册,未注册账号忘记密码,未注册账号登录,注册过程中退出再次注册。

  • 输入法交互,切换输入法,切换输入模式,手写/九宫格。

  • 登录账号的多样性:多个账号轮流登录,同一个账号多角色登录。

  • 第三方登录验证:账号授权,信息正确,取消授权。

  • 登录页面跳转,返回,登录成功及其他页面跳转。

  • 手机兼容性测试:分辨率兼容,系统兼容,系统版本兼容,App版本兼容。

  • 网络切换,网络断开,弱网。 

测试过程中遇到app出现crash或者ANR,你会怎么处理?

APP出现Crash或ANR,可以从以下几个方面处理:

  1. 可以先把日志过滤出来:adb logcat | findstr xxxxx(过滤日志信息) ;

  2. 然后再搜索其中的关键字,比如:exception、crash,看看是哪些方法或者异常导致了问题;

  3. 初步定位问题原因后,可以交给开发人员去具体查找深层原因并修复。 

APP性能测试主要关注哪些指标?

  1. 包体大小

    包体大小能被列为性能指标,是从APP性能指标及运营两个维度考虑的,用户是更希望包体小的同时性能要好,有时它们会是一个互相取舍的关系。

  2. 启动时长

    移动应用的启动时间是用户体验的一个重要方面,IOS一直建议尽可能的缩短启动时间,防止用户不愿意使用它们。对于浏览器而言,由于程序启动时还会有教育页和闪屏的下发,因此启动时间的获取显得尤为重要。

    启动时间分为冷启动时间和热启动时间,所谓的“冷启动”,就是一个完全没有运行的应用的启动时间,与热启动(应用已经在后台运行,某个事件将其带至前台)相比,由于此时系统尚未建立缓存,因此冷启动往往要较平时(热启动)耗费更长的时间。

  3. 内存使用

    在Android系统中,每个APP进程除了同其他进程共享(shared dirty)外,还独用私有内存(private dirty),通常我们使用PSS(=私有内存+比例分配共享内存)来衡量一个APP的内存开销。移动设备的内存资源是非常有限,为每个APP进程分配的私有内存也是有限制。一方面我们要合理的申请内存使用,以免导致频繁的GC(垃圾回收机制)影响性能和大对象申请发生内存溢出;另一方面,我们要及时释放内存,以免发生内存泄漏。

  4. CPU占用率

    一般情况下,用主流手机使用APP20%-40%的CPU占用率算是合理的,当然这个数值随着近年来手机硬件配置的提高,会略微下降,如果CPU占用率超过80%就非常值得我们去关注了。

  5. 图片处理器每秒刷新的帧数(FPS)

    可用来指示页面是否平滑的渲染。手机APP帧率FPS,30-60都可接受,上了60对于人眼主观感受差别就不大了。对于移动应用开发而言,并不是FPS越高就一定越好,FPS取决于显卡,其次是内存、CPU,然后是网络。故综合APP其他性能指标,选择一个适合的FPS即可。

  6. 电量

    相对于PC来说,移动设备的电池电量是非常有限的,保持持久的续航能力尤为重要。另外,android的很多特性都比较耗电(如屏幕,GPS,sensor传感器,唤醒机制,CPU,连网等的使用),我们必须要慎重检查APP的电量使用,以免导致用户手机耗电发热,带来不良体验。

  7. 流量

    目前的网络类型包含2G\3G\4G\5G\wifi,其中还有不同运营商的区分,我们在APP的使用中经常遇到大资源,重复请求,调用响应慢,调用失败等各种情况。在不同的网络类型之下,我们不仅要控制流量使用,还需要加快请求的响应。另外,对于需要联网的手游来说,部分游戏对不同联网方式的网络类型采用了不同的流量消耗策略,主要分为wifi环境和蜂窝网络环境。所以针对不同的游戏,我们统计流量消耗时,可能要连接不同的网络进行测试。

常见的 adb 命令?

  • 查看当前连接的设备:adb devices

  • 安装软件:adb install 路径\xx.apk

  • 卸载软件:adb uninstall <包名>

  • 从电脑上发送文件到设备:adb push <本地路径> <远程路径> 

  • 从设备上下载文件到电脑:adb pull <远程路径> <本地路径> 

  • 实时获取日志:adb logcat -v time > D:\mylog.log

  • 登录终端设备 shell:adb shell

  • 查找包名/活动名:adb logcat | findstr START(脚本中, cmp= 后面的值就是 包名/activity 名称)

  • 启动 APP 

    adb shell am start -n packageName/activity

  • 关闭 app :adb shell am force-stop 包名

  • 监控 APP 启动时间 adb shell am start -W packageName/activity

  • Monkey 命令:adb shell monkey -v -p mypackage 50

总结:

感谢每一个认真阅读我文章的人!!!

作为一位过来人也是希望大家少走一些弯路,如果你不想再体验一次学习时找不到资料,没人解答问题,坚持几天便放弃的感受的话,在这里我给大家分享一些自动化测试的学习资源,希望能给你前进的路上带来帮助。

软件测试面试文档

我们学习必然是为了找到高薪的工作,下面这些面试题是来自阿里、腾讯、字节等一线互联网大厂最新的面试资料,并且有字节大佬给出了权威的解答,刷完这一套面试资料相信大家都能找到满意的工作。

 

          视频文档获取方式:
这份文档和视频资料,对于想从事【软件测试】的朋友来说应该是最全面最完整的备战仓库,这个仓库也陪伴我走过了最艰难的路程,希望也能帮助到你!以上均可以分享,点下方小卡片即可自行领取。

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.coloradmin.cn/o/2161265.html

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

基于Ambari搭建大数据分析平台(30分钟速成)全网最全最详细的Ambari搭建大数据分析平台:

全网最全最详细的Ambari搭建大数据分析平台&#xff1a; 方法一适合详细自己独立安装&#xff0c;方法二超级详细具体&#xff0c;是根据方法一搭建成功的&#xff0c;方法三是另外的方法&#xff0c;安装包有不同&#xff0c;实践也能安装成功。 方法一&#xff1a; 1.搭建安…

halcon单目相机标定

1.参考这边文章https://blog.csdn.net/weixin_60275604/article/details/139068423 2.代码 dev_close_window() dev_open_window(0, 0, 512, 512, black, WindowHandle) dev_set_draw(margin)***创建一个标定板参数 xNum,yNum标定板中行列标定点个数 MarkDist标定点中心距离 d…

Vue|插件

在 Vue.js 中&#xff0c;插件是用来扩展 Vue 功能的一种方式&#xff0c;能够帮助开发者扩展和复用功能。通过合理使用插件&#xff0c;可以提高代码的组织性和可维护性 目录 如何使用插件?插件的定义创建及使用插件插件的参数插件的扩展 总结 如何使用插件? 插件的定义 插…

洛汗2保姆级辅助教程攻略:VMOS云手机辅助升级打怪!

在《洛汗2》中&#xff0c;玩家将进入一个充满魔幻色彩的西方世界&#xff0c;体验多种族文明的兴衰与冒险。为了更好地享受这款由普雷威&#xff08;Playwith&#xff09;开发的角色扮演动作手游&#xff0c;使用VMOS云手机将是一个明智的选择。VMOS云手机专为游戏打造了定制版…

Gartner最新指南:如何通过开展红队演习提高网络弹性

由于事件和监管要求不断增加&#xff0c;安全和风险管理领导者努力建立网络弹性并有效管理网络威胁。本研究指导这些领导者制定红队计划以支持弹性及其关键组件。 主要发现 根据 2024 年 Gartner 设计和构建现代安全运营调查&#xff0c;73% 的组织认为红队角色对安全运营目标的…

【资源一号04A卫星(中巴地球资源卫星04A星)】

资源一号04A卫星&#xff08;中巴地球资源卫星04A星&#xff09; 资源一号04A卫星&#xff0c;全称为中巴地球资源卫星04A星&#xff08;CBERS-04A&#xff09;&#xff0c;是中国与巴西两国合作研制的第六颗地球资源卫星。以下是对该卫星的详细介绍&#xff1a; 一、基本信…

解决Nodify框架因自带放大缩小、平移功能导致拖拽添加的控件无法准确在鼠标放下的位置显示控件

ViewModel中写具体关键的几段代码&#xff1a; var editor sender as NodifyEditor; Point p e.GetPosition(editor);//放大缩小比例double scale editor.ViewportZoom;//经过放大缩小、平移后获得坐标点位置p new Point(Math.Round((p.X - editor.ViewportT…

搜维尔科技:OptiTrack采集到的平衡数据,并对人形机器人进行编程,可以确保机器人的动作精度和准确性

OptiTrack具备高精度以及远追踪距离的双层特点&#xff0c;其捕捉范围最远可达91m&#xff0c;是大型场地&#xff08;如体育馆、足球场、虚拟拍摄制作棚等&#xff09;捕捉的最佳选择。 OptiTrack光学动作捕捉系统是目前全球市占率较高的全身动捕产品&#xff0c;可实现精度误…

第十六章 Javamail发送邮件

目录 一、邮件发送原理和流程图 二、Java发送邮件基本步骤 三、QQ邮箱授权码获取 四、示例代码 注&#xff1a;本章内容仅作为了解JavaMail邮件收发的基本原理&#xff0c;不建议作为实际项目使用&#xff0c;项目中建议通过SpringBoot项目加入mail的starter依赖来构建&am…

2.2 信道的极限容量

奈奎斯特定理 香农定理 &#x1f30f;总结

怎么抠图把杂乱的人全部擦除?分享1个简单方法

前言 在图像编辑中&#xff0c;抠图是一项基本而重要的技能。它允许我们从一张图片中提取出想要的部分&#xff0c;或者去除不需要的元素。今天&#xff0c;我将分享一个简单而有效的方法来抠图&#xff0c;特别是如何擦除图片中杂乱的人物。 工具介绍 在众多的抠图工具中&a…

【近源攻击】badusb上线cs

❤️博客主页&#xff1a; iknow181 &#x1f525;系列专栏&#xff1a; 网络安全、 Python、JavaSE、JavaWeb、CCNP &#x1f389;欢迎大家点赞&#x1f44d;收藏⭐评论✍ 0x01 实验前提 攻击设备&#xff1a;badusb cs服务器&#xff1a;公网部署了 cs 服务端 0x02 实验步骤 …

入耳式耳机戴久不舒服?真心劝你试试这五款骨传导耳机~

基于对运动耳机长时间的使用体验和细致研究&#xff0c;我有以下几点务实的建议想与大家交流&#xff1a;在做出购买决定之前&#xff0c;请多加思考&#xff0c;避免盲目追逐市场热点。有时候&#xff0c;那些突然风靡的网红耳机可能只是短暂的流行&#xff1b;同样&#xff0…

新学期月考成绩发布工具-易查分

老师们&#xff0c;新学期的第一次月考即将到来&#xff0c;是不是在想如何高效又安全地发布成绩呢&#xff1f;别担心&#xff0c;我来给你们介绍一个超实用的小工具——易查分小程序&#xff01; 新学期&#xff0c;新挑战&#xff0c;但发布成绩这件事&#xff0c;可以变得…

# Windows环境下VSCode + Jupyter + Conda的AI学习环境配置指南

Windows环境下VSCode Jupyter Conda的AI学习环境配置指南 目录 Windows环境下VSCode Jupyter Conda的AI学习环境配置指南 优点 1. 安装Anaconda 2. 安装Visual Studio Code 3. 在VSCode中配置Python环境 4. 安装和配置Jupyter 5. 创建和管理虚拟环境 6. 安装常用的…

通信工程学习:什么是VNF虚拟网络功能

VNF&#xff1a;虚拟网络功能 VNF&#xff08;Virtual Network Function&#xff09;即虚拟网络功能&#xff0c;是网络功能虚拟化&#xff08;NFV&#xff09;架构中的一个核心概念。VNF允许通过软件化和虚拟化的方式&#xff0c;将传统的网络设备功能&#xff08;如路由器、交…

CREO教程——2 绘制标准图纸

CREO教程——2 绘制标准图纸 说明&#xff1a;继承第一章设置好的配置文件&#xff0c;这一章进行学习分享如何定制自己的图纸图框&#xff0c;参考国家标准距&#xff0c;定制属于设计师或单位的通用图框。 1.设置工作目录 1.1设置工作目录 1.打开软件设置工作目录&#x…

MySQL按照经纬度排序 查询出商家信息

首先自己写公式算法&#xff0c;这个我们懒 就不写了&#xff0c;pass~ ST_Distance_Sphere用法和示例&#xff1a; 我们懒人使用MySQL自带的函数先看查询出的结果示例&#xff1a;示例代码(看代码直接跳这)&#xff1a;注意事项 我们懒人使用MySQL自带的函数 ST_Distance_Sphe…

scrapy spider框架download下来就可以用

一.通过命令行创建scrapy项目 1.scrapy startproject project_Spider 二.通过命令行创建spider 1.scrapy genspider firstspider 2.定义需要抓取的字段,在items.py文件中对目标字段进行定义 # Define here the models for your scraped items # # See documentation in: # …

Java面试篇基础部分-Semaphore及其用法详解

Semaphore 是一种基于计数的信号量&#xff0c;在定义信号量对象的时候可以设置一个阈值&#xff0c;然后基于这个阈值&#xff0c;多线程可以竞争访问信号量&#xff0c;线程竞争到许可的信号之后&#xff0c;开始执行具体的业务逻辑&#xff0c;业务逻辑在执行完成之后释放这…