Teste como o Google: práticas recomendadas de gigantes do setor (04.25.24)

Podemos aprender muito com os gigantes da indústria observando seus métodos e abordagens em fluxos de trabalho.

Como eles conseguem manter o processo de teste de software dentro de milhões de linhas de código?

Como eles organizam o fluxo de trabalho com milhares de engenheiros de controle de qualidade?

Como eles lidam com a expansão do projeto?

A experiência de empresas como Google ou Spotify pode ajudar a melhorar os processos de teste em pequenas empresas e equipes.

Vamos dar uma olhada mais de perto em como os gigantes testam.

Google: a importância da cobertura de código

Ainda assim, muitos engenheiros argumentam sobre a importância de tal medida de eficiência de teste de software como cobertura de código. Especialistas do Google insistem que os dados de cobertura de código podem ser informações valiosas para avaliar riscos e gargalos em uma atividade de teste. Carlos Arguelles, Marko Ivanković e Adam Bender compartilham as melhores práticas para cobertura de código:

  • A cobertura de código pode ajudar a reduzir bugs e falhas. A experiência dos engenheiros de controle de qualidade do Google mostrou que o aumento da cobertura de código leva a mudanças nas abordagens e atitudes em relação aos testes. Equipes com cobertura de código como objetivos principais tendem a melhorar a testabilidade de seus produtos. Eles escrevem um código mais eficiente para o teste para atingir as metas de teste com mais facilidade e menos tempo.
  • Use o teste de mutação para garantir uma alta cobertura de teste. A cobertura completa do código pode ser um desperdício e não garante uma cobertura de teste de alta qualidade. Uma alta porcentagem de cobertura de código não significa que todas as funções foram testadas corretamente. Isso significa que o código foi testado em geral. Para garantir a alta qualidade da cobertura do teste, os especialistas do Google recomendam o uso de testes de mutação. Este método inclui a implementação de pequenas alterações no código e a verificação de como os conjuntos de teste os identificam.
  • A porcentagem de cobertura de código depende de muitos fatores. Não devemos almejar uma alta cobertura de código, mas uma cobertura baixa também leva a um grande número de falhas. E a questão é: qual é a cobertura de código específica para um determinado sistema? Para responder a essa pergunta, devemos considerar coisas como criticidade, complexidade e frequência de alteração do código. A cobertura do código é uma decisão de negócios e os proprietários do produto devem defini-la.
  • Analise o que cobrir. Não podemos obter 100% da cobertura do código, então os engenheiros de controle de qualidade devem observar isso as partes mais valiosas do código são cobertas. Uma equipe de desenvolvedores deve discutir e pensar não sobre quantas linhas de código são cobertas, mas o que exatamente é coberto.
Spotify: estratégia confiável

Spotify é uma empresa em rápido crescimento. Foi criada em 2008 com 150 funcionários. Em 2019, o número de funcionários cresceu para 4.405. Hoje o Spotify atende a cerca de 300 milhões de usuários em todo o mundo, tornando-se o serviço de streaming mais popular do mundo.

Podemos aprender lições sobre como o Spotify dimensiona seus testes processos de desenvolvimento.

  • Definir objetivos de produto para a equipe de controle de qualidade. Spotify tem equipes multifuncionais. Cada equipe tem objetivos e um conjunto de habilidades específicas para abordar esses objetivos. A estrutura da equipe depende de metas. Conseqüentemente, algumas equipes consistem apenas de desenvolvedores e algumas têm desenvolvedores e testadores. Assim, os testadores cooperam estreitamente com a equipe de desenvolvimento e se concentram nos objetivos principais do produto. Tal abordagem permite que o Spotify dimensione o processo de desenvolvimento de forma eficiente.
  • O teste de automação é uma ferramenta, mas não uma panacéia. O gerente de teste e desenvolvimento do Spotify Kristian Karl afirma que os testadores de software não podem ser substituídos pela automação. O teste requer experiência e conhecimento humanos. O teste de automação é uma ferramenta robusta para acelerar o processo, mas os humanos tomam decisões e analisam relatórios automatizados. Spotify usa automação como uma das ferramentas de escala. Ele permite que os testadores deixem a rotina para algoritmos e se concentrem nos objetivos do produto.
SpaceX: o teste contínuo é obrigatório

A SpaceX é uma empresa inovadora conhecida por transporte espacial comercial, um sistema de lançamento reutilizável alta eficiência.

Nicholas Chaillan, diretor de software da Força Aérea, disse que o sistema de departamento de desenvolvimento da SpaceX é cinco vezes mais eficiente do que empresas com fluxo de trabalho clássico. Como a SpaceX lida com o processo de teste com tal desempenho?

DevOps e as abordagens Agile permitem que os engenheiros de controle de qualidade da SpaceX forneçam testes de automação em massa. Durante o ciclo de desenvolvimento, os testadores fornecem testes contínuos para obter feedback instantâneo e eliminar os riscos existentes. Assim, eles estão trabalhando proativamente, testando com frequência e no início.

A empresa desenvolveu uma estratégia sobre como implementar testes contínuos no processo de desenvolvimento.

  • Priorize o valor. Como o Google, SpaceX recomenda o uso de métricas de cobertura de código para entender o que você deve automatizar e o que não deve. Ajuda a otimizar os testes contínuos e aprimorar as atividades que já foram realizadas.
  • A chave é o teste automatizado de ponta a ponta. Faça da análise de impacto parte da integração contínua. Ele permite que as empresas analisem como adicionar novas funções ou alterar o código pode afetar um sistema geral ou algumas partes de seu sistema.
  • A equipe deve ter um ambiente de teste estável e facilmente replicável. Uma ferramenta como o Virtual Machine Snapshot pode ajudar a salvar o estado dos dados, retornar ao teste ou retomar o trabalho.
  • Use inteligência artificial e aprendizado de máquina para analisar relatórios de teste. IA Ferramentas baseadas em agilizam a implantação e otimizam o processo de teste.
  • Construa uma arquitetura de integração contínua robusta. A principal vantagem do sistema de CI são os curtos períodos entre a construção e os testes do código . O teste contínuo deve estar envolvido no processo de desenvolvimento e envolver os tipos de teste necessários.
  • Resumir

    Cada empresa tem sua estratégia, processo e abordagens de teste. Cada equipe seleciona e ajusta o processo de teste com base nos objetivos finais e nas capacidades do produto. A principal tarefa de qualquer especialista é pensar no cliente e no usuário final, adaptar-se aos novos requisitos e adotar a experiência dos melhores do setor.


    Vídeo do youtube: Teste como o Google: práticas recomendadas de gigantes do setor

    04, 2024