持续移动开发如何从测试自动化中获益

作者 | Ben Linders 译者 | 平川 策划 | Tina

测试自动化可以减少手工测试工作、最小化人为错误并加速发布周期,从而为持续移动软件开发提供支持。Burak Ergören 在 QA Challenge Accepted 2023 大会上分享了他在移动软件自动化测试方面的经验。

Ergören 提到,他们希望借助测试自动化项目提高代码覆盖率,并在自己方便的时候启动测试,使得测试过程更全面、有效:

通过并行运行测试,我们能够在开发过程的早期阶段检测错误。这使我们能够同时运行针对各种目的而设计的自动化测试。

Ergören 指出,选择正确的测试工具至关重要。他们选择了 Appium,这是一个兼容 Android 和 iOS 平台的测试自动化开源项目。它支持多种编程语言,如 Java 和 JavaScript。

下一步是定义项目的范围,Ergören 解释说:

项目的范围应该包括基本特性、公共函数和复杂测试用例。

在接下来的步骤中,他们设计了测试自动化架构,开发语言选择了 Java。他们强调要遵循面向对象编程(OOP)原则,并引入了页面对象模型、工厂设计模式等设计模式。Ergören 提到,为了创建一个健壮而灵活的项目架构,他们整合了诸如干净代码和 SOLID 原则等概念。

随后的步骤包括准备和维护自动化测试。他们会对这些测试进行审查和持续分析。

随着测试数量和场景复杂性的增加,其移动自动化测试套件的总运行时间变得非常长。他们发现自己总是超出最后发布期限。

Ergören 提到,在优化、加速发布周期的过程时,他们是从处理测试同步入手的:

我们在项目中使用 Fluent WebDriver 创建了一个通用的等待方法,并彻底重构了整个项目。这样一来,我们几乎消除了所有的“thread.sleep”实例。

他们还通过尽量减少 XPath 的使用以及强调 ID 的使用来优化定位器选项。Ergören 表示,他们与开发人员合作,使新开发的 UI 元素都包含 ID 成了一种标准做法。

输入用户名、密码和点击“登录”等重复操作会产生不必要的时间成本。Ergören 提到,他们认识到,在许多自动化测试中,公共方法(例如登录过程)都有很高的重复性。为了加快这个过程,他们实现了一个解决方案:当应用程序最初启动时,使用预定义的测试用户数据登录,从而节省了大量的时间。

为了优化发布周期,他们识别了一些访问路径很长的测试用例:

我们实施了深度链接开发,允许直接访问项目内的相关页面。这种优化节省了大量的时间。

InfoQ 就移动测试自动化采访了 Burak Ergören。

InfoQ:在你开始移动测试自动化项目之前,情况是怎样的?

Burak Ergören:我们只有一个手动测试过程,使用由移动 QA 工程师准备的测试用例清单一步一步地进行检查。我们尝试在不同设备版本上验证这个手动测试过程,非常耗时。

我们最大的问题是,如果我们在手动测试检查表的最后阶段遇到了严重的错误,那么这个过程可能会停止,并且必须重新开始。

InfoQ:你学到了什么?

Ergören:开发一个移动测试自动化项目需要投入大量的时间和精力。与 Web 自动化相比,移动自动化更具有挑战性。

诸如移动设备的稳定性、网络连接以及连接到这些设备的服务器的持续维护等因素都需要花费大量的精力和时间。

在这种情况下,诸如监视版本更新并将其无缝地集成到项目中、尽量减少不稳定的测试用例以及日常维护等任务,对于保证项目的稳定性至关重要。

我们都会经历日常生活的起起伏伏;有时候,我们可能会很难把注意力集中在工作上,从而导致了潜在的错误。而自动化没有人类情感,它会忠实地遵循我们提供的指令。

原文链接:

https://www.infoq.com/news/2024/02/continuous-mobile-development/

声明:本文为 InfoQ 翻译,未经许可禁止转载。

今日好文推荐

没有App,也没有 App Store,未来的手机会干掉全部应用开发人员吗?

微软开抢年收入上亿美元的 Redis 饭碗?开源性能遥遥领先的 Garnet:无需修改,Redis 客户端可直接接入

重磅!英伟达官宣全球最强AI芯片:性能提升 30 倍,并将重新设计整个底层软件堆栈

刚刚!马斯克开源 Grok:参数量近 Llama 四倍,成全球最大开源模型

相关推荐

  • 大模型企业怎么“卷”过 | 直播预告
  • 把大模型装进手机,小米、OPPO、vivo 卷起来了!
  • Stable Diffusion核心团队全部离职!Kimi大面积宕机,月之暗面已扩容5次;Redis不再“开源”引争议 |Q资讯
  • 能玩3D游戏的AI玩家!谷歌新智能体SIMA发布,但水平还在“新手村”
  • 微软围着Copilot 转!首款AI PC能算惊艳吗?网友:9分钟宣传片让人昏昏欲睡
  • Redis“叛逃”开源,得罪了几乎所有人
  • 搭建一个符合大厂标准的Vue3+Ts +Vite脚手架
  • JS官方宣布:通过了groupBy方法的提案!开发效率又提升了~
  • AI的大机会
  • Redis 不再开源??
  • JDK 22 发布正式版了
  • 华为某外包:名校毕业,自以为能力吊打华为16级以上员工,年薪总包却只有30万。网友:刚接触职场?自我感觉太良好了?
  • 浅聊一下最接近英伟达B200的AI芯片
  • 72岁法国概率论大佬获阿贝尔奖,陶哲轩:他的知名度理应更高
  • Kaggle竞赛赢得根本停不下来--Psi.
  • 每日 prompt:天空之岛🏝️
  • Stable Diffusion核心团队全离职,微软6.5亿收购Inflection AI
  • 如何画好一张架构图?
  • 和尚都念数字经了,你还做不好数字化?
  • 2.2K Star绝美!好看的不得行的服务器仪表盘