1.app的性能测试,即专项测试,需要重点关注那些方面?
内存、cpu占用、耗电量、流量、流畅度等
2.什么是activity?它的生命周期?
Activity是一个Android的应用组件,它提供屏幕进行交互,一个应用通常是由多个彼此松散联系的Activity组成,一般会指定应用中的某个Activity为主活动,也就是说首次启动应用时给用户呈现的Activity。
生命周期:运行-暂停-停止-系统回收
3.Android的四大组件之一?
Activity,Broadcast Receiver广播接收器,Content Provider内容提供者,service服务
4.App测试和web测试有什么不同?
从流程上来说,没有区别,都需要经历测试计划方案,用例设计,测试执行,缺陷管理,测试报告等相关活动。
从技术上来说,WEB测试和APP测试其测试类型也基本相似,都需要进行功能测试、性能测试、安全性测试、UI测试等
主要区别在于具体测试的细节和方法有区别,比如:
性能测试,在WEB测试只需要测试响应时间这个要素,在App测试中还需要考虑流量测试和耗电量测试。
兼容性测试:在WEB端是兼容浏览器,在App端兼容的是手机设备。而且相对应的兼容性测试工具也不相同,WEB因为是测试兼容浏览器,所以需要使用不同的浏览器进行兼容性测试(常见的是兼容IE,Chrome,火狐,edge)
如果是手机端,那么就需要兼容不同品牌,不同分辨率,不同android版本甚至不同操作系统的兼容。(常见的兼容方式是兼容市场占用率前N位的手机即可)。
还有,App测试基于手机设备,还有一些手机设备的专项测试:
安装测试:App的安装,卸载,升级
中断事件测试:就是在操作某个软件的时候,来电话、来短信,电量不足提示等外部事件。
操作类型测试:如横屏测试,手势测试
网络测试:包含弱网和网络切换测试。需要测试弱网所造成的用户体验,重点要考虑回退和刷新是否会造成二次提交。
5.App出现crash的原因有哪些?
1.内存管理错误:可能是可用内存过低,app所需的内存超过设备的限制,app跑不起来导致App crash。或是内存泄露,程序运行的时间越长,所占用的内存越大,最终用尽全部内存,导致整个系统崩溃。亦或非授权的内存位置的使用也可能会导致App crash。
2.程序逻辑错误:数组越界、堆栈溢出、并发操作、逻辑错误。
e.g. app新添加一个未经测试的新功能,调用了一个已释放的指针,运行的时候就会crash。
3.设备兼容:由于设备多样性,app在不同的设备上可能会有不同的表现。
4.网络因素:可能是网速欠佳,无法达到app所需的快速响应时间,导致app crash。或者是不同网络的切换也可能会影响app的稳定性。
6.App对于不稳定偶然出现ANR和Crash时候你是怎么处理的?
抓个log,当出现偶然的crash时候,可以把手机拿到开发那里,手机连上他的开发代码的环境,就能查看到错误日志,也可以自己在命令行里开着logcat,保存日志到电脑本地,提高优先级别的bug,并附上这log
7.日志中一般会出现哪几种异常?
Null Pointer Exception – 空指针引用异常
Class Cast Exception – 类型强制转换异常。
Illegal Argument Exception – 传递非法参数异常。
Arithmetic Exception – 算术运算异常
Array Store Exception – 向数组中存放与声明类型不兼容对象异常
Index Out Of Bounds Exception – 下标越界异常
Negative Array Size Exception – 创建一个大小为负数的数组错误异常
Number Format Exception – 数字格式异常
Security Exception – 安全异常
Unsupported Operation Exception – 不支持的操作异常
8.Android和iOS的区别?
1.底部按键不同,Android有三个键,分别为home键,back键和呼出应用列表这三个,而iOS只有一个
2.Android分辨率较多有20来钟,而iOS较少
3.Android的手机操作系统较多,iOS的较少并且只能单向升级
4.安装:Android应用的安装方式较多,而iOS一般就是App store,testflight,i4, itunes