Azure DevOps和App Center而非测试场:使用云服务简化并加快移动开发

高质量的测试可确保移动应用程序的速度和稳定的运行,但是各种设备,操作系统及其版本使测试场膨胀,增加了开发成本,并花费大量时间和精力。在本文中,我们将向您展示如何使用Visual Studio App Center云服务降低测试成本,该服务将4000多种设备与不同的操作系统集成在一起,并使用Azure DevOps平台简化了分发。



如何测试移动应用程序以及开发人员如何类似于农民


移动开发的主要问题之一是市场拥挤。根据Adweek,Sensor Tower和Think with Google的研究,由于质量差,80%的应用程序无法到达用户。



大多数冠军应用程序的成功都是短暂的。一个月内,排名前25位的广告将更新74%。事实证明,四分之三的领导人在30天内失去了职位!失望的主要原因之一是速度方面的问题:68%的用户离开了该应用程序,如果在六秒钟内未加载该应用程序,则选择另一个应用程序。

但是应用程序不仅应该快速加载,而且还可以正常工作。因此,对所有可能的设备和操作系统类型进行更新而无需进行复杂的测试是不合理的风险。但是实际上,这并不是那么简单:大量的智能手机,平板电脑,操作系统及其版本迫使我们创建巨大的测试矩阵。



如果我们考虑使用移动操作系统,那么使用iOS或多或少都是不错的选择。例如,去年大多数用户静静地坐在iOS 12上。从测试的角度来看,所有设备均由单个制造商发布是个好习惯。



Android更复杂:操作系统及其版本很多,其中很难挑出主要的领导者。每个制造商(三星,小米,索尼等)都有自己的非标准启动器,黑客,操作系统和服务的变更。因此,移动测试场可以包含数十至数百个设备。例如,在照片中-一个游戏开发人员的移动测试场。



农场需要持续的支持。设备必须保持最新状态,定期返回默认设置,并考虑折旧等。服务器场中的设备已过时并过时;您需要不断更新它们,以跟上应用程序用户使用的那些设备。最重要的是,很难向位于不同城市的分布式开发人员和测试人员团队提供访问此类服务器场的权限。 



进行“家庭”测试后,您需要将应用程序发送到真实设备上进行测试。最好的方法是让您的员工或外部人员(例如,应用程序迷和新产品迷)尽早使用Beta版本。用户获得最早的版本,开发人员获得测试他们想要的一切的机会。在此阶段,我们需要复杂的分析:用户使用什么功能,最常访问哪些屏幕,在这里花费多少时间。

App Center –替代农场




微软本身面临着测试移动应用程序的问题:在某个时候,MS正在开发的应用程序数量超过了一百。为了简化此任务,Xamarin的一家基于云的公司创建了App Center云服务:它包含数千个真实设备,开发人员可以在这些设备上运行测试,而不必担心购买和维护自己的服务器场。

App Center可以连接到GitHub,Bitbucket,GitLab或Azure DevOps。 Visual Studio App Center涵盖了所有流行的开发框架,使您可以为所有通用平台创建和测试应用程序。

就像设备在您的基础架构中一样,因此您可以组织持续集成(Continuous Integration)的过程:开发人员将代码提交到项目中,应用程序立即自动生成,传播到测试设备,启动测试。 

App Center的好处




云中有四千多台设备。这些是真正的生活设备。每个模型均以多份形式呈现。在测试期间,您可以截取屏幕截图,并通过用户的眼光看应用程序。有关每个设备的详细信息:生产设备的人,拥有的资源,CPU负载,应用程序执行速度。



SDK的存在是一个软件开发套件,可以集成到应用程序中并收集数据:安装和启动的成功程度,失败次数和崩溃次数。从发生故障的设备上,您可以收集转储,观察应用程序测试期间发生的情况。这极大地简化了应用程序的故障排除。 



详细的测试报告。如果测试无法解决某些错误,则在测试偶然发现某件事时,将从正在执行测试的设备的屏幕上截取屏幕截图。并且我们查看该应用程序是否正常工作,以及由于测试运行而在问题上偶然发现的地方。



收集设备操作日志,内存转储,堆栈跟踪,测试报告以诊断和修复问题。您可以进入设备,抽出日志并研究处理器的负载,占用的内存量。这样的事情将帮助您快速了解问题所在,应用程序崩溃或测试失败的原因。



应用使用情况分析:响应速度如何,在屏幕之间切换需要花费多少时间,用户进入应用程序并进入屏幕的路径。您可以了解您的受众正在使用哪些平台和操作系统版本。这有助于查看观众和设备,了解这些设备可以轻松使用的功能。通常,该应用程序能否在用户设备上正常工作。此类分析使您可以为各种平台确定测试的优先级,并减少测试矩阵。



单一的自动分配过程如果应用程序是针对多个市场编写的,例如针对iOS和Android,则在发布应用程序的过程中您必须做很多手工工作。App Center具有自动分发的功能,并且一旦应用程序通过所有测试,生成的内部版本将自动发送到商店或在开发人员批准后发送到商店。每次提交后,



自动更新将发送到Beta测试人员和内部用户组。无需手动发送任何内容,此外,该过程使您可以从测试人员那里获得快速反馈。

如何开始使用App Center


注册服务并获得免费试用期。让我们看看它在现实世界中的外观。



App Center的网络界面非常简单。



创建新应用程序的过程同样简单:我们指定名称,平台和操作系统。



我们指出代码位于哪个存储库中,然后自动同步开始。



在为iOS开发时,通常需要MacBook才能构建应用程序。但是Appcenter允许您不要使用它;他使用所有必要的工具在OSX上部署了特殊的虚拟机。如果您需要非标准的东西(干净的系统),则可以添加库。



打开终端的窗口。可以看出虚拟机内部正在发生什么。软件包已添加,并使用NuGet安装。虚拟机准备就绪后,将立即开始编译和组装过程。顺便说一句,如果构建存在问题,则可以从此界面轻松下载日志。

编译如何完成?微软与苹果达成协议,并获得了在虚拟机内部运行以进行构建的虚拟MacOS实例的许可。因此,从许可证的角度来看,一切都是干净的,Microsoft会照顾好一切!



构建已经准备就绪,是时候测试应用程序了。打开设备集,然后选择设备。



对于每个设备,您可以查看模型功能,规格,操作系统版本,云中同时可用的设备数量以及其他参数。



创建一组测试设备后,将依次对每个设备进行测试。默认情况下,在基本版本中,测试在一个线程中进行。您可以通过在大型设备上运行某些测试,而在小型设备上运行某些测试来改变测试矩阵。

每个应用程序屏幕估计完成测试的时间为一分钟。如果您有30-40个屏幕,则每个设备的测试大约需要30-40分钟。为了加快速度,您可以在多个设备上并行地在多个线程中进行测试。您需要为此选项支付额外费用。



您可以在此处配置通过测试后的自动分发:该发行版将自动布置在应用程序商店中。



如果您需要在一组用户上测试该应用程序,那么在发布到市场之前,我们会创建适合忠实于该应用程序的员工或用户的组。我们进行分发后,他们都会收到一封带有唯一链接的电子邮件,以下载新版本。完成此类测试后,您可以从“测试用户”那里收集遥测信息,并查看应用程序如何在其硬件上运行。



这是您连接市场的地方。



要诊断应用程序,您需要连接SDK。以及代码可能掉落的所有地方,围绕着try and catch。当应用程序在用户设备上崩溃时,您可以接收崩溃转储并进行诊断。



Google Analytics(分析)显示了用户如何处理应用程序:放置相同的SDK,并查看哪些事件出现在应用程序内部,访问者在屏幕之间的移动顺序。



一个用于收集数据,指标,各种间接费用信息的选项。应用程序打开的速度如何,如何工作。所有这些都是在Azure Cosmos DB的基础上完成的,您可以在其中观看高级的分析。



SDK允许用户发送推送通知以引起关注或通知有关应用程序的新版本。不仅方便,而且有益:此类消息比SMS便宜很多倍。



在应用程序内部,可以根据各种条件对用户进行细分:设备类型,地理位置等,并根据结果组进行营销活动。

核心Azure DevOps组件


App Center功能(云中的设备,构建,测试和软件分发)只是Azure DevOps补充的开发过程的一部分。您可以在此平台上创建仪表板和任务板,在Wiki中存储有关项目的知识,使用文件和工件存储库。而且,如果您必须使用复杂的软件制造传送带,则可以在此处配置管道,指定构建的位置。



  • 董事会-用于计划工作,讨论,监视等的一组工具。看板,仪表板,Scrum董事会-所有这些都可以轻松地针对项目的具体情况和团队功能进行自定义。
  • Pipelines — . . Node.js, Python, Java, PHP, Ruby, C/C++, .NET, Android iOS, Kubernetes.
  • Repos — Git. Marketplace - REST API. .
  • Artifacts — - Maven, npm, NuGet Python . CI/CD.

App Center Azure DevOps


通过Appcenter.ms上注册,您可以免费使用App Center的所有功能两个月。试用期过后,一个版本的每月费用为40美元,但您可以无限次运行它。这显然比拥有自己的移动测试场更有利可图。如果您的团队最多由五个开发人员组成,或者您正在执行任何OpenSource项目,则

Azure DevOps是一项完全免费的服务。存储库,代码存储库,管道,开发板-所有这些都是免费提供的。 

如果您想了解更多有关此信息或现在就开始使用该平台,那么您将对开发人员的在线马拉松赛Dev Bootcamp感兴趣。活动期间25-29 , , , Open Source-, OpenSource . Microsoft, . , !

All Articles