5 dicas para garantir um desenvolvimento de software livre de bugs
Publicados: 2017-10-24Seu aplicativo de software tem bugs? Claro que sim, já que todo programa de software disponível tem problemas e a história do software livre de bugs é um mito. No entanto, ainda é possível minimizar significativamente os bugs, erros e problemas de segurança, seguindo algumas técnicas de restrição livres e práticas.
Há muita disciplina envolvida quando se trata de rastreamento de bugs, pois exige encorajar todos a cumprir as regras. Especialmente em startups e indústrias criativas, pode ser muito difícil desencorajar qualquer comunicação informal. Na verdade, em muitos casos, as pessoas não nomeiam 'rastreamento de bugs' como a parte mais focada de um projeto.
O que é realmente o rastreamento de bugs?
De acordo com a Technopedia: “ O rastreamento de bugs é um processo usado pelo pessoal de garantia de qualidade e programadores para acompanhar problemas e resoluções de software. “
Um sistema de rastreamento de bugs, portanto, gerencia todas as informações sobre erros relatados e acompanha o status de cada bug. Você definitivamente vê a necessidade de informações extensas ao rastrear problemas. Fornecer dados suficientes não requer apenas uma enorme quantidade de tempo, mas também habilidades abundantes no campo de desenvolvimento de software.
A classificação dos bugs
Existem três tipos de erros de software:
- Especificações incorretas
- Defeitos de implementação
- Especificação ausente
Qualquer um desses tipos de bugs pode ser facilmente classificado como um problema crítico (ou reclassificado como uma melhoria). A seguir, são mencionadas algumas das diretrizes de reclassificação usadas por Sam Hatoum, fundador do Xolv.io.
- A especificação incorreta está nos causando uma perda? Por exemplo, os estados de especificação rastreiam a contagem de cliques, quando deveriam rastrear os gastos Reclassificar Bug.
- O defeito de implementação pode ser negligenciado? Por exemplo, a fonte da web está sendo instalada quando deveria ser incorporada ao software.
- A especificação ausente implica em novas funções? Por exemplo, os usuários não podem compartilhar e editar seus detalhes de perfil nas redes sociais.
As apostas são levantadas para que os gerentes de produto classifiquem os bugs com eficiência, já que a equipe de desenvolvimento é instruída a priorizar os bugs sobre todos os outros trabalhos. Os desenvolvedores não funcionarão ou qualquer outra coisa até que todos os bugs sejam removidos.
Formando padrões de qualidade da equipe
Quando uma equipe de design e desenvolvimento decide se um vírus de aplicativo pode ou não ser reclassificado como uma melhoria, esse processo de decisão declara implicitamente os padrões de qualidade da equipe. Por exemplo, um proprietário de marca que enfatiza recursos visuais de alta qualidade pode ter baixa tolerância a discrepâncias de design. Em vez disso, eles reclassificariam esses problemas como bugs.
Um sistema de reclassificação consistente permite que você adapte continuamente a expectativa versus a realidade, mantendo uma abordagem de entrega estruturada que coloca os padrões de qualidade de sua equipe em primeiro lugar.
As falhas dos bugs
Estudos recentes afirmam que quase 40% das falhas do sistema são causadas por bugs de software, enquanto outros problemas de segurança e vulnerabilidades de programas respondem por 60%, causados por problemas comuns relacionados à memória e simultaneidade. Reduzir bugs de software em seu aplicativo é a melhor maneira de aumentar a segurança, estabilidade e confiabilidade de seu software.
Dicas para garantir um desenvolvimento de software livre de bugs
Durante o desenvolvimento da ferramenta de registro SmartInspect, os desenvolvedores usaram muitos métodos para manter a qualidade de seu sistema alta. A lista mencionada a seguir contém algumas das técnicas que eles usaram.
1. Criando espaço para comunicação
Detectar e relatar bugs requer habilidades para identificar informações relevantes que são então adicionadas a cada relatório de problema. Existem muitas ferramentas de rastreamento de bugs e garantia de qualidade, como Usersnap, que oferecem a capacidade de anexar automaticamente as informações necessárias. No entanto, sempre haverá espaço para informações ausentes ou mal-entendidas, resultando na necessidade de comunicação adequada.
Em determinados cenários de teste, não há espaço para esse tipo de divulgação entre desenvolvedores e testadores. Perguntas como: 'Como posso entrar em contato com os especialistas responsáveis?' ou 'Pode pedir feedback por telefone ou e-mail?' precisam ser respondidas no início do processo de rastreamento de bugs.
Para evitar mal-entendidos por parte de testadores e desenvolvedores, tente colocar todos na mesma página e criar uma cultura orientada para feedback onde o trabalho de ambas as partes seja respeitado da mesma forma.
2. Mantenha-o um a um
Evite discutir bugs em uma reunião de projeto. Agora não me entenda mal. Não há nada de ruim em trabalhar em equipe, reproduzindo e corrigindo bugs. Mas não discuta problemas em reuniões prolongadas com todo o gabinete. De acordo com Thomas Peham, um blogueiro de tecnologia do Usersnap.com, relatar bugs e discuti-los na próxima fase de 'reteste' de desenvolvimento é uma abordagem bastante lenta.
É, de fato, muito mais eficiente mantê-lo um a um. Como Yegor escreveu em seu artigo sobre os 5 princípios do rastreamento de bugs, cada relatório de bug está vinculado a duas pessoas – o especificador e o solucionador de problemas. Não importa quantas pessoas estejam envolvidas no processo, existem apenas 2 responsabilidades principais (com duas funções diferentes) para resolver um problema relatado.
3. Garanta a adesão de sua equipe
Se toda a sua equipe não o usa, um bom banco de dados de rastreamento de bugs seria ineficaz. É melhor começar fazendo com que todas as partes interessadas (atendimento ao cliente, garantia de qualidade, gerentes de projeto e desenvolvedores) avaliem as ferramentas e tentem tomar uma decisão em conjunto; registrar e tratar defeitos de maneira consistente usando o mesmo sistema.
Se você está lutando para conseguir pessoas a bordo, aqui está o que você pode fazer;
Para os desenvolvedores, estabeleça a lei de aceitar relatórios de bugs por meio de bancos de dados individuais e não por qualquer outro método. Quando os testadores enviarem e-mails com feedback, simplesmente peça que eles joguem os relatórios no sistema de informações. Além de garantir que as coisas fiquem organizadas, isso também ajuda na geração de relatórios, fornecendo todas as informações necessárias e definindo os campos necessários.
Outra maneira de criar um processo mais eficiente é ter QA, ou suporte, verificar bugs de clientes e adicionar as etapas exatas no banco de dados antes mesmo que os desenvolvedores sejam notificados. O rastreamento eficaz de seus problemas de software é um dos aspectos mais essenciais para ter uma estrutura de gerenciamento de projetos confiável e consistente.
- Um bom depurador
Se você usa sistemas como Visual Studio ou Delphi, já tem acesso a um depurador extremamente poderoso que deve utilizar. No caso de um ambiente de script em que os desenvolvedores muitas vezes tentam eliminar bugs por tentativa e erro, o processo não apenas se torna uma maneira complicada de identificar e resolver problemas, mas também é muito perigoso se você não entender completamente seu código e não conseguir percorra-o com um depurador. Faça um favor a si mesmo obtendo uma boa plataforma de depuração para sua equipe – existem depuradores para quase tudo.
4. Saiba o que significa um bug 'fechado'
Você já esteve envolvido em uma discussão sobre o fechamento de um bug? Bem, parabéns, você esteve na pior situação de rastreamento de bugs que poderia ocorrer.
Se você se encontrar em uma discussão sobre o 'status do bug', considere dar um passo atrás e se fazer as seguintes perguntas:
- De quem é a responsabilidade de aceitar os resultados?
- Quais são os critérios de aceitação?
- Quem é responsável por dar a ordem?
Dê uma olhada no significado de 'fechado'. Na maioria das equipes de desenvolvimento, um bug é fechado pela pessoa que corrigiu o erro. Peham recomenda fechar o relatório de bug pela pessoa que relatou o problema. Uma vez que a solução para um determinado bug é apresentada pelo desenvolvedor, o relator deve ser solicitado a fechar o relatório. Isso garantiria que o feedback fosse uma solução suficiente para as confusões de software.
5. Máquinas virtuais
Para testar seu software quanto a bugs em muitos sistemas operacionais e ambientes diferentes, você deve usar máquinas virtuais com ferramentas como Virtual PC ou outro software de virtualização disponível. Você pode economizar muito tempo com esse método porque pode copiar, compartilhar e redefinir facilmente as máquinas virtuais, permitindo testar seu software em todos os tipos de configurações.
É sempre preferível criar várias imagens padrão para todos os sistemas operacionais que você testa regularmente e colocá-las em um servidor de arquivos. Quando você precisa de uma configuração altamente específica para testar algo, pode começar com uma das imagens de base sem instalar o sistema operacional, software e drivers necessários e assim por diante.
Não é um conceito novo
Quando Hatoum surgiu com esse conceito, ele descobriu que a ideia do software Zero-Bug não é nova. Na verdade, existe desde a década de 1960, como muitas das filosofias da velha escola esquecidas.
O lendário especialista em qualidade, Phillip Crosby, inventou o termo Zero-Defect enquanto trabalhava na Martin Company ou como atualmente conhecido 'Lockheed Martin', onde foi relatado que eles alcançaram “uma redução de 54% em defeitos em hardware sob auditoria do governo”.
Inicialmente, a técnica Zero-Defect foi utilizada na fabricação aeroespacial na década de 60, e depois foi aplicada na fabricação automotiva na década de 1990. Existem muitas semelhanças entre a indústria de manufatura e a entrega de software.
A popular modalidade de gestão ágil Kanban, por exemplo, originou-se do Sistema Toyota de Produção. O que isso basicamente nos diz é que podemos analisar facilmente esses processos de fabricação para inspiração tecnológica no desenvolvimento de software ou aplicativo, e o Zero-Bug é uma dessas inspirações.
O custo extremo de atender ao padrão, no entanto, é uma das principais críticas à abordagem Zero Defeito. E se implementado incorretamente, isso pode ser verdade. Na abordagem Zero-Bug, a Hatoum tratou diretamente desse problema através da reclassificação de bugs para funcionalidades e melhorias significativas, permitindo que o custo fosse controlado através dos padrões de qualidade da equipe.
Começa hoje
Como usuários de tecnologia e desenvolvedores, você pode começar a analisar todas as falhas existentes e classificá-las usando o sistema mencionado acima. Se você acha que tem centenas de milhares de problemas, este pode ser um bom momento para acumulá-los e começar de novo. Não se preocupe, você sempre pode mover bugs dos arquivos para o domínio atual conforme necessário.
A equipe de desenvolvimento não precisa necessariamente esperar até que todo o exercício de classificação seja concluído antes de começar a eliminar os bugs; eles podem começar assim que alguns bugs forem classificados. A equipe não deve começar a trabalhar em nenhum outro item da lista de pendências até que todos os itens sejam 'libertados de bugs' ou reclassificados. É exatamente essa regra que obriga os gerentes de produto a priorizar o novo trabalho corretamente.
Resumindo
Cada bug relatado em um projeto exige tempo adicional para ser corrigido. O rastreamento de bugs, portanto, requer grandes habilidades de comunicação dos indivíduos que rastreiam os bugs, bem como sensibilidade daqueles que os corrigem. Com os hacks de rastreamento mencionados acima, sua equipe pode tentar ser mais produtiva ao relatar qualquer tipo de obstáculo tecnológico ou de segurança.