Escolar Documentos
Profissional Documentos
Cultura Documentos
Contedo
2a Parte Testes de Software
3
3 3 3
Introduo a testes
Planejamento de testes Projeto de testes Execucao de testes Prtica: Organizao de uma fbrica de Testes
Objetivo
Apresentar e praticar as principais atividades relacionadas a testes de software
Bibliografia
RUP Managing the Testing Process. Rex Black Software Engineering. Ian Sommerville Software Engineering. Pressman
Roteiro
Introduo e Conceitos
Classificao dos Testes Testes e o Ciclo de Vida Processo
3 3 3 3
Conceitos
Como ?
Conceitos
Verificao e Validao (V & V)
3
Nome genrico dado aos processos utilizados para garantir que o software est em conformidade com os requisitos e atende as necessidades dos usurios Atividades relacionadas
Conceitos
Verificao
3
Validao
3
Verificao e Validao
Tcnicas Estticas
3
Avaliao de artefatos (documentos, diagramas, cdigo, etc) Avaliao atravs da execuo do software Testes de software
Tcnicas Dinmicas
3 3
O processo de avaliar um sistema ou um componente de um sistema por meios manuais ou automticos para verificar se ele satisfaz os requisitos especificados ou identificar diferenas entre resultados esperados e obtidos. ANSI/IEEE Standard 729, 1983
10
Motivao
Probabilidade alta de existncia de erros inseridos pelos desenvolvedores 3 O impacto dos custos de falhas de software justificam o investimento 3 Reduzir custos de manuteno 3 Aumentar a satisfao do cliente
3
11
Princpios de Testes
Todos os testes devem ser rastreveis para os requisitos 3 Testes devem ser planejados antes da sua execuo 3 O princpio de Pareto aplica-se a testes
3
Deve-se iniciar das pequenas partes para as maiores impossvel testar todas as possibilidades Testes devem ser executados por uma equipe independente para serem eficazes
12
Determina o uso de
Equipe de Testes
Cria Articula Treina
Processo de Testes
Testware
Operado de acordo com
13
Conceitos Importantes
3
Caso de Teste
Representa uma especificao (entradas e saidas esperadas) com o objetivo de verificar algum aspecto do sistema Representa o passo a passo para a execuo do teste Conjunto de Casos de Testes
Procedimento de Teste
14
Roteiro
Introduo e Conceitos
15
Estrutural (Caixa-Branca) Comportamental (Caixa-Preta) Unitrios Integrao Sistema Aceitao Funcional, Regresso, Stress, Performance, etc
16
Estgios
Tipos de Testes
17
Avaliador concentrar nos pontos mais importantes e perigosos do cdigo Verifica limites internos que so invisveis ao testadores externos
18
Sistema
Sada
19
20
Testes de componentes individuais Testes das interfaces dos componentes Testes da funcionalidade integrada ao ambiente operacional Teste com os usurios (homologao)
Prof. Alessandro Lima
21
Testa-se:
Unidade (Componentes: classes, mtodos, etc) so testados individualmente A interface com a unidade A manipulao com dados inconsistentes ou imprprios Inicializao de variveis Condies de limite para garantir que a unidade trabalhe nos limites especificados Caminhos de controle e de tratamento de erros dentro das fronteiras da unidade (caixa-branca)
Prof. Alessandro Lima
22
Unidade
Interface Estrutura de dados local Condies de fronteira Caminhos independentes Caminho de tratamento de erro
23
Stub
Stub
Driver Programa principal que aceita dados do caso de teste, repassa-os para o mdulo a ser testado e visualiza os resultados Stub Programas temporrios que substituem outros mdulos que ainda no foram construdos ou testados isoladamente
Resultados
Testes de Software - Introduo Prof. Alessandro Lima
24
Unidades que foram testadas isoladamente agora so testadas de forma integrada A integrao deve ser realizada de forma incremental para evitar o caos O teste executado por um testador de integrao (programador) A integrao realizada entre unidades (mdulos, classes, etc) Pode ser realizada de duas maneiras:
Top-down Bottom-up
Prof. Alessandro Lima
25
M2
M2
Os mdulos so integrados de cima para baixo 3 Pode-se utilizar Drivers e Stubs para fazer a integrao de forma incremental 3 Duas estratgias:
3
M3
M4
Depth-first: testa um caminho completo Breadth-first: Testa um nvel da hierarquia de cada vez
26
M2
M2
M3
M4
Os mdulos so integrados de baixo para cima 3 O mdulos inferiores so combinados (clusters) 3 Cria-se Drivers para testar os clusters 3 Os Drivers so substitudos a cada etapa
3
Cluster
27
Top-down
Vantagem: Os testes das funes principais so realizados no incio Desvantagem: Criao de stubs Vantagem: No precisa de Stubs Desvantagem: O mdulo principal s testado aps os mdulos inferiores
Bottom-up
28
29
Testes Alfa: Realizados em ambiente controlado por TI Testes Beta: Realizados no ambiente dos usrios sem controle de TI
Deve prever treinamentos e documentao para os usurios 3 Documentos de testes criados podem ser utilizados
3
30
Funcional Recuperao Segurana Stress, Carga e Volume Performance Configurao e portabilidade Instalao Documentao Regresso Ciclo de Negcio Interface com o usurio
Prof. Alessandro Lima
31
Testa as funcionalidades com regras de negcios associadas mais requisitos no funcionais Exemplo: Teste de abertura de um conta corrente
32
Fora falha no sistema para verificar que o sistema consegue se recuperar sem causar danos A recuperacao do sistema pode ser automtica ou manual, mas o importante a manuteno do estado anterior do sistema O tempo de recuperao muito importante
33
Verifica se os mecanismos de proteo as informaes sensveis de fato impedem o acesso indevido Reconhece-se de uma maneiral geral que o modelo de segurana adotado nunca perfeito O projeto desse teste deve garantir que custo para quebrar a segurana maior que o valor da informao protegida
Prof. Alessandro Lima
34
35
36
Se o software estiver processando um conjunto de registros de banco de dados para gerar um relatrio, um Teste de Volume utilizar um grande banco de dados de testes e verificar se o software se comportou normalmente e gerou o relatrio correto.
37
Testa o desempenho do sistema em determinadas condioes Essencial para sistemas em tempo-real Pode ser executado em qualquer estgio dos testes (unidade a aceitao) Faz-se necessrio realizar instrumentao do hardware e software, ou seja, medio da utilizao dos recursos (ciclos da maquina, memria, etc) de forma padronizada
Prof. Alessandro Lima
38
Compatibilidade Configuraes do servidor Tipos de conexes com a internet Compatibilidade com o browser
39
Verifica a correta instalao do sistema para diferentes plataformas de hardware/software e opes de instalao Testa-se
40
41
a atividade de testes que ajuda a garantir que mudanas no software nao ocasionaram erros em funes j testadas Podem ser realizados:
Manualmente re-executando novamente um subconjunto dos testes ja executados Automaticamente atravs de scripts de testes
42
43
44
Resumo
Stakeholders Teste Aceitao Teste Caixa Preta Teste Caixa Preta Teste Caixa Branca e Preta Teste Caixa Branca
Prof. Alessandro Lima
Requisitos
Teste Sistema
Alfa, Beta
Desempenho, Regresso
Projeto
Teste Integrao
Cdigo
Teste Unidade
45
Roteiro
Introduo e Conceitos Classificao dos Testes
46
47
48
Apesar dos focos localizados de testes (Integrao, Sistema e Aceitao), em cada uma das fases possvel a ocorrncia de qualquer um deles
49
Elaboration
Preliminary iteration
Devel.. iteration
Devel.. iteration
Transition iteration
Transition iteration
Testes de Sistema
Testes de Aceitao
50
Estabilizao da aplicao
Estabilizao
Correes
Erros
Tempo
Testes de Software - Introduo Prof. Alessandro Lima
51
52
53
54
Roteiro
Introduo e Conceitos Classificao dos Testes Testes e o Ciclo de Vida
Processo
3 3 3 3
55
Planejamento
Projeto
Implementao
Execuo
Avaliao
3 3 3
Representa um fluxo de atividades para uma disciplina de testes Determina a sequencia lgica de passos para o sucesso dos testes Indica tambm os papis que devem executa o processo
Prof. Alessandro Lima
56
Planejamento
Projeto
Implementao
Execuo
Avaliao
57
Processo de Testes
Planejamento Gerente
Projeto Arquiteto
Reviso
Automao v Automatizador
Testador
Execuo
58
Papis de Testes
Responsvel pelo planejamento das atividades de Testes Responsvel pelo projeto de testes (casos de testes, massa, etc) Automatiza os testes desenvolvendo scripts Executa os testes
Prof. Alessandro Lima
Gerente
Arquiteto
Automatizador
Testador
59
Processo de Testes
Planejamento Gerente
Projeto Arquiteto
Reviso
Automao v Automatizador
Testador
Execuo
60
Planejamento
Planejamento dos testes uma atividade essencial para se atingir os objetivos da disciplina O planejamento pode existir para todo o projeto bem como para cada iterao O resultado dessa atividade criar o Plano de Testes
61
Plano de Testes
Define as metas e os objetivos dos testes no escopo da iterao (ou projeto), os itens de destino, a abordagem adotada, os recursos necessrios e os produtos que sero liberados. Objetivos:
3
Descrever e comunicar a inteno do esforo de teste em um determinado planejamento. Obter aceitao e aprovao dos investidores no esforo de teste.
62
63
Introduo ao documento explicando os seus objetivos Identifica os produtos que sero testados, incluindo a verso Descreve o alcance geral dos testes (As fronteiras) Fornece uma lista dos documentos que o plano de testes faz referncia
Escopo
3
Referncias
3
64
3 3
Aqui deve-se relacionar cada requisito funcional e no funcional a ser testada ou no Relaciona-se tambm os tipos de testes que sero utilizados paras os requisitos listados Descreve-se O QUE TESTAR? Especificar:
65
3 3
A Estratgia de Teste apresenta a abordagem recomendada para o teste dos aplicativos de software. Descreve-se COMO TESTAR? Especificar:
Tipo do Teste Descrio Objetivo do Teste Tcnica Critrios de Concluso Consideraes Especiais Ferramentas associadas
66
Produtos de Trabalho
3
67
Identifica as atividades necessrias para preparar e executar os testes, bem como todas as dependncias entre as tarefas Cronograma Macro das Atividades
Marcos do Projeto
3
68
RUP NA Objetivo Escopo Requisitos de testes Requisitos de testes Estratgia de testes Estratgia de testes Produtos de trabalho Recursos Tarefas do Projeto Marcos do Projeto NA
Prof. Alessandro Lima
70
71
Processo de Testes
Planejamento Gerente
Projeto Arquiteto
Avaliao
Automao v Automatizador
Testador
Execuo
72
Projeto
O projeto tem por objetivo:
Identificar e descrever os casos de testes 3 Identificar e descrever os procedimentos de testes 3 Identificar e descrever a massa de testes Principais Resultados 3 Casos de Testes + Procedimentos de Testes 3 Planilha de Testes
3
73
Tem por finalidade fazer uma avaliao de algum aspecto especfico do software
74
75
76
Especifica o estado em que o sistema deva se encontrar para a realicao do cados de teste Ex: Usurio logado, Venda no estado de recebimento, etc
77
3 3
Informaes que sero utilizadas para a realizao do teste No apenas entrada via teclado Outras fontes:
78
3 3
Informaes que sero disponibilizadas aps durante e aps a execuo No apenas sada no monitor Outras sadas:
79
80
81
Vamos analisar agora como derivar Casos de Testes para requisitos Funcionais
82
83
84
85
86
87
88
Na Etapa 4 do Fluxo Bsico - Verificar a Conta e a Senha, o cliente tem trs chances de digitar a senha correta. Se for digitada uma senha incorreta, o caixa eletrnico exibir a Fluxo Alternativo 4 Senha mensagem apropriada, e se houver novas tentativas, esse fluxo Incorreta retornar Etapa 3 do Fluxo Bsico - Digitar a Senha. Se na ltima tentativa o nmero PIN digitado estiver incorreto, o carto ser retido, o caixa eletrnico retornar ao Estado Pronto, e esse caso de uso ser encerrado. Fluxo Alternativo 5 Nenhuma Conta
Testes de Software - Introduo
Na Etapa 4 do Fluxo Bsico - Verificar a Conta e a Senha, se o Sistema bancrio retornar um cdigo indicando que a conta no foi encontrada ou que ela no permite retiradas, o caixa eletrnico exibir a mensagem apropriada e retornar Etapa 9 do Fluxo Bsico 89 Prof. Alessandro Lima Devolver o Carto.
3 3
3 3
Fluxo Bsico - Retirada de um valor predefinido (R$10, R$20, R$50, R$100) Fluxo Alternativo 2 - Caixa Eletrnico sem Dinheiro Fluxo Alternativo 3 - Fundos insuficientes no caixa eletrnico Fluxo Alternativo 4 - Senha Incorreta Fluxo Alternativo 5 - Nenhuma Conta/Tipo de Conta Incorreto
Prof. Alessandro Lima
91
92
Campos de condies
Saldo Saldo na no conta Caixa V V Resultado Esperado Retirada em dinheiro bemsucedida. Opo Retirada em Dinheiro indisponvel, fim do caso de uso Mensagem de aviso, retorno Etapa 6 do Fluxo Bsico - Digitar o Valor Mensagem de aviso, retorno Etapa 4 do Fluxo Bsico, Digitar a Senha Mensagem de aviso, retorno Etapa 4 do Fluxo Bsico, Digitar a Senha Mensagem de aviso, carto retido, fim do caso de uso
I-Invlido n/d No Aplicvel 93
CT1
Cenrio 2 - Caixa Eletrnico sem CT2 Dinheiro Cenrio 3 - Fundos insuficientes no CT3 caixa eletrnico Cenrio 4 Senha Incorreta ( 1 CT4 tentativa) Cenrio 4 - Senha Incorreta (2 CT5 tentativa) CT6 Cenrio 5 - PIN Incorreto (3a tentativa)
n/d
n/d
n/d
V
V-Vlido
Completude => Cada campo tem que ter pelo menos um valor Invlido
Testes de Software - Introduo Prof. Alessandro Lima
Como fica a Derivao para requisitos no funcionais? Pode-se utilizar o mesmo conceito utilizando tabelas de casos de testes
94
PCW2
PCW3
95
Na Rede Bancria Fora da rede bancria No possvel ler o carto Carto indicado como roubado
V V I I I
V I V V V
Todos os Casos de Uso disponveis Apenas caso de uso de retirada em dinheiro Mensagem de Aviso, Carto ejetado Mensagem de Aviso, carto retido Mensagem de aviso, carto retido
96
97
O caso de teste 1 exercita uma determinada funcionalidade que deixa o sistema no estado em que o prximo caso de teste possa ser executado Exemplo:
1. 2. 3.
98
Casos de uso ficam menores e simples Se um falhar os outros no podem ser executados
Desvantagem
3
99
100
Os casos de testes podem ser executado em qualquer ordem So mais complexos So mais difceis de projetar
Desvantagem
3 3
101
102
103
104
Classe A
Valores
Classe A
Valores
Classe A Valores
105
Partio de Classe de equivalncia Anlise de Valor de Limite Valores Especiais Mtodo de "Partio por Categoria"
106
Vlidos Invlidos
107
vlida
De 10 a 100 O programa aceita valores de 10 a 10
108
vlida
Valores da Lista
109
vlida
Valores com letras maisculas Classes de equivalncia invlidas: Outros valores
110
limites
111
112
Para um tipo inteiro, zero sempre dever ser testado se estiver na classe de equivalncia vlida. Ao testar a data (ano, ms e dia), vrios casos de teste devero estar envolvidos, como o nmero de dias em um ms especfico, o nmero de dias em fevereiro no ano bissexto, o nmero de dias no ano no-bissexto.
114
Leitura de documentos Entrevista com usurios Explorao da aplicao Experincia passada Testes intuitivos sem um roteiro a ser seguido Testador recebe uma misso e comea a testar diferente do Ad-Hoc pois existe um certo nvel de planejamento (misso)
Testes exploratrios
3 3 3
115
116
117
118
entrada para criar uma condio sada para avaliar um requisito suporte (uma pr-condio para o teste)
Portanto, a identificao dos valores um esforo importante que feito quando Casos de Teste so identificados
Testes de Software - Introduo Prof. Alessandro Lima
119
O volume ou a quantidade de dados nos Dados de Teste O grau de variao nos Dados de Teste A relevncia dos Dados de Teste para o objetivo do teste A estrutura fsica dos Dados de Teste
Amplitude
3
Escopo
3
Arquitetura
3
120
121
Valores de Saque: 20, 25, 50, 100 Nomes que incluam cargos, valores numricos, pontuao e sufixos:
Dr. James Bandlin, Srta. Susan Smith e Rev. Joseph P. Mayers James Johnson III, Steven Wilshire 3rd e Charles James Ellsworth, Esq. Ellen Jones-Smythe, Brian P. Tellstor
122
0000 - 9999
-999.999,99 a 999.999,99
S, C, X
S S C X
123
124
0000 - 9999
-999.999,99 a 999.999,99
S, C, X
S S C X C X
125
Instabilidade / segregao - isolamento de influncias externas dos Dados de Teste (ambiente isolado) Estado inicial - conhecimento do estado inicial especfico dos dados e da capacidade de retornar para esse estado (Baseline dos dados)
126
127
Processo de Testes
Planejamento Gerente
Projeto Arquiteto
Avaliao
Automao v Automatizador
Testador
Execuo
128
Execuo
Tem por objetivo verificar a corretude e a qualidade do produto atravs da realizao dos testes Atividades realizadas
3 3
Entradas importantes
3 3 3 3
129
Validar se a build disponibilizado para os testes possui o mnimo de estabilidade para entrar no ambiente de teste e comear o primeiro ciclo de testes
Devem ser elaborados ou escolhidos casos de testes representativos para essa execuo:
3 3 3
130
Executar os casos de testes e registrar os defeitos / incidentes detectados. Pacote de Execuo (Atualizao)
Sada importante
Todos os incidentes ocorridos durante os testes, que comprometam em qualquer nvel a qualidade do sistema ou a continuidade dos testes, devero ser registrados
131
No atualizar os casos de testes durante a execuo dos testes No registrar os defeitos encontrados de forma aleatria. No perca tempo testando Features que no so parte da release atual
132
Prtica Execuo
3
133
Processo de Testes
Planejamento Gerente
Projeto Arquiteto
Avaliao
Automao v Automatizador
Testador
Execuo
134
Execuo Avaliao
Objetivo
3
Avaliar criticamente os resultados alcanados pelos testes Avaliar Defeitos Registrar resultados gerais dos testes Avaliar cobertura dos testes Analisar resultados gerais
Atividades
3 3 3 3
135
Execuo Avaliao
Sadas
Registro de Defeito
Pode ser representado atravs de uma CR (Change Resquest)
Relatrio de Testes
136
A confirmao dos Defeitos ou Incidentes detectados pelos Testadores realizado pelo Arquiteto de Teste responsvel. Esta ao evita que falhas de execuo dos testadores ou at mesmo pr-configuraes dos casos de testes que no foram executadas pelos Testadores sejam computados como defeitos do sistema Aps a confirmao um defeito deve ser aberto para que seja acertado
137
138
IDENTIFICADOR DA MUDANA
<Um cdigo identificador da CR>
IDENTIFICAO DO SOLICITANTE
<Identificao da pessoa que solicita a Mudana>
IDENTIFICAO DO SISTEMA
1. 2. 3.
139
TIPO DA MUDANA
<Categoria da Mudana: Melhoria, Nova funcionalidade, Correo de Defeito>
2.
DESCRIO
< Detalhamento do que se esta pedindo. No caso de defeitos interessante reportar o ponto exato do mesmo no software>
3. 4.
PRIORIDADE
<O nvel de urgncia para a implementao da Mudana>
ANEXOS
<Anexar documento que possa auxiliar na resoluo do problema>
140
Execuo Avaliao
Relatrio de Testes (Contedo)
141
Execuo Avaliao
Relatrio de Testes
3
Medir quantitativamente e qualitativamente o progresso dos testes e gerar um relatrio de avaliao dos testes Outra sada importante do processo de reviso o de relatar de uma forma gerencial os resultados obtidos pela execuo dos testes Contm
Nmero total de CTs previstos Nmero total de CTs executados Nmero total de CTs com sucesso e falha Nmero total de CTs que no foram executados
142
Grficos auxiliares
3
3 3
Densidade de defeitos (defeito por atributo: prioridade, origem, etc) Tendncia dos defeitos (# em funo tempo) Idade dos defeitos (defeitos por status e tempo)
Prof. Alessandro Lima
143
144
145
146
Prtica Avaliao
3
147
FIM
Perguntas?
148