一、移动功能测试
移动功能测试
功能测试检查功能是否按要求工作,例如,它测试用户与应用程序的交互,例如启动应用程序,登录,播放歌曲,检查帐户余额和其他直接的用户流。
由于功能测试与应用程序的UI元素,数据库层,网络层以及其他方面交互,因此通常是耗时且复杂的过程,您需要在各种功能测试类型之间保持良好的平衡,以充分利用它。
因为功能本身是APP的核心,因而功能测试是整个测试分类中最重要的一块。又因为其复杂性,从而造成测试人员在功能测试花的时间和资源是最多,一般占总测试的70%左右, 尤其是迭代阶段的回归测试。对于这一块目前全球的测试公司提供的方案都是众测平台,这里面包括德国的Testbirds(2011年成立),美国的Applause(2007年成立),国内以上提到的测试公司也都提供。在这些测试平台里面,都是组织线下人员做手工测试,各大公司内部测试部门绝大部分也是手工测试,少数开始写测试代码来部分解放手工测试来提高测试效率。
二、移动回归测试
移动回归测试
回归测试是检查新功能更新,补丁或配置更改时功能和非功能部分都没有带来新的响应或错误。回归测试确认开发锁进行的任何更改又要覆盖未更改的部分。
例如,许多软件即服务(SaaS)提供商将在每次软件更新时定期更新其功能或向其产品中添加新功能。为了确保其核心产品不受新功能的影响,这些公司将执行大量回归测试。
如果借助自动化测试,可以极大提升回归测试的效率,常用的开源框架有UiAutomator2和appium,以及少量基于坐标和图像的录制工具。
三、移动性能测试
移动性能测试
移动应用程序性能测试是确定系统在特定工作负载或任务下如何响应的过程,通常,性能测试会测试应用程序的速度、稳定性和可伸缩性。它在客户端和服务器端都执行,在服务器端,它检查响应时间,流资源密集型数据包,消息传递延迟,应用程序崩溃等变化。在客户端,它检查各种平台和手机上应用程序行为的通常差异,内存和CPU消耗,加载速度和电池问题。
最常用的测试工具是Android SDK自带的monkey,他最大的缺点就是不确定性,因为monkey的操作完全是无序的,即使操作十万次都不一定有一组操作是能够发现BUG,且很难复现,极难排查问题,除非app出现崩溃和闪退等严重的现象。
目前比较流行的解决方案就是利用各家的云平台,通过云平台提供各类机型云真机,借助平台提供的基础脚本功能或者上传自己的测试脚本,设置一些简单的参数,即可等待云平台的测试报告。
四、移动安全测试
移动安全测试
安全性对业务至关重要,当攻击者窃取客户数据时,安全性就成为移动应用程序开发和测试过程中非常重要的一部分。移动应用程序安全性测试是一个复杂的主题,需要许多不同领域的知识,例如客户端—服务器通信,软件体系结构和系统体系结构。由于其复杂的性质和所需的专门技能,安全测试最好由专家来完成。它包括诸如通过中间人攻击进行手动或自动渗透测试,模糊测试,扫描和审核软件的方法。
首先从代码安全说起,当前流行的Android开发语言有Java、kotlin,后者由于是Google主推的,所以份额越来越大。目前针对代码安全的扫描工具:Checkstyle、FindBugs、PMD、Jtest等。个人推荐findbugs,因为兼容性比较好,无论是IDE的插件或者Jenkins插件,基本上都是开箱即用,非常方便。跟其他代码管理工具搭配使用,案例Demo很多,资料也比较丰富。
其次APP的安全扫描工具有:Quick Android Review Kit (QARK),由领英开发,它是一款静态代码分析工具,可提供有关App安全威胁的信息,并给出简洁明了的问题描述,Zed Attack Proxy,全球最受欢迎的免费安全测试工具之一。它是一款开源安全测试工具,而且大部分控件显示支持中文,MobSF(Mobile Security Framework)是一款自动化移动App安全测试工具,同时适用于iOS和Android,可熟练执行动态、静态分析和API测试。
五、移动可用性测试
移动可用性测试
在可用性测试中,实际模拟用户检查移动应用程序的功能。该测试的主要重点在于简单,快速地使用应用程序,简单的入门以及用户对整个体验的满意度。
在测试环境中为用户提供了任务,并鼓励他们在尝试完成任务时大量思考。他们检查用户的不同习惯,以改善应用程序的用户体验。
六、移动兼容性测试
移动兼容性测试
由于移动设备和平台的多样性,因此对移动应用程序进行兼容性测试是必不可少的,执行兼容性测试以检查应用程序在移动设备,和浏览器组合中的行为是否符合预期。
兼容性测试中的以下实践可帮助覆盖最大数量的设备,创建设备兼容性库:获取市场上所有可用的设备或型号,并构建平台详细信息,设备支持的技术功能(音频/视频格式,图像和文档格式等),硬件功能的信息。设备以及设备支持的网络和其他技术功能。
将所有设备分为两个列表:完全兼容与部分兼容的设备。完全兼容的设备支持使所有应用程序功能无缝运行所需的所有技术功能,而部分兼容的设备可能不支持一个或几个功能,因此会导致错误消息。
浏览器和操作系统组合的测试基础架构是一项昂贵的事情。因此,这种方法是不可行且不可持续的,理想的方法是在云测试服务上测试功能,以便可以专注于测试而不必担心基础架构。也可以通过下载相应的WebDriver for Selenium使用Selenium编写自动测试脚本。
如果有足够的开发能力,也可以不使用第三方,也可以自己基于开源框架开发,最佳的实践无疑是Selenium Grid,现在,Selenium Grid可以并行运行测试用例,因为Selenium Grid有助于在本地、远程电脑上安装的特定浏览器上执行跨浏览器测试。然后可以利用Selenium中的并行测试功能来代替线性测试,从而降低总体项目成本,并在并行执行自动化测试时加快产品/功能迭代交付。
七、移动端到端测试
移动端到端测试
端到端测试是一种用于从头到尾测试应用程序流程是否按设计执行的方法。进行端到端测试的目的是识别系统依赖性,并确保在各种系统组件和系统之间传递正确的信息。整个应用程序都在真实的场景中进行了测试,例如与数据库,网络,硬件和其他应用程序进行通信。
八、移动用户验收测试(UAT)
移动用户验收测试(UAT)
用户接受测试(UAT)也称为Beta测试,是由真实用户执行的,通常用作产品发布之前的最终检查点。它使用户可以测试您的应用程序,并验证它是否对用户友好,是否按预期运行以及是否可以在现实环境中处理任务。通常,在UAT期间,项目经理,开发人员,质量检查团队和利益相关者可以进行最终检查。
九、移动自动化测试
移动自动化测试
移动测试自动化提供了以更高的测试覆盖率,即时有效地测试移动应用程序的可能性。一旦测试自动化,就可以一次又一次地快速重复地执行它们。在几乎所有情况下,这都是具有较长维护寿命的软件产品的最具成本效益的方法。自动化的真正好处不仅在于测试的可重复性,还在于其执行可能甚至无法手动执行的测试的能力。
由于大多数公司都遵循敏捷开发实践,因此移动应用程序自动化测试非常适合敏捷过程。通过使测试可以并行完成,测试自动化可带来巨大的价值,尽早解决问题将节省大量时间,并使开发人员可以更快地完成产品的定型。
简而言之,移动自动化测试是一个常见问题的解决方案。自动化测试通过三种方式改善了业务结果:更高的测试效率,更高的测试效率和更短的迭代时间。
十、移动适配测试
移动适配测试
因为安卓OS的开放性,各大厂商尤其是三星,华为,小米等新兴智能手机厂商都会定制自己的安卓OS以提供一些特色,比如华为的安全特色以及小米的MIMU的生活特色。这些定制造成了一款App有可能在三星上运行,却在华为机子上崩溃,所以在各种主流机型上测试App的运行性成为一种必须,这也称为兼容测试。
此种测试在各大IT公司的测试部门的表现就是每个测试人员手里有4-5台手机,重复性的把App安装运行卸载在上面,微软Bing组的某些App开发就是如此,对于没有实力的中小公司,就需要市场上出现一个部署各种手机的云中心,又称为手机农场。这样的公司有美国的Xamarin(2011年成立,2016年被微软收购),SauceLab(2008年成立)和Applause(2007年成立,2017年被Vista EquityPartners收购),芬兰的bitBar(1995年成立,2012年开始融资向移动测试出发),国内的云测(2011年成立),百度MTC(和英特尔2013联合建立),阿里MQC,腾讯优测, Testbird(2013年成立)等。
十一、移动A/B测试
移动A/B测试
当开发一款App的时候,当功能开发结束后,会有一些优化的选项出现,比如把广告放在一个完整的页面还是作为广告条嵌入到内容页面或者把广告作为在阅读新闻的内容的奇数/偶数页面出现,每种选择对客户的影响不一样,对广告的转化率因而也不同。这些得通过小量的抽样客户群体做实验而得出正确的选择,美国的Optimizely(2009年成立)以及国内的吆喝科技(2014成立)就是这样根据实验数据来驱动优化的选择。
十二、移动App测试和传统软件测试区别
移动App测试和传统软件测试区别
移动App测试和传统软件测试的不同,要从以下儿个方面进行考虑:
1、页面布局不同
对于传统软件,计算机设备屏幕比较大,可以同时显示很多信息,用户在使用时对所有信息览无余,页面布局比较灵活;但是对于移动App移动设备屏幕小,显示的信息有限,一般都是单列显示, 在测试时需要考虑布局是否合理。此外,在测试时还要考虑到移动设备的屏幕是否可以旋转,旋转之后,屏幕上信息显示是否符合用户需求。
2、使用场合不同
传统软件使用地点比较固定,网络信号也比较稳定;而移动App使用场合不固定,网络信号也不稳定,测试需要考虑弱网情况下App的使用情况。此外,还要考虑移动设备电量不足的情况下,App是否能正常使用。
3、输入方法不同
传统软件大多使用键盘和鼠标进行输入;移动App的输入方法比较多,除了键盘和鼠标之外,还包括触屏、电容笔语音等。移动App测试时要测试多种输人方法是否都能正常使用。
4、操作方式不同
传统软件使用鼠标操作,点击精确;而移动App大多是触屏操作,点击时误差较大,且不支持“鼠标指针”悬停事件。