推荐几个网赌网址的客户是一个社交约会应用程序,在全球范围内的认可和存在超过100个国家.
它是一个非常成功的社交媒体应用程序,拥有数百万订阅者和每天超过10亿次的点击, 客户端的工程团队过去和现在都面临着在Android上发布常规软件更新的挑战, iOS, 和网络平台,同时保持高质量标准,以满足其常规用户.
当产品通过A/B推荐几个网赌网站推动新想法时,每次发行的变化速度急剧增加 手动功能推荐几个网赌网站 无法满足两周发行的需求.
In 2016, 推荐几个网赌网址被要求与内部工程团队联合起来,构建当时的产品, 新引入的XCUITest库用于iOS和Espresso库用于Android.
只有手动推荐几个网赌网站不能满足两周发布一次的需求,因为变化的速度是 大幅增加 而通过A/B推荐几个网赌网站推动新想法.
结果:
- 大约20%的功能推荐几个网赌网站用例是自动化的
- 全回归时间缩短30%
- ~自动化客户端分析几乎每次发布都能发现P0/P1 bug(手动推荐几个网赌网站非常耗时)
推荐几个网赌网址的团队似乎已经取得了成功,直到推荐几个网赌网址开始与开发者进行CI战斗.
让推荐几个网赌网址来看看一个典型的CI架构:
- GitHub库与应用程序代码库
- 詹金斯CI
- 每个PR及其连续提交都会触发针对PR分支的检查链,其中包括但不限于代码编译, 单元推荐几个网赌网站, 代码风格验证
- 上面描述的检查将阻塞PR合并—如果上面列出的检查之一失败, 在这个问题解决之前,PR不会并入主要的开发部门.
挑战:
为Android/IOS存储库添加UI自动化推荐几个网赌网站,与其他检查一起运行-编译, 单元推荐几个网赌网站, 在每个Pull Request上lint
问题:
01
UITests由于其性质可能是脆弱的. 易碎性可能取决于许多因素——设备上的USB连接,互联网连接
02
在应用程序中不断更改UI会导致UITest失败,并需要在推荐几个网赌网站代码中不断更新
03
因为推荐几个网赌网址使用的是本地推荐几个网赌网站框架(Espresso, XCTest)用于编写快速可靠的iOS和Android UI推荐几个网赌网站, 这些推荐几个网赌网站与应用程序代码位于同一个存储库中. 因此,当开发者制作PR并中止一个或多个推荐几个网赌网站时, 更改推荐几个网赌网站或排除坏的推荐几个网赌网站将需要提交或另一个PR. 因此,所有检查都需要再次运行,这非常耗时. 开发者不仅会被阻止,还会被激怒,因为他可能会改变UI流,从而让UI推荐几个网赌网站对这样的更改做出反应(假阳性)。不高兴和愤怒的开发者会明显地反对在合并前运行UI推荐几个网赌网站,并会争取将UI推荐几个网赌网站移到合并后执行.
推荐几个网赌网站协调器
检疫
推荐几个网赌网站用例数据(Jira, Testrail)

远程推荐几个网赌网站包含/排除
最新推荐几个网赌网站的完整列表
解决方案:
推荐几个网赌网站协调器——在CI中管理推荐几个网赌网站的框架.
1.
启用/禁用特定的自动化推荐几个网赌网站的能力,而不需要对源代码进行任何更改. 如果推荐几个网赌网站失败是由于开发人员变更或其他原因, 可以从主推荐几个网赌网站池中快速禁用一个,以解除CI阻塞. 协调器同时使用Unit和uitest!
2.
隔离是推荐几个网赌网站协调器的另一个功能. 新添加的推荐几个网赌网站在添加到CI推荐几个网赌网站池之前必须连续通过10次. 同样的规则适用于更新/固定的推荐几个网赌网站. 这样的特性消除了CI中的脆弱!
结论:
回顾在这个项目上完成的所有工作,推荐几个网赌网址绝对可以称之为成功. 尽管必须处理不断变化的应用,并在非常紧迫的截止日期前完成工作, 推荐几个网赌网址不仅成功地编写和运行了多个推荐几个网赌网站用例, 但是也要认识到过程中变更的需要和重要性,并随后提出解决方案,消除与推荐几个网赌网站自动化相关的许多问题.
所有这些都帮助推荐几个网赌网址的团队认识到详细规划的重要性, 尤其是在项目的早期阶段. 除了, 在一个跨越不同时区的跨国团队中工作,尤其是在紧迫的截止日期周围工作,让推荐几个网赌网址有机会使用敏捷方法工作,并为推荐几个网赌网址的客户关注最终产品的质量. 在做这些事情的过程中, 推荐几个网赌网址不仅帮助交付了更好的产品或改进了一些指标, 但推荐几个网赌网址的团队也在努力学习和成长.