Projetar e implementar a rastreabilidade de origem, de bugs e de qualidade

Concluído

No contexto do DevOps, a rastreabilidade refere-se à capacidade de controlar alterações e ações em todo o 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 do código-fonte permite que os desenvolvedores acompanhem as alterações de código em cenários de colaboração. A rastreabilidade de bugs facilita a identificação, a priorização e a 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 comentários aos esforços de desenvolvimento.

Projetar

De maneira geral, a rastreabilidade é independente da ferramenta, mas a maneira de abordá-la depende do aspecto do ciclo de vida de desenvolvimento de software que se pretende abordar. Da mesma forma, as considerações de objetivos e design diferem entre código-fonte, bug e rastreabilidade de qualidade.

Em particular, a rastreabilidade do código-fonte envolve o acompanhamento 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 se vincula estreitamente às estratégias de ramificação e mesclagem do Git que organizam o trabalho de desenvolvimento. Os desenvolvedores criam branches para funcionalidades 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 êxito, aprovam as alterações a serem integradas no branch 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. Ele também geralmente se baseia na captura de informações, como 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 com eficiência para resolver 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 a vinculação de métricas de qualidade, casos de teste, resultados de teste e outras atividades de garantia de qualidade a requisitos, histórias de usuário e alterações de código. A rastreabilidade de qualidade ajuda a avaliar o impacto das alterações de software em sua qualidade e identificar áreas de melhoria.

Implementando a 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, várias técnicas de rastreabilidade de origem se aplicam a ambos. Como resultado, implementar a 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 de pull para revisões de código.

No entanto, também há algumas diferenças entre eles. A implementação da rastreabilidade do código-fonte em repositórios do GitHub normalmente envolve a utilização de recursos como regras de proteção de branch 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 problemas permite vincular alterações de código a problemas correspondentes, fornecendo rastreabilidade entre modificações de código e requisitos de projeto. O Azure DevOps oferece políticas de branch e políticas de solicitação de 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 do usuário. Além disso, o Azure DevOps fornece uma integração mais abrangente com seu sistema de acompanhamento de itens de trabalho, permitindo funcionalidades mais profundas de rastreamento e relatório em comparação com o acompanhamento de problemas do GitHub.

Rastreabilidade de bugs

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

No GitHub, a rastreabilidade de bugs depende da integração entre problemas e alterações de código, em que bugs relatados como problemas podem ser vinculados a solicitações de confirmação e pull. 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 fluxos de trabalho que automatizam processos disparados por eventos em seu repositório GitHub, como a criação ou modificação de problemas. Isso permite que você crie fluxos de trabalho personalizados para gerenciar bugs, incluindo definir estados, atribuir tarefas e automatizar ações com base em condições específicas. Efetivamente, embora o GitHub Actions forneça flexibilidade na automação de fluxo de trabalho, eles normalmente exigem mais esforço e personalização em comparação com os recursos internos do Azure Boards 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 de caso 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. Aqui também, o GitHub Actions fornece flexibilidade na configuração de fluxos de trabalho de teste e na integração com ferramentas de teste de terceiros, mas eles tendem a exigir configurações adicionais 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 do Azure DevOps.