这里有爱,有分享,有工程师们的成长日记,点蓝字“软件测试面试汇总”进行   web项目,b/s架构,基于浏览器的;web测试只要更新了服务器端,客户端就会同步会更新。

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

(2)性能方面

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

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

(3)兼容性方面

  web项目:

1.浏览器(火狐、谷歌、IE等)

  2.操作系统(Windows7、Windows10、Linux等)

  

app项目:

  1.设备系统:iOS(ipad、iphone)、Android(三星、华为、联想等)、Windows(Win7、Win8)、OSX(Mac)

  2.手机设备可根据手机型号、分辨率、屏幕尺寸不同

(4)相对于Wed项目,APP有专项测试

 

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

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

  3.安装、更新、卸载,中断、前后台切换

 

安装:需考虑安装时的中断、弱网、安装后删除安装文件,全新安装、升级安装、第三方工具安装等情况;

卸载:需考虑第三方工具卸载、直接卸载卸,载后是否删除app相关的文件;

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

中断:来电中断、短信中断、闹钟中断、手机锁定、手机断电、手机死机

  

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

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

  6.边界测试:可用存储空间少、没有SD卡/双SD卡、飞行模式、系统时间有误、第三方依赖(QQ、   7.权限测试:设置某个App是否可以获取该权限,例是否可访问通讯录、相册、照相机等

(5)测试工具方面

  自动化工具:APP一般使用Appium;Web一般使用Selenium

  性能测试工具:APP一般使用Monkey、JMeter;Web一般使用LR、JMeter

四、你知道哪些APP云测平台?

百度云测、testin云测、众测平台等。

五、App测试中ios和Android有哪些区别呢?

1.Android长按home键呼出应用列表和切换应用,然后右滑则终止应用;

2.多分辨率测试,Android端20多种,ios较少;

3.手机操作系统,Android较多,ios较少且不能降级,只能单向升级;新的ios系统中的资源库不能完全兼容低版本中的ios系统中的应用,低版本ios系统中的应用调用了新的资源库,会直接导致闪退;

4.操作习惯:Android,Back键是否被重写,测试点击Back键后的反馈是否正确;应用数据从内存移动到SD卡后能否正常运行等;

5.push测试:Android点击home键,程序后台运行时,此时接收到push,点击后唤醒应用,此时是否可以正确跳转;ios点击home键关闭程序和屏幕锁屏的情况(红点的显示);

6.安装卸载测试:Android的下载和安装的平台和工具和渠道比较多,ios主要有appstore,iTunes和testflight下载;

7.升级测试:可以被升级的必要条件:新旧版本具有相同的签名;新旧版本具有相同的包名;有一个标示符区分新旧版本(如版本号);

六、APP出现ANR,是什么原因导致的?

简单的总结有以下两点:

1.主线程执行了耗时操作,比如数据库操作或网络编程

2.其他进程(就是其他程序)占用CPU导致本进程得不到CPU时间片,比如其他进程的频繁读写操作可能会导致这个问题。

细分的话,导致ANR的原因有如下几点:

1.耗时的网络访问

2.大量的数据读写

3.数据库操作

4.硬件操作(比如camera)

5.调用thread的join()方法、sleep()方法、wait()方法或者等待线程锁的时候

6.servicebinder的数量达到上限

7.systemserver中发生WatchDogANR

8.service忙导致超时无响应

9.其他线程持有锁,导致主线程等待超时

10.其它线程终止或崩溃导致主线程一直等待。

七、App出现crash原因有哪些?

和App崩溃相关的几个因素:内存管理错误,程序逻辑错误,设备兼容,网络因素:

1.内存管理错误:可能是可用内存过低,app所需的内存超过设备的限制,app跑不起来导致Appcrash。或是内存泄露,程序运行的时间越长,所占用的内存越大,最终用尽全部内存,导致整个系统崩溃。亦或非授权的内存位置的使用也可能会导致Appcrash。

2.程序逻辑错误:数组越界、堆栈溢出、并发操作、逻辑错误。例如,app新添加一个未经测试的新功能,调用了一个已释放的指针,运行的时候就会crash。

3.设备兼容:由于设备多样性,app在不同的设备上可能会有不同的表现。

4.网络因素:可能是网速欠佳,无法达到app所需的快速响应时间,导致appcrash。或者是不同网络的切换也可能会影响app的稳定性。

目前+人已



转载请注明地址:http://www.feixingzhao.com/fxzzp/10487.html