Imagine que o software mais importante da sua empresa quebra de repente. O que aconteceria? Os pedidos podem ser perdidos, os prazos podem ser perdidos, mas os clientes definitivamente estariam reclamando.
Esse cenário de pesadelo pode ser evitado: implementando um processo de testes contínuo e rigoroso, que detecta problemas antes que eles causem caos. Mas implementar esse processo na organização é mais difícil do que parece.
Neste artigo, mostramos tudo o que você precisa pensar ao começar os testes na sua empresa e como se beneficiar deles a longo prazo.
Testar práticas recomendadas para equipes de produtos
A primeira parte deste artigo aborda o processo de início da implementação de testes no seu fluxo de trabalho.
Implementar uma cultura de testes em sua equipe
A introdução bem-sucedida de testes em sua equipe exige que todos compartilhem uma mentalidade comum e vejam a qualidade não como um fardo, mas como um investimento. Esse processo, assim como qualquer outra mudança cultural, exige tempo e consistência.
Uma coisa que pode ajudar a moldar essa cultura são reuniões regulares para discutir defeitos, o impacto que eles tiveram, de onde vieram e o que foi necessário para corrigi-los. Isso ajuda a criar conscientização sobre por que é bom evitar esses defeitos.
Ter uma pessoa dedicada na equipe que supervisiona e orienta o esforço pode aumentar muito as chances de sucesso. Alguém que define as diretrizes da equipe (ou mesmo de toda a organização), coleta as práticas recomendadas e as compartilha e defende o esforço em todos os níveis.
Outro instrumento útil pode ser alternar o papel de suporte do produto. Receber insights em primeira mão e sem filtros dos seus clientes e aprender sobre os problemas cotidianos que eles enfrentam com seu produto pode ser uma experiência valiosa para gerentes de produto, designers e desenvolvedores.
O objetivo é que todos na equipe entendam que a qualidade é um recurso, tão importante quanto qualquer outra funcionalidade que você crie para o produto. Depois que todos adotaram essa mentalidade, é uma progressão natural entender que os testes também são um recurso. Porque são os testes que garantem a qualidade do envio.
Um processo de teste passo a passo
Assim que houver alinhamento entre as diferentes equipes envolvidas no desenvolvimento do produto, é possível formalizar ainda mais a existência e o uso dos testes.
Tornar os testes parte da "Definição de Conclusão"
Ao adicionar testes como um requisito de recurso, você declara que um recurso não está pronto para ser enviado até que seja devidamente testado e de forma automática.
Executar testes regularmente
Depois de implementados, os testes automatizados podem ser sua proteção em todas as etapas do processo de desenvolvimento. Eles não precisam de intervenção humana e podem ser executados em todas as etapas críticas do pipeline de desenvolvimento. Exemplo:
- Em cada confirmação.
- Em cada solicitação de envio.
- Após cada versão completa ou alteração de ambiente.
Se você depende de serviços de terceiros no seu ambiente de produção, pode fazer sentido executar seus testes na produção para garantir que as APIs de terceiros se comportem conforme o esperado.
Definir e coletar métricas
Definir um conjunto de métricas é importante para medir a eficácia dos testes e o impacto dos fluxos de trabalho na sua empresa. Veja alguns exemplos de métricas:
- Lançamentos por mês: um número maior de versões por mês pode indicar um processo de desenvolvimento mais ágil. Os testes automatizados desempenham um papel fundamental aqui, garantindo que as versões possam prosseguir com confiança.
- Relatórios de bugs: uma tendência decrescente nos relatórios de bugs pode ser um sinal positivo de que os testes e processos de desenvolvimento são eficazes.
- Cobertura de teste: embora nunca seja uma métrica exata, a cobertura pode ser um bom indicador da profundidade dos testes de casos de uso críticos.
Essas métricas também são influenciadas por outros fatores que podem distorcê-las. Por exemplo, a contagem de versões pode diminuir durante as festas de fim de ano, enquanto os relatórios de bugs aumentam. Portanto, não confie em apenas alguns e certifique-se de cruzá-los com outros dados disponíveis para sua equipe.
Quando você implementa com sucesso essas etapas com sua equipe, a integridade do produto definitivamente se beneficiará a longo prazo. Mas você ainda pode fazer muito mais!
Como testar práticas recomendadas para administradores de sistema
As equipes de produtos não podem trabalhar sozinhas. Elas dependem do hardware, das ferramentas e da infraestrutura mantidos pelos administradores do sistema. Embora os administradores de sistema geralmente não contribuam diretamente para o desenvolvimento do produto, eles ainda podem influenciar o fluxo de trabalho de desenvolvimento para sempre. Por exemplo, ao gerenciar ativamente a versão do navegador, determinados grupos de usuários na empresa usam.
Esta segunda parte do artigo explica como isso funciona, usando canais e políticas empresariais do Chrome.
Canais de lançamento do Chrome
Por padrão, o Chrome faz atualizações automáticas para garantir que todos os usuários executem a versão mais recente, estável e segura do navegador, incluindo todos os recursos mais recentes, ou seja, a versão do Chrome lançada no Canal Stable.
Como empresa que desenvolve um produto baseado na Web, você pode usar um navegador à frente do canal estável, para dar às equipes de produto tempo para adaptar seu produto às mudanças na plataforma da Web.
Nesse caso de uso, o Chrome oferece um total de quatro canais de lançamento, destinados a diferentes grupos de usuários.
No caso do Chrome, existem diferentes canais de lançamento que podem ser usados para prever futuras mudanças no navegador e testar os recursos mais recentes antes que eles fiquem amplamente disponíveis:
- Canal estável: é onde a maioria dos usuários está. O Canal Stable é atualizado automaticamente quando há uma nova versão do Chrome, que acontece mensalmente.
- Canal Beta: esta versão se tornará estável em quatro a seis semanas, para que você possa visualizar e testar uma próxima versão estável e se preparar para ela.
- Canal de Desenvolvedor: recebe uma nova versão do Chrome uma vez por semana e inclui todas as correções mais recentes que vão passar para a versão Beta. Como o nome do canal sugere, ele está em desenvolvimento e pode apresentar falhas inesperadasmente, mas também inclui os recursos mais recentes, às vezes muito antes de chegar à versão estável. Isso faz do Canal de Desenvolvedor uma ótima ferramenta para prototipagem e desenvolvimento de ponta.
- Canal canário: o canal mais experimental, contendo todos os recursos mais recentes, mas sem muitos testes. Liberado pelo menos uma vez por dia.
Se você quiser saber mais sobre os canais do Chrome, confira o episódio relevante do Chrome Concepts.
Como usar canais em uma organização exemplar
A estrutura das equipes de produto varia entre as organizações, já que não há uma abordagem única para todas as situações de desenvolvimento de software. Como exemplo, vamos supor uma equipe com as seguintes funções: gerenciamento de produtos, UX e interface do usuário, engenharia, operações e suporte.
Para uma organização como essa, pense na seguinte divisão de canais:
- Gerenciamento de produtos: os PMs geralmente podem estar no canal stable para usar a mesma versão que a maioria dos usuários. Ocasionalmente, eles podem usar os canais beta ou dev se estiverem trabalhando em um recurso que exige uma API que ainda não tenha sido lançada.
- Engenharia e UX: partes dessas equipes podem estar no canal dev para dar a elas acesso aos recursos mais recentes, como Transições de visualização, mesmo antes de estarem estáveis.
- Operações: podem estar na versão Beta, para prever falhas que vão afetar os usuários.
- Suporte: pode permanecer no canal stable para garantir que eles estejam interagindo com o produto no mesmo navegador que a maioria dos clientes.
Usar políticas corporativas para gerenciar canais
Em vez de dar diretrizes e deixar que a decisão sobre qual canal usar, o Chrome também oferece ferramentas empresariais e administrativas para gerenciar ativamente qual canal cada usuário acaba usando. Isso é útil, porque aumenta imediatamente a superfície de teste de alguns indivíduos para um conjunto determinístico de usuários, o que ajuda a identificar falhas o mais cedo possível e de maneira rastreável.
Se você quiser usar esse nível de controle, recomendamos esta configuração:
- Funcionários (usuários do app): para minimizar o risco de interrupção, a maioria dos funcionários precisa estar no canal stable, que foi totalmente testado pela equipe de testes do Chrome. Além disso, uma pequena porcentagem de usuários (de 5 a 10%) pode estar no canal Beta. Esse canal tem acesso a uma visualização de quatro a seis semanas do Stable e pode ajudar os administradores a descobrir possíveis problemas com uma versão, oferecendo mais tempo para resolver os problemas antes que o lançamento seja lançado para todos.
- Departamento de TI: os membros do departamento de TI, incluindo os administradores de sistema, podem estar no canal beta ou dev para receber uma visualização de 4 a 6 ou 9 a 12 semanas do que está chegando à versão estável do Chrome.
Canais de lançamento de longo prazo
O desenvolvimento de produtos pode não ser tão rápido quanto o planejado, e a cadência de lançamento de um mês do Chrome pode ser muito alta. Para esse caso de uso, o Chrome oferece um Canal Stable estendido que permite receber atualizações de recursos com menos frequência, mas ainda receba correções de segurança. Ele é atualizado a cada oito semanas.
O diagrama a seguir mostra como diferentes marcos ocorrem nos diferentes canais de lançamento do Chrome:
- Os estáveis e estendidos enviam as mesmas versões nas primeiras quatro semanas. Depois disso, as duas divergências.
- Não há um Canal Beta estendido. Em vez disso, o ciclo Beta padrão de quatro semanas é usado para estabilizar o estável e o estendido. As empresas que optam por ativar o Stable estendido de oito semanas precisam continuar executando o Canal Beta como fazem hoje para identificar proativamente problemas que podem afetar o ambiente.
Conclusão
Os testes são uma parte crucial das empresas de desenvolvimento de software para garantir a qualidade dos produtos e também um passo importante para os administradores de sistemas, para dar aos funcionários de uma organização acesso a software de alta qualidade e evitar a interrupção dos processos comerciais.
Para ter sucesso ao implementar um fluxo de trabalho de teste dentro da sua organização, é importante que todos compartilhem a mesma mentalidade de que a qualidade e, portanto, o teste é um recurso.
Neste artigo, analisamos diferentes maneiras de integrar as práticas recomendadas de teste à sua organização. Para uma análise detalhada das ferramentas de teste existentes, confira nosso artigo Ferramentas do Chrome para testes automatizados e simples.
Para orientações práticas sobre testes, do início ao fim, confira também nosso curso "Aprenda testes" recente e as práticas recomendadas de automação de testes em web.dev.