O que é teste não funcional?
sobes.tech IA
Resposta da IA
Os testes não funcionais são um tipo de teste de software que se concentra na verificação dos seus requisitos não funcionais. Avalia as características do sistema que não estão diretamente relacionadas com funções específicas, mas sim com o "como" o sistema funciona.
Os principais objetivos dos testes não funcionais:
- Garantir que o sistema atende às expectativas do utilizador e do negócio em termos de desempenho, fiabilidade, facilidade de uso e outros aspetos.
- Identificar problemas que possam afetar a estabilidade, escalabilidade e segurança do sistema.
- Confirmar que o sistema está em conformidade com os padrões e requisitos estabelecidos.
Tipos de testes não funcionais:
| Tipo de teste | Descrição breve | Exemplos de características verificadas |
|---|---|---|
| Testes de desempenho | Avaliação da velocidade, capacidade de resposta, estabilidade e escalabilidade do sistema sob carga. | Tempo de resposta, largura de banda, carga de CPU/memória. |
| Testes de carga | Verificação do comportamento do sistema sob uma carga máxima esperada. | Número de utilizadores simultâneos, transações por segundo. |
| Testes de stress | Verificação do comportamento do sistema ao ultrapassar a carga máxima esperada ou ao faltar recursos. | Ponto de falha do sistema, comportamento sob sobrecarga. |
| Testes de estabilidade (Endurance Testing) | Verificação da capacidade do sistema para suportar um funcionamento contínuo prolongado sob carga. | Fugas de memória, degradação do desempenho com o tempo. |
| Testes de segurança | Verificação da proteção do sistema contra ameaças externas e internas, acessos não autorizados. | Proteção contra injeções SQL, ataques XSS, autenticação, autorização. |
| Testes de usabilidade | Determinar quão fácil e intuitivo é para os utilizadores usar o sistema. | Interface compreensível, navegação fácil, acessibilidade. |
| Testes de compatibilidade | Verificação do funcionamento do sistema em diferentes ambientes (navegadores, OS, dispositivos). | Suporte para diferentes versões de navegadores, OS. |
| Testes de fiabilidade | Avaliação da capacidade do sistema para realizar as suas funções sem falhas durante um período de tempo. | Tempo médio entre falhas (MTBF), probabilidade de falha. |
| Testes de acessibilidade | Verificação da facilidade de uso do sistema para pessoas com deficiências. | Conformidade com os padrões WCAG. |
| Testes de localização/internacionalização | Verificação da adaptação do sistema a diferentes idiomas e configurações regionais. | Cadeias traduzidas, formatos de data/número. |
Os testes não funcionais geralmente são realizados em etapas mais precoces do ciclo de vida do desenvolvimento de software do que os testes funcionais, mas seu planeamento começa com a formação de requisitos. Pode fazer parte de processos automatizados, especialmente em testes de desempenho e segurança.
Ferramentas para testes não funcionais:
- Desempenho: JMeter, LoadRunner, Gatling, k6.
- Segurança: OWASP ZAP, Burp Suite, Acunetix.
- Compatibilidade: BrowserStack, Sauce Labs.
- Facilidade de uso: UserTesting.com, ferramentas de rastreamento ocular.
Um exemplo de automação de parte dos testes não funcionais pode ser um script para verificar o tempo de carregamento de uma página:
import time
import requests
def measure_page_load_time(url):
"""
Mede o tempo de carregamento da URL especificada.
"""
start_time = time.time()
try:
response = requests.get(url)
response.raise_for_status() # Lança HTTPError para respostas ruins (4xx ou 5xx)
end_time = time.time()
load_time = end_time - start_time
print(f"Tempo de carregamento {url}: {load_time:.2f} segundos")
return load_time
except requests.exceptions.RequestException as e:
print(f"Erro ao carregar {url}: {e}")
return None
# Exemplo de uso
url_to_test = "https://www.example.com"
measure_page_load_time(url_to_test)
Os resultados dos testes não funcionais são frequentemente apresentados na forma de relatórios, gráficos e métricas que permitem avaliar as características do sistema e tomar decisões sobre melhorias necessárias.