周末

1、web端和app端测试的相同点和不同点的是?

相同点:
1)都需要经历测试计划方案,用例设计,测试执行,缺陷管理,测试报告等相关活动
2)WEB测试和APP测试其测试类型也基本相似,都需要进行功能测试、性能测试、安全性测试、GUI测试等测试类型

不同点:
1)采用的系统框架不同:web项目是b/s 框架,app项目是c/s 框架
2)性能方面:web页面主要会关注响应时间,而app则还需要关心流量、电量、CPU、GPU、Memory这些
3)兼容方面:①、web是基于浏览器的,所以更倾向于浏览器和电脑硬件,电脑系统的方向的兼容,而app需要测试手机版本(Android、ios)的兼容性
②、web测试是基于浏览器的所以不必考虑安装卸载,而app是客户端的,则必须测试安装、更新、卸载。除了常规的安装、更新、卸载还要考虑到异常场景,包括安装时的中断、弱网、安装后删除安装文件
4)app还需要在不同网络下测试(2G网络/3G网络/4G网络/WIFI网络),以及弱网测试、信号中断测试

2、los和android测试的侧重点是?

1.Android多分辨率测试,20多种,IOS较少。
2.Android手机操作系统较多,IOS较少且不能降级,只能单向升级;新的IOS系统中的资源库不能完全兼容低版本中的IOS系统的应用,低版本IOS系统中的应用调用新的资源库,会直接导致闪退。
3.Android操作习惯,Back键是否被重写,应用数据从内存移动到SD卡能否正常运行。
4.安装卸载测试:Android的下载和安装平台较多,IOS主要是AppStore,iTunes,TestFlight。
5.Push测试:Android点击home键,程序后台运行,此时点击Push消息,唤醒后台应用;iOS点击home键关闭程序和屏幕锁屏的情况。
6.单条item的操作:Android中分为点击和长按,点击一般进入一个新的页面,长按进入编辑模式。IOS中分为点击和滑动,点击一般进入一个新的页面,滑动会出现对item的常用操作。
7.悬浮窗:Android中可以有各种悬浮窗,IOS并不支持。

3、如何测试一个app的登录场景?

1.功能测试
2.性能测试
3.安全测试
4.兼容性测试

4、Push消息测试如何测试?

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

5、App的闪退通常是什么原因造成的?

1.机缓存垃圾太多。闪退修复方法:进入设置—应用管理—全部,找到出现状况的应用程序,清理数据和缓存
2.手机内存不足。闪退修复方法:定期清理后台程序,删掉无用的照片和程序。
3.安卓因为审核较为简单而且很多第三方软件容易植入各种病毒代码。闪退修复方法:建议在正规商店下载程序。
4.网络差。闪退修复方法:建议在WIFI环境下使用部分大型游戏软件,也可升级到4G网络。
5.系统不兼容。闪退修复方法:更新升级手机系统版本即可。
6.手机杀毒软件存在恶意代码,会被杀毒软件拦截因而不能正常进入。解决方法:须通过绿色下载平台或者使用软件商店来下载安全系数较高的趣步手机应用。

6、常见的接口协议/类型是什么?

1.HTTP类型/协议:
通过GET或POST来获取数据,在数据处理上效率比较高 == 概念 
2.Webservice 类型/协议:
通过soap协议来获取数据,比起 http 来说能处理更加复杂的数据类型。本质上也是 http 协议。

7、常见的接口请求方式是什么?

1.Get 向特定资源发出请求(请求指定页面信息,并返回实体主体)
2.Post 向指定资源提交数据进行处理请求(提交表单、上传文件),又可能导致新的资源的建立或原有资源的修改
3.Put 向指定资源位置上上传其最新内容(从客户端向服务器传送的数据取代指定文档的内容)
4.Head 与服务器索与get请求一致的相应,响应体不会返回,获取包含在小消息头中的原信息(与get请求类似,返回的响应中没有具体内容,用于获取报头)
5.Delete 请求服务器删除request-URL所标示的资源(请求服务器删除页面)
6.opions 返回服务器针对特定资源所支持的HTML请求方法 或web服务器发送测试服务器功能(允许客户端查看服务器性能)

8、常见的状态码是什么以及都有什么意思请解释说明?

1.200:请求成功,浏览器会把响应体内容(通常是html)显示在浏览器中;
2.404:(客户端问题)请求的资源没有找到,说明客户端错误的请求了不存在的资源;
3.500:(服务端问题)请求资源找到了,但服务器内部发生了不可预期的错误;
4.301/302/303:(网站搬家了,跳转)重定向
5.304: Not Modified,代表上次的文档已经被缓存了,还可以继续使用。如果你不想使用本地缓存可以用Ctrl+F5 强制刷新页面

9、接口测试的原理是什么?

1.接口测试的原理主要是模拟客户端向服务端发送请求,服务器接收请求后进行相应的业务处理,并向客户端返回响应数据,检查响应数据是否符合预期。
10、后台接口测试了一遍前端也测试了一遍是不是重复测试?

1.从后端角度出发:后端测试自己开发的接口,更多在于单测层面,好的开发会从接口业务调用场景出发,覆盖一些功能case,但是开发测试自己的代码,他往往觉得自己的代码已经很完美了,所以开发测试自己的代码往往是覆盖不全面的。
2.从前端角度出发:前端开发要和后端联调,所以前端的关注点是你接口返回给我的数据结构是不是严格按照技术方案上契约来设计的,你让我传给接口的参数是不是按照契约约定的,,所以前端开发不太关注接口逻辑对不对,只关心我只要入参给的对,返回的数据结构对就行了。
3.从测试角度出发:测试是保证质量最重要的一环,接口测试我们不仅仅只考虑功能层面用例,还要从非功能层面出发,比如接口性能,稳定性,安全性。我们还要结合业务场景,去思考一些反向的异常case,和其他服务相互调用过程的异常场景怎么兜底,依赖服务响应超时怎么兜底,系统异常怎么兜底等。
11、接口测试的流程/步骤?

1.需求分析和设计评审
2.测试框架和技术选型
3.测试计划制定
4.测试环境搭建
5.测试用例设计和评审
6.测试实现和执行
7.持续集成

12、get/post的区别?

1.get是获取数据的,而post是提交数据的
2.GET 用于获取信息,是无副作用的,是幂等的,且可缓存, 而POST 用于修改服务器上的数据,有副作用,非幂等,不可缓存。
13、如何编写接口测试用例?

1.用例编号
2.所属模块
3.用例标题
4.优先级
5.前置条件
6.操作步骤
7.请求方法
8.参数名
9.参数类型
10测试数据
11.预期结果
12.实际结果
13.通过否
14.bugid
15.编写人员
16.编写时间
17.测试人员
18.测试时间
19.备注
14、性能测试都包含了哪些?

1.压力测试
2.负载测试
3.容量测试
15.什么时候执行性能测试?

1.一般在系统功能稳定没有大的缺陷之后开始执行。但前期准备工作可以从系统需求分析时就开始:性能目标制定、场景获取、环境申请等。

16、你是如何做测试分析?

1.根据需求规格提取独立的功能点,确定测试范围
2.对独立功能进行分析,确定各独立功能的测试点
3.对业务场景即功能组合进行分析,提供业务场景的测试点
4.对非功能特性进行分析,了解需要测试的非功能特性
5.针对系统级接口进行分析,了解被测试对象、测试规格。分析可测性,确定测试方法、工具。

17、性能测试的步骤/流程?

1.测试准备
2.搭建环境
3.测试脚本开发
4.测试数据准备
5.测试执行
6.结果分析与调优
7.测试后续跟踪

18、如何识别性能测试的瓶颈?

1.查看系统日志,如果日志记录的全面,很容易通过日志发现问题。比如,系统宕机时,系统日志打印了某方法执行是抛出out of memory的错误,很快定位到导致内存溢出的问题在哪里。
2.利用性能监控工具,比如:linux系统环境下通过nmon来监控系统性能。
3.设计合理的性能测试场景,好的测试场景能更加快速的发现瓶颈。
4.了解系统参数配置,可以进行后期的性能调优

19、常用的性能测试指标的含义?

1.TPS
TPS的含义是每秒事务数。

2.并发
多个线程模拟多个虚拟用户(virtual user)

3.RT
response time;90%用户的响应时间,就是这个意思,比如一个小时内90%的响应时间为500ms,表示是这个小时内所有请求该页面的响应时间中,有90%的请求响应时间小于或等于500ms

4.吞吐量

20、如何判断一个bug是前端bug还是后台bug?

通常可以利用抓包工具来进行分析。可以从三个方面进行分析:请求接口,传参,响应。
1.请求接口url是否正确
2.传参是否正确
3.请求接口url和传参都正确,查看响应是否正确
4.也可以在浏览器控制台输入js代码调试进行分析

23.给你一个网站,你如何测试?给你一个app程序你要怎么做?

24.针对性能测试 负载测试 压力测试在你项目中的使用?

25、说一说你知道的Python数据类型有哪些?

1.数字类型
int(整型)、long(长整型)、float(浮点型)
2.字符串
3.布尔型
4.列表
5.元组
6.字典
7.集合

26、什么是测试用例?什么是测试脚本?两者关系?

1.测试用例为实施测试而向被测试系统提供的输入数据、操作或各种环境设置以及期望结果的一个特定的集合。
2.测试脚本是为了进行自动化测试而编写的脚本。
3.测试脚本的编写必须对应相应的测试用例

27.简述:静态测试、动态测试、黑盒测试、白盒测试、α测试 、β测试分别是什么?

28、简述静态测试、动态测试、黑盒测试、白盒测试、α测试、β测试分别是什么?

1.静态测试(ui界面 业务逻辑 )是不运行程序本身而寻找程序代码中可能存在的错误或评估程序代码的过程。
2.动态测试(链接数据之后 )是实际运行被测程序,输入相应的测试实例,检查运行结果与预期结果的差异,判定执行结果是否符合要求,从而检验程序的正确性、可靠性和有效性,并分析系统运行效率和健壮性等性能。
3.黑盒测试 :纯功能测试
4.白盒测试 :使用编程脚本进行测试 实现自动化
5.α测试:是由一个用户在开发环境下进行的测试,也可以是公司内部的用户在模拟实际操作环境下进行的受控测试,Alpha测试不能由程序员或测试员完成。
6.β测试:是软件的多个用户在一个或多个用户的实际使用环境下进行的测试。开发者通常不在测试现场,Beta测试不能由程序员或测试员完成。
28.在您以往的工作中,一条软件缺陷(或者叫Bug)记录都包含了哪些内容?如何提交高质量的软件缺陷(Bug)记录?

29、在你的项目中详细的描述一个测试活动完整的过程?

项目经理通过和客户的交流,完成需求文档,由开发人员和测试人员共同完成需求文档的评审,评审的内容包括:需求描述不清楚的地方和可能有明显冲突或者无法实现的功能的地方。项目经理通过综合开发人员,测试人员以及客户的意见,完成项目计划。然后SQA进入项目,开始进行统计和跟踪

开发人员根据需求文档完成需求分析文档,测试人员进行评审,评审的主要内容包括是否有遗漏或双方理解不同的地方。测试人员完成测试计划文档,测试计划包括的内容上面有描述。

测试人员根据修改好的需求分析文档开始写测试用例,同时开发人员完成概要设计文档,详细设计文档。此两份文档成为测试人员撰写测试用例的补充材料。

测试用例完成后,测试和开发需要进行评审。

测试人员搭建环境

开发人员提交第一个版本,可能存在未完成功能,需要说明。测试人员进行测试,发现BUG后提交给BugZilla。

开发提交第二个版本,包括Bug Fix以及增加了部分功能,测试人员进行测试。

重复上面的工作,一般是3-4个版本后BUG数量减少,达到出货的要求。

如果有客户反馈的问题,需要测试人员协助重现并重新测试。

30、如果项目周期很短,测试人力匮乏,你是怎么协调的?

1.依据代码review的结果和影响范围,对测试内容进行适当的裁剪。
2.借助自动化工具的支持,提高测试案例的执行效率。
3.调整组内任务的优先级,进行人力协调,优先投入最紧要的项目。
4.必要的情况下加班

APP性能测试关注点及常见APP性能测试工具

1

性能关注点

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

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

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

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

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

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

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

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

如何测试一个App的登录场景?

APP登录场景大体从以下几个方面进行:
页面基本元素的操作。
大量字符,特殊字符,边界值,必填项校验。
注册手机号的特殊性验证,注册邮箱的格式验证。
密码大小写是否敏感,密码是否加密展示,密码是否有可见按钮功能,密码框能否使用复制粘贴。
验证码校验:必填项,过期,错误,无网络时获取验证码,多次获取,超过获取次数,输入验证码后,修改手机号。
登录时与系统的交互:锁屏,蓝牙,home,后退,横竖屏,修改字体字号。
逆向思维:已注册账号注册,未注册账号忘记密码,未注册账号登录,注册过程中退出再次注册。
输入法交互,切换输入法,切换输入模式,手写/九宫格。
登录账号的多样性:多个账号轮流登录,同一个账号多角色登录。
第三方登录验证:账号授权,信息正确,取消授权。
登录页面跳转,返回,登录成功及其他页面跳转。
手机兼容性测试:分辨率兼容,系统兼容,系统版本兼容,App版本兼容。
网络切换,网络断开,弱网。

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

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

web测试和app测试的相同点和区别?

相同点:都离不开测试的基础知识和测试原理。具体包括以下几个方面。
测试用例,均使用边界值分析法,等价类划分法等。
多数采用黑盒测试,来验证业务功能是否能得到正确的应用。
需要检查界面布局,风格,按钮是否美观、简洁,是否统一。
测试页面载入和翻页的速度、登录时长、内存是否溢出等。
测试应用系统的稳定性。

不同点:相对于web测试来说,app测试要考虑手机本身固有的属性,所以app测试还需要注意以下几点。
中断测试(来电去电,短信,蓝牙,NFC支付,闹钟,数据线插拔,锁屏,断电,关机重启等)
安装卸载测试(全新安装,新版本覆盖旧版本,卸载旧版本安装新版本,卸载新版本安装旧版本)
外在因素测试(网络切换,硬件按键,不同分辨率,兼容性,系统,系统版本)
web测试更多的是考虑自身功能和浏览器兼容。

APP闪退的原因可能是:
缓存垃圾太多,Android系统的特性,如果长时间不清理垃圾文件,会导致越来越卡,甚至闪退。
运行程序太多,导致内存不足。
应用版本兼容问题,分辨率兼容问题。
APP中访问网络的地方,组件能否正常下载并显示。
APP的SDK与手机系统不兼容。
系统升级后,新版本不兼容老版本的API,返回对象失败,报空指针。
软件权限未开放。

常见的adb命令是1.查看帮助手册列出所有的选项说明及子命令:
adb help

  1. 获取设备列表及设备状态:
    adb devices

3.安装应用:adb install 路径\xx.apk, 安装应用;adb install -r 重新安装。
adb install
adb install -r

  1. 获取设备的状态,设备的状态有 device , offline , unknown3种,其中device:设备正常连接,offline:连接出现异常,设备无响应,unknown:没有连接设备。
    adb get-state

5.卸载应用:adb uninstall <包名>, 后面的参数是应用的包名,区别于 apk 文件名。
adb uninstall

6.将 Android 设备上的文件或者文件夹复制到电脑本地:adb pull <远程路径> <本地路径>, 如复制 Sdcard 下的 pull.txt 文件到 D 盘:adb pull sdcard/pull.txt d:\,重命名:adb pull sdcard/pull.txt d:\rename.txt。
adb pull

7.推送本地文件至 Android 设备:adb push <本地路径> <远程路径>, 如推送 D 盘下的 ITester.txt 至 Sdcard:adb push d:\ITester.txt sdcard/ (注意sdcard 后面的斜杠不能少)。
adb push

8.结束和启动adb服务:adb kill-server /adb start-server , 结束 adb 服务/启动 adb 服务,通常两个命令一起用,设备状态异常时使用 kill-server,运行 start-server 进行重启服务。
adb kill-server
adb start-server

9.打印及清除系统日志:adb logcat , 打印 Android 的系统日志 ;adb logcat -c,清除日志。
adb logcat
adb logcat -c

10.查找包名/活动名
adb logcat | findstr START
  
11.生成bugreport文件:adb bugreport , 打印dumpsys、dumpstate、logcat的输出,也是用于分析错误,输出比较多,建议重定向到一个文件中,如adb bugreport > d:\bugreport.log。
adb bugreport

  1. 重启 Android 设备:adb reboot , adb reboot recovery,重启到Recovery界面; adb reboot bootloader,重启到bootloader界面。
    adb reboot
    adb reboot recovery
    adb reboot bootloader

13.获取 root 权限:adb root , adb remount,可以直接获取 root 权限,并挂载系统文件系统为可读写状态。
adb root
adb remount

14.返回设备序列号SN值:
adb get-serialno

15.获取设备的ID:
adb get-product

16.进入设备shell:
adb shell

17.列出所有的应用的包名:
adb shell pm list package
  
18.截屏并保存至 sdcard 目录:
adb shell screencap -p /sdcard/screen.png
  
19.录制视频并保存至sdcard:adb shell screenrecord sdcard/record.mp4,执行命令后操作手机,ctrl + c 结束录制,录制结果保存至 sdcard:
adb shell screenrecord sdcard/record.mp4
  
20.获取设备分辨率:
adb shell wm size
  
21.列出指定应用的 dump 信息,adb shell pm dump 包名。
adb shell pm dump
  
22.列出对应包名的 .apk 位置,adb shell pm path 包名。
adb shell pm path
  
23.查看当前终端中的进程信息:
adb shell ps

24.monkey测试:adb shell monkey –p 程序包 –v 测试次数 ,比如“adb shell monkey –p com.htc.Weather –v 20000”意思是对com.htc.Weather 这个程序包单独进行一次20000次的monkey测试。
adb shell monkey –p 程序包 –v 测试次数
  
25.显示所有程序包:
adb shell ps | grep [process]
  
26.根据进程pid或包名查看进程占用的内存:
adb shell dumpsys meminfo
adb shell dumpsys meminfo<package_name>
  
27. APP 启动:
adb shell am start -n packageName/activity

  1. APP 关闭:

    adb shell am force-stop 包名

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

如何对app进行弱网测试

一款APP针对不同网络情况下都需要保证不会崩溃,同时尽可能做到在弱网情况下也能达到功能正常使用,或者使用体验达到最佳。弱网测试可以测试APP的加载时间、可用性、稳定性和健壮性。这时我们就可以借助工具来模拟不同的网络状况,模拟2G、3G或弱网情况进行测试。工具可以选择Fiddler也可以选择Charles也可以选择其他工具。

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值