Testes orientados a requisitos
Introdução
A prática de Teste Orientado por Requisitos (RT) visa garantir a correta implementação dos controles de segurança de um projeto, atendendo aos requisitos declarados. Isso é feito através da criação incremental de casos de teste de segurança, abordando tanto aspectos positivos quanto negativos. Enquanto os testes positivos validam o funcionamento adequado dos controles de segurança, os testes negativos buscam identificar falhas de implementação através de testes de mau uso e abuso. Essa prática também promove testes de estresse de segurança e automação de testes de unidade, visando melhorar continuamente a segurança da aplicação. O Teste Orientado por Requisitos difere do Teste de Segurança ao focar na verificação dos requisitos, enquanto o último busca identificar vulnerabilidades técnicas independentemente dos requisitos.
Modelo
Detectar oportunisticamente vulnerabilidades básicas e outros problemas de segurança.
Realizar testes nos controles de segurança do software.
Realizar testes de fuzzing de segurança.
Realizar uma revisão de implementação para identificar riscos específicos da aplicação em relação aos requisitos de segurança.
Derivar casos de teste a partir de requisitos de segurança conhecidos.
Criar e testar casos de mau uso e testes de falhas na lógica de negócios.
Manter o nível de segurança da aplicação após correções de bugs, alterações ou durante a manutenção.
Derivar casos de teste a partir de requisitos de segurança conhecidos.
Testes de negação de serviço e de estresse de segurança.
Como implementar?
Identificar os requisitos de segurança da aplicação: Analise os requisitos de segurança estabelecidos para a aplicação, como autenticação, controle de acesso, criptografia, prevenção de ataques, entre outros. Compreender esses requisitos é fundamental para garantir a correta implementação dos controles de segurança.
Derivar casos de teste a partir dos requisitos de segurança: Com base nos requisitos identificados, desenvolva casos de teste específicos para verificar se os controles de segurança estão sendo implementados corretamente. Esses casos de teste devem abranger tanto testes positivos (validando o cumprimento dos requisitos) quanto testes negativos (detectando falhas de implementação e bugs de segurança).
Realizar testes de regressão: Durante o ciclo de desenvolvimento e manutenção da aplicação, é importante realizar testes de regressão com foco nos controles de segurança. Isso envolve a execução regular dos casos de teste de segurança já estabelecidos, garantindo que as correções de bugs, alterações e atualizações não introduzam novas vulnerabilidades ou afetem negativamente os controles existentes.
Realizar testes de estresse de segurança: Além dos testes funcionais, é recomendável realizar testes de estresse de segurança, como testes de negação de serviço, para avaliar a resistência e robustez da aplicação sob condições adversas. Esses testes ajudam a identificar possíveis pontos fracos na segurança e melhorar a resiliência da aplicação contra ataques.
Automatizar os testes de segurança: Para garantir a consistência e eficiência dos testes de segurança, é recomendável automatizá-los sempre que possível. Isso inclui a automação dos testes de unidade de segurança e a criação de testes de regressão automatizados para bugs identificados e corrigidos. A automação permite a execução rápida e repetitiva dos testes, ajudando a identificar e corrigir problemas de segurança de forma mais eficiente.
Last updated