A tarefa de efectuar testes ao software construído foi considerado secundário durante várias décadas. Era, e em alguns casos ainda continua a ser, uma actividade vista como um castigo para o programador, uma tarefa pouco importante e desnecessária. Assumia-se muito que os programadores não falhavam e que não podiam falhar. Pelo que este foi um tema descuidado durante muitos anos.
Durante largos anos foram surgindo erros graves que causaram prejuízos para a empresa fornecedora ou utilizadora do software. Os elevados custos de manutenção e suporte, à medida que as aplicações aumentavam de complexidade, entre outros aspectos. Levaram a que se começasse a perceber a importância dos testes. Assim com o decorrer dos anos começaram a aparecer bastante documentação sobre o tema, assim com a existência de normas, como são os casos por exemplo, da IEEE 829 e da ISO/IEC 29119.
O que são testes e quais os seus objectivos
Testes de software são uma investigação conduzida de modo a fornecer aos stakeholders informação acerca da qualidade do projecto ou do serviço em teste.
Testes de software também pode ser considerado o processo de verificar e validar se o produto ou serviço disponibilizado:
- Cumpre os requisitos de negócio e os requisitos técnicos existentes.
- Funciona de acordo com o esperado.
Assim associado a missão de efectuar testes podem-se encontrar os seguintes objectivos.
- Encontrar defeitos.
- Para assegurar que os requisitos são compridos e se servem o propósito para que foram desenhados.
- Para ganhar confiança no software construído.
- Para garantir que questões legais e de comprimento de standards são cumpridas.
Os defeitos podem ocorrer porque os seres humanos são falíveis, porque na maioria das vezes existe uma pressão de cumprir com o projecto dentro do prazo previsto. Além de erros provocados por humanos outras circunstâncias podem gerar erros na decorrer normal de uma aplicação. Condições ambientes como radiação, campos electromagnéticos podem provocar falhas que levam a um funcionamento incorrecto do software.
Existem vários motivos que levam a que se cometam erros, entre os quais de destacam
- As pessoas não são perfeitas e como tal cometem erros.
- As pessoas estão constantemente sobre a pressão do tempo.
- Os sistemas em que se trabalha são em geral complexos, assim como os requisitos a construir.
- As tecnologias nas quais se trabalha são sempre bastante recentes e os utilizadores possuem ainda pouca experiência a trabalhar com a mesma.
- A existência de falhas nos ambientes onde é executado o software.
O software criado nem sempre funciona como deveria, ou como nós pensávamos que deveria. Com relativa facilidade encontramos resultados inesperados ou errados. Por outro lado podemos não ter a funcionalidade desejada. Quando o software falha podemos perder dinheiro, tempo, perder credibilidade no mercado ou mesmo causar lesões ou mortes.
Exemplos onde a falta de "bons" testes gerou graves problemas
Depois de passar este tempo todo a falar da importância de teste não podia de deixar de colocar alguns exemplos de desastres associados a falhas de software. Existe uma frase muito conhecida que diz
“Anything that can go wrong, will go wrong.”
O que infelizmente é bem verdade e muitos exemplos que mostram esta verdade podem ser enumerados. Os resultados algumas das vezes são catastróficos devido a falhas de software embora os que se apresentam abaixo ajudem a perceber a importância que os testes de software podem ter na ajuda à detecção deste tipo de falhas.
-
Explosão do Ariane 5 – Em 1996 o veículo espacial Ariane 5 explodiu cerca de quarenta segundos após o seu lançamento. O motivo da falha foi um erro no cálculo da velocidade do foguete, especificamente um número no formato 64 bits com a velocidade horizontal do foguete foi convertido para um inteiro com sinal de 16 bits. Como o número resultante dessa conversão era superior a 32.767 (o maior inteiro possível de se representar num inteiro com sinal de 16 bits) e portanto a conversão falhou. A explosão do foguete custou à agência Espacial Europeia 10 anos de trabalho e 7 mil milhões de dólares, deitados fora em apenas quarenta segundos, além da carga do foguete, avaliada em cerca de 500 milhões de dólares.
- Therac-25 era uma máquina de radioterapia, controlada por computador, que permitia a aplicação de diversas doses de radiação nos pacientes. Entre os anos de 1985 e 1987 existiram uma série de acidentes nos quais os pacientes receberam uma overdose de radiação. Pelo menos cinco pessoas morreram devido à sobredosagem provocada pelo erro no software que controlava a máquina. Mais informação detalhada pode ser encontrada aqui.
Muitos outros casos de catástrofes provocadas por erros de software podem ser encontradas aqui.
Espero ter contribuído para que os testes sejam vistos de forma séria, e não apenas como uma perda de tempo.
Bom, até à próxima.
Sem comentários:
Enviar um comentário