Projetar e implementar rastreabilidade de fontes, bugs e qualidade

Concluído

No contexto do DevOps, a rastreabilidade refere-se à capacidade de rastrear alterações e ações ao longo do ciclo de vida de desenvolvimento de software. Esse conceito se aplica a diferentes aspectos desse ciclo de vida, incluindo alterações no código-fonte, resolução de bugs e manutenção do controle de qualidade. Sua implementação é essencial para garantir a confiabilidade do produto, a manutenção e a satisfação do cliente.

A rastreabilidade da fonte permite que os desenvolvedores rastreiem as alterações do código em cenários de colaboração. A rastreabilidade de bugs facilita a identificação, priorização e resolução de questões com o código-fonte. A rastreabilidade de qualidade garante que o software atenda aos padrões de qualidade e às expectativas do usuário, vinculando as atividades de teste, métricas e comentários aos esforços de desenvolvimento.

Criar

Em um alto nível, a rastreabilidade é independente de ferramentas, mas a maneira de abordá-la depende do aspecto do ciclo de vida de desenvolvimento de software que se pretende alcançar. Da mesma forma, as considerações de design e objetivos diferem entre o código-fonte, o bug e a rastreabilidade de qualidade.

Em particular, a rastreabilidade da fonte envolve rastrear o histórico de alterações no código, incluindo quem fez as alterações, quando foram feitas e a finalidade das alterações. Ela facilita as revisões de código, depuração e compreensão da evolução da base de código ao longo do tempo. Do ponto de vista do design, essa funcionalidade se vincula estreitamente às estratégias de ramificação e mesclagem do Git que organizam o trabalho de desenvolvimento. Os desenvolvedores criam branches de recursos para novos trabalhos, confirmam alterações em seus branches e enviam pull requests para revisão. Nesse ponto, seus pares realizam revisões de código e, uma vez concluídas com sucesso, aprovam as alterações a serem incorporadas à ramificação principal.

A rastreabilidade de bugs envolve o rastreamento de bugs ou defeitos relatados durante o teste ou a produção de volta à causa raiz na base de código. Geralmente também depende da captura de informações, como detalhes do relatório de bug, etapas de reprodução, componentes afetados e alterações de código relacionadas. Seus objetivos incluem priorizar e resolver bugs com eficiência para resolver as deficiências de software.

A rastreabilidade de qualidade abrange o rastreamento de atividades e artefatos relacionados à qualidade em todo o processo de desenvolvimento de software. Isso envolve vincular métricas de qualidade, casos de teste, resultados de testes e outras atividades de garantia de qualidade a requisitos, histórias de usuários e alterações de código. A rastreabilidade de qualidade ajuda a avaliar o impacto das alterações de software na sua qualidade e a identificar as áreas de melhoria.

Implementação de rastreabilidade

Os detalhes de implementação de rastreabilidade são diferentes, até certo ponto, dependendo da plataforma DevOps.

Rastreabilidade de origem

Como o GitHub e o Azure DevOps dão suporte ao Git como mecanismo de controle do código-fonte, diversas técnicas de rastreabilidade da fonte se aplicam a ambos. Como resultado, a implementação da rastreabilidade do código-fonte em ambos os casos envolve a adoção de melhores práticas, como escrever mensagens do commit descritivas, usar uma estratégia de ramificação bem definida e exigir pull requests para revisões de código.

No entanto, também há algumas diferenças entre eles. A implementação da rastreabilidade da fonte em repositórios do GitHub normalmente envolve a utilização de recursos como regras de proteção de ramificação para impor processos de revisão de código e garantir que as alterações sejam revisadas antes da mesclagem. A integração do GitHub com as questões permite vincular as alterações de código a questões correspondentes, fornecendo rastreabilidade entre as modificações de código e os requisitos do projeto. O Azure DevOps oferece políticas de ramificação e políticas de pull request para impor verificações de qualidade de código e vincular alterações a itens de trabalho, permitindo rastreabilidade entre as alterações de código e as histórias ou tarefas dos usuários. Além disso, o Azure DevOps fornece integração mais ampla com seu sistema de rastreamento de itens de trabalho, permitindo rastreabilidade mais profunda e recursos de relatórios em comparação com o acompanhamento de questões do GitHub.

Rastreabilidade de bugs

No Azure DevOps, a rastreabilidade de bugs é facilitada por meio do Azure Boards, onde os bugs são rastreados como itens de trabalho e podem ser vinculados a alterações de código, commits e pull request. O Azure Boards permite a criação de fluxos de trabalho personalizados para gerenciamento de bugs, definindo estados como Novo, Ativo, Resolvido e Fechado, proporcionando a visibilidade do ciclo de vida do bug. Além disso, o Azure DevOps oferece integração avançada entre os bugs e outros itens de trabalho, permitindo a rastreabilidade entre os bugs e histórias de usuários, tarefas e épicos.

No GitHub, a rastreabilidade de bugs depende da integração entre as questões e alterações de código, onde os bugs relatados como questões podem ser vinculados a commits e pull requests. O GitHub Actions oferece a capacidade de implementar fluxos de trabalho personalizáveis, incluindo aqueles relacionados à rastreabilidade de bugs. Com o GitHub Actions, você pode definir os fluxos de trabalho que automatizam os processos disparados por eventos em seu repositório do GitHub, como a criação ou modificação de questões. Isso permite criar fluxos de trabalho personalizados para gerenciar bugs, incluindo a definição de estados, atribuição de tarefas e automatização de ações com base em condições específicas. Efetivamente, embora as ações do GitHub forneçam flexibilidade na automação do fluxo de trabalho, elas normalmente exigem mais esforço e personalização em comparação com os recursos integrados do Azure Boards no Azure DevOps.

Rastreabilidade de qualidade

No Azure DevOps, a rastreabilidade da qualidade pode ser gerenciada usando o Test Plans, que permitem que as equipes organizem, executem e acompanhem os casos de teste. O Test Plans fornecem métricas de qualidade abrangentes, incluindo taxas de aprovação de casos de teste, resultados de execução de teste e relatórios de cobertura de teste. Além disso, o Azure DevOps oferece integração com ferramentas de cobertura de código para medir a cobertura de testes e identificar as áreas da base de código que exigem testes adicionais.

O GitHub oferece funcionalidade semelhante por meio do GitHub Actions, permitindo que as equipes automatizem vários tipos de testes, como testes unitários, testes de integração e testes ponta a ponta. Aqui também, o GitHub Actions oferece flexibilidade na configuração dos fluxos de trabalho de teste e na integração com as ferramentas de teste de terceiros, mas tende a exigir configuração adicional para atingir o mesmo nível de métricas de qualidade abrangentes e relatórios de cobertura de teste que o Test Plans do Azure DevOps.