Tipos de teste de software



Documentos relacionados
Fundamentos em Teste de Software. Vinicius V. Pessoni

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

Atividade da gerência da qualidade

Auditoria e Qualidade de Software ISO/IEC 9126 Engenharia de Software Qualidade de Produto

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

Sumário. Prefácio Capítulo 1 O que é qualidade? Capítulo 2 Normas e organismos normativos Capítulo 3 Métricas: visão geral...

IntroduçãoaoGuia SWEBOK. Ernani Lopes Isensee 2014

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

Engenharia de Software II

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

Projeto de Sistemas I

Teste de software. Definição

Requisitos. Sistemas de Informações

Universidade Paulista

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

ISO Aécio Costa

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

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

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

LEVANTAMENTO DE REQUISITOS. Lílian Simão Oliveira

Gestão da Tecnologia da Informação

Introdução Fatores de Qualidade Garantia de Qualidade Rivisões de Software Conclusão. Qualidade. Plácido A. S. Neto 1

PONTIFÍCIA UNIVERSIDADE CATÓLICA DE GOIÁS Curso Superior de Tecnologia em Análise e Desenvolvimento de Sistemas

Engenharia de Requisitos

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

Uma Metodologia para Teste de Software no Contexto da Melhoria de Processo

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

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

Gerência de Configuração. Profº Rômulo César

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

IC-UNICAMP IC-UNICAMP

Qualidade de Produto de Software

A IMPORTÂNCIA DA ATIVIDADE DE TESTE NO DESENVOLVIMENTO DE SOFTWARE

ENGENHARIA DE SOFTWARE I

ERP Enterprise Resource Planning

GARANTIA DA QUALIDADE DE SOFTWARE

Gerenciador de Log. Documento Visão. Projeto Integrador 2015/2. Engenharia de Software. Versão 2.0. Engenharia de Software

Engenharia de Software: conceitos e aplicações. Prof. Tiago Eugenio de Melo, MSc tiagodemelo@gmail.com

APOO Análise e Projeto Orientado a Objetos. Requisitos

Metodologia e Gerenciamento do Projeto na Fábrica de Software

pacotes de software na forma em que são É importante salientar que não é objetivo do software, suas atividades e produtos

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

Notas de Aula 02: Processos de Desenvolvimento de Software

A Disciplina Gerência de Projetos

Qualidade de Processo de Software Normas ISO e 15504

Engenharia de Software

O Impacto da Engenharia de Requisitos no Processo de Métricas. Fátima Cesarino CAIXA

Modelo para Documento de. Especificação de Requisitos de Software

Qualidade de Software. Prof.: Ivon Rodrigues Canedo. PUC Goiás

Testes de Software. Andrew Diniz da Costa

Material de Apoio. Sistema de Informação Gerencial (SIG)

Implantação de um Processo de Medições de Software

Requisitos de Software. Requisitos de Software. Requisitos de Software. Requisitos de Software. Requisitos de Software. Requisitos de Software

Modelo para Documento de. Especificação de Requisitos de Software

Apresentação do Treinamento

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

Processo Unificado (RUP)

GERÊNCIA DE CONFIGURAÇÃO. Isac Aguiar isacaguiar.com.br

REQUISITOS. Prof. Msc. Hélio Esperidião

Prof. Dr. Ivanir Costa. Unidade III QUALIDADE DE SOFTWARE

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

Requisitos de Software. Teresa Maciel DEINFO/UFRPE

Introdução à Qualidade de Software. Profº Aldo Rocha

Objetivos. Processos de Software. Tópicos abordados. O processo de software. Modelos genéricos de modelos de processo de software.

Fábrica de Software 29/04/2015

Qualidade de Software. Aécio Costa

Termo de Abertura Sistema de Vendas de Pizzas Online (PizzaWeb) - Versão 1.0

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

Ciência da Computação ENGENHARIA DE SOFTWARE. Análise dos Requisitos de Software

Engenharia de Software I

! Introdução. " Motivação para Processos de Software. ! Processo Unificado (USDP) " Definições " RUP x USDP " Características do Processo Unificado

Tópicos abordados. Testes de Software (Capítulo 8 Sommerville) 2/2/2015. Testes de desenvolvimento. Desenvolvimento dirigido a testes

Normas ISO para Usabilidade

Projeto Pé na Dança. Bruno Barros Comunicador Visual /

Wilson Moraes Góes. Novatec

Professor: Curso: Disciplina:

Plano de Gerenciamento do Projeto

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

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

Introdução à Computação

UNIVERSIDADE FEDERAL DE SANTA MARIA CENTRO DE TECNOLOGIA AULA 10 PROFª BRUNO CALEGARO

MDC Metodologia de Desenvolvimento Compartilhado Roteiro da Disciplina de Teste

Academia de Software Pró Informática

O Rational Unified Process (RUP) é um processo de desenvolvimento de software inspirado no

natureza do projeto e da aplicação métodos e ferramentas a serem usados controles e produtos que precisam ser entregues

Gerenciamento de software como ativo de automação industrial

Definição e Implantação de Modelo de Maturidade em Testes. Fone/Fax: info@qualiti.com

Processo de Desenvolvimento de Software

Processos de Desenvolvimento de Software

Transcrição:

Tipos de teste de software Volnys Borges Bernal volnys@lsi.usp.br Adilson Hira ayhira@lsi.usp.br Laboratório de Sistemas Integráveis Departamento de Sistemas Eletrônicos Escola Politécnica da USP

Sumário Visão geral do ciclo de vida de software Teste em software Classificação dos testes de software

Ciclo de vida de software

Levantamento dos requisitos do sistema Especificação dos requisitos do sistema Ciclo de vida de software Levantamento dos requisitos do software Especificação dos requisitos do software Projeto do software Especificação do projeto do software Programação e testes Programa executável Testes de sistema (homologação) Sistema homologado Manutenção do sistema

Ciclo de Vida do Projeto Projeto de Civil X Projeto de Software Idéia Contexto Arquitetura Projeto Construção Habite-se R$, Prazo Contexto Modelos, Protótipos (Maquetes) Dimensiomento - Plantas - Material Idéia Engenharia Sistema Análise de Requisitos Projeto Desenvolviment o Execução $,t Contexto Processo de negócio Modelos (UML) - Estáticos (ex: Classe) - Dinâmicos (ex: Estados) - Plano de Validação Dimensiomento com Especificações Técnicas - Modelos - Componentes Codificação Integração Testes Homologação

Testes em software

Testes em software Existem várias normas que tratam sobre teste em software e em sistemas: IEEE 829 (Standard for Software and System Test Documentation) ISO/IEC 29119 (Software Testing Standart) ISTQB (International Software Testing Qualifications Board)

Testes em software International Software Testing Qualifications Board ISTQB Fundada em novembro de 2002 Organização sem fins lucrativos voltada a capacitação de profissionais na área de teste Define: Conceitos utilizados na área de teste Metodologias de testes para software Ministra cursos Realiza certificação de profissionais

ISTQB http://www.istqb.org/

BSTQB http://www.bstqb.org.br/

Tipos de testes em software

Tipos de teste de software Segundo o ISTQB, os testes podem ser classificados em função: A) Do estágio do ciclo de vida do produto; B) Do objetivo do teste; Obs: Syllabus base organizada de conhecimento

Tipos de teste de software A) Classificação dos testes em função do estágio do ciclo de vida do produto: A.1) Teste de componente; A.2) Teste de integração; A.3) Teste de sistema; A.4) Teste de aceite; e A.5) Teste de manutenção.

Tipos de teste de software B) Classificação dos testes em função do objetivo do teste: B.1) Teste funcional; B.2) Teste não funcionais; B.3) Teste estrutural; e B.4) Teste de regressão.

A) Testes em função do estágio do ciclo de vida

A) Testes em função do estágio do ciclo de vida Classificação dos testes em função do estágio do ciclo de vida do produto: A.1) Teste de componente; A.2) Teste de integração; A.3) Teste de sistema; A.4) Teste de aceite; e A.5) Teste de manutenção.

A.1) Teste de componente

A.1) Teste de componente Procura defeitos e verifica o funcionamento do software (ex: módulos, programas, objetos, classes, etc.) que são testáveis separadamente. Pode ser feito isolado do resto do sistema, dependendo do contexto do ciclo de desenvolvimento e do sistema. Pode ser utilizado simulador. Pode incluir teste de funcionalidade e características específicas não-funcionais (ex: recursos [ex: falta de memória] e testes de robustez, além de teste estrutural.

A.1) Teste de componente Tipicamente, o teste de componente ocorre com acesso ao código que está sendo testado e no ambiente de desenvolvimento, assim como um framework de teste de unidade ou ferramenta de depuração debugging. Envolve o programador do código. Defeitos são normalmente corrigidos assim que são encontrados sem registrar formalmente tais eventos.

A.2) Teste de integração

A.2) Teste de integração Caracterizado por testar as interfaces entre os componentes, interações de diferentes partes de um sistema (integração como o sistema operacional, hardware ou interfaces entre sistemas). Pode haver vários níveis de teste de integração, ex: Teste de integração entre componentes; Teste de integração entre sistemas. A cada estágio da integração, os testadores concentram somente na integração propriamente. Por exemplo, o módulo A está sendo integrado com o módulo B o foco é a interação entre os módulos, não suas funcionalidades. Tanto testes funcionais quanto estruturais podem ser utilizados.

A.3) Teste de sistema

A.3) Teste de sistema Trata o comportamento de todo do sistema ou produto definido pelo escopo de um projeto ou programa de desenvolvimento. Envolve os requisitos funcionais e não-funcionais No teste de sistema, o ambiente de teste deve ser o mais semelhante possível ao ambiente de produção, a fim de maximizar a identificação de falhas específicas de ambiente. Os testes de sistema podem ser baseados em especificação de riscos e/ou de requisitos, processos de negócios, casos de uso, dentre outras descrições de alto nível do comportamento, interações e recursos do sistema.

A.3) Teste de sistema O teste de sistema deve tratar os requisitos funcionais e não-funcionais do sistema. Testadores devem também lidar com requisitos incompletos ou não documentados. Para o teste de sistema é ideal a utilização de uma equipe de teste independente.

A.4) Teste de aceite

A.4) Teste de aceite Freqüentemente é de responsabilidade do cliente ou do usuário do sistema; os interessados (stakeholders) também podem ser envolvidos. O objetivo do teste de aceite é estabelecer a confiança no sistema, de uma parte do sistema ou uma característica específica do sistema. Procurar defeitos não é o principal foco do teste de aceite. O teste de aceite pode ser realizado em diferentes níveis: Nível de componente; Nível do sistema.

A.4) Teste de aceite Formas de teste de aceite a) Teste de aceite de usuário Objetivo: verificar se o sistema está apropriado para o uso por um determinado perfil de usuário. a) Teste operacional de aceite Objetivo: verificar a realização de atividades de operação pelo usuário administrador: Teste de Backup/Restore. Recuperação de desastre. Gerenciamento de usuário. Tarefas de manutenção. Checagens periódicas de vulnerabilidades de

A.4) Teste de aceite c) Teste de aceite de contrato e regulamento Verifica se algum critério de aceite incluso em contrato na produção de software sob encomenda. O critério de aceite deve ser definido quando o contrato é assinado. Teste de aceite de regulamento é quando se verifica a necessidade de adesão a algum regulamento de acordo com outras normas (ex: segurança, governamental, legislação).

A.4) Teste de aceite d) Alfa e beta teste (ou teste no campo) Desenvolvedores de softwares comerciais ou pacotes, muitas vezes precisam obter um feedback de clientes em potencial existente no mercado antes que o software seja colocado à venda comercialmente. O alfa teste ou teste de aceite de fábrica é feito no site da organização em que o produto foi desenvolvido. O beta teste, teste de campo ou teste de aceite no site é feito pelas pessoas em suas próprias localidades. Ambos os testes são feitos pelos clientes em potencial e não pelos desenvolvedores do produto.

A.5) Teste de manutenção

A.5) Teste de manutenção Uma vez desenvolvido, um sistema pode ficar ativo por anos ou até mesmo décadas. Durante este tempo o sistema e seu ambiente podem ser modificados, corrigidos ou complementados. O teste de manutenção é realizado no mesmo sistema operacional, sendo realizado devido a modificações, migrações ou retirada de software ou sistema. Exemplos de modificações incluem melhorias planejadas (ex: baseadas em releases), mudanças corretivas e emergenciais, além de mudanças de ambiente, como atualização em sistema operacional ou banco de dados, e correções (patches) para expor

B) Testes em função do objetivo

B) Testes em função do objetivo B) Classificação dos testes em função do objetivo do teste: B.1) Teste funcional; B.2) Teste não funcionais; B.3) Teste estrutural; e B.4) Teste de regressão.

B.1) Teste funcional

B.1) Teste funcional São baseados em funções descritas em documentos de especificação ou compreendidas pelos testadores, e devem ser realizados em todos os níveis de teste (ex: teste de componente). As técnicas baseadas em especificação podem ser utilizadas para derivar as condições de teste e casos de testes a partir da funcionalidade do software ou sistema. O teste funcional considera o comportamento externo do software (teste de caixapreta).

B.2) Teste não funcional

B.2) Teste não funcional Inclui, mas não se limitam a: teste de desempenho; teste de carga; teste de estresse; teste de usabilidade; teste de interoperabilidade; teste de manutenibilidade; teste de confiabilidade, teste de segurança, e teste de portabilidade. Testes não-funcionais podem ser realizados em todos os níveis de teste.

B.3) Teste estrutural

B.3) Teste estrutural O teste estrutural, também chamado de teste de caixa-branca, é uma técnica de teste que serve para avaliar o comportamento interno do componente de software. O teste é realizado diretamente sobre o código fonte dos componentes de softwares para que possam ser avaliados os aspectos como os teste de fluxo de dados, teste de condição, teste de ciclos e os teste de caminhos lógicos. Os testes estruturais podem ser realizados em todos os níveis de testes. Recomenda-se utilizar as técnicas estruturais após as técnicas baseadas em especificação.

B.3) Teste estrutural Exemplos de testes estruturais Uso da ferramenta livre JUnit para desenvolvimento de classes de teste para testar classes ou métodos desenvolvidos em Java. Técnica testes manuais ou testes efetuados com apoio de ferramentas para verificação de aderência a boas práticas de codificação

B.4) Testes de regressão

B.4) Testes de regressão O teste de regressão consiste na aplicação de testes à versão mais recente do software, para verificar que não existem novos defeitos em componentes já testados. Se, ao juntar um novo componente ou suas alterações a outros componentes do sistema surgirem novos defeitos em componentes inalterados, então considera-se que o sistema regrediu. Os testes de regressão, também chamados testes decorrentes de mudanças são os testes realizados novamente em um programa que já foi testado, após sua modificação, para descobrir a existência de algum defeito introduzido ou não coberto originalmente pela mudança.