Partilhar via


Gerir testes instáveis

Serviços de DevOps do Azure

A produtividade para desenvolvedores depende da capacidade dos testes de encontrar problemas reais com o código em desenvolvimento ou atualização de forma oportuna e confiável. Os testes Flaky apresentam uma barreira para encontrar problemas reais, uma vez que as falhas muitas vezes não se relacionam com as mudanças que estão sendo testadas. Um teste instável é um teste que fornece resultados diferentes, como aprovado ou reprovado, mesmo quando não há alterações no código-fonte ou no ambiente de execução. Os testes Flaky também afetam a qualidade do código enviado.

Nota

Esse recurso só está disponível nos Serviços de DevOps do Azure. Normalmente, os novos recursos são introduzidos primeiro no serviço de nuvem e, em seguida, disponibilizados no local na próxima versão principal ou atualização do Azure DevOps Server. Para obter mais informações, consulte Linha do tempo do recurso do Azure DevOps.

O objetivo de trazer o gerenciamento de testes escamosos no produto é reduzir a dor do desenvolvedor causada por testes escamosos e atender a todo o fluxo de trabalho. O gerenciamento de testes Flaky oferece os seguintes benefícios.

  • Deteção - Deteção automática de teste instável com repetição ou com extensibilidade para integrar o seu próprio método de deteção personalizado

  • Gestão da inconsistência - Uma vez que um teste é marcado como inconsistente, os dados estão disponíveis para todos os fluxos de trabalho para esse ramo

  • Relatório sobre testes intermitentes - Possibilidade de escolher entre evitar falhas de compilação causadas por testes intermitentes ou usar a etiqueta de intermitência apenas para solução de problemas.

  • Resolução - Criação manual de bugs ou teste manual de marcação e desmarcação como escamoso com base na sua análise

  • Fechar o ciclo - Reiniciar teste instável como consequência da resolução de erros / inserção manual

Ciclo de vida instável

Ative a gestão de testes intermitentes

Para configurar o gerenciamento de testes intermitentes, escolha Configurações do Projeto e selecione Gerenciamento de Testes na seção Pipelines.

Deslize o botão Ligar/Desligar para Ativado.

Screenshot da Gestão de Testes, deteção de testes Flaky ativada, deteção do sistema.

A configuração padrão para todos os projetos é usar testes instáveis para resolução de problemas.

Nota

Alternar entre sistemas é intrinsecamente perturbador, pois todo o histórico de instabilidade armazenado no Azure DevOps é eliminado durante a transição.

Deteção de teste irregular

O gerenciamento de testes Flaky suporta deteção personalizada e do sistema.

  • Deteção do sistema: O Azure DevOps tem um mecanismo interno para detetar testes instáveis. Isso envolve a reexecução dos testes com falha dentro da mesma execução de pipeline. Se um caso de teste falhar inicialmente, mas passar na nova execução, ele será marcado como instável. Essa deteção é fortemente acoplada à tarefa VSTest , que reexecuta testes com falha na mesma execução de tarefa. Outro método envolve a reexecução de trabalhos com falha no pipeline (manualmente clicando em "reexecutar trabalhos com falha" em qualquer execução de pipeline). Se um teste passar na nova execução, será marcado como instável.

    Nota

    Depois que um teste é marcado como flaky, os dados ficam disponíveis para todos os pipelines dessa ramificação para ajudar na solução de problemas em cada pipeline.

  • Deteção personalizada: essa abordagem permite que sistemas externos integrem sua própria lógica para detetar testes escamosos e confiem no Azure DevOps para rastreamento e gerenciamento consistentes. A comunicação com o Azure DevOps é habilitada usando a API de Atualização de Metadados de Resultado. A API requer um ID de referência de caso de teste, um sinalizador indicando se o teste é considerado instável e a ramificação do repositório onde a instabilidade foi observada. O usuário deve ser capaz de obter a ID de referência do caso de teste da API Get Test Result By Id . Assim que esta informação é enviada para o Azure DevOps, o sistema armazena e propaga o estado de instabilidade para esse caso de teste em execuções de pipeline posteriores. Depois que um teste for marcado como instável, o Azure DevOps continuará a tratá-lo dessa forma até que seja desmarcado manualmente.

Captura de tela do Gerenciamento de teste, Deteção de teste Flaky habilitada, Deteção personalizada.

Opções de teste instáveis

As opções de testes Flaky especificam como os testes Flaky são apresentados nos relatórios de teste, bem como as funcionalidades de resolução, conforme descrito nas secções a seguir.

Gestão e relatórios de testes instáveis

Na página Gestão de testes, em Opções de teste instáveis, você pode definir opções sobre como os testes instáveis são incluídos no relatório Resumo do teste. Os dados do teste Flaky para o teste aprovado e reprovado estão disponíveis em Resultados do teste. A tag Flaky ajuda a identificar testes instáveis. Por padrão, testes instáveis são incluídos no Resumo do Teste. No entanto, se pretendes garantir que falhas de testes instáveis não causem falhas no teu pipeline, podes optar por não incluí-las no teu relatório de testes e suprimir a falha. Essa opção garante que os testes escamosos (aprovados e reprovados) sejam removidos da porcentagem de aprovação e mostrados em Testes não relatados, conforme mostrado na captura de tela a seguir.

Relatórios Inconsistentes

Nota

O relatório de resumo de teste é atualizado somente para a tarefa de teste do Visual Studio e a tarefa Publicar resultados de teste. Talvez seja necessário adicionar um script personalizado para suprimir falhas de teste intermitentes em outros cenários.

Testes marcados como instáveis

Você pode marcar ou desmarcar um teste como instável com base na análise ou no contexto, escolhendo Instável (ou Não Instável, dependendo de o teste já estar marcado como instável).

Marcar Teste Inconsistente

Quando um teste é marcado como instável ou estável num pipeline, nenhuma alteração é feita no pipeline atual. Somente em execuções futuras desse teste é que a configuração escamosa alterada é avaliada. Os testes marcados como instáveis têm a etiqueta 'Marcado como instável' na interface de utilizador.

Confirmar teste instável

Ajuda e suporte