• Nenhum resultado encontrado

Metodologia para Planejamento, Execução e Controle de Teste de Software. Roteiro

N/A
N/A
Protected

Academic year: 2021

Share "Metodologia para Planejamento, Execução e Controle de Teste de Software. Roteiro"

Copied!
18
0
0

Texto

(1)

Metodologia para Planejamento,

Metodologia para Planejamento,

Execução e Controle de Teste de

Execução e Controle de Teste de

Software

Software

Arilo Claudio Dias Neto -

[email protected]

Gladys Machado P. S. Lima -

[email protected]

Guilherme Horta Travassos -

[email protected]

Roteiro

Roteiro

 O que é Teste de Software?

 Teste de software x Processo de Desenvolvimento

 Estágios de Teste de Software: Modelo “V”

• Teste de Unidade, Integração, Sistema, Aceitação e Regressão

 Processo de Teste de Software

• Planejamento dos Testes • Execução dos Testes • Controle dos Testes

 Metodologia de Teste a ser implantada

• Papéis do Processo de Teste

• Artefatos do Processo de Teste • Estratégias de Teste adotadas

(2)

Engenharia de Software Experimental

www.cos.ufrj.br/~ese

Copyrightt 2006

O que é Teste de Software?

O que é Teste de Software?

 Teste de Software:

• O processo de analisar um item de software para detectar a diferença entre as condições desejadas e as condições existentes (ou seja, estado esperado e estado obtido) e avaliar uma

característica/atributo de um item de teste.

• Teste de software é um conjunto de um ou mais casos e procedimentos de teste.

 Item de Teste:

• Um item de software que será objeto de teste.

 Caso de Teste:

• Descreve uma condição particular a ser testada. É composto por valores de entrada e um resultado esperado.

 Procedimento de teste:

• Uma descrição dos passos necessários para executar um caso de teste ou um grupo de casos de teste.

Roteiro

Roteiro

 O que é Teste de Software?

 Teste de software x Processo de Desenvolvimento

 Estágios de Teste de Software: Modelo “V”

• Teste de Unidade, Integração, Sistema, Aceitação e Regressão

 Processo de Teste de Software

• Planejamento dos Testes • Execução dos Testes • Controle dos Testes

 Metodologia de Teste a ser implantada

• Papéis do Processo de Teste

• Artefatos do Processo de Teste • Estratégias de Teste adotadas

(3)

Engenharia de Software Experimental www.cos.ufrj.br/~ese Copyrightt 2006

Teste de Software x

Teste de Software x

Processo de Desenvolvimento

Processo de Desenvolvimento

Teste de Software possui características próprias, como:

 Objetivos do processo:

• Processo de Desenvolvimento:

o construir um produto que atenda uma necessidade específica.

• Teste de Software

o busca responder questões sobre o produto, incluindo a análise se um produto atende às necessidades para as quais foi idealizado.

Teste de Software x

Teste de Software x

Processo de Desenvolvimento

Processo de Desenvolvimento

 Natureza destrutiva e não construtiva:

• Sucesso das atividades de teste indica o insucesso do processo de desenvolvimento.

• Um processo de teste visa ocasionar falhas em um produto e não contribui diretamente para a sua construção, por isso é chamado de “destrutivo”.

• Exemplo:

o O baixo nível de defeitos encontrados indica um fracasso dos testes.

o Por outro lado, um alto nível de defeitos indica o sucesso dos testes, pois atingiu seu objetivo.

(4)

Engenharia de Software Experimental www.cos.ufrj.br/~ese Copyrightt 2006

Teste de Software x

Teste de Software x

Processo de Desenvolvimento

Processo de Desenvolvimento

 Papéis e responsabilidades específicos:

• Os papéis de desenvolvimento e testes são associados a diferentes pessoas, resultando na necessidade de habilidades e conhecimento distintos entre as pessoas envolvidas nesses processos.

• Equipe de desenvolvimento:

o Preocupados em construir linhas de código para o sistema.

• Equipe de teste:

o Preocupados em desenvolver e executar casos de teste para fazer com que o sistema falhe.

Teste de Software x

Teste de Software x

Processo de Desenvolvimento

Processo de Desenvolvimento

 Dependência do processo de desenvolvimento:

• Processo de desenvolvimento:

o Auto-contido, ou seja, tem acesso às informações necessárias à execução de suas atividades.

• Teste de Software:

o Está sempre associado a um, ou mais, processo de desenvolvimento, o que consiste em uma dependência.

• Cada fase do desenvolvimento tem uma atividade de teste associada.

(5)

Engenharia de Software Experimental www.cos.ufrj.br/~ese Copyrightt 2006

Teste de Software x

Teste de Software x

Processo de Desenvolvimento

Processo de Desenvolvimento

 Ciclos de interação com o processo de desenvolvimento:

• Os processos de teste e de desenvolvimento devem estar separados, porém estão em um ciclo constante.

• O processo de teste tenta identificar falhas originadas no processo de desenvolvimento.

o A partir das falhas detectadas, os desenvolvedores tentam identificar a localização exata do erro ou defeito.

o Com isso, novamente será seguido o processo de desenvolvimento para tentar corrigir a falha identificada, e este ciclo é seguido até a conclusão do produto. Produto desenvolvido Resultados do Teste Processo de Teste Processo de desenvolvimento

Roteiro

Roteiro

 O que é Teste de Software?

 Teste de software x Processo de Desenvolvimento

 Estágios de Teste de Software: Modelo “V”

• Teste de Unidade, Integração, Sistema, Aceitação e Regressão

 Processo de Teste de Software

• Planejamento dos Testes • Execução dos Testes • Controle dos Testes

 Metodologia de Teste a ser implantada

• Papéis do Processo de Teste

• Artefatos do Processo de Teste • Estratégias de Teste adotadas

(6)

Engenharia de Software Experimental www.cos.ufrj.br/~ese Copyrightt 2006

Estágios de Teste

Estágios de Teste

 Cada fase do processo de desenvolvimento possui uma

atividade de teste associada.

Estágios de Teste

Estágios de Teste

 Teste de Unidade:

• Objetivo:

o Explorar a menor unidade do projeto procurando identificar erros de lógica e de implementação em cada módulo, separadamente. o O teste de unidade verifica se o módulo ou componente funciona de

forma adequada aos tipos de entradas esperadas.

• Unidade:

o Em sistema OO: classe ou método de uma classe.

 Teste de Integração:

• Objetivo:

o Verificar se os componentes ou módulos do sistema, juntos, trabalham conforme está descrito nas especificações do sistema e do projeto do programa.

o O teste de integração é realizado após o conjunto de componentes ou módulos já tiver sido testado por unidade.

(7)

Engenharia de Software Experimental www.cos.ufrj.br/~ese Copyrightt 2006

Estágios de Teste

Estágios de Teste

 Teste de Sistema:

• Objetivo:

o Avaliar um sistema integrado de hardware e software para verificar se o sistema satisfaz seus requisitos especificados.

 Teste de Aceitação:

• Objetivo:

o Conferir com o cliente se o sistema está de acordo com suas expectativas. O teste de aceitação é realizado em conjunto com o cliente e nele o sistema é verificado em comparação com a descrição dos requisitos.

 Teste de Regressão:

• Objetivo:

o Re-executar os testes para garantir que novos defeitos não sejam introduzidos em módulos do software (modificados ou não-modificados) após o desenvolvimento de uma nova versão do produto.

Estágios de Teste

Estágios de Teste

 Dificuldade:

• Realizar todas os estágios de teste é muito custoso (mais essencial em determinados projetos)!

 O que pode ser feito:

• Deve-se encontrar um “meio-termo” para garantir a qualidade do produto.

(8)

Engenharia de Software Experimental www.cos.ufrj.br/~ese Copyrightt 2006

Roteiro

Roteiro

 O que é Teste de Software?

 Teste de software x Processo de Desenvolvimento

 Estágios de Teste de Software: Modelo “V”

• Teste de Unidade, Integração, Sistema, Aceitação e Regressão

 Processo de Teste de Software

• Planejamento dos Testes

• Execução dos Testes • Controle dos Testes

 Metodologia de Teste a ser implantada

• Papéis do Processo de Teste

• Artefatos do Processo de Teste • Estratégias de Teste adotadas

o Caso de Uso  Caso(s) de Teste

Processo de Teste de Software

Processo de Teste de Software

 Definição:

• “Passos necessários ao planejamento, execução e controle

das atividades de teste de software ao longo do processo de desenvolvimento”.

 Um questionamento:

• Uma vez conduzida uma atividade de teste que não

ocasionou a ocorrência de falha indevidas em um produto, o que se pode concluir?

o Que o produto em teste é de boa qualidade? Ele não possui defeitos?

o Ou que a atividade de teste empregada é de baixa qualidade ou foi conduzida sem planejamento, critérios e sem uma sistemática?

(9)

Engenharia de Software Experimental

www.cos.ufrj.br/~ese

Copyrightt 2006

Processo de Teste de Software

Processo de Teste de Software

 Definição:

• “Passos necessários ao planejamento, execução e controle

das atividades de teste de software ao longo do processo de desenvolvimento”.

 Um questionamento:

• Uma vez conduzida uma atividade de teste que não

ocasionou a ocorrência de falha indevidas em um produto, o que se pode concluir?

o Que o produto em teste é de boa qualidade? Ele não possui defeitos?

o Ou que a atividade de teste empregada é de baixa qualidade ou foi conduzida sem planejamento, critérios e sem uma sistemática?

Processo de Teste de Software

Processo de Teste de Software

 Objetivo: Fornecer respostas para as seguintes questões:

• (O QUE?) Quais partes do software serão testadas? Todo os componentes do software serão testado ou somente partes críticas e de alto risco?

• (COMO?) Como os testes serão realizados? Quais os critérios e técnicas para realização dos testes?

• (QUEM?) Quem realizará os testes? Quem será responsável pela execução das atividades de testes?

• (QUANDO?) Quando os testes serão realizados? Em que momento do processo de desenvolvimento os testes serão executados?

• (ONDE?) Onde os testes serão realizados? Qual o ambiente em que os casos e procedimentos de teste serão executados?

• (ATÉ QUANDO?) Qual a quantidade de teste adequada? Como decidir o que testar e quando finalizar os testes considerando os recursos limitados para a atividade?

(10)

Engenharia de Software Experimental

www.cos.ufrj.br/~ese

Copyrightt 2006

Processo de Teste de Software

Processo de Teste de Software

 Divide-se em três partes principais e fundamentais:

o Visam responder às questões anteriores.

• Planejamento dos testes:

o “Garantir que os testes sejam preparados antes do fim da implementação do produto”.

• Execução dos Testes

o “Executar os casos e procedimentos de teste especificados e comparar os resultados esperados e obtidos, registrando esses resultados”.

• Controle dos testes:

o “Garantir que os testes planejados sejam executados corretamente e seus resultados possam ser registrados através da sua monitoração constante”.

Processo de Teste de Software

Processo de Teste de Software

 Planejamento dos testes:

• Preocupação com a definição dos objetivos e escopo dos

testes;

• Identificação dos itens que serão testados;

• Identificação das características dos itens que serão

avaliadas;

• Escolha das abordagens de teste a serem utilizadas;

• Definição dos recursos humanos e físicos, e custos para os

testes;

• Identificação dos casos e procedimentos de teste, e sua

priorização;

• Identificação de um cronograma para as atividades de teste

(11)

Engenharia de Software Experimental

www.cos.ufrj.br/~ese

Copyrightt 2006

Processo de Teste de Software

Processo de Teste de Software

 Execução dos Testes:

• Preparação do ambiente onde os testes serão executados;

• Execução dos casos e procedimentos de teste especificados

durante o planejamento;

• Registro do Log de Teste ao longo da execução dos testes;

• Registro dos incidentes de teste ocorridos durante a

execução, indicando ações tomadas;

Processo de Teste de Software

Processo de Teste de Software

 Controle dos Testes:

• Monitoração constante do cronograma, recursos e resultado

dos testes;

• Permite obter um conhecimento maior do processo para ser

utilizado em novos projetos;

• Apoio à documentação das atividades;

• Passo inicial da implantação e obtenção de

padrões/certificados/normas relacionadas à qualidade de software;

o CMMI o MPS Br o ISO 12207

(12)

Engenharia de Software Experimental

www.cos.ufrj.br/~ese

Copyrightt 2006

Processo de Teste de Software

Processo de Teste de Software

 Teste de Software é a atividade mais custosa do

processo de desenvolvimento

• Necessidade de recursos adequados

• Necessidade de Planejamento e Gerenciamento

 Benefícios do Planejamento e Controle de Teste

de Software para uma organização:

• Papéis e responsabilidades claramente definidos; • Objetivos de teste bem definidos;

• Documentação de teste especificada;

• Facilidade de comunicação entre as equipes de desenvolvimento e de teste;

Processo de Teste de Software

Processo de Teste de Software

 Sub-processo de Planejamento  Sub-processo de Execução 4. Definir Procedimento de Teste Planejamento de Teste 1. Planejar Teste 2. Projetar Teste 3. Especificar Caso de Teste

Gerente de Teste Engenheiro de Teste Plano de Teste Especificação de Procedimento de Teste Especificação de Caso de Teste Especificação de Projeto de Teste Execução de Teste 5. Executar Testes 6. Analisar Resultados Gerente de Teste Testador Log de Teste Relatório de Incidente de Teste Relatório de Resumo de Teste Atividade Papel Artefatos (Documentos IEEE 829)

Legenda

Dependência entre atividades Construção de Artefatos

(13)

Engenharia de Software Experimental www.cos.ufrj.br/~ese Copyrightt 2006

Roteiro

Roteiro

 O que é Teste de Software?

 Teste de software x Processo de Desenvolvimento

 Estágios de Teste de Software: Modelo “V”

• Teste de Unidade, Integração, Sistema, Aceitação e Regressão

 Processo de Teste de Software

• Planejamento dos Testes

• Execução dos Testes

• Controle dos Testes

 Metodologia de Teste a ser implantada

• Papéis do Processo de Teste

• Artefatos do Processo de Teste • Estratégias de Teste adotadas

o Caso de Uso  Caso(s) de Teste

 Definição dos papéis e responsabilidades dentro do

processo de teste.

• GERENTE DE TESTE:

o Pessoa responsável pelo Planejamentos dos recursos de teste disponíveis (humanos, físicos), escolha das abordagens e critérios de teste.

• ENGENHEIRO DE TESTE:

o Pessoa responsável pela identificação e priorização dos casos e procedimentos de teste.

 Aconselha-se não ser o desenvolvedor do item de teste.

• TESTADOR:

o Pessoa responsável pela execução dos casos e procedimentos de teste especificados pelo Engenheiro de Teste.

• Não há objeção para que uma pessoa realize os 3 papéis!

o Embora não seja o ideal!

• Não há objeção para que uma pessoa da equipe de desenvolvimento assuma um papel no processo de teste

o Contando que seja para projetos diferentes!

Metodologia de Teste a ser implantada

(14)

Engenharia de Software Experimental

www.cos.ufrj.br/~ese

Copyrightt 2006

 Definição de um conjunto de artefatos a serem produzidos

ao longo do processo de teste de software

o Definição de um modelo (template) para cada documento o Objetivo:

 Documentação padronizada das atividades de teste em cada projeto

• Plano de Teste:

o Desenvolvido pelo Gerente de Teste.

• Especificação do Projeto de Teste:

o Desenvolvido pelo Engenheiro de Teste.

• Especificação dos Casos de Teste:

o Desenvolvido pelo Engenheiro de Teste.

• Especificação dos Procedimentos de Teste:

o Desenvolvido pelo Engenheiro de Teste.

• Logde Teste:

o Preenchido pelos Testadores.

• Relatório de Incidentes de Teste:

o Preenchido pelos Testadores.

• Relatório de Resumo dos Testes:

o Desenvolvido pelo Gerente de Teste.

Metodologia de Teste a ser implantada

Metodologia de Teste a ser implantada

 Plano de Teste:

• Apresenta o planejamento para execução do teste

o Incluindo a abrangência, abordagem, recursos e cronograma das atividades de teste.

o Identifica os itens e funcionalidades a serem testados, as características dos itens a serem testadas, as tarefas a serem realizadas e os riscos associados com a atividade de teste.

• Desenvolvido pelo Gerente de Teste.

 Especificação do Projeto de Teste:

• Refina a abordagem apresentada no Plano de Teste e identifica as funcionalidades e características a serem testadas pelo projeto e pelos seus testes associados.

• Este documento também identifica os casos e os procedimentos de teste, se existirem, e apresenta os critérios de aprovação para esses elementos.

• Desenvolvido pelo Engenheiro de Teste.

Metodologia de Teste a ser implantada

(15)

Engenharia de Software Experimental

www.cos.ufrj.br/~ese

Copyrightt 2006

 Especificação dos Casos de Teste:

• Define os casos de teste, incluindo dados de entrada, resultados esperados, ações e condições gerais para a execução do teste. • Desenvolvido pelo Engenheiro de Teste.

 Especificação dos Procedimentos de Teste:

• Especifica os passos para executar um conjunto de casos de teste. • Desenvolvido pelo Engenheiro de Teste.

 Log de Teste:

• Apresenta registros cronológicos dos detalhes relevantes relacionados com a execução dos testes.

• Preenchido pelos Testadores.

Metodologia de Teste a ser implantada

Metodologia de Teste a ser implantada

 Relatório de Incidente de Teste:

• Documenta qualquer evento que ocorra durante a atividade de teste e que requeira análise posterior.

• Preenchido pelos Testadores.

 Relatório-Resumo de Teste:

• Apresenta de forma resumida os resultados das atividades de teste associadas com uma ou mais especificações de projeto de teste e provê avaliações baseadas nesses resultados.

• Desenvolvido pelo Gerente de Teste.

Metodologia de Teste a ser implantada

(16)

Engenharia de Software Experimental

www.cos.ufrj.br/~ese

Copyrightt 2006

Metodologia de Teste a ser implantada

Metodologia de Teste a ser implantada

 Estratégia de teste a ser adotada:

• Realização de Teste Funcional (Teste Caixa Preta)

o Técnica de teste que adota critérios para a geração dos casos de teste com a finalidade de garantir que os requisitos do software especificados sejam plenamente atendidos.

 Ou seja, avaliar o que o sistema tem que fazer, sem saber como ele faz.

Metodologia de Teste a ser implantada

Metodologia de Teste a ser implantada

 Estratégia de teste a ser adotada:

• Caso de Uso  Caso(s) de Teste

o Um caso de uso resulta em um ou mais casos de teste

• Priorização dos casos de uso para obtenção dos seus casos

de teste

o comunicação com a equipe de desenvolvimento para definição da lista ordenadas de casos de uso.

Caso de Uso

(17)

Engenharia de Software Experimental

www.cos.ufrj.br/~ese

Copyrightt 2006

Metodologia de Teste a ser implantada

Metodologia de Teste a ser implantada

 Estratégia de teste a ser adotada:

• Matriz de Rastreabilidade

Caso de Uso / Caso de Teste

Caso de Uso 1 Caso de Uso 2 Caso de Uso 3

Caso de Teste 1 Depende de

Caso de Teste 2 Depende de

Caso de Teste 3 Depende de Depende de

 Estratégia de teste a ser adotada:

• O planejamento dos testes ocorrerão em paralelo ao

desenvolvimento.

o Utilização de uma equipe específica para realização dos testes

• A execução dos testes deverá ocorrer conforme o que foi

especificado durante o planejamento.

o Em relação ao responsável pela atividade, prazos das atividades, recursos alocados e ordem das atividades. o Execução dos casos de teste logo após o

desenvolvimento do caso de uso.

Metodologia de Teste a ser implantada

(18)

Engenharia de Software Experimental www.cos.ufrj.br/~ese Copyrightt 2006

Referências

Referências

 Beizer, B., “Software testing techniques”, 2nd ed., Van Nostrand Reinhold Co., New York, 1990.

 IEEE Computer Society; IEEE Std 829: Standard for Software Test Documentation; September, 1998.

 Mats, L., “The top five software-testing problems and how to avoid them”, EDN Europe, Feb2001, Vol. 46 Issue 2, p37, 3p.  Montoni, M., Miranda, R., Rocha, A.R., Travassos, G.H.,

“Knowledge Acquisition and Communities of Practice: An Approach to Convert Individual Knowledge into Multi-organizational Knowledge”,LSO 2004.

 O’Neill, D., “What happens when you don’t have a test plan”, IV&V Australia, 1997, available at

http://www.ivvaust.com.au/TestPlanning.pdf

 Pfleeger, S.L., Software Engineering; Theory and Practice. Prentice Hall 2001.

 Villela, K., “Definição e Construção de Ambientes de

Desenvolvimento de Software Orientados à Organização”, Tese de D. Sc., COPPE/UFRJ, Rio de Janeiro, RJ, Brasil, maio 2004.

Referências

Documentos relacionados