Por fim, um conceito importantíssimo no desenvolvimento de um projeto, e
que ocorre durante seu desenvolvimento, é o teste, ou seja, verificação e
validação da solução. O teste é a técnica tradicional utilizada para determinar
e garantir a qualidade dos produtos. Trata-se, em linhas gerais, da definição
ou descrição de um produto de qualidade e os métodos de teste utilizados
para garantir que ela seja bem estabelecida. O sucesso desses métodos
depende da definição do que constitui um produto de qualidade, da
determinação de propriedades mensuráveis que refletem a qualidade, da
derivação de critérios significativos de teste baseados nas quantidades
mensuráveis e da formulação de testes adequados para garantir essa
qualidade.
Todavia, isso não é necessariamente aplicado ao software ou a certas soluções
que utilizam abstrações matemáticas e algoritmos para sua construção. As
características de alto nível do software de qualidade são confiabilidade,
testabilidade, usabilidade, eficiência, capacidade de carga e manutenção. Na
prática, a eficiência muitas vezes acaba por estar em conflito com outros
atributos, por exemplo, manutenção e testabilidade.
Outros termos que causam confusão entre os desenvolvedores são as
diferenças entre verificação e validação. Embora a distinção possa parecer
trivial, os dois cumprem objetivos muito distintos.
A verificação do desenvolvimento refere-se à verificação do aplicativo que
ainda está em desenvolvimento, para garantir que está de acordo com essas
especificações. Essas verificações podem ser algo tão simples quanto ler as
especificações e compará-las com a lógica do código para garantir que
estejam alinhadas. O processo de verificação incluirá atividades como
revisões de código, orientações, inspeções, mas poucos, se houver, testes
reais.
Enquanto a verificação ocorre enquanto o produto ainda está em
desenvolvimento, a validação é realizada após a conclusão de um
determinado módulo, ou mesmo a conclusão de toda a aplicação. A validação
se concentra em garantir que as partes interessadas obtenham o produto que
desejam. No esforço de validação não importa como você chegou lá, apenas
que você chegou e que tudo está conforme o esperado.
Isso infelizmente não aflige com dúvidas apenas os testes, há dúvidas
também em outra fase importante que trata da validação dos requisitos.
Muitos estudantes perguntam como validar os requisitos quando utilizamos
metodologia ágil e se é a mesma coisa com metodologias sequenciais ou
tradicionais. De forma simples, vou descrever aqui que a validação de
requisitos, independente de qual metodologia utilize, trata de garantir que os
requisitos tenham alcançado os objetivos do negócio, atendam às
necessidades de quaisquer partes interessadas relevantes e sejam
claramente compreendidos pelos desenvolvedores.
Então, a validação é uma etapa crítica para encontrar requisitos ausentes e
garantir que eles tenham uma variedade de características importantes:
Descrever corretamente a necessidade do usuário final;
Ter apenas um significado exato;
Poder ser modificada conforme necessário;
Documentar seus atributos e garantir que eles são realmente o que
os clientes precisam;
Vincular facilmente a esses requisitos os códigos e testes.
Portanto, entenda que qualquer forma de validação em software (de requisitos ou de código) não
está focada no caminho que você percorreu para chegar ao destino, mas sim, se você atingiu o alvo.