APP测试思想APP的测试工程师来说是十分必要的吗?

APP已经渗透到每个人的生活、娱乐、学习、工作中。APP作为当今应用最为广泛的应用,在所有移动平台都有应用,并且以非常高的速度增长。但作为一个程序,它已经很久没有出现了。很多原创的软件测试流程和思路不能直接应用到APP测试中,因为APP与一般PC端软件相比有很多特殊的属性。

例如,传统软件针对不同平台甚至系统会有完全对应的版本,而APP一般对系统版本不敏感;其次,APP基本都是轻量级开发,没有复杂的设置和调试,经常傻傻的安装上手难度极大;另外,APP的运行环境基本以无线连接(3/4/5G、WiFi)为主,对网络连接速度比较敏感……这些都与传统软件不符。.

因此,APP作为一种特殊类型的软件,有必要分别总结测试方法和测试思路,这对于测试对象为APP的测试工程师来说是非常必要的。

一、 APP测试思路

其实APP测试还是属于软件测试的范畴,是软件测试的真子集。因此,经典的软件测试理论在APP测试中仍然有效,但需要针对APP的特殊情况进行一定的补充和额外覆盖。

对于APP测试,一般采用黑盒测试的思路,必要的时候也会进行自动化测试和性能测试,对APP会有专门的测试,比如内存、流量、功耗等测试。

APP测试也需要功能测试。它的功能测试和传统的功能测试是相同的测试流程和标准,并没有太大的区别。

二、 APP测试流程

1. 测试流程图

2. 测试先决条件

在软件测试中,测试前置条件是一个经常被忽视的方面,以至于很多测试都可以在这里被阻塞。因此,在APP测试中,由于涉及的准备条件比传统软件要多,需要额外的努力提前准备。

在测试任务开始前,应检查可用的测试资源,包括但不限于:功能需求文档、功能需求描述、测试设备、测试计划、测试环境、测试人员等。

3. 测试覆盖率

测试覆盖率是应用程序的一个重要但经常被忽视的方面。APP作为一款适应移动平台的软件,有多种平台和版本。

目前的移动平台大致分为Android、iOS等类型(如Blackberry/Windows Phone/Symbian/…),其中Android又分为原生系统和修改系统(EMUI/MIUI/Flyme/…)。这些不同的转换平台与Android原生系统之间存在版本对应关系。其他份额较小的系统类型有自己的版本演化系统。对于这些系统的测试,整理版本上下文需要付出一定的努力。

Android系统本身也有版本演变。修改后的版本除了自身的版本演变外,还与原生安卓版本有对应关系。本机系统中涵盖的许多版本范围在修改后的系统中并不是严格一对一的。相应的。

因此,在APP测试中,要特别注意测试对象所覆盖和针对的系统版本以及相应的平台,尤其是测试设备本身的硬件要求。

三、 APP测试点

根据APP的特点,APP软件测试的重点主要有四个方面,分别是:功能测试、性能测试、界面/可用性测试和兼容性测试。这基本涵盖了APP测试中要重点关注的指标,如下图所示:

1、 功能测试

2、 性能测试

3、 接口/可用性测试

4、 兼容性测试

这些测试点包括我们针对应用程序测试的所有关键点。根据APP的结构,基本上分为前端和后端两部分。在这两部分中,有几个项目作为基本覆盖项目,需要在每个测试中进行测试:安装/卸载测试、UI测试、标称功能测试、标称性能测试、安全测试、兼容性测试、升级更新测试、用户经验测试、硬件操作测试、接口测试和数据库测试。

在敏捷测试理论中,功能测试通常被划分为一个单一的类别。软件测试首先分为两大类:功能测试和非功能测试。其余的测试内容是从非功能测试中细分出来的。

作为软件测试工程师,将测试内容划分为前端和后端,然后将这些测试类型分别映射到前端和后端,然后进行相应的测试,是非常有效率的。

在早期的APP测试中,手工测试是进行APP测试的唯一途径,软件的手工测试极为重要。但是随着技术的不断发展和自动化测试技术的不断深入,以前使用的一些测试方法已经可以被自动化测试方法覆盖和替代,大大减轻了测试工程师的负担,提高了效率。但是,手动测试仍然是不可替代的。因此,从人工测试中理解和认识APP测试是非常必要和关键的。

四、 APP测试点

对于APP来说,不同用途的APP所关注的测试方面也有很大的不同。此外,不同用户对同一个APP可能有不同的使用习惯。对于一个APP来说,用户的具体使用场景可能远远超出项目开发团队的预期。因此,在测试过程中,要充分考虑场景,多场景交互,专注于测试。

一旦指定了一个APP进行测试,我们就进入了测试准备阶段,这需要测试工程师在计划设想中尽可能多地思考。

1.安装卸载测试

对于APP的应用,第一步是安装和卸载测试,这是APP运行和测试的开始,对于不同的平台,APP应该提供对应的版本和适配版本的说明。因为考虑到产品版本更新迭代速度,产品会向后兼容早期版本,所以一般不会标明支持的初始版本。这与一些不经常更新的应用不同,需要注意,尤其是修改后的安卓版本。

此时主要考虑不同的安装方式、不同的系统版本、不同的安装方式(包括但不限于通过应用市场、APK文件卡加载、蓝牙共享)、不同的卸载方式等。

安装测试还会涉及一个场景,即升级。版本升级是项目中极为重要的测试项目。需要注意的是,每次版本迭代都需要检测升级,以验证升级后主要功能是否正常。一般采用冒烟测试进行验证。

一般情况下,普通用户通过三种方式升级软件:

1)根据APP弹出的升级提示框选择升级

2)去应用商店或其他渠道下载升级

3)强制升级。但是,它的本质是:覆盖安装。

具体来说,将最新的APP下载到手机内存中,然后安装并覆盖旧版APP。

这些测试的主要测试点集中在:

1)普通版升级

2)跨主要/次要版本

3)强制升级

图片[1]-APP测试思想APP的测试工程师来说是十分必要的吗?-老王博客

2.界面测试

UI是APP对用户最直观的方面,所以这里的检查需要最大的耐心和细致,因为很容易因为视觉疲劳而错过检查。

检查UI图片、图标、文字、布局等UI元素是否与效果图一致,在不同分辨率和横竖屏显示状态下是否存在变形、错线、漏字等问题。一般来说,UI不会出现特别严重的问题,但这也是它很容易被忽视的原因。

3.功能测试

功能测试是APP最重要的测试,每一个新的开发/升级/变更功能都需要进行测试。测试时,测试工程师将APP视为“黑匣子”,进行人工测试,看提供的功能是否正确,是否按设计工作。事实上apk易用性测试,功能测试通常基于黑盒测试。这里需要注意的是,在功能测试的过程中,只要不符合要求就是缺陷,不是只要能正常运行就可以通过测试。

除了人工测试,测试工程师在后期还需要自动化测试维护。除了经典的软件测试,比如点击按钮、提交订单等,还需要进行覆盖测试。关于功能测试的内容和验证点,需要与BA详细确认要求。

回归测试,在测试中很常见,往往针对的是功能测试,所以功能测试是整个APP测试中的重中之重。在敏捷测试中,测试内容往往分为功能测试和非功能测试两大类,展示了功能测试的状态。

4.性能测试

一个APP应用是否优秀不仅体现在功能上,还体现在性能上。如果性能不够稳定,会影响部分用户的体验。

与APP架构相关,这里的性能包括客户端和服务端两部分。客户端性能是指APP在不同类型的设备和不同类型的平台上的性能。服务端性能测试其实和一般的服务端性能测试项目没什么区别,就是在大量用户并发访问的情况下,考察项目或者接口服务的服务端性能。

性能测试的基本测试点包括:CPU/内存使用率、接口切换流畅度、流量/功耗、启动时间等。

应用的流量消耗是用户非常关心的问题。一是节省了用户的使用成本。其次,流量优化可以带来响应速度的优化。优化空间。

客户端流量测试的测试点主要包括以下几点:

1)从第一次启动到完成所有加载(冷启动)的电流消耗

2)从非首次启动到满载(热启动)的电流消耗

3) 后台运行电流消耗

4)运行场景消耗的总流量

对于服务器端的性能测试,一般依赖JMeter或者LoadRunner。

5.安全测试

APP项目上线前,会根据项目内容的不同,进行不同程度的反编译、数据安全、键盘安全、通信保密和安全策略的验证。对于APP项目的安全测试,如果没有专门的安全团队,可以通过现有各大厂商提供的安全测试平台或工具进行基础或更高级别的安全测试。

对于一般APP来说,被测应用主要是使用一些安全辅助平台进行测试,主要使用两个安全辅助平台:腾讯哈勃分析系统和VirusTotal(一个可疑文件分析服务的网站)和drozer(安全测试工具)。

1)扫描APP获取报告;

2)扫描APP获取报告;

安全测试是一个相对独立于其他测试内容的领域。一般来说,安全测试团队会独立于其他测试团队成立,所以作为安全测试人员,可以对这一点有更深入和详细的了解。

6.兼容性测试

兼容性测试主要是测试APP在各种平台、各种机型上的兼容性和适配性。所有的APP最终都交付给用户。每次迭代,都会有多个版本在用户之间流通。如果没有强制在线升级,就会出现多个版本并存的情况。

根据软件开发的原则,新版本的开发不应该影响老版本,尤其是新版本有较大变化,或者应用重构时,老版本的回归测试也是必不可少的测试点,当然不是每个点都测试,修改后的部分需要测试。可以和开发沟通了解可能受影响的点,有针对性地进行测试。也可以使用冒烟测试,所以兼容性测试也是一个很重要的测试项目。

常见的兼容性测试有:设备型号、手机系统版本、手机APP新旧版本、屏幕尺寸、屏幕分辨率、网络类型、软硬件兼容性等。

对于个人开发者、初创公司、App比较单一的公司,如果测试机不够,可以使用兼容性云测试服务。目前已经有很多公司提供了兼容性云测试服务,例如TestIn、TestBird。此外,大公司也推出了自己的测试工具,如谷歌、腾讯WeTest、百度MTC、阿里MQC等。

7.用户体验测试

用户体验测试是比较主观的测试内容。从用户的角度,测试产品或服务的可用性、人机交互和人机工程学。大致可以分为界面设计、易用功能、横竖屏切换、系统功能响应等。细节甚至包括提示信息显示风格的测试、操作线的轨迹、等等。

8.接口测试

这是一个比较深入的测试内容,在测试的初期经常会涉及到,因为APP的数据交换是否成功与接口能否正确调用息息相关。

接口测试的主要内容是测试模块或子系统组装完成后,模块之间的功能和接口是否被正确调用,组装模块,测试与设计相关的APP架构的结构。这里使用的主要工具是 Postman 和 JMeter。

9.数据库测试

数据库测试其实主要是基于接口测试的结果。接口测试成功通过后,在数据库上进行数据核对确认。这里需要数据库工具。用于验证的数据库。

需要注意的是,如果直接在数据库上进行操作测试,有可能将不符合业务逻辑的数据引入数据库,会带来未知的风险。因此,数据库测试,尤其是增删改查等操作apk易用性测试,在生产/正式环境中是严格禁止的。

10.稳定性测试

作为一个使用率很高的APP,首先要考虑的非功能性指标就是稳定性。对于一个APP来说,如果关注在线活动和用户活动时间,那么稳定性也是一个非常重要的关注点。这个测试点的指标和感知与产品定位高度相关,作为测试工程师必须要注意。

稳定性测试是指应用程序长期运行,检查功能是否稳定。一般稳定性测试时间为N*12小时。在项目的稳定测试中,Monkey主要用于随机测试。

以上列出了APP重要和关键的测试方法。一个版本迭代上线,在sign off正式上线前输出最终通过测试的报告。

测试报告应包含该版本项目组的所有内容。而测试工程师只会用这个报告来检查和填补自己测试内容中的空白。

在APP测试过程中,除了本文提到的很多测试内容,比如功耗测试、内存+CPU测试和内存泄漏测试等,也需要重点关注。

一个成熟的、面向市场的APP,必须经过各方面的锤炼和测试,才能被用户认可,而这种认可的背后是测试工程师对APP测试的把握。

最后,邀请想提升实力的测试人员一起学习

如果你也有很多想解决的问题,你的测试生涯规划也需要一点光,也想和你分享讨论,推荐你一个“Python自动化测试学习交流群”。你缺的知识在这里,你的技能在这里少,你要的大牛也在这里……

来吧!!一起进行高级自动化测试!!

© 版权声明
THE END
喜欢就支持一下吧
点赞0
分享
评论 抢沙发

请登录后发表评论