在我们日常的工作中,APP是我们最近常接触的测试对象。对于测试新手来说,想要做好APP测试,首先,我们应该对APP所属的操作系统有个大致的了解。目前,市面上主流的有Android与IO
在我们日常的工作中,APP是我们最近常接触的测试对象。对于测试新手来说,想要做好APP测试,首先,我们应该对APP所属的操作系统有个大致的了解。目前,市面上主流的有Android与IOS操作系统。下面,我们就从操作系统开始,为大家讲解APP测试的方法及注意事项。
1、Android与IOS系统
>>运行机制
Android系统是谷歌公司以Linux为核心,开发、发行的一个智能的、开放式的软件平台。其应用程序一般采用Java来进行编写的。Android系统的运行机制主要采用虚拟机,系统需要占用大量内存来换取执行速度,再加上不定期的内存自动回收机制。因此,使用安卓系统的手机用户,也常常因此感到手机卡顿。
IOS系统则是苹果公司在2007年1月推出的一款封闭式手机操作系统,它的主要开发语言是Objective-C语言。由于它的运行机制主要是沙盒,整个运行过程中不需要虚拟机,因此,相比Android系统来看,其执行效率要高一些。
>>美观与安全
对比Android和IOS系统,在设计上,Android系统明显更多样化,辅助工具也明显多于IOS。但也正基于此,它所存在的安全隐患也明显多于IOS系统。另外,在兼容性问题上,Android也需要比IOS考虑得多一些。
>>版本迭代
值得注意的是,从版本迭代来说,Android系统的版本可升、可降,而IOS系统的版本只能升级(越狱除外)。
此外,APP测试最大的问题是网络的不稳定,以及隐私的安全问题。但由于此部分内容不是我们本期分享的重点,因此,想了解的小伙伴可以与我们私下探讨哈。
说完按操作系统后,接下来我们一起来聊聊如何做APP测试。日常工作中,APP测试主要包括这几块的测试:功能测试、UI测试、性能测试、安全测试、兼容性测试、接口测试、用户体验测试等等。
2、APP测试的内容
1)功能测试
功能测试就是验证各个功能是否与需求实现一致,可以从以下几个方面进行测试:
安装卸载:在不同的操作系统下,验证安装卸载是否正常;软件是否可以通过第三方工具进行安装、卸载;安装卸载过程中是否可以取消,是否会在卸载过程中,出现重启、死机、断电、断网。等等;
启动运行:安装后,功能是否可以正常运行;首次启动运行时速度是否满足要求,页面之间切换是否流畅。等等;
注册登录:包括用户名和密码的长度、格式是否有限制或规则要求等;重名注册是否有提示信息;软件是否有快捷登录方式,等等;
前后台切换:切换到后台,再次返回是否停留在上一次操作的界面、功能是否正常,数据是否更新;锁屏后,再解锁进入APP,功能是否正常,数据是否更新;多个APP软件之间切换,功能是否正常;等等。
升级更新:当APP有新版本时,是否有更新提示信息;当版本为非强制升级更新时,不更新是否可以正常使用;设置APP软件自动升级更新时,在无wifi的情况下,是否自动更新;等等。
异常测试:验证APP在:不同电量下;低电量提示时;充电、拔电时;弱网模式时,功能是否正常;等等。
2)UI测试
UI测试又称用户界面测试,我们在做APP测试时,主要需要完成如下测试:
首先确保UI界面设计符合国家的、行业的、企业的标准规范;
关注窗口、菜单、对话框以及按钮控件的布局、风格是否满足用户要求;
不同页面中控件大小、风格是否一致;
页面中颜色的搭配是否合理,整体的颜色不宜过多;
文字的提示是否友好,是否存在敏感词、关键词等;
操作是否简单、人性化,是否有帮助指引;
自适应界面设计,内容是否根据窗口的大小自适应调整;
图片是否涉及版权、隐私、专利等问题。
3)性能测试
这主要包括手机端性能测试、服务端性能测试两个主要方面。其中,手机端性能测试,主要是检查资源问题,比如CPU、内存占用、耗电量、流量等数据的情况。
而服务端性能,则是跟Web性能大同小异,主要是模拟大量手机用户调用接口对服务器产生负载。因此,在做测试时,两者的区别不大,可以通过Loadrunner去进行并发测试、负载测试、压力测试等。
4)安全测试
最近几年,用户隐私泄露问题一直是APP发展前进路上的一大隐患。因此,在做APP测试时,我们需要投入更多的精力,去考虑产品的安全问题。
针对APP的安全测试环节,这些内容值得参考:
安装包安全性:验证安装包是否对签名进行了校验,以防止被恶意第三方应用覆盖安装等;开发人员是否对源代码进行混淆,以免被反编译软件查看源代码;访问通讯录,有没有设定特定权限等。
用户安全性:包括用户拨打电话、发短信、连接网络等是否存在扣费的风险;用户密码在传输中是否进行加密;当用户注销账号时,需要身份验证的接口是否可以调用;等等。
数据安全性:用户的敏感数据,是否写到日志或配置文件中;当用户使用敏感数据时,是否给用户提示信息或安全警告;对安全通信的数字证书,是否进行合法的验证;等等。
通信安全性:所有手机的功能应优先处理,如接电话、收短信等;当网络中断或出现异常时需要给用户网络异常的提示;等等。
服务端安全性:考虑SQL注入、XSS跨站脚本攻击、CSRF跨站请求伪造以及越权访问等。
5)兼容性测试
APP的兼容性测试是一个耗时、耗力、成本高昂的测试工作。之所以这么说,主要是因为我们在测试时,既要考虑到手机端的软、硬件兼容性(主流APP),同时,还需要考虑手机设备的兼容性(不同品牌的手机)、操作系统不同、屏幕分辨率等问题。
因此,在测试时,我们多采用模拟器进行。当然,如果预算成本够,也可以用真机测试,或使用第三方工具进行测试。
6)接口测试
对于接口测试来说,Web端与APP的接口测试思路基本相同,因此,你可以运用检测Web端口的方式,对APP接口进行测试。(往期已经介绍过了,此处就不赘述了。)
7)用户体验测试
基于APP软件搭建的速度一般较快,因此,进行用户体验调研是非常必要的,这可以使研发者了解到更多客观的评价,得到更多修改意见,从而提升用户体验。
因此,在做测试时,可以从这些角度考虑:
1)从用户视角来评价产品的外观;
2)从参与测试的人那里,了解APP的手机兼容性;
3)从用户的角度了解页面跳转、横竖屏等,又无异常问题,设计是否合理;等等。
总之,APP测试是一项较为繁琐的工作,需要软件测试人员保持高度的耐心和热情,将可能需要测试的问题都考虑周到,避免因遗漏,留下软件漏洞问题。
(责任编辑:中博IT教育)