![Page 1: How to Break Software Capítulo 2 Taíse Dias Testing from the User Interface](https://reader036.vdocuments.mx/reader036/viewer/2022062418/552fc142497959413d8df79c/html5/thumbnails/1.jpg)
How to Break Software
Capítulo 2 Taíse DiasTesting from the User Interface
![Page 2: How to Break Software Capítulo 2 Taíse Dias Testing from the User Interface](https://reader036.vdocuments.mx/reader036/viewer/2022062418/552fc142497959413d8df79c/html5/thumbnails/2.jpg)
Roteiro
Usando o modelo Fault para guiar testes
Explorando Inputs Attack 1 Attack 2
![Page 3: How to Break Software Capítulo 2 Taíse Dias Testing from the User Interface](https://reader036.vdocuments.mx/reader036/viewer/2022062418/552fc142497959413d8df79c/html5/thumbnails/3.jpg)
Modelo Fault para guiar testes Baseado em estratégias: ataques Divididos em 4 categorias:
aceitar entradas produzir entradas armazenar dados executar cálculos (computação)
Devem ser executados um de cada vez
![Page 4: How to Break Software Capítulo 2 Taíse Dias Testing from the User Interface](https://reader036.vdocuments.mx/reader036/viewer/2022062418/552fc142497959413d8df79c/html5/thumbnails/4.jpg)
Explorando Inputs
Aplicações sem documentação
Testadores precisam conhecer comportamento do software
Dificuldade pra realizar testes
Solução: conhecer a aplicação usando o software
![Page 5: How to Break Software Capítulo 2 Taíse Dias Testing from the User Interface](https://reader036.vdocuments.mx/reader036/viewer/2022062418/552fc142497959413d8df79c/html5/thumbnails/5.jpg)
Attack 1
“Apply inputs to force all error messages to occur”
![Page 6: How to Break Software Capítulo 2 Taíse Dias Testing from the User Interface](https://reader036.vdocuments.mx/reader036/viewer/2022062418/552fc142497959413d8df79c/html5/thumbnails/6.jpg)
Quando aplicar esse ataque? Característica essencial de um
software: desvidar entradas incorretas ou responder apropriadamente a essas entradas
Assegurar que código de erro escrito pelo desenvolvedor foi testado
![Page 7: How to Break Software Capítulo 2 Taíse Dias Testing from the User Interface](https://reader036.vdocuments.mx/reader036/viewer/2022062418/552fc142497959413d8df79c/html5/thumbnails/7.jpg)
Quando aplicar esse ataque? Inputs que estão fora do intervalo permitido
ou de tipo diferente do permitido
Provavelmente serão encontrados bugs
Conhecer técnicas utilizadas por
desenvolvedores Input Filters: entradas incorretas filtradas
pela interface gráfica Input checking: software não é executado
com entradas incorretas (if else) e retorna mensagens de erro
Exception handlers: “permite” o sistema falhar, permite que o sistema continue interagindo com o usuário
![Page 8: How to Break Software Capítulo 2 Taíse Dias Testing from the User Interface](https://reader036.vdocuments.mx/reader036/viewer/2022062418/552fc142497959413d8df79c/html5/thumbnails/8.jpg)
Quando aplicar esse ataque? O teste deve focar em inputs
erradas
Gerar cada mensagem de erro pelo menos uma vez
![Page 9: How to Break Software Capítulo 2 Taíse Dias Testing from the User Interface](https://reader036.vdocuments.mx/reader036/viewer/2022062418/552fc142497959413d8df79c/html5/thumbnails/9.jpg)
Que falhas do software tornam esse ataque bem sucedido? Desenvolvedor pára de pensar
no fluxo principal e considera entradas incorretas
Software pára a execução para mostrar a mensagem de erro e continua a execução da aplicação
Exception handler Benefícios aos usuários e aos
desenvolvedores de manutenção
![Page 10: How to Break Software Capítulo 2 Taíse Dias Testing from the User Interface](https://reader036.vdocuments.mx/reader036/viewer/2022062418/552fc142497959413d8df79c/html5/thumbnails/10.jpg)
Como determinar se esse ataque revela falhas? Dados de entrada que os
desenvolvedores não sabiam que eram incorretos
Casos específicos negligenciados Provocam o travamento dos
softwares Mensagens mal formadas
prejudicam credibilidade do software
![Page 11: How to Break Software Capítulo 2 Taíse Dias Testing from the User Interface](https://reader036.vdocuments.mx/reader036/viewer/2022062418/552fc142497959413d8df79c/html5/thumbnails/11.jpg)
Como conduzir esse ataque? Considerar as seguintes
propriedades:
O tipo da entrada: utilizar tipos inválidos geralmente causam mensagens de erro
Tamanho da entrada
Valores de fronteiras: todo tipo de dado numérico possui valores limites
![Page 12: How to Break Software Capítulo 2 Taíse Dias Testing from the User Interface](https://reader036.vdocuments.mx/reader036/viewer/2022062418/552fc142497959413d8df79c/html5/thumbnails/12.jpg)
Attack 2
“Apply inputs that force the software to estabilish default
values”
![Page 13: How to Break Software Capítulo 2 Taíse Dias Testing from the User Interface](https://reader036.vdocuments.mx/reader036/viewer/2022062418/552fc142497959413d8df79c/html5/thumbnails/13.jpg)
Ocorre falha caso o software seja executado sem que o valor default da variável seja atribuído
Garante que a maior parte de valores default para dados são testados
Bugs surgem caso variáveis não inicializadas sejam utilizadas
Aplicado em qualquer programa que declara, inicializa e usa dados
Funciona por causa de falhas na compilação Setar compilador corretamente Ferramentas para analisar código
Exemplo: deixar um campo em branco não atribui nenhum valor à variável
Quando aplicar esse ataque?
![Page 14: How to Break Software Capítulo 2 Taíse Dias Testing from the User Interface](https://reader036.vdocuments.mx/reader036/viewer/2022062418/552fc142497959413d8df79c/html5/thumbnails/14.jpg)
Como conduzir esse ataque? Verificar opções de botões,
configuração de painéis, telas de instalação
As mensagens retornadas por esses itens são comumente usadas em toda a aplicação
O testador deve selecionar os dados de acordo com sua intuição (se o dado está sendo o usado)
Consultar o código na seção de declaração de dados
![Page 15: How to Break Software Capítulo 2 Taíse Dias Testing from the User Interface](https://reader036.vdocuments.mx/reader036/viewer/2022062418/552fc142497959413d8df79c/html5/thumbnails/15.jpg)
Como conduzir esse ataque? Após identificar dados:
Aceitar valores default exibidos pelo software
Entrar com valores nulos Trocar o valor default Usar primeiro o valor default e depois
trocar por valor nulo