【DevOps】Android App工程的QA自动化实践

2017-03-23T09:56:10+08:00 | 3分钟阅读 | 更新于 2017-03-23T09:56:10+08:00

Macro Zhao

【DevOps】Android App工程的QA自动化实践

推荐超级课程:

在我们的项目,我们过去5年一直在编写应用代码库(20万行代码),但每当新的PR或提交合并到代码库时,我们没有进行任何验证,您只需要从其他同行那里手动获取审查。有时这会导致无法编译的代码,单元测试失败,应用启动时崩溃,内存泄漏。

这次在我们的BBD之后,我们决定在提出新的PR时进行一些自动验证,以确保只有在以下验证成功后,PR才能被合并:

代码编译 -:确保代码能够使用error-prone(https://github.com/google/error-prone )编译,并生成发布构建。

Checkstyle验证 -: https://github.com/checkstyle/checkstyle 确保开发者在提出PR时遵循正确的编码标准,您也可以创建自己的自定义checkstyle xml文件并包含您想要添加的验证。

FindBugs验证 -: http://findbugs.sourceforge.net/ 曾经我们的代码库中有大约1600个FindBugs警告,我们修复了所有高优先级的警告,并确保新的提交不会添加任何高优先级的警告。您可以设置在构建过程中因为任何警告而失败,但目前我们只针对高优先级警告失败。您可以在build.gradle文件中设置警告级别。

单元测试验证 -: 在合并PR之前确保所有单元测试都成功通过。

Apk大小验证 -: 应用大小始终是从应用商店下载应用的关键因素,在每次新版本发布时,我们必须确保我们没有添加任何会大幅增加应用大小的功能。

以前我们通常在发布前2-3天评估应用大小,在这种情况下,很难找出导致apk大小增加的提交,考虑到我们有30天的发布周期,并且有10个开发者定期在该分支上提交。

我们是如何解决这个问题的 -:

感谢apk大小分析器工具 https://wiki.jenkins.io/display/JENKINS/Android+Apk+Size+Watcher+Plugin ,我们能够跟踪每次新提交的Apk大小,并且如果与之前的构建相比,应用大小超过了特定的阈值增加,它还会使PR无法合并。

所有这些验证将需要大约8分钟来完成,这将确保

  • 无法编译的代码永远不会被提交到分支。
  • 现有的单元测试不会失败。
  • 轻松找出增加了应用大小的提交。
  • 确保新的提交遵循编码标准,并且不包含任何Java错误。

失败的PR只有在管理员批准后才能合并 -:

除此之外,我们还会在日常基础上使用付费工具进行一些其他检查,这些检查将构建发布分支的apk并进行以下验证:

内存泄漏,应用崩溃,应用减速 - 除了应用大小,我们还监控内存泄漏,应用冷启动时间和应用崩溃。为了确保新的更改不会影响这些值,我们集成了NimbleDroid工具(https://nimbledroid.com/ ,付费版),它将使我们能够每天验证所有这些更改。

© 2011 - 2025 Macro Zhao的分享站

关于我

如遇到加载502错误,请尝试刷新😄

Hi,欢迎访问 Macro Zhao 的博客。Macro Zhao(或 Macro)是我在互联网上经常使用的名字。

我是一个热衷于技术探索和分享的IT工程师,在这里我会记录分享一些关于技术、工作和生活上的事情。

我的CSDN博客:
https://macro-zhao.blog.csdn.net/

欢迎你通过评论或者邮件与我交流。
Mail Me

推荐好玩(You'll Like)
  • AI 动·画
    • 这是一款有趣·免费的能让您画的画中的角色动起来的AI工具。
    • 支持几十种动作生成。
我的项目(My Projects)
  • 爱学习网

  • 小乙日语App

    • 这是一个帮助日语学习者学习日语的App。
      (当然初衷也是为了自用😄)
    • 界面干净,简洁,漂亮!
    • 其中包含 N1 + N2 的全部单词和语法。
    • 不需注册,更不需要订阅!完全免费!
  • 小乙日文阅读器

    • 词汇不够?照样能读日语名著!
    • 越读积累越多,积跬步致千里!
    • 哪里不会点哪里!妈妈再也不担心我读不了原版读物了!
赞助我(Sponsor Me)

如果你喜欢我的作品或者发现它们对你有所帮助,可以考虑给我买一杯咖啡 ☕️。这将激励我在未来创作和分享更多的项目和技术。🦾

👉 请我喝一杯咖啡

If you like my works or find them helpful, please consider buying me a cup of coffee ☕️. It inspires me to create and share more projects in the future. 🦾

👉 Buy me a coffee