testes de software · 2020-06-11 · testes dirigidos a dados (tdd) graphical user interface testes...
TRANSCRIPT
Testes de SoftwareMSc. Marcelo Aires
Planejamentode Testes
Relembrando▫ Introdução▫ Controle ágil, rápido e confiável de qualidade▫ Tipos de automação:
▫ Testes dirigidos a dados (TDD)▫ Graphical user interface▫ Testes baseados em API
3
Agenda▫ Introdução▫ Estimativas de Testes
▫ Técnicas para estimativa de software▫ Pontos para testes de software funcionais
▫ Planos de Testes▫ Importância do planejamento▫ Estrutura do plano de teste▫ Exemplos de planos de testes
4
Introdução▫ Imagine que você vai desenvolver um software para
um cliente.▫ Você e ele não documentaram por escrito o que seria
feito e tudo é tirado da cabeça do cliente.▫ Seu cliente, ao término de uma tarefa, lhe passa a
próxima funcionalidade e você desenvolve.▫ Isso continua durante todo o projeto.▫ Qual o problema? O que falta?
5
Introdução▫ Basicamente, faltam-se um guia e uma estimativa:
▫ guia: para seguir os passos de forma correta, até agrupando possíveis funcionalidades;
▫ estimativa: uma vez dito como deve ser feito, espera-se ou estima-se que algo saia de determinada maneira.
▫ Estimativa de testes terá a mesma função▫ são documentos que ajudam a estimar o quanto de esforço ainda
é necessário e em quais etapas.▫ Estimativas e planejamento estão ligados, não há
como planejar sem estimar.6
Estimativasde Testes
Estimativas de Testes▫ Compreensão com exemplo (suposição)
▫ Lançamento de um jogo▫ desenvolvedores estimam 20 horas de jogo;▫ depois de jogar por um tempo, salvou com 9 horas jogadas;▫ com base na expectativa, faltam 11 horas;▫ Mesmo sem saber o progresso, sabe-se que jogou 45% -
estimativa auxiliou.
8
Estimativas de Testes▫ Em testes de software, funciona do mesmo jeito.▫ Importância das estimativas:
▫ fazem parte de qualquer planejamento bem-feito;▫ são essenciais para lidar com previsões e cronogramas;▫ ajudam no andamento do projeto e o quanto precisa de reparos;▫ se aplicadas corretamente, facilitam o gerenciamento, o
planejamento e o controle do projeto.▫ Existe uma série de técnicas que são aplicáveis a
cada tipo de projeto e necessidade.9
Técnicas para estimativa de software▫ O sucesso das estimativas está ligado a técnica
escolhida.▫ insucessos podem ocorrer devido a heterogeneidade dos
projetos.▫ importante criar um padrão que funcione para a maioria dos
projetos.▫ Alguns podem podem ser destacados para seguir
que funciona independente do tipo de técnica escolhido.
10
Técnicas para estimativa de software▫ Os pontos são (Veenendaal e Dekkers, 1999):
▫ Conhecer os requisitos essenciais do software;▫ Conhecer o domínio do software;▫ Considerar os riscos e a complexidade do projeto;▫ Conhecer a fundo a equipe do projeto;▫ Conhecer os resultados e as técnicas das estimativas de projetos
anteriores;▫ Conferir se possíveis bugs são considerados nas estimativas;▫ ALguns pontos referentes à equipe pode influenciar (férias,
doença, etc).
11
Técnicas para estimativa de software▫ Existem diversas técnicas, as principais são:
▫ Técnica de estimativa de teste de software em três pontos;▫ Método de ponto de caso de uso;▫ Estrutura de quebra de serviço;▫ Análises de testes de pontos;▫ Método de porcentagem de esforço;▫ Distribuição de porcentagem;▫ Método do melhor palpite;▫ Método baseado em experiências.
12
Técnica deestimativa de teste de
software em três pontos
Técnica de estimativa de teste de software em três pontos▫ Cada método consiste em uma tarefa que é
subdivida em 3 partes (3 estimativas): estimativa ideal, esperada e completamente errada.
▫ Para esta técnica é utilizada a seguinte fórmula:
14
P: positivos (otimista) - condições ideais.N: negativos - podem dar errado; mais provável.E: pessimistas - todo processo dará errado.
Técnica de estimativa de teste de software em três pontos▫ Exemplo: Se você tem uma tarefa A com estimativa
otimista de 12h, mais provável de 17h e pessimista de 28h, o resultado seria uma média de 18h para realizá-la:
A = (P + 4 x N + E) / 6A = (12 + 4 x 17 + 28) / 6
A = 18 h
15
Método de pontode caso de uso
Método de ponto de caso de uso▫ Considera-se atores e casos de uso.▫ Baseia-se nas especificações do usuário e de outros
interessados no software.▫ Foco em estimar o tamanho do sistema baseado em
casos de uso.▫ Cálculo utiliza pesos por atores, pesos por caso de
uso, pesos por fatores técnicos e pesos por fatores ambientais.
17
18
Método de ponto de caso de usoEtapas:
1.1. Soma-se os pesos por atores (TPNAA);1.2. Soma-se os pesos por casos de uso ajustados (TPNAUC);1.3. Calcula-se os casos de uso não ajustados (PCUNA);1.4. Determina-se o fator de complexidade técnica;
1.4.1. FCT = 0.6 + (0.01 * Somatório do Fator técnico)1.5. Determina-se o fator de complexidade ambiental;
1.5.1. FCA = 1,4 + (-0,03 * Somatório do Fator Ambiental)1.6. Estima-se o tamanho;
1.6.1. PCUA = PCUNA * FCT * FCA1.7. Estima-se o esforço.
1.7.1. UCP * Produtividade * Gestão * Risco19
Estrutura dequebra de serviço
Estrutura de quebra de serviço▫ Os testes são divididos em vários módulos e cada
módulo dividido em vários submódulos.▫ Cada submódulo é dividido em funcionalidades e
cada funcionalidade é dividida em subfuncionalidades.
▫ Útil para estimar o quanto a equipe já trabalhou e o quanto precisa trabalhar para finalizar.
21
22
Análises detestes de pontos
Análises de testes de pontos▫ Aplicada a testes de caixa-preta.▫ Uma das técnicas mais aceita para estimar o
tamanho do projeto.▫ Usada quando há pouca documentação.▫ Realiza-se:
▫ pontos de prova dinâmicos (funções do sistema), pontos de prova estáticos (sistema como um todo), fator ambiental, fator de produtividade, horas de testes primários, fator de controle e total de horas de teste.
24
Análises de testes de pontos▫ Os principais componentes desta técnica são:
▫ Pontos de função de dados não ajustados▫ arquivo interno e interface externa.
▫ Pontos de transição de função não ajustado▫ entrada de usuário, saída de usuário e perguntas do usuário.
▫ Fórmulas:n° casos de testes = [n° pontos de função] * 1,2
Total de esforço = (n° casos de testes) * (% de esforço de desenvolvimento/100)
25
Método deporcentagem de esforço
Método de porcentagem de esforço▫ Nesta técnica divide-se em porcentagens as
estimativas esperadas de cada tipo de esforço.▫ (nem sempre o projeto será da maneira estimada)▫ Ajuda a ter um caminho a seguir, o que falta, o que
foi completado e, o mais importante, se as expectativas estão sendo alcançadas.
27
Distribuição de porcentagem
Distribuição de porcentagem▫ A função é verificar, em porcentagem, o esforço
necessário para o projeto, com base na experiência e horas de testes necessárias.
▫ Ex:▫ em projeto anterior -> 500 pontos de função com um total de
50hrs de testes. Assim, o esforço é:P = (50/500) * 100 = 10%
▫ em um novo projeto, têm-se 1500 pontos de função, então:Total de esforço = 1500 * (P/100) = 1500 * (10/100) = 150h de testes
29
30
Método domelhor palpite
Método do melhor palpite▫ Técnica informal e subjetiva, mas que pode dar certo.▫ Baseada em experiências anteriores da equipe.▫ Estimativas levantadas por membros da equipe.
32
Método baseadoem experiências
Método baseado em experiências▫ Técnica informal e subjetiva, mas que pode dar certo.▫ Semelhante à anterior, mas basea-se na experiência
pessoal de quem costuma criar estimativa.▫ Fatores levados em conta:
▫ métricas de dados anteriores e resultados de testes de aplicativos similares.
34
Pontos para testesde software funcionais
Análise de pontos de testes (APT)▫ Ajuda a estimar os testes com maior eficácia e
eficiência.▫ Deve-se considerar:
▫ O tamanho do sistema a ser testado;▫ A estratégia de teste:
▫ seleção de componentes de sistema;▫ características de qualidades a serem testadas;▫ cobertura dos testes.
▫ Nível de produtividade.
36
Análise de pontos de testes (APT)▫ O tamanho do sistema e as características de
qualidade determinam o volume de trabalho de testes que será realizado (pontos de testes).
▫ O tempo total para realizar um volume de testes predefinido é chamado de produtividade.
▫ Multiplicando os pontos de teste pela produtividade, tem-se a estimativa de testes em horas.
37
Análise de pontos de testes (APT)▫ Para tornar as estimativas mais eficazes, deve-se considerar
os seguintes fatores:▫ o grau de complexidade do processo de testes;▫ o nível de qualidade pretendida com os casos de testes;▫ o nível de envolvimento de usuários com os testes;▫ as interfaces entre funções testadas e arquivos;▫ a qualidade dos sistemas testados;▫ o nível de cobertura esperado com os testes;▫ a experiência e produtividade por parte da equipe de testes;▫ o grau de automação de testes;▫ a qualidade do ambiente de teste;▫ a capacidade do ambiente de testes de simular o ambiente real;▫ a qualidade da documentação do sistema e requisitos. 38
39
Pontos de testes dinâmicos (PTD)▫ Os pontos necessários são calculados com base em:
▫ Número de pontos de função atribuídos à função;▫ Fatores de funções dependentes:
▫ complexidade;▫ interface;▫ importância do usuário;▫ intensidade de uso;▫ outros.
▫ Qualidade dos requisitos relacionados;▫ Ou seja: a soma de pontos de cada função é o
número de PTD40
Pontos de testes estáticos (PTE)▫ Os pontos necessários são calculados com base em:
▫ no número total de pontos de função;▫ na qualidade dos requisitos;▫ nas estratégias de testes estáticos.
41
Total de horas primárias (THP)▫ É obtido pela multiplicação de:
▫ número total de pontos de testes;▫ produtividade;
▫ Referem-se ao total de trabalho em fases primárias, as etapas são:▫ preparação;▫ especificação;▫ execução;▫ conclusão.
42
Número total de horas de testes▫ Adicionar os subsídios ao total de horas primárias
indica o total de horas de testes▫ subsídios: planejamento e o controle (fase de gerenciamento);▫ o tamanho dos subsídios depende do tamanho dos testes.
▫ Todas as atividades de teste requerem a estimativa do total de horas testadas.
43
Metodologiapara análise de
pontos de testes
Metodologia para análise de pontos de testes▫ Os projetos podem se enquadrar em quatro modelos
básicos:▫ Produção de caso de teste: ter um caso de teste bem definido;▫ Criação de script automatizado: automação de casos de testes;▫ Execução manual de testes: considera-se apenas o manual e os
defeitos encontrados;▫ Execução automatizada de testes: considera-se apenas o
automático e os problemas relatados.▫ O projeto possui a junção de, no mínimo, 2 modelos.
45
Metodologia para análise de pontos de testes▫ Para não se perder nos modelos, pode-se seguir
uma metodologia básica (baseada em casos de uso):▫ identificar casos de uso;▫ identificar casos de testes;▫ determinar pontos de teste para criação de casos de testes;▫ determinar pontos de teste para a automação;▫ determinar pontos de teste para a execução manual;▫ determinar pontos de teste para a execução automatizada;▫ determinar pontos totais de testes.
▫ Cada um dos itens requer alguns cálculos.46
Cálculo deesforço de teste
Determinar pontos de teste para criação de casos de testes▫ É preciso considerar a complexidade do caso de teste
48
Determinar pontos de teste para criação de casos de testes▫ O cálculo é realizado da seguinte forma:
Pontos de caso de teste = (n. de casos de testes simples * 6) + (n. de casos de testes médio * 8) + (n. de casos de
testes complexos * 12)
49
Determinar pontos de teste para a automação▫ Deve-se escolher quais testes serão automatizados
50
Determinar pontos de teste para a automação▫ O cálculo é realizado da seguinte forma:
Pontos de automação de caso de teste = (n. de casos de testes simples * 6) + (n. de casos de testes médio * 8) +
(n. de casos de testes complexos * 12)
51
Determinar pontos de teste para a execução manual e automática▫ Escolher quais fatores serão manuais ou automatizados
52
Determinar pontos de teste para a execução manual e automática▫ O cálculo é realizado da seguinte forma:
Pontos de teste para execução (manual/automatizada) = (n. de casos de testes simples * 6) + (n. de casos de
testes médio * 8) + (n. de casos de testes complexos * 12)
53
Determinar pontos totais de testes▫ Determinados:
▫ pontos de casos de testes (PCT);▫ pontos de automação de testes (PAT);▫ pontos de casos de testes para execução manual (PCT-EM);▫ pontos de casos de testes para execução automatizada (PCT-EA).
▫ Pontos de testes totais (PT), é calculado:PT = PCT + PAT + PCT-EM + PCT-EA
▫ Agora é possível obter o esforço de teste necessário.
54
Planosde Testes
Importância do planejamento▫ Planejar é importante em qualquer atividade do dia a
dia. Em testes de software não é diferente.▫ Seu planejamento funcionará como um mapa para
ajudar a alcançar os objetivos, lembrando onde deve chegar.▫ Mapas sempre ajudam a percorrer caminhos desconhecidos.
56
Importância do planejamento▫ O plano serve para reconhecer até onde você chegou
e o quanto falta para completar o projeto.▫ Para se fazer um plano, é necessário o conhecimento
do projeto e seu propósito:▫ Por que ele deve existir?▫ No que e como será útil?▫ Quem vai desenvolvê-lo?▫ Quais serão suas estratégias?▫ E seus planos?
57
Importância do planejamento▫ Um planejamento bem feito engloba 3 tipos de
atividades principais:▫ Cronograma de atividades
▫ Quais atividades devem ser realizadas? Quais etapas serão necessárias?▫ Qual a cronologia de atividades realizadas?▫ Quanto tempo para finalizar o projeto e cada etapa?
▫ Alocação de recursos▫ Quem realizará as tarefas? Quais ferramentas serão utilizadas?▫ Quais recursos serão necessários para a conclusão das etapas?
▫ Marcos de projeto▫ Qual o nosso objetivo em todo o projeto?▫ Qual o marco que pretendemos atingir em cada etapa?
58
Monitoração e supervisão▫ Monitorar e supervisionar o projeto estão em todas
as principais áreas do planejamento.▫ O planejamento traça caminhos, prevê recursos e esforços.▫ A monitoração verifica se está dentro das previsões.
▫ A união do planejamento e da monitoração responde sobre o andamento do projeto.
59
Estrutura do plano de teste▫ O plano de teste é um documento com várias
funções. Algumas delas são:▫ Definir escopo dos testes;▫ Definir objetivo dos testes;▫ Identificar elementos contextualizados:
▫ requisitos, estratégias e recursos necessários
▫ O plano de teste integra diversas atividades de testes, é uma forma dos interessados entenderem o projeto e é um guia de execução e controle de todas as atividades de teste.
60
Estrutura do plano de teste▫ É comum ter um responsável por criar o plano de
teste, o Gerente de testes.▫ Na ausência de um gerente de testes, pode ser
realizada pelo Gerente do projeto.▫ Lembrando: o plano de testes visa planejar as
atividades, estabelecer métricas e acompanhamento do processo de produção.
61
Estrutura do plano de teste▫ O plano deve conter:
▫ Introdução▫ Identifica o projeto;▫ Apresenta definições, abreviações e referências;▫ Define o escopo;▫ Apresenta os objetivos.
▫ Conjunto de requisitos que serão testados▫ Apresentação de todos os tipos de testes usados▫ Definição das ferramentas utilizadas▫ Apresentação de todos os recursos utilizados▫ Cronograma de projeto
▫ Apresenta-se também os marcos.62
Estrutura do plano de teste▫ O plano deve conter:
▫ Introdução▫ Identifica o projeto;▫ Apresenta definições, abreviações e referências;▫ Define o escopo;▫ Apresenta os objetivos.
▫ Conjunto de requisitos que serão testados▫ Apresentação de todos os tipos de testes usados▫ Definição das ferramentas utilizadas▫ Apresentação de todos os recursos utilizados▫ Cronograma de projeto
▫ Apresenta-se também os marcos.63
Exemplos de planos de testes▫ Lembre-se: um plano de teste funciona como um
script ou guia, servindo para monitorar o andamento do projeto.
▫ Cada plano é único e varia de acordo o projeto.▫ A seguir, veremos um exemplo de plano de teste em
um modelo geral e mais aceito baseado no padrão IEEE829.
64
65
66
Exemplos de planos de testes▫ Duas considerações importantes:
▫ Na capa do plano, sempre informe o título do projeto e sua versão (1.0, 1.1, 2.4, etc)
▫ Planos de testes podem e devem sofrer alterações até sua versão final. Por isso, insira uma página, após a capa, com um histórico de versões e suas mudanças.
67
68
Referências▫ Testes de software / organizador Pedro Henrique Cacique Braga. São
Paulo: Person Education do Brasil, 2016.▫ Plano de Teste - Um Mapa Essencial para Teste de Software. Revista
Engenharia de Software, 15 edição. Disponível em: https://www.devmedia.com.br/plano-de-teste-um-mapa-essencial-para-teste-de-software/13824. Acessado em 23 mar 2020.
69
Exercícios▫ Responder exercícios de fixação da página 117 do
livro de Testes de software.▫ Ler o panorama da página 118 e responder o
exercício.
70