Nas últimas décadas houve um aumento na adoção de softwares de gestão por empresas de diversos segmentos e tamanhos a fim de otimizar suas atividades. Consequentemente, identificou-se um aumento na dependência desses sistemas e assim, erros provenientes de falhas nos softwares refletiram diretamente nas atividades da empresa, ocasionando na maioria das vezes inúmeros prejuízos. Tal fato evidenciou uma crise de credibilidade que os softwares passaram a ter após recorrentes problemas.
Em 1979, Glenford Myers, em seu livro ‘The Art of Software Testing’ (A arte de teste de software), já apresentava o conceito no qual quanto mais cedo descobrimos e corrigimos o erro, menor é o seu custo para o projeto. Esse custo em correção de bugs cresce 10 vezes para cada estágio em que o projeto do software avança. Segundo o National Institute of Standards and Techonology, estima-se entre 22,2 a 59,5 bilhões de dólares as perdas anuais como resultado de software de qualidade baixa, muitas vezes pouco ou quase nada testado.
Para contornar esse cenário, visando responder a essa crise de credibilidade e tentando reduzir principalmente os erros oriundos da ausência de realização de testes, diversas normas para definir e padronizar os testes de software foram elaboradas:
- ISO (International Organization for Standardization) 9126-1 – Software Quality Characteristics (2003): define um modelo de avaliação da qualidade de um software baseado na funcionalidade, portabilidade, confiabilidade, manutenibilidade, usabilidade e eficiência;
- ISO 12207 – Systems and Software Engineering – Software Life Cycle Processes (2008): descreve a arquitetura do ciclo de vida do software, inclusive no que se refere a testes;
- IEEE (Institute of Electrical and Electronics Engineers) 829 – Standard for Software and System Test Documentation (2008): é a norma focada especificamente em testes de software. Ela provê um padrão de documentação e planejamento de testes, sendo aplicável a todo ciclo de vida do teste de software.
Além das normas citadas, os testes de software também são mencionados no CMMI (Capability Maturity Model – Integration), MPS.BR (Melhoria de Processos do Software Brasileiro), RUP (Rational Unified Process) e em diversos segmentos da metodologia ágil.
A criação dessas normas, aliada ao uso delas em metodologias de desenvolvimento de software, possibilitou que os testes, assim como a gestão dos mesmos, passassem a ter um papel de maior destaque durante processo de desenvolvimento de software.
O teste de software trata-se de uma análise técnica que é realizada com o objetivo de identificar informações referentes à qualidade do produto. É uma ação que deve ser executada em todas as partes do software com o objetivo de alcançar 100% cobertura. O teste tem como meta identificar alguma não conformidade do produto alvo da análise. Uma vez identificada essa não conformidade, ela deverá ser acompanhada de perto até que a mesma seja corrigida e avaliada novamente. Trata-se de uma atividade não trivial e de difícil gestão.
Os testes são divididos em diversos grupos ou categorias, dentre os principais destacam-se os testes funcionais e os testes estruturais. Enquanto os funcionais têm como foco garantir que os requisitos estabelecidos estão sendo atendidos da forma esperada, os testes estruturais têm como objetivo identificar problemas de comportamento do sistema em diversas situações diferentes da situação normal.
Existem diversos motivos que justificam a implantação de testes de software nas empresas:
- Quando um produto não é testado, há uma grande chance que ele contenha erros ou defeitos, assim este produto não vai satisfazer as necessidades do cliente;
- O cliente quando não está satisfeito com o produto, dificilmente irá contratar novamente a empresa;
- Quando não há qualidade no produto, a empresa fica com a imagem prejudicada. Logo, é necessário mais investimento em marketing, por exemplo;
- Se os erros são encontrados pelo cliente, o custo para co ...
Fim do trecho gratuito • continue abaixoCONTEÚDO EXCLUSIVO
Desbloqueie toda a DevMedia
-
+2000 artigos e vídeos
-
+40 trilhas sobre Front-end, Back-end, IA e muito mais
-
+5000 exercícios práticos
-
Mentorias ao vivo individuais
-