# Testes Não-Funcionais
A testagem não funcional é um tipo de técnica para testar parâmetros não funcionais, como confiabilidade, carga de testes, performance e responsabilidade do software.
O propósito primário é testar a velocidade de leitura do sistema sob parâmetros não funcionais.
Estes parâmetros nunca são testados antes dos testes funcionais.
É essencial para confirmar que a confiabilidade e funcionalidade, as especificações de requerimentos do software servem de base para este método de testes, o que habilita os times de QA a checarem se o sistema esta em conformidade com os requerimentos de usuário.
Aumentar a usabilidade, efetividade, manutenibilidade e portabilidade do produto são os objetivos dos testes não-funcionais. Isso ajuda a deminuir os riscos de fabricação associados com os componentes não funcionais do produto.
# Características de Testes Não-Funcionais
Os testes não funcionais são caracterizados por:
- São quantificáveis, portanto, adjetivos como "bom", "melhor" etc não cabem neste tipo de testes;
- É de se duvidar que os números exatos sejam conhecidos no início do processo de requerimento;
- É crucial priorizar os requerimentos;
- Garanta que na engenharia de software atributos de qualidade são identificados com precisão;
# Condições de Teste Não-Funcional
As condições de teste não-funcional definem os seguintes parâmetros:
- Segurança: Especifica como um sistema é protegido de intrusões, planejadas ou não, de fontes internas ou externas;
- Confiabilidade: A consistência em que um sistema completa as tarefas sem erro;
- Eficiência: A capacidade, quantidade e tempo de resposta que um software suporta;
- Usabilidade: A simplicidade com que um usuário pode engajar-se com um sistema, aprender como usá0lo, e preparar inputs e outputs;
- Disponibilidade: Estabelece a dependência do usuário no sistema durante operação;
- Escalabilidade: Descreve o quanto um programa pode aumentar seu poder de processamento para suportar uma demanda crescente.
# Vantagens do Teste Não-Funcional
Tem os seguintes benefícios:
- Oferece alto grau de segurança;
- Garante a capacidade do sistema para usuários simultâneos;
- Aumenta a eficiência do sistema;
- Não existe necessidade de escreve casos de teste mais de uma vez pois nunca são alterados;
- Comparado a outros procedimentos de teste, existe um tempo menor de compromisso;