Introdução ao Teste de Software



Documentos relacionados
Teste de Software Parte 1. Prof. Jonas Potros

Fundamentos em Teste de Software. Vinicius V. Pessoni

Referências internas são os artefatos usados para ajudar na elaboração do PT tais como:

Unidade VI. Validação e Verificação de Software Teste de Software. Conteúdo. Técnicas de Teste. Estratégias de Teste

PROCESSO DE DESENVOLVIMENTO DE SOFTWARE. Modelos de Processo de Desenvolvimento de Software

a) Teste das funções do sistema com outros sistemas b) Teste de componentes que em conjunto compõem a função do sistema

ARCO - Associação Recreativa dos Correios. Sistema para Gerenciamento de Associações Recreativas Plano de Desenvolvimento de Software Versão <1.

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

Teste de Software. Objetivos e Limites. Objetivos e Limites. Objetivos e Limites. Objetivos e Limites. Objetivos e Limites

Qualidade de Software. Profa. Cátia dos Reis Machado

GARANTIA DA QUALIDADE DE SOFTWARE

Tipos de teste de software

Universidade Paulista

3 Qualidade de Software

Teste de software. Definição

Conteúdo. Disciplina: INF Engenharia de Software. Monalessa Perini Barcellos

Testes de Software. Anne Caroline O. Rocha TesterCertified BSTQB NTI UFPB

ISO/IEC 12207: Gerência de Configuração

Gerência de Projetos Prof. Dr. Sandro Ronaldo Bezerra Oliveira

TI Aplicada. Aula 02 Áreas e Profissionais de TI. Prof. MSc. Edilberto Silva prof.edilberto.silva@gmail.com

Gerenciamento de Problemas

Teste de Software I Conceitos e Estratégias

Copyright Proibida Reprodução. Prof. Éder Clementino dos Santos

Testes de Software. Testes de Software. Teste de Validação. Teste de Defeito. Modelo de Entrada e Saída. Modelo de Entrada e Saída

Conteúdo. Disciplina: INF Engenharia de Software. Monalessa Perini Barcellos

Engenharia de Software. Parte I. Introdução. Metodologias para o Desenvolvimento de Sistemas DAS

Modernização e Evolução do Acervo de Software. Gustavo Robichez de Carvalho guga@les.inf.puc-rio.br

Engenharia de Software e Gerência de Projetos Prof. Esp. André Luís Belini Bacharel em Sistemas de Informações MBA em Gestão Estratégica de Negócios

ENGENHARIA DE SOFTWARE I

ISO 9001:2008. Alterações e Adições da nova versão

Introdução a Computação

MÓDULO 7 Modelo OSI. 7.1 Serviços Versus Protocolos

Teste de Software. Profa. Cátia dos Reis Machado

Engenharia de Requisitos

MASTER IN PROJECT MANAGEMENT

Capítulo 2. Processos de Software Pearson Prentice Hall. Todos os direitos reservados. slide 1

Glossário Apresenta a definição dos termos, siglas e abreviações utilizadas no contexto do projeto Citsmart.

Gerenciamento de Serviços de TI ITIL v2 Módulo 1 Conceitos básicos

Processos de Software

Verificação é um processo para se determinar se os produtos, (executáveis ou

c. Técnica de Estrutura de Controle Teste do Caminho Básico

ALESSANDRO RODRIGO FRANCO FERNANDO MARTINS RAFAEL ALMEIDA DE OLIVEIRA

Testes de Software. Testes de Software. Teste de Validação. Teste de Defeito. Modelo de Entrada e Saída. Modelo de Entrada e Saída

Manual Geral do OASIS

ISO Aécio Costa

Projeto de Sistemas I

Gerenciamento de Projetos Modulo II Clico de Vida e Organização

QUALIDADE DE SOFTWARE. Ian Sommerville 2006 Engenharia de Software, 8ª. edição. Capítulo 27 Slide 1

Fundamentos de Teste de Software

Gerenciamento de Incidentes

GENS S.A. Metodologia de Desenvolvimento Padrões de uso para o Sistema Gemini Versão Reduzida Relatório Análise de Causa

17/02/2009. Curso Superior de Tecnologia: Redes de Computadores. Disciplina: Gestão de Projetos de TI Prof.: Fernando Hadad Zaidan. Unidade 2.

CONCURSO PÚBLICO ANALISTA DE SISTEMA ÊNFASE GOVERNANÇA DE TI ANALISTA DE GESTÃO RESPOSTAS ESPERADAS PRELIMINARES

CES-32 e CE-230 Qualidade, Confiabilidade e Segurança de Software. Conceitos de Qualidade. CURSO DE GRADUAÇÃO e DE PÓS-GRADUAÇÃO DO ITA

Documento de Arquitetura

PALESTRA. Aplicação da Norma IEEE 829 como Mecanismo de Gerência do Processo de Teste de Produtos de Software. CenPRA

Gestão de defeito: Descreva! Sumário. Introdução. Problema. Justificativa. Metodologia. Referencial teórico. Demonstração do Mantis.

Sistemas de Gestão Ambiental O QUE MUDOU COM A NOVA ISO 14001:2004

Implantação NG ADM. Setor Implantação

Metodologia de Desenvolvimento de Sistemas

Requisitos de Software

Treinamento ITIL Intermediate Capability. Release, Control and Validation (RCV)

Princípios do teste de software

Exame de Fundamentos da ITIL

Qualidade de Software

Disciplina: Administração de Departamento de TI. Professor: Aldo Rocha. Aula III - 25/08/2011

Gerência de Projetos

Gerenciamento de configuração. Gerenciamento de Configuração. Gerenciamento de configuração. Gerenciamento de configuração. Famílias de sistemas

Planejamento e Gerenciamento de Software. Tema 3. Gerência de Projetos Profa. Susana M. Iglesias

Copyright Proibida Reprodução. Prof. Éder Clementino dos Santos

Gerenciamento de Projetos Modulo III Grupo de Processos

Modelos de Qualidade de Produto de Software

Fundamentos de Teste de Software

LISTA DE VERIFICAÇAO DO SISTEMA DE GESTAO DA QUALIDADE

PÁGINA 4 ITIL V.2 & ITIL V.3

CONCORRÊNCIA AA Nº 05/2009 BNDES ANEXO X PROJETO BÁSICO: DESCRIÇÃO DOS PROCESSOS DE TI

PMI-SP PMI-SC PMI-RS PMI PMI-PR PMI-PE

EMISSÃO DE CERTIFICADOS ELETRÔNICOS NOS EVENTOS DO INSTITUTO FEDERAL CATARINENSE CÂMPUS VIDEIRA

Integração Contínua com Rational Team Concert, Jenkins e SonarQube

Metodologias de Desenvolvimento de Sistemas. Analise de Sistemas I UNIPAC Rodrigo Videschi

Processo de Implementação de um Sistema de Gestão da Qualidade

Autores/Grupo: TULIO, LUIS, FRANCISCO e JULIANO. Curso: Gestão da Tecnologia da Informação. Professor: ITAIR PEREIRA DA SILVA GESTÃO DE PESSOAS

ADMINISTRAÇÃO DE ATIVOS DE TI GERENCIAMENTO DE LIBERAÇÃO

Você consegue dirigir seu carro sem um painel de controle? Você consegue gerenciar um Service Desk sem Indicadores?

Gerenciamento de Projetos Modulo III Grupo de Processos

Engenharia de Software I

MUDANÇAS NA ISO 9001: A VERSÃO 2015

Na medida em que se cria um produto, o sistema de software, que será usado e mantido, nos aproximamos da engenharia.

Roteiro para a escrita do documento de Especificação de Requisitos de Software (ERS)

PROFESSOR: CRISTIANO MARIOTTI

Engenharia de Software II

1. Qual das seguintes alternativas não é um tipo de revisão? 2. Qual das alternativas é um atributo da qualidade?

Pós-Graduação em Gerenciamento de Projetos práticas do PMI

Transcrição:

Introdução ao Teste de Software Prof. Dr. Sandro Bezerra - srbo@ufpa.br

AGENDA Verificação e Validação Motivação para teste Finalidades dos Testes Testes de Software: Definições e Conceitos Formando a Equipe de Testes Relacionando as atividades de Testes com as de Desenvolvimento Processo de Teste Gerenciamento de Bugs Ferramentas de Teste

OBJETIVO Apresentar uma abordagem geral sobre o processo de teste de software, abrangendo seus principais fundamentos técnicos e gerenciais. Além disso, serão apresentados os principais conceitos necessários para um bom entendimento sobre as atividades de teste.

VERIFICAÇÃO E VALIDAÇÃO O desenvolvimento de software está sujeito a diversos tipos de problemas, os quais acabam resultando na obtenção de um produto diferente daquele que se esperava. Muitos fatores podem ser identificados como causas de tais problemas, mas a maioria deles tem uma única origem: erro humano (Delamaro et al., 2007). As atividades de Verificação e Validação (V&V) visam garantir, respectivamente, que: o software está sendo desenvolvido corretamente, o software que está sendo desenvolvido é o software correto.

V&V: ESTÁTICA X DINÂMICA As atividades de V&V costumam ser divididas em estáticas e dinâmicas. As estáticas não requerem a execução ou mesmo a existência de um programa ou modelo executável para serem realizadas. As dinâmicas se baseiam na execução de um programa ou modelo (Delamaro et al., 2007).

MOTIVAÇÃO PARA TESTE

MOTIVAÇÃO PARA TESTE As falhas causam prejuízos financeiros As falhas causam a perda de confiança do cliente

POR QUE ALGUMAS EMPRESAS NÃO TESTAM? Teste é um processo caro Desconhecem técnicas de teste adequadas Dificuldade em implantar um processo de teste Desconhecem a relação custo/benefício Só se preocupam com teste na fase final do projeto

MOTIVAÇÃO PARA TESTE Segundo pesquisas do SEI ( Software Engineering Institute): 30% dos projetos são cancelados antes de serem finalizados 70% dos projetos falham nas entregas das funcionalidades esperadas; Os custos dos projetos extrapolam mais de 180% dos valores previstos;

MOTIVAÇÃO PARA TESTE Prazos excedem mais de 220% Empresas de nível 1 dedicam cerca de 55% dos esforços para corrigir defeitos Esses índices vão sendo gradativamente reduzidos à medida que elas adotam um modelo de qualidade

FINALIDADE DOS TESTES Verificar se todos os requisitos do sistema foram corretamente implementados Assegurar a satisfação do cliente com o produto desenvolvido Assegurar, na medida do possível, a qualidade e a corretude do software produzido Reduzir custos de manutenção corretiva e retrabalho

FINALIDADE DOS TESTES Teste é o processo de demonstrar que erros não estão presentes O objetivo do teste é demonstrar que um programa executa suas funções corretamente Teste é o processo de criação de confiança de que o programa faz o que ele tem que fazer Teste é o processo de executar um programa com a intenção de encontrar defeitos

TESTE DE SOFTWARE É o processo de executar um programa com o objetivo de encontrar defeitos (Myers, 1979). É, portanto, uma atividade de V&V dinâmica. Do ponto de vista psicológico, o teste de software é uma atividade com um certo viés destrutivo, ao contrário de outras atividades do processo de software.

PERSPECTIVA DE TESTE Bons testadores necessitam de um conjunto especial de habilidades. Um testador deve abordar um software com a atitude de questionar tudo sobre ele (McGregor e Sykes, 2001). A perspectiva de teste é, um modo de olhar qualquer produto de desenvolvimento e questionar a sua validade. Habilidades requeridas na perspectiva de teste: Querer prova de qualidade, Não fazer suposições, Não deixar passar áreas importantes, Procurar ser reproduzível.

PERSPECTIVA DE TESTE A perspectiva de teste requer que um fragmento de software demonstre não apenas que ele executa de acordo com o especificado, mas que executa apenas o especificado (McGregor e Sykes, 2001). O software faz o que deveria fazer e somente isso?

TESTE DE SOFTWARE Executa-se um programa ou modelo utilizando algumas entradas em particular e verificar-se se seu comportamento está de acordo com o esperado. Caso a execução apresente algum resultado não especificado, um defeito foi identificado. Os dados da execução podem servir como fonte para a localização e correção de defeitos, mas teste não é depuração (Delamaro et al., 2007).

TERMINOLOGIA Defeito Instrução ou definião incorreta Falha Resultados Incorretos Erro Falha resultante de ação humana Durante o teste observamos as falhas. Na depuração do código encontramos os defeitos (causas) para corrigi-los.

FORMANDO A EQUIPE DE TESTES Usando a Equipe de Desenvolvimento: - O Líder do Projeto de Desenvolvimento será também o Líder do Projeto de Testes; - A Equipe de Teste é a mesma Equipe de Desenvolvimento; - Os Testes serão executados através de rodízios, onde nunca a pessoa que desenvolveu o módulo executará testes no próprio modulo.

FORMANDO A EQUIPE DE TESTES Desvantagens: - Diminuição da qualidade do produto final; - Tendência a não visualizar certos defeitos do projeto (testes de sucesso); - Tendência a informalidade na execução dos testes; - Dificuldade de conciliar os cronogramas das equipes de desenvolvimento; - Falta de conhecimento do negócio da equipe que for executar os testes.

FORMANDO A EQUIPE DE TESTES Usando Equipe Independente: - Esta é uma prática que está sendo cada vez mais usada no mercado; - Equipes especializadas em teste produzem resultados, em termos de qualidade do software, muito melhores; - Essas equipes possuem um treinamento adequado para executar com qualidade os testes e estão bastante familiarizadas com as suas ferramentas e metodologias.

FORMANDO A EQUIPE DE TESTES Desvantagens: - Custos maiores; - Aumento no tempo de liberação do software; - Tendência da equipe de desenvolvimento em relaxar na parte que lhe cabe (teste unitário e de integração); - Divergências entre as duas equipes.

FORMANDO A EQUIPE DE TESTES Usando Equipes de não-especialistas em TI - Muitas empresas usam grupos de usuários para fazer o chamado trabalho de homologação do software ou o seu teste de aceitação; - A perspectiva é sempre a do negócio, ou seja, garantir que o software foi desenvolvido de acordo com os requisitos que foram estabelecidos pelo negócio.

FORMANDO A EQUIPE DE TESTES Desvantagens: - Custos maiores; - Falta de familiarização com ferramentas; - Abordagens exclusivas do negócio, esquecendo aspectos técnicos do teste.

ESTÁGIOS DE TESTE Testes de Integração Testes de Sistema Testes de Aceitação Entrega Testes de unidade

CICLO DE VIDA Requisitos de usuário Testes de Aceitação Requisitos do sw/hw Testes de Sistema Design da arquitetura Testes de Integração Design detalhado Testes de unidade Implementação

TESTE DE UNIDADE Tem como foco as menores unidades de um programa. Uma unidade é um componente de software que não pode ser subdividido. Nesta fase esperam-se encontrar defeitos relacionados a algoritmos incorretos ou mal implementados, estruturas de dados incorretas ou simples erros de programação. Pode ser aplicado à medida que ocorre a implementação das unidades e pode ser realizado pelo próprio desenvolvedor (Delamaro et al., 2007).

TESTE DE UNIDADE Durante os testes de unidade, é necessária a implementação de drivers e stubs. Um driver é um programa que coordena o teste de uma unidade, sendo responsável por ler os dados fornecidos pelo testador, repassar esses dados na forma de parâmetros para a unidade, coletar os resultados produzidos pela unidade e apresentá-los para o testador. Um stub é um programa que substitui, na hora do teste, uma unidade, simulando o comportamento dessa unidade com o mínimo de computação ou manipulação de dados (Delamaro et al., 2007).

TESTE DE INTEGRAÇÃO Deve ser realizado após serem testadas as unidades individualmente. A ênfase é colocada na construção da estrutura do sistema. Deve-se verificar se as partes, quando colocadas para trabalhar juntas, não conduzem a erros. Requer grande conhecimento das estruturas internas do sistema e, por isso, geralmente é executado pela própria equipe de desenvolvimento (Delamaro et al., 2007).

TESTE DE SISTEMA/ACEITAÇÃO Uma vez integradas todas as partes, inicia-se o teste de sistema. Quando realizado por uma equipe de teste, o objetivo é verificar se as funcionalidades especificadas na especificação de requisitos foram corretamente implementadas. Quando realizado por usuários, o objetivo é validar o sistema (Teste de Aceitação). É uma boa prática que essa fase seja realizada por testadores independentes. Tipicamente, aplica-se teste funcional.

TESTE DE SISTEMA/ACEITAÇÃO Teste de Aceitação Teste para verificar se o produto de software atende os Requisitos (Conformidade com os Requisitos) Testes de Sistema Combinação de diferentes testes para por a prova todos os diferentes elementos do sistema (foram adequadamente integrados? realizam corretamente as funções?)

TIPOS DE TESTE Estáticos ou revisões: Revisão técnica: Consiste na apresentação do material para uma equipe de revisão onde será feita a análise do produto de trabalho; Inspeção: Consiste na verificação dos produtos do software e processo estão de acordo com os padrões, guidelines, especificações e procedimentos;

TIPOS DE TESTE Teste Funcional Teste de Recuperação de Falhas Teste de segurança e controle de acesso Teste de performance Teste de estresse Teste de configuração ou portabilidade Teste de interface com o usuário Teste de regressão

ABORDAGENS DE TESTE Abordagem funcional( caixa-preta ) Os testes são gerados a partir de uma análise dos relacionamentos entre os dados de entrada e de saída Abordagem estrutural( caixa-branca ) Os testes são executados a partir de uma análise dos caminhos lógicos possíveis de serem executados.

RELACIONANDO AS ATIVIDADES DE TESTES COM AS DE DESENVOLVIMENTO Quando começar a testar? Planejamento de Projeto Captura de Requisitos Análise e Projeto Implementação Build Build Planejar Testes Projetar Testes Implementar Testes Executar Testes Avaliar Testes Gerenciar Defeitos

PROCESSO DE TESTE O processo de teste pode ser definido como um processo separado, mas intimamente ligado, ao processo de desenvolvimento. Isso porque eles têm metas e medidas de sucesso diferentes. Por exemplo, quanto menor a taxa de defeitos (razão entre o n o de casos de teste que falham pelo total de casos de teste), mais bem sucedido é considerado o processo de desenvolvimento. Por outro lado, quanto maior a taxa de defeitos, considera-se mais bem sucedido o processo de teste (McGregor e Sykes, 2001).

PROCESSO DE TESTE - Planejar Testes - Especificar Testes - Executar Testes - Reportar Testes

PLANEJAR TESTES Entradas Documento de Requisitos Plano de Projeto Modelos de Caso de Uso Saídas Plano de Testes

PLANO DE TESTES Histórico de Revisões 1.Objetivo 2.Requisitos a serem testados 3.Estágios de Teste 4.Tipos de Teste 5.Abordagens de Teste 6.Critérios de parada/aceitação 7.Recursos 8.Matriz de Responsabilidade 9.Cronograma

PROJETAR TESTES Entradas Documento de Requisitos Plano de Testes Modelo de Caso de Uso Saídas Projeto de Testes(casos e procedimentos) Planilha de Teste

PROJETO DE TESTES Histórico de Revisões 1. Requisitos a serem testados(prioridade) 2. Identificador do caso de Teste 3.Requisitos Associados 3.Casos de Teste 3.Tipo de Teste 4. Pré-condição 4.Dados de entrada 5.Procedimento 6.Resultado esperado 7.Status do teste

EXECUÇÃO DE TESTES Entradas Projeto de Testes Código executável do sistema Saídas Planilha de Teste

RELATÓRIO DE TESTES - Registrar resultados - Avaliar resultados - Encaminhar ao desenvolvedor responsável

GERENCIAMENTO DE BUGS Classificação de defeitos: 1.Faltante: O defeito ocorre em virtude da falta parcial ou total de um requisito; 2.Errado: O defeito ocorre porque o requisito foi implementado corretamente; 3.Acréscimo: O defeito ocorre em virtude de um comportamento ou elemento que foi implementado mas não foi especificado no requisito.

GERENCIAMENTO DE BUGS Ciclo de vida de um defeito

FERRAMENTAS DE TESTE - Automatizam atividades do processo de teste - Podem nos auxiliar em todas as atividades do processo de teste Ferramentas de planejamento e projeto de testes: Elaborar plano de testes. Ex: Project Projetar testes:excel, TestManager Executar testes:excel, TestManager Avaliar testes:excel, TestManager Implementação: Junit(unidade), Jtest e C++Test (Análise estática de código) Gerência de defeitos: Bugzilla, Mantis, Redmine

FERRAMENTAS DE TESTE O Mantis é uma ferramenta Open Source automatizada escrita em PHP cujo principal objetivo é dar suporte ao processo de gestão de defeitos. Website do Mantis http://www.mantisbt.org

PÁGINA INICIAL

RELATAR CASO

RECONHECIMENTO DE UM DEFEITO

E-MAIL ENVIADO AO DESENVOLVEDOR

VISÃO POR DESENVOLVEDOR

REPORT DA CORREÇÃO

FECHAMENTO DE UM DEFEITO

REFERÊNCIAS ACKERMAN, A., BUCHWALD, L., LEWSKI, F., 1989, Software Inspections: An Effective Verification Process, IEEE Software, vol. 6, no. 3, pp.31-37. KALINOWSKI, M., SPÍNOLA, R.O., TRAVASSOS, G.H., Infra- Estrutura Computacional para Apoio ao Processo de Inspeção de Software. No: Simpósio Brasileiro de Qualidade de Software, 2004, Brasília. BOEHM, B. W., BASILI, V.R., 2001, Software Defect Reduction Top 10 List., IEEE Computer 34 (1): 135-137. BOEHM, B.W., ABTS, C., BROWN, A.W., CHULANI, S., CLARK, B.K., HOROWITZ, E., MADACHY, R., REIFER, D., STEECE, B., 2000, Software Cost Estimation with COCOMO II, Prentice Hall. BOEHM, B.W., 1981, Software Engineering Economics, Prentice Hall. CIOLKOWSKI, M., LAITENBERGER, O., BIFFL, S., 2003, Software Reviews: The State of the Practice, IEEE Software 20 (6): 46-51.

OBRIGADO! Dúvidas? Prof. Dr. Sandro Bezerra srbo@ufpa.br