1.UI测试
UI测试的目标是确保用户界面能够为用户提供相应的访问或浏览功能。确保用户界面符合公司或行业的标准。包括用户友好性、人性化、易操作性测试。
测试的内容包括菜单、对话框、窗口、文本、图片、布局、色彩等。一切展现给用户的内容都应当符合视觉设计的标准。当然在实际项目中,与视觉设计完全一致是很难做到的;一般情况下,IOS的视觉效果比较好,Bug也比较少,但Andriod的问题就很多。安卓系统的碎片化也是适配测试的大敌。
需要特别注意的点:
UI测试标准要明确。视觉和交互式用户可以直接感知的,关乎用户体验。因此在讨论测试方案的时候,一定要明确UI的测试标准。比如页面间跳转和回退是否刷新、可操作区域精确范围、页面分页和数据分组、页面渲染时间、错误提示、公共出错页面处理等。
功能细节要有列表。页面提供的功能点是测试进行功能测试和性能测试的基础,要非常明确当前APP或者H5页面提供的操作和功能,如果功能点有变动,一定要及时知会,避免重复测试,因为功能改动后,所有的测试用例都要重新设计。
用户体验要特别注重。UI和交互设计可能没完全覆盖APP的行为,此时就要站在用户的角度体验和使用,尽可能的提出优化体验的建议,并将好的建议落地实施。
总之,一切都要尽可能的明确,这样在测试过程中才能区分什么是原生缺陷、什么是功能缺失、什么是体验问题,才能针对性的推进项目进度。
2.功能测试
在进行功能测试以前要熟悉产品的需求文档,积极的和PD沟通交流。了解APP的使用流程。只有在熟练使用的前提下,才能更好的发现问题和总结问题。获取资料的方式和途径有很多,但是最重要的,也是最有效的办法就是:提问。
一般情况下,手机APP的功能比较复杂,以某app为例,不涉及交易的功能有室内导航、停车找车、排队领号、消息推送、帖子发布、AR等;涉及交易的有停车缴费、优惠券、摇一摇、扫描二维码。APP页面也分为两类:本地页面和H5页面。页面之间的跳转逻辑、不同功能的流程都比较复杂,此时没有一个很好的测试分类和测试计划,是很难保证APP的质量的。
解决的办法就是,首先抽象和提炼每个页面的功能和逻辑,总结不同页面之间公共的需要测试的点,比如数据加载、UI对比,页面跳转等。在测试过程中,优先测试公共的测试点,再关注每一个页面特有的测试点,这样可以避免测试过程中,因为测试点过多,导致的测试顺序混乱、测试效率低下、漏测等情况。
然后对特定的页面和功能,从时间、地点、对象、行为和背景五个不同的方面去考虑测试和分析的方法。也就是说要明白用户会在什么时间、什么地点、在什么背景或场景下,使用APP中的某些功能。最好将用户的行为和使用场景进行提炼,对比的整理出功能性和非功能性的测试点,明确每一个测试点的测试标准。
明确测试标准是非常必要的,比如刚才说到的UI测试,测试和验证的标准就是视觉稿,功能测试的最低标准是,在容错和有恰当提示的情况下,可以引导用户完成APP特定功能的使用。
在确定测试点及其标准后,根据被测功能点的特性列举出相应类型的测试用例对其进行覆盖,比如涉及输入的地方需要考虑等价、边界、负面、异常或非法等情况。
(1)等价类划分方法 如:整数 浮点数 正数 负数 等
(2)边界值分析方法 如:最大值、最小值
(3)错误推测方法 如:输入、输出为NULL,电话号码包含字母
(4)因果图方法
(5)判定表驱动分析方法
(6)正交实验设计方法
(7)功能图分析方法
3、接口测试
APP的数据是从接口获取的,因此需要了解APP使用的数据接口、接口数据返回的内容和格式。在前端出现问题后,首先需要明确是前端处理的有问题,还是后端提供了有错误的数据,这样可以将Bug提交给对的人,减少Bug转移、前后端沟通等带来的时间成本。
接口测试一般通过抓包,或者Mock进行数据校验和测试。
4、性能测试
评估App的时间和空间特性
1)极限测试:在各种边界压力情况下(如电池、存储、网速等),验证App是否能正确响应。
2)响应能力测试:测试App中的各类操作是否满足用户响应时间要求
3)压力测试:反复/长期操作下,系统资源是否占用异常;
4)性能评估:评估典型用户应用场景下,系统资源的使用情况。
5、网络测试
1)4G网络、2G网络、WIFI网络、弱网
2)不同网络之间的切换:4G/WIFI。
6、适配测试
如果是对独立的手机APP,适配测试需要根据当前主流的手机型号、操作系统、版本等制定规范的适配列表。如果是将一个功能(比如H5页面)集成到现有的APP中,则需要在保证功能测试和性能测试通过的前提下,提交APP团队进行适配测试和验收。
适配测试产生的BUG很难进行修复,主要是两个方面的原因:品牌和版本。由于安卓完全开源,所以很多厂商都可以生产安卓设备,这些设备之间的差异,增加了软件开发时进行设备兼容的难度。其次,安卓的版本更新很快,但是大多数用户不会把设备更新到最新或者较新的版本,这就意味着开发者会非常困扰,到底让程序去兼容较低版本,还是使用最新的版本的特性?所以很多情况下,在低版本的安卓设备上,APP页面的显示很杂乱,而且BUG难以重现。