Mantenha tudo organizado com as coleções
Salve e categorize o conteúdo com base nas suas preferências.
O Firebase Test Lab para Android reduziu os custos de testes de app da American Express em 50%
Introdução
O app para dispositivos móveis AMEX, que conta com um milhão de downloads em Android, é usado pelos
membros do programa do cartão para rastrear gastos e recompensas, encontrar ofertas, pagar
contas e aproveitar recursos que só podem ser acessados pelo app. Para facilitar as atualizações
frequentes, a American Express criou um laboratório de dispositivos para testar as alterações no código
do app em todas as plataformas antes do lançamento.
Desafiar
Devido às dezenas de dispositivos executando versões diversas do Android, era difícil
escalonar o laboratório. Por causa da capacidade de processamento limitada do laboratório
de dispositivos, os novos testes diminuíram a produtividade, e quando novos membros
entravam na equipe, o aumento de mudanças no código gerava uma carga
ainda maior.
Manter o laboratório de dispositivos era um processo demorado
e custoso, que distraía a atenção dos engenheiros que poderiam estar
concentrados em aprimorar e gerar mais valor para
membros do programa do cartão. Era comum que os dispositivos tivessem problemas que exigiam intervenção
manual, muitas vezes forçando todo o pacote de testes a ser executado novamente.
Dispositivos problemáticos eram regularmente removidos
do laboratório, e aguardar os dispositivos substitutos muitas vezes
causava um tempo de inatividade.
Solução
Durante o período Alfa do produto, a frequência de atualização
do app AMEX, o compromisso com versões de alta qualidade e
a disposição dos engenheiros para colaborar criaram um ambiente ideal
para a equipe do Firebase Test Lab. Por sua vez, a American Express,
ofereceu feedback valioso que ajudou a moldar
a versão do produto que foi lançada. O Firebase Test Lab foi integrado
ao pacote complexo de centenas de testes
de instrumentação da American Express. Mesmo enquanto o Test Lab estava nas fases iniciais
de desenvolvimento, a American Express conseguiu passar
todos os testes de integração contínuos para o Test Lab e desativar
com êxito boa parte do laboratório de dispositivos. Assim, os engenheiros que cuidavam da
manutenção dos dispositivos puderam mudar o foco para o desenvolvimento de novos
recursos para membros enquanto gravavam e executavam testes
para garantir a alta qualidade do produto.
Além disso, a American Express conseguiu escalonar o número de
testes sem se preocupar com a redução da velocidade na execução do pacote de testes
e a expansão do laboratório interno de dispositivos. Isso inclui lidar
com picos no número de testes devido à entrada de novos membros e
realizar mais mudanças no código. No momento, a American Express executa
mais de 1.000 testes de instrumentação em cada solicitação de envio, o que
representa centenas de milhares de testes por versão pública.
A execução de tantos testes simultâneos reduz dramaticamente
bugs novos e recorrentes, graças
à capacidade do Firebase Test Lab de carregar
testes em paralelo.
AVISO: os resultados podem variar.
Resultados
30% mais testes na metade do tempo
execução duas vezes mais rápida de todo pacote de testes, sem redução de velocidade quando
novos testes são adicionados
custo 50% menor em comparação ao laboratório interno de dispositivos
Com o Firebase Test Lab, a American Express conseguiu executar todo o imenso pacote de testes Android para todas as solicitações de envio. O Firebase escalona a infraestrutura de testes para que os engenheiros possam se concentrar no código para aprimorar o app e realizar as alterações necessárias de acordo com o pacote de testes."
- Michael Bailey, vice-presidente e engenheiro principal da American Express
[null,null,[],[],[],null,["[*arrow_back*\nExplore other case studies](/case-studies) \n[View more solutions](/solutions) \n\nFirebase Test Lab for Android reduced American Express app test costs by 50%\n\n*** ** * ** ***\n\nIntroduction The AMEX mobile app, with a million Android downloads, is used by\nCard Members to track spending and rewards, find offers, pay\nbills, and enjoy app-only features. To facilitate frequent\nupdates, American Express built a device lab to test code changes\nin their app across all platforms before release.\n\n*** ** * ** ***\n\nChallenge With dozens of devices running various Android releases, the lab\nwas tough to scale. Adding new tests decreased productivity\nbecause of the device lab's limited throughput, and when new team\nmembers joined, the increased number of code changes added even\nmore load.\n\nMaintaining the device lab was time-consuming and costly,\ndiverting the attention of engineers who otherwise would have\nbeen focused on enhancements to drive additional value for Card\nMembers. The devices commonly had issues that required manual\nintervention, often forcing reruns of the entire test suite.\nProblematic devices were regularly removed from the device lab,\nand replacing them often created down-time while the team awaited\nthe arrival of new devices. \n\n*** ** * ** ***\n\nSolution \nDuring the product's alpha period, the frequency of updates\nto the AMEX app, commitment to high-quality releases, and\nwillingness of engineers to collaborate provided an ideal\nenvironment for the Firebase Test Lab team. American Express,\nin turn, provided valuable feedback that helped to shape the\nreleased version of the product. Firebase Test Lab integrated\nwith American Express' complex suite of hundreds of\ninstrumentation tests. Even while Test Lab was in early\ndevelopment, American Express was able to switch all of their\ncontinuous integration testing to Test Lab and successfully\nretire much of their device lab. This enabled the engineers\nmaintaining the devices to shift their focus to shipping new\nfeatures to Card Members while also writing and running tests\nto ensure high product quality. \nIn addition, American Express was able to scale the number of\ntests without worrying about slowing down test-suite execution\nand scaling up a homegrown device lab. This includes handling\nsurges in the number of tests as new team members join and\ngenerating additional code changes. American Express now runs\nover 1,000 instrumentation tests on every pull request, which\nequals hundreds of thousands of tests per public release.\nRunning so many concurrent tests dramatically increases\ntheir ability to prevent new and recurring bugs, all thanks\nto Firebase Test Lab's ability to massively parallelize\ntesting.\n\nDISCLAIMER: Results may vary.\n\n*** ** * ** ***\n\nResults\n\n30% more tests in half the time\n\n2X+ faster execution of full test suite, with no slowdown when adding\ntests\n\n50% lower cost vs. internal device lab \n\nFirebase Test Lab enables American Express to execute our entire extensive Android test suite for every pull request. Firebase takes care of scaling the test infrastructure, so our engineers can focus on the code, driving improvements to the app and corresponding changes to our test suite.\"\n\n\n- Michael Bailey, VP and Principal Engineer, American Express \nTry Firebase today\n\n\nIntegrating it into your app is easy.\n[Get started](https://console.firebase.google.com/) \n\nAll Firebase products \n\nBuild\n\n- [App Check](/products/app-check)\n- [App Hosting](/products/app-hosting)\n- [Authentication](/products/auth)\n- [Cloud Functions](/products/functions)\n- [Cloud Storage](/products/storage)\n- [Data Connect](/products/data-connect)\n- [Extensions](/products/extensions)\n- [Firestore](/products/firestore)\n- [Firebase ML](/products/ml)\n- [Genkit](https://genkit.dev/)\n- [Hosting](/products/hosting)\n- [Realtime Database](/products/realtime-database)\n- [Firebase AI Logic client SDKs](/products/firebase-ai-logic)\n\n[Generative AI](/products/generative-ai) \n\nRun\n\n- [A/B Testing](/products/ab-testing)\n- [App Distribution](/products/app-distribution)\n- [Cloud Messaging](/products/cloud-messaging)\n- [Crashlytics](/products/crashlytics)\n- [Google Analytics](/products/analytics)\n- [In-App Messaging](/products/in-app-messaging)\n- [Performance Monitoring](/products/performance)\n- [Remote Config](/products/remote-config)\n- [Test Lab](/products/test-lab)"]]