Projetar e implementar rastreabilidade de origem, bug e qualidade
No contexto do DevOps, rastreabilidade refere-se à capacidade de rastrear mudanças e ações ao longo do ciclo de vida de desenvolvimento de software. Esse conceito se aplica a diferentes aspetos 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, manutenibilidade e satisfação do cliente.
A rastreabilidade do código-fonte permite que os desenvolvedores rastreiem alterações de código em cenários de colaboração. A rastreabilidade de bugs facilita a identificação, priorização e resolução de problemas 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 atividades de teste, métricas e feedback aos esforços de desenvolvimento.
Estruturar
Em um alto nível, a rastreabilidade é agnóstica em relação às ferramentas, mas a maneira de abordá-la depende do aspeto do ciclo de vida de desenvolvimento de software que se destina a atingir. Da mesma forma, os objetivos e as considerações de design diferem entre código-fonte, bug e rastreabilidade de qualidade.
Em particular, a rastreabilidade da fonte envolve o rastreamento do histórico de alterações de código, incluindo quem fez as alterações, quando elas foram feitas e a finalidade das alterações. Ele facilita 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 está intimamente ligada às estratégias de ramificação e fusão do Git que organizam o trabalho de desenvolvimento. Os desenvolvedores criam ramificações de recursos para novos trabalhos, confirmam alterações em suas ramificações e enviam solicitações pull 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 fundidas na ramificação principal.
A rastreabilidade de bugs envolve o rastreamento de bugs ou defeitos relatados durante o teste ou a produção de volta à sua causa raiz na base de código. Ele também geralmente depende da captura de informações como os detalhes do relatório de bugs, etapas para reproduzir, componentes afetados e alterações de código relacionadas. Seus objetivos incluem priorizar e resolver bugs de forma eficiente, a fim de resolver deficiências de software.
A rastreabilidade da qualidade engloba o rastreamento de atividades e artefatos relacionados à qualidade durante todo o processo de desenvolvimento de software. Isso envolve vincular métricas de qualidade, casos de teste, resultados de teste e outras atividades de garantia de qualidade a requisitos, histórias de usuários e alterações de código. A rastreabilidade da qualidade ajuda a avaliar o impacto das alterações de software na sua qualidade e a identificar áreas para melhoria.
Implementação da rastreabilidade
Os detalhes da implementação de rastreabilidade diferem até certo ponto, dependendo da plataforma DevOps.
Rastreabilidade da fonte
Como o GitHub e o Azure DevOps oferecem suporte ao Git como seu mecanismo de controle de origem, várias técnicas de rastreabilidade de origem se aplicam a ambos. Como resultado, a implementação da rastreabilidade do código-fonte em ambos os casos envolve a adoção de práticas recomendadas, como escrever mensagens de confirmação descritivas, usar uma estratégia de ramificação bem definida e exigir solicitações pull para revisões de código.
No entanto, existem também algumas diferenças entre eles. A implementação da rastreabilidade de origem 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 fusão. A integração do GitHub com o Issues permite vincular alterações de código a problemas correspondentes, fornecendo rastreabilidade entre modificações de código e requisitos do projeto. O Azure DevOps oferece políticas de ramificação e políticas de solicitação pull para impor verificações de qualidade de código e vincular alterações a itens de trabalho, permitindo a rastreabilidade entre alterações de código e histórias ou tarefas de usuários. Além disso, o Azure DevOps fornece uma integração mais extensa com seu sistema de rastreamento de item de trabalho, permitindo rastreabilidade mais profunda e recursos de relatórios em comparação com o rastreamento de problemas do GitHub.
Rastreabilidade de bugs
No Azure DevOps, a rastreabilidade de bugs é facilitada por meio dos Painéis do Azure, onde os bugs são rastreados como itens de trabalho e podem ser vinculados a alterações de código, confirmações e solicitações pull. Os Painéis do Azure permitem criar fluxos de trabalho personalizados para o gerenciamento de bugs, definindo estados como Novo, Ativo, Resolvido e Fechado, fornecendo visibilidade sobre o ciclo de vida do bug. Além disso, o Azure DevOps oferece integração avançada entre bugs e outros itens de trabalho, permitindo a rastreabilidade entre bugs e histórias de usuários, tarefas e épicos.
No GitHub, a rastreabilidade de bugs depende da integração entre problemas e alterações de código, onde bugs relatados como problemas podem ser vinculados a confirmações e solicitações pull. As Ações do GitHub oferecem a capacidade de implementar fluxos de trabalho personalizáveis, incluindo aqueles relacionados à rastreabilidade de bugs. Com as Ações do GitHub, você pode definir fluxos de trabalho que automatizam processos acionados por eventos em seu repositório do GitHub, como a criação ou modificação de problemas. Isso permite que você crie fluxos de trabalho personalizados para gerenciar bugs, incluindo a definição de estados, a atribuição de tarefas e a automaçã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 internos dos Painéis do Azure no Azure DevOps.
Rastreabilidade de qualidade
No Azure DevOps, a rastreabilidade de qualidade pode ser gerenciada usando Planos de Teste, que permitem que as equipes organizem, executem e acompanhem casos de teste. Os Planos de Teste fornecem métricas de qualidade abrangentes, incluindo taxas de aprovação em 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 teste e identificar á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 de unidade, testes de integração e testes de ponta a ponta. Também aqui, as Ações do GitHub fornecem flexibilidade na configuração de fluxos de trabalho de teste e na integração com ferramentas de teste de terceiros, mas tendem a exigir configuração adicional para alcançar o mesmo nível de métricas de qualidade abrangentes e relatórios de cobertura de teste que os Planos de Teste de DevOps do Azure.