Resolução de Bug – Vamos falar metodologia

Genuine Elevador emocional para qualquer desenvolvedor, tornando-se sucessivamente da negação à frustração, incredulidade com a renúncia, então espero que o alívio, a depuração é aulas completas que exigem Atitude e habilidades. Através desta série de artigos, descobriremos métodos, técnicas e truques para transforcência de prazer indisfarçado. Esta primeira parte se concentrará em descrever os chaves de resolução de bugs reais.

Reproduza o erro

para começar, é imperativo não correr a cabeça para baixo na resolução do problema. Não Toque em uma linha de código e vamos executar para reproduzir o erro! Esta etapa tornará possível colocar em condições de trabalho ideais e fará você, no final, fazer serenidade e tempo. Este desenvolvedor é precioso, você deve, em primeiro lugar, garantir a realidade real da perspectiva e certeza de ter o final corrigido. O que é mais frustrante do que se ver mais tarde a mesma superfície de refazer bug!

A resolução de um bug começa geralmente por A análise do relatório feita pela pessoa ou dependente da receita funcional da sua aplicação. Isto é, mais freqüentemente … lifer. Raramente um perfil técnico, muitas vezes desprovido do vocabulário associado, você mudará para fornecer um processo (mesmo um modelo) da remontagem de bug mais dirigida. Você evitará o simples “não funcionar”. Tenha em mente que este documento deve fornecer informações essenciais para a reprodução do problema. Aqui estão os dez mandamentos:

  • os fatos, só você declarará (“Eu não sou identificado, e aceitei essa informação privada”)
  • especulação, você evitará (“Acho que vem de um problema de …”)
  • para as especificações funcionais, você fará
  • seu ambiente (osso, navegador, perfil de usuário), com precisão descreverá
  • as diferentes etapas necessárias para a reprodução do problema, você listará
  • o log de erro, verdadeiro grail, se possível, você fornecerá
  • Que o erro ainda não foi relatado, você verificará
  • sua tela, para descrever um problema gráfico que você capturará
  • Qualificador “intermitente”, tanto quanto possível, você banirá : /
  • construtivo, você ficará (um desenvolvedor é muito, muito suscetível)

Uma vez analisado e compreendido, certifique-se de reproduzir o bug no máximo próximo a você . Você não terá acesso ao mesmo conforto de investigar localmente com todas as suas ferramentas de depredilização, dentro de um ambiente de teste, ou ainda pior na produção (ops). Simplifique vietien configuração em um cenário de reprodução mais curto possível. Idealmente, você irá escrever para este momento o teste de unidade associado, a fim de proteger contra futuros futuros recolocando e fluidificar o trabalho de diagnóstico.

É infelizmente, um bug dificilmente é reproduzível. A tentação do comportamento sem suite é então maior do que nunca! Resistir e encontrá-lo:

  • O relatório de bugs é mal preenchido
  • Os dados que você manipular não permitem reproduzir o erro
  • a resolução de Outro problema corrigiu o bug de remontar
  • Você está tentando reproduzir o bug em um ambiente que é muito diferente daquele em que a Buga foi encontrada
  • Você é confrontado com um heisenbug … boa sorte

heisenbugFonte: http://simonb.com

Faça um diagnóstico

Uma vez nas condições ideais, você passará para a fase de investigação. Como um columbo, será necessário fazer suposições sobre a origem do problema e verificá-las com a seção de código incriminado. Os bugs ainda não por magia ou sob as ordens de uma IA maliciosa, você prosseguirá com a alteração:

minimizar a superfície de pesquisa

  • Verifique se uma recente mudança ambiental não é a causa do problema (versão de uma dependência, modificação do esquema do banco de dados, etc.)
  • repita o cenário reprodutivo voltando ao histórico de seus VCs até o commit e, portanto, as mudanças que introduziram Lebug
  • mockez as partes do seu aplicativo não envolvidos para Limite a interferência
  • blackboxez o código da biblioteca de terceiros
  • Entre em contato com seus colegas: Eles são frequentemente bons conselhos e inspiradores

colocado no lugar rigoroso Métodos de pesquisa

  • Seus experimentos devem ter um fim em si (melhorar sua compreensão do programa, confirmar ou invalidar uma de suas hipóteses); Raramente encontrou a fonte do problema por acaso
  • apenas modifique uma coisa de uma só vez, condição sine qua não validar uma hipótese
  • manter um traço de suas experiências, de modo que não De volta a hipóteses já desativadas
  • Gare para Certibes, a história da ciência sofreu muito das barreiras epistemológicas Caro Bachelard Gaston!

Aprenda como usar ferramentas para o seu Disposição.

IDE, console de API, monitoramento, pontos de interrupção, blackboxing, proxy de depuração, aqui estão ferramentas mais ou menos potentes para disposições para eliminar os encrenqueiros. Vamos dedicar um artigo completo a seu uso como parte de um aplicativo JavaScript na segunda parte desta série.

correção

Bravo, você identificou a origem do problema! Agora é hora de corrigir a seção decodificada que representa preocupação sem introduzir a regressão e em conformidade com os padrões de qualidade em vigor dentro de sua equipe. Tenha cuidado para tratar a causa do problema e não seus sintomas. No caso em que a escolha de implementar uma Quickfix é feita coletivamente, será então identificável e imperativamente temporária. Se isso for relevante, refatore seu código. Finalmente, como rigoroso e experiente, certifique-se de ler!

Expanda a reflexão

Agora é hora de desenhar as conclusões das etapas anteriores. Como esse bug sopro entre a malha da rede? Um problema semelhante pode acontecer em outro lugar na vitlplicação? Como você se certifica de não vê-lo reaparecer? A documentação deve ser atualizada? Você deve aproveitar essa correção para melhorar e questionar a qualidade da sua faixa de código.

a equipe do Symbioz. Livre para estar juntos.

Deixe uma resposta

O seu endereço de email não será publicado. Campos obrigatórios marcados com *