Upload
vocong
View
214
Download
0
Embed Size (px)
Citation preview
Pedro de Assis Sobreira Jr.
Teste de Software
Prof. Camila
2
Técnicas de Testes
•Técnica de Teste Funcional
•Técnica de Teste Estrutural
3
Testes Funcionais
•Teste de Especificação de Requisitos.
•Teste de Regressão.
•Teste de Tratamento de erro.
•Teste de Suporte Manual.
•Teste de Interconexão.
•Teste de Controle.
•Teste Paralelo.
4
Teste de Especificação
de Requisitos
• Verifica se o sistema é executado
conforme o que foi especificado. São
realizados através da criação de
condições de testes e cheklists de
funcionalidades.
5
Teste de Regressão
• Testa se algo mudou em relação ao
que já estava funcionando corretamente,
ou seja, é voltar a testar segmentos já
testados após uma mudança em outra
parte do software. Os testes de
regressão devem ser feitos tanto no
software quanto na documentação.
6
Teste de Tratamento
de Erro
• Determina a capacidade do software de
tratar transações incorretas. Esse tipo de
teste requer que o testador pense
negativamente e conduza testes como:
entrar com dados cadastrais impróprios,
tais como preços, salários, etc., para
determinar o comportamento do software
na gestão desses erros.
7
Teste de Tratamento
de Erro
•Produzir um conjunto de transações
contendo erros e introduzi-los no sistema
para determinar se este administra os
problemas.
8
Teste de Suporte
Manual
•Verifica se os procedimentos de suporte
manual estão documentados e
completos, determina se as
responsabilidades pelo suporte manual
foram estabelecidas.
9
Teste de Interconexão
•Garante que a interconexão entre os
softwares de aplicação funcione
corretamente. Pois, softwares de
aplicação costumam estar conectados
com outros softwares de mesmo tipo.
10
Teste de Controle
•Assegura que o processamento seja
realizado conforme sua intenção. Entre
os controles estão a validação de dados,
a integridade dos arquivos, as trilhas de
auditoria, o backup e a recuperação, a
documentação, entre outros.
11
Teste de Paralelo
•Comparar os resultados do sistema
atual com a versão anterior
determinando se os resultados do novo
sistema são consistentes com o
processamento do antigo sistema ou da
antiga versão.
12
Teste de Paralelo
•O teste paralelo exige que os mesmos
dados de entrada rodem em duas
versões da mesma aplicação. Por
exemplo: caso a versão mude e os
requisitos não, os dados de saída das
duas versões devem ser iguais.
13
Testes Estruturais
•Teste de Execução.
•Teste de Estresse.
•Teste de Recuperação.
•Teste de Operação.
•Teste de Conformidade.
14
Testes Estruturais
•Teste de Segurança.
•Teste de Unidade.
•Teste de Interação ou Integração.
•Teste de Sistema.
•Teste de Aceitação
15
Teste de Execução
•Verifica os tempos de resposta, de
processamento e o desempenho
(performance), avaliando o
comportamento do software no ambiente
de produção e verificando se as
premissas de desempenho são
atendidas.
16
Teste de Execução
•Em um sistema que possui dez módulos
diferentes e que foi desenvolvido por
equipes diferentes, o teste de execução
avalia o sistema como um todo, é como
se o teste de execução fosse um “play”
no sistema.
17
Teste de Estresse
•Avalia o comportamento do software
sob condições críticas, tais como
restrições significativas de memória,
espaço em disco, etc., ou seja, coloca o
software sob condições mínimas de
operação.
18
Teste de Recuperação
•A recuperação é a capacidade de
reiniciar operações após a perda da
integridade de uma aplicação como, por
exemplo: Ao desligar o computador,
queda de energia elétrica, entre outros.
O teste de recuperação garante a
continuidade das operações após um
desastre.
19
Teste de Operação
•Avalia o processo e sua execução, são
desenhados para estabelecer se o
sistema é executável durante a operação
normal, é um tipo de teste muito
específico, depende do software a ser
testado um exemplo é o software de
“Call Center”.
20
Teste de
Conformidade
•Verifica se o software foi desenvolvido
de acordo com padrões, normas,
procedimentos e guias de TI.
21
Teste de Segurança
•Avalia a adequação dos procedimentos
de proteção e as contramedidas
projetadas, para garantir a
confidencialidade das informações e a
proteção dos dados contra o acesso não
autorizado de terceiros.
22
Teste de Unidade
•É aplicado aos menores componentes
de código, é feito pelos programadores e
testa as unidades individuais: funções,
objetos e componentes.
23
Teste de Integração
ou Interação
•É feito ao término de cada iteração para
validar a execução das funções
referentes aos casos de uso, é feito
normalmente pelo analista de sistemas.
24
Teste de Sistema
•Executa o sistema como um todo para
validar a execução das funções
acompanhando cenários elaborados
(casos de teste) por um analista de
testes em um ambiente de testes.
25
Teste de Aceitação
•É feito antes da implantação do
software, o cliente é quem executa este
tipo de teste no ambiente de
homologação, tem como objetivo
verificar se o software está pronto para
ser utilizado pelos usuários finais.
26
Ciclo de Vida dos
Testes
•Planejamento.
•Preparação.
•Especificação.
•Execução.
•Entrega.
27
Planejamento
•Nesta fase é elaborada a Estratégia de
Teste e o Plano de Teste.
28
Preparação
•O objetivo desta fase é preparar o
Ambiente de Teste (equipamentos,
pessoal, ferramentas de automação,
massa de testes) para que os testes
sejam executados conforme planejados.
29
Especificação
•Nesta fase temos as seguintes
atividades: Elaborar/ Revisar casos de
testes e Elaborar/ Revisar roteiros de
testes.
30
Execução
•Os testes são executados e os
resultados obtidos são registrados.
31
Entrega
•Esta é a última fase do ciclo de vida de
testes, onde o projeto é finalizado e toda
documentação é finalizada e arquivada.
32
Fundamentos do
Teste de Software
Características que levam um software
testável:
•Operabilidade.
•Observabilidade.
•Controlabilidade.
33
Fundamentos do
Teste de Software
Características que levam um software
testável:
•Decomponibilidade.
•Simplicidade.
•Estabilidade.
•Compreensibilidade.
34
Operabilidade
“Quanto melhor funciona, mais
eficientemente pode ser testado.”
Se um sistema é projetado e
implementado com qualidade em mente,
poucos defeitos vão bloquear a
execução dos testes, permitindo que o
teste progrida sem arrancos.
35
Observabilidade
“O que você vê é o que você testa”.
Entradas fornecidas como parte do teste
produzem saídas distintas. Estados e
variáveis do sistema são visíveis ou
consultáveis durante a execução. Saída
incorreta é facilmente identificada. Erros
internos são automaticamente
detectados. O código- fonte é acessível.
36
Controlabilidade
“Quanto melhor você pode controlar o
software, mais o teste pode ser
automatizado e otimizado.” Estados e
variáveis do software e do hardware
podem ser controlados diretamente pelo
engenheiro de teste. Testes podem ser
especificados, automatizados e
reproduzidos.
37
Decomponibilidade
“Controlando o escopo do teste,
podemos isolar problemas mais
rapidamente e realizar retestagem mais
racionalmente.” O sistema de software é
construído por meio de módulos
independentes, que podem ser testados
independentemente.
38
Simplicidade
“Quanto menos houver a testar, mais
rapidamente podemos testá-los”. O
programa deve exibir:
• Simplicidade Funcional: por exemplo, o
conjunto de características é mínimo
necessário para satisfazer aos
requisitos.
39
Simplicidade
•Simplicidade Estrutural: por exemplo, a
arquitetura é modularizada para limitar a
propagação de defeitos.
•Simplicidade do código:por exemplo,
uma norma de codificação é adotada
para facilitar a inspeção e a manutenção.
40
Estabilidade
“Quanto menos modificações, menos
interrupções no teste”. Modificações no
software não são frequentes, controladas
quando ocorrem e não invalidam os
testes existentes. O software recupera-
se bem das falhas.
41
Compreensibilidade
“Quanto mais informações temos, mais
racionalmente vamos testar.” O projeto
arquitetural e as dependências entre
componentes internos, externos e
compartilhados são bem compreendidos.
42
Compreensibilidade
Documentação técnica é acessível
instantaneamente, bem organizada,
específica, detalhada e precisa.
Modificações ao projeto são
comunicadas aos testadores.
43
Tipos de teste
Teste de Caixa Preta
Teste de Caixa Branca
44
Teste Caixa Preta
•Testa-se as funcionalidades verificando
sua correta operação segundo uma ótica
externa a implementação.
•É baseado no que o software faz.
•Teste voltado para depois do término do
software.
45
Teste Caixa Preta
Exemplo:
Testar telas e resultados, entrada e
saída.
46
Teste Caixa Branca
Teste mais a nível de código.
•Testa os IF, WHILE e todas as
estruturas de controle, acesso a dados e
interface. Verificando seu correto
funcionamento.
47
Teste Caixa Branca
Exemplo:
Garante que todos os caminhos foram
percorridos pelo menos uma vez.
Executa os loops.
48
Quem testa?
Caixa Preta: São Analistas/ Usuários
Finais/ Engenheiros de Teste/ Equipe de
Teste.
Caixa Branca: São os Desenvolvedores/
Programadores/ Analistas/ Engenheiros
de Teste.
49
Porque investir
em testes?
•Diminui o custo do retrabalho de
desenvolvimento do software.
•Garantia da qualidade nos sistemas
desenvolvidos.
•Maior credibilidade da empresa no
mercado.
50
Porque investir
em testes?
•Menor tempo para detectar defeitos
(menor custo de desenvolvimento).
•Pessoas treinadas e capacitadas para
testes.
•Utilização de ferramentas apropriadas
para automação de teste.