Como melhorar a qualidade do meu software?


Quando uma pessoa solicita o desenvolvimento de um software, ela espera que ele funcione sem problemas, pois, seja para ser usado entre funcionários ou por clientes externos, o programa tem que funcionar perfeitamente! Cria-se uma situação desagradável se você entrega um produto que “buga”, que fica lento ou que apresenta muitos erros. Ou seja, você tem que se certificar da qualidade do seu software.

Quer melhorar a qualidade do seu software? Dê uma olhada nessas dicas!

O que é um software de qualidade?

Essa concepção pode variar bastante, dependendo do ponto de vista. Da perspectiva do cliente, há um aspecto fundamental: o software é funcional? O programa possibilita a execução de atividades necessárias, economizando tempo e serviço? Se sim, ele atende ao primeiro pré-requisito para ser um programa de qualidade.

Já para o desenvolvedor, a qualidade advém das técnicas utilizadas, isto é, se ele foi feito com boas práticas de desenvolvimento. No fundo, as duas visões, apesar de diferentes, se complementam.

Como buscar a qualidade pela perspectiva do cliente?

A perspectiva do cliente pode ser mapeada no que é chamado de black box testing (testes de caixa preta). Ou seja, testes que são realizados sem conhecimento de como o software foi construído.

Segue uma receita básica para começar. Tarefas para sua equipe de testes:

  1. Identifique as funcionalidades mais importantes do seu software.
  2. Crie testes para essas funcionalidades.
  3. Execute esses testes na versão atual do seu software para montar uma baseline de bugs.
  4. Classifique os bugs por criticidade.
  5. Exija que os desenvolvedores corrijam pelo menos os bugs críticos.
  6. Receba a nova versão do software (certamente antes de ser liberada para produção ou para o cliente).
  7. Estude as novidades dessa versão (se possível em um Release notes)
  8. Incremente seus testes, se necessário.
  9. Execute a bateria de testes (sim, são os testes de regressão + testes de novidades da versão), aproveitando para conferir os bugs corrigidos.
  10. Se bugs críticos persistirem ou novos bugs críticos surgirem, reprove a versão, caso contrário deixe a decisão a cargo do responsável pelo produto.
  11. Se a versão for liberada para produção ou para o cliente, analise os bugs que vazaram para o cliente da versão anterior e volte ao passo 6.

Algumas dicas importantes, senão fundamentais:

  • Use uma equipe dedicada para testar seu software. Analista que fica metade do tempo no suporte e a outra metade no teste não funciona bem.
  • Use uma equipe especialista. Você precisa de analistas de testes de verdade. O mercado está cheio deles, ávidos por trabalhar com testes. Não faça adaptações de profissionais de outras áreas. Administradores, economistas, biólogos são ótimos administradores, economistas e biólogos. Testadores são profissionais formados em cursos de TI.
  • Existem empresas que terceirizam o trabalho de testes (recomendamos a Crowdtest! :-)), mas não deixe de ter um analista de testes na sua equipe para fazer a ponte com essa empresa.
  • Comece a testar seu software o quanto antes. Assim que tiver a primeira funcionalidade entregue, já comece a testá-la.
  • Automatize seus testes. Um dos benefícios da automação de testes é reduzir o tempo de testes, permitindo que se façam testes cada vez mais completos em cada vez menos tempo.
  • Não teste tudo. Algumas funcionalidades não merecem ser testadas porque é mais barato lidar com o defeito do que tentar detectá-lo antes.
  • Faça o versionamento dos seus softwares. E “versionamento” não significa armazenar o código em um sistema de controle de versões, mas sim cada versão entregue ao cliente ou produção ser identificada por um número e possuir um release notes.
  • Registre as falhas em sistemas apropriados. Seus bugs precisam estar em um sistema de rastreamento de falhas (e.g. Mantis, Bugzilla, Jira), caso contrário fica impossível medir o progresso dos testes.

Meça o progresso dos testes através da redução dos bugs em produção!

Como buscar a qualidade pela perspectiva do desenvolvedor?

A perspectiva do desenvolvedor busca um software bem construído, de fácil manutenção, que seja fácil de migrar para novas tecnologias e seja capaz de lidar com quantidades diferentes de usuários e dados.

Esses pontos muitas vezes são negligenciados em função de cronogramas, profissionais despreparados, falta de supervisão adequada, entre outros motivos.

As consequências dificilmente são sentidas nas primeiras versões do software, mas na medida em que o tempo passa elas aparecem. Quem nunca ouviu falar em um “sistema legado”? Note que não estamos falando de white box testing (embora seja tentador deduzir dessa forma). O conceito é diferente. Não temos uma receita como no caso anterior, mas temos algumas valiosas dicas:

  • A principal é: invista na arquitetura do seu software. Uma arquitetura bem feita é o começo de tudo. Mesmo no caso de uma migração ou mudança de tecnologia isso deve ser pensado com cuidado.
  • Investimentos em pessoal qualificado para essa a definição da arquitetura do software devem ser garantidos.
  • Não crie soluções caseiras, não invente soluções mirabolantes, protocolos proprietários etc. Tudo isso é difícil de manter e te deixa refém de um desenvolvedor ou fornecedor. O mercado já tem soluções de arquitetura bastante difundidas, como, por exemplo, soluções baseadas em SOA.
  • Tenha um ambiente de integração contínua para seu software. Recomendamos ferramentas como o Jenkins e o Sonar para compor esse ambiente. Verifique a ferramenta ideal para sua linguagem de programação.
  • Faça uso de ferramentas de análise estática de código para ter certeza de que seus desenvolvedores, ou suas fábricas, estão respeitando as mesmas regras de codificação.
  • Exija níveis de cobertura de testes de unidade.
  • Audite o código fonte para garantir que a arquitetura definida esteja sendo respeitada.
  • Recomende o uso de code review.

E você, concorda que garantir a qualidade do seu programa é essencial? Já utilizou algum desses métodos na sua empresa? Deixe um comentário e compartilhe sua experiência!

About Mariana Martini