domingo, 10 de julho de 2011

Teste de software vai muito além do passou/falhou


Qualidade é um processo contínuo e de responsabilidade de todo o time de desenvolvimento de software. Para atestar qualidade, além de um bom processo de desenvolvimento, é necessário testar. Testar não é a última coisa a fazer num projeto de software. Deveria ser a primeira e, continuar por todo o projeto. Os testes devem atestar a qualidade dos sistemas construídos ou modificados pelo desenvolvimento.

Mas não basta ter responsabilidade com a qualidade, é necessário colaboração, confiança e transparência entre testadores e desenvolvedores. Todo o time deve entender e compartilhar do que está sendo construído. Desta forma poderão criar o produto certo, ou pelo menos de maneira certa.

O teste do software é a investigação do software a fim de fornecer informações sobre sua qualidade em relação ao contexto em que ele deve operar. Isso inclui o processo de utilizar o produto para encontrar seus defeitos.

Independentemente da metodologia de trabalho empregada no desenvolvimento de um software, para que se obtenha um produto final com um certo nível de qualidade, é imprescindível a melhoria dos processos de engenharia de software. Um desenvolvimento de software organizado tem como premissa uma metodologia de trabalho. Esta deve ter como base conceitos que visem a construção de um produto de software de forma eficaz. (Wikipédia)

Para atestar qualidade, você precisa ter especificações, algo que você pode avaliar. Você especifica o sistema para depois testar? Ou testa para gerar especificações de seu sistema? Uma sugestão é focar em “test driven” e não em “defect driven”. Se você esperar o sistema ficar pronto para testar, certamente encontrará erros.

É muito comum falar que teste de software demora e é perda de tempo, pois os programadores deveriam entregar o produto “pronto” e sem erros. Mas você pode utilizar ferramentas para ajudar na automação de testes. Num ambiente ágil você deve aplicar os princípios ágeis para automatizar testes. O teste deve fazer parte do “done” “pronto”.  Mas lembre-se, ferramentas de automação não são a solução para todos os seus problemas de qualidade de software. Teste automatizado não é moleza. Não é só gravar um script e depois executar. Testes simples e repetitivos podem ser automatizados. Invista tempo em testes manuais mais complexos. A maioria dos defeitos ainda é encontrada por testes manuais de sistema e aceitação.

É importante eliminar desperdícios nos testes.
. Testar rápido: usar processos ágeis;
. Testar melhor: maior cobertura, múltiplas visões do teste, foco na qualidade;
. Testar mais barato: redução de retrabalho, menor ciclo de testes, não duplicar testes;
. Não adianta “tentar testar o máximo” tem que ter metodologia e estratégia de teste;
. Testes de sistema e de aceite podem aumentar a produtividade dos desenvolvedores e a qualidade dos seus produtos se software.

Software muda constantemente e, quando uma nova funcionalidade é adicionada a um sistema que já estava testado e funcionava bem, sempre existe a possibilidade desta funcionalidade afetar outras. Uma boa maneira de assegurar que tanto esta funcionalidade, como todo o resto do sistema esteja funcionando corretamente, é fazer a integração contínua, ou seja, faça o “checkin” de seus códigos e “build” de seus sistemas constantemente.

Testar software é uma arte, que a maioria dos analistas e desenvolvedores não fazem com grande apreço. Desenvolvedor gosta de testar para “fazer funcionar” e não para garantir qualidade. Neste cenário, pensar em criar uma equipe de teste para formar um time com esses desenvolvedores pode ser considerado um grande avanço.

É importante definir algumas diretrizes e responsabilidades para a área de testes, como por exemplos:
. Vamos testar todos os softwares?
. Quanto tempo vamos investir nos testes? Este tempo é investimento mesmo ou é visto como custo para a empresa?
. Qual o nível de abrangência? Vamos testar tudo? O que é essencial?
. Qual o foco do teste? Vamos focar mais em teste de regras de negócio ou testes técnicos do sistema?
. Quais as características de qualidade serão avaliadas e, qual a peso de cada uma dentro desta avaliação?
. Como o time será avaliado?

As respostas para essas perguntas poderão ser assunto para outro post.

[]

Um comentário:

  1. How to Download SEGA's SEGA Genesis Mini For - TopSmart
    Download the full SEGA video game Download Pack for iPhone in the app Store. SEGA Genesis Mini is available for purchase 우리카지노가입 at the 카지노사이트 very best online prices

    ResponderExcluir