Campus Capivari Análise e Desenvolvimento de Sistemas (ADS) Prof. André Luís Belini /

Documentos relacionados
Teste de Software. Estratégias de Teste. Rosemary Silveira Filgueiras Melo

Teste de Software. Competência: Entender as técnicas e estratégias de testes de Software

Engenharia de Software II

Verificação e Validação (V & V)

Engenharia de Software

Campus Capivari Análise e Desenvolvimento de Sistemas (ADS) Prof. André Luís Belini /

Campus Capivari Análise e Desenvolvimento de Sistemas (ADS) Prof. André Luís Belini /

Campus Capivari Análise e Desenvolvimento de Sistemas (ADS) Prof. André Luís Belini /

Introdução aos Testes de Software

Campus Capivari Análise e Desenvolvimento de Sistemas (ADS) Prof. André Luís Belini /

TESTES DE SOFTWARE Unidade 1 Importância do Teste de Software. Luiz Leão

Campus Capivari Análise e Desenvolvimento de Sistemas (ADS) Prof. André Luís Belini /

Gerência de Projetos e Qualidade de Software. Prof. Walter Gima

Campus Capivari Análise e Desenvolvimento de Sistemas (ADS) Prof. André Luís Belini /

Campus Capivari Análise e Desenvolvimento de Sistemas (ADS) Prof. André Luís Belini /

Campus Capivari Análise e Desenvolvimento de Sistemas (ADS) Prof. André Luís Belini /

Desenvolvimento de Software. Testes de Software. Tópicos da Aula. Onde estamos... Verificação x Validação. Testes de Software

TESTES DE SOFTWARE. Profa. Maria Auxiliadora

Organização para Realização de Teste de Software Quando o teste se inicia há um conflito de interesses:

05/09/2013. Ciclo de vida de um Sistema de Informação

Campus Capivari Análise e Desenvolvimento de Sistemas (ADS) Prof. André Luís Belini /

Campus Capivari Análise e Desenvolvimento de Sistemas (ADS) Prof. André Luís Belini /

TESTES DE SOFTWARE 1. Fundamentos sobre testes de software

Estágio II. Aula 02 Conceitos de Teste de Software. Prof. MSc. Fred Viana

Campus Capivari Análise e Desenvolvimento de Sistemas (ADS) Prof. André Luís Belini /

Introdução a Teste de Software

ENGENHARIA DE SOFTWARE

Metodologias de Teste de Software

UNIVERSIDADE ESTADUAL PAULISTA INSTITUTO DE BIOCIÊNCIAS, LETRAS E CIÊNCIAS EXATAS DEPARTAMENTO DE CIÊNCIAS DE COMPUTAÇÃO E ESTATÍSTICA

Campus Capivari Análise e Desenvolvimento de Sistemas (ADS) Prof. André Luís Belini /

Campus Capivari Análise e Desenvolvimento de Sistemas (ADS) Prof. André Luís Belini /

Extreme Programming. Projeto de. Desenvolvimento. Software. Prof.: Ari Oliveira

TESTES DE SOFTWARE Lista de Exercício 02. Luiz Leão

Campus Capivari Análise e Desenvolvimento de Sistemas (ADS) Prof. André Luís Belini /

Teste de Software. Prof. Camila. Pedro de Assis Sobreira Jr.

2

ENGENHARIA DE SOFTWARE. Aula 12 Testes de software

1. A principal razão de dividir o processo de teste em tarefas distintas é:

Engenharia de Software

Campus Capivari Análise e Desenvolvimento de Sistemas (ADS) Prof. André Luís Belini /

Guia do Processo de Teste Metodologia Celepar

Testes de Software. Prof: Sérgio Portari

Campus Capivari Análise e Desenvolvimento de Sistemas (ADS) Prof. André Luís Belini /

Teste de Software. Roberta Coelho

Unidade 4 Teste na Implantação do Sistema

- 8ª Lista de Exercícios -

Campus Capivari Técnico em Manutenção e Suporte em Informática Prof. André Luís Belini /

Testes de Software. Prof. Edjandir C. Costa

Campus Capivari Análise e Desenvolvimento de Sistemas (ADS) Prof. André Luís Belini /

ENGENHARIA DE SOFTWARE O QUE SÃO TESTES? TESTES TESTES TESTES 26/08/2014. São pontuais; São previsíveis; São finitos;

Campus Capivari Análise e Desenvolvimento de Sistemas (ADS) Prof. André Luís Belini /

Campus Capivari Análise e Desenvolvimento de Sistemas (ADS) Prof. André Luís Belini /

Campus Capivari Análise e Desenvolvimento de Sistemas (ADS) Prof. André Luís Belini /

Campus Capivari Análise e Desenvolvimento de Sistemas (ADS) Prof. André Luís Belini /

Campus Capivari Análise e Desenvolvimento de Sistemas (ADS) Prof. André Luís Belini /

Teste de Software Parte 2. Engenharia de Software Profa. Dra. Elisa Yumi Nakagawa 1º semestre de 2015

Teste de Software. Karen Frigo Busolin Novembro / 2010

Campus Capivari Análise e Desenvolvimento de Sistemas (ADS) Prof. André Luís Belini /

Campus Capivari Análise e Desenvolvimento de Sistemas (ADS) Prof. André Luís Belini /

Processos de software

Campus Capivari Análise e Desenvolvimento de Sistemas (ADS) Prof. André Luís Belini /

Campus Capivari Análise e Desenvolvimento de Sistemas (ADS) Prof. André Luís Belini /

SSC 0721 Teste e Validação de Software

Teste de Software Parte 2. Engenharia de Software Profa. Dra. Elisa Yumi Nakagawa 1º semestre de 2016

Campus Capivari Análise e Desenvolvimento de Sistemas (ADS) Prof. André Luís Belini /

Aula 20 Testes 3. Alessandro Garcia Leonardo da Silva Sousa OPUS Group/LES/DI/PUC-Rio Dezembro 2016

Programação Orientada a Objetos

TS03. Teste de Software ESTÁGIOS DO TESTE DE SOFTWARE. COTI Informática Escola de Nerds

Campus Capivari Análise e Desenvolvimento de Sistemas (ADS) Prof. André Luís Belini /

Perguntas da Aula 2. Respostas da Pergunta 2. Respostas da Pergunta 1. Respostas da Pergunta 4. Respostas da Pergunta 3. Processos de Software

TESTES DE SOFTWARE Lista de Exercício 01. Luiz Leão

Sistemas Operacionais Estrutura do Sistema Operacional. Arquiteturas do Kernel

Campus Capivari Análise e Desenvolvimento de Sistemas (ADS) Prof. André Luís Belini /

Campus Capivari Análise e Desenvolvimento de Sistemas (ADS) Prof. André Luís Belini /

Engenharia de Software II

1. Quando algo visível para os usuário finais é um desvio em relação ao especificado ou um comportamento não esperado, isso é chamado de:

Campus Capivari Análise e Desenvolvimento de Sistemas (ADS) Prof. André Luís Belini /

Testes Automatizados. Cursos de Verão 2007 IME/USP Dairton Bassi & Paulo Cheque

Campus Capivari Análise e Desenvolvimento de Sistemas (ADS) Prof. André Luís Belini /

Community. .com. Introdução ao T D

Modernização de Legados

Processo Unificado (PU) Unified Process

Aula 12. Aquisição de Hardware

Título PROCESSO LABES ESPECIALIZADO PARA DESENVOLVIMENTO SEGUNDO O PARADIGMA ESTRUTURADO. Projeto. Analista; Requisitos Funcionais Escopo; Cliente;

INSTITUTO FEDERAL DE SÃO PAULO CAMPUS PRESIDENTE EPITÁCIO MODELO DOS PROCESSOS DE SOFTWARE

Teste de Software. Planejamento de Teste. Rosemary Silveira Filgueiras Melo

Campus Capivari Análise e Desenvolvimento de Sistemas (ADS) Prof. André Luís Belini /

Analista de Sistemas S. J. Rio Preto

INTRODUÇÃO A ENGENHARIA DE SOFTWARE

2. Quais dos seguintes testes não é um teste do tipo funcional?

Campus Capivari Análise e Desenvolvimento de Sistemas (ADS) Prof. André Luís Belini /

Organização para Realização de Teste de Software

Análise e Projeto de Sistemas

Campus Capivari Análise e Desenvolvimento de Sistemas (ADS) Prof. André Luís Belini /

Campus Capivari Análise e Desenvolvimento de Sistemas (ADS) Prof. André Luís Belini /

INTRODUÇÃO À TECNOLOGIA DA INFORMAÇÃO ESTRUTURA DE UM SISTEMA OPERACIONAL PROFESSOR CARLOS MUNIZ

Transcrição:

Campus Capivari Análise e Desenvolvimento de Sistemas (ADS) Prof. André Luís Belini E-mail: prof.andre.luis.belini@gmail.com / andre.belini@ifsp.edu.br

MATÉRIA: QUALIDADE DE SOFTWARE Tema: Teste de Software: unidade, integração, sistema.

TESTE UNITÁRIO É comum falarmos que o programador não deve realizar os testes em seus próprios códigos, pois a probabilidade dele encontrar seus próprios erros é mínima. Isso é um fato, no entanto, o teste unitário não deixa de ser o teste que o desenvolvedor faz enquanto está programando. Pode-se dizer que é a menor unidade de testes.

TESTE UNITÁRIO Um teste unitário deve ser capaz de examinar o comportamento do código sob as mais variadas condições, ou seja, como o código deve se comportar se determinado parâmetro for passado (ou não), o que ele retorna se determinada condição for verdadeira, os efeitos colaterais que ele causa durante a sua execução, se determinada exceção é lançada, etc.

TESTE UNITÁRIO Testes unitários, como o nome sugere, devem testar unidades de trabalho isoladas. E geralmente, em termos de códigos orientados a objeto (OO), estas unidades de trabalho são métodos de uma classe. Um teste unitário, tipicamente, testa aquele e somente aquele método, evitando acesso à outros recursos como sistema de arquivos, banco de dados, rede etc.

TESTE UNITÁRIO Testes unitários permitem maior cobertura de teste. O uso de teste unitários permite que testemos uma porção muito maior do código do sistema do que aquele feito manualmente. É muito mais fácil exercitar todos os caminhos possíveis por meio de testes unitários do que em testes manuais.

TESTE UNITÁRIO Testes unitários previnem regressão. Quantas vezes, após o lançamento de uma nova versão de um software, um erro aparece e você se depara perguntando: Como pode? Eu nem toquei no código dessa tela! Quando utilizamos testes unitários automatizados de forma consistente, possuindo uma boa suíte de casos de teste, essa situação é cada vez mais rara; isso porque temos a garantia de que a introdução de novos códigos não fazem com que outras funcionalidades deixem de funcionar corretamente, pois, a execução dos testes unitários dessas outras vão nos alertar se elas quebrarem.

TESTE UNITÁRIO Testes unitários incentivam o refactoring. O processo de refactoring deve ser uma constante na atividade de desenvolvimento de software. Sempre que nos deparamos com um código de má qualidade, deve ser nossa obrigação refatorar aquele código seja introduzindo um novo método, quebrando em classes, otimizando o código etc. No entanto, se pensarmos no processo de refactoring, isso não deveria ser um problema; afinal refatorar nada mais é do que dar uma nova estrutura ao código sem afetar seu comportamento, isto é, mudamos a cara dele, mas não mudamos o que ele faz.

TESTE DE INTEGRAÇÃO Unidades ou aplicações que foram testadas em separado são testadas de forma integrada A interface entre as unidades integradas é testada O teste de integração deve ser feito de forma incremental, ou seja, as unidades devem ser integradas em pequenos segmentos Este teste é executado por um testador de integração (geralmente um programador)

STUBS E DRIVERS No contexto de teste de integração, usamos os elementos stubs e drivers Stubs são pseudo-implementações de determinadas especificações (Casos básicos/triviais/esperados) Drivers são operações que automatizam testes de acordo com casos de teste

TESTE DE INTEGRAÇÃO Suponha a integração de um grupo de módulos para formar um componente A estrutura de controle forma uma hierarquia de chamadas como segue A B C D E F G H I J K L

TESTE DE INTEGRAÇÃO A integração dos módulos pode ser feita através das abordagens Top-down ou Bottom-up

ABORDAGEM TOP-DOWN Os módulos são integrados de cima para baixo. O teste usa driver e stubs O driver é utilizado como módulo de controle principal, e os módulos reais são substituídos por stubs À medida que os testes vão sendo realizados os stubs são substituídos pelos módulos reais, um de cada vez

TOP-DOWN A B C D E F G H I J K L

TOP-DOWN driver A B stub stub stub stub

TOP-DOWN A B C stub stub stub stub stub

TOP-DOWN: VANTAGENS Permite verificação antecipada de comportamento de alto nível Um único driver é necessário Módulos podem ser adicionados, um por vez, em cada passo, se desejado

TOP-DOWN: DESVANTAGENS Retarda verificação de comportamento de baixo nível Stubs são necessários para suprir elementos ainda inexistentes Entradas de casos de teste podem ser difíceis de formular Saídas de casos de teste podem ser difíceis de interpretar

ABORDAGEM BOTTOM-UP A integração é feita a partir do nível mais básico da hierarquia. Os stubs nem sempre são necessários Os módulos do nível inferior são combinados. Para cada combinação é criado um driver que coordena a entrada e a saída dos casos de teste.

ABORDAGEM BOTTOM-UP O módulo é testado O driver é substituído pela combinação de módulos correspondentes, que passam a interagir com os módulos do nível superior

BOTTOM-UP A B C D E F G H I J K L

BOTTOM-UP driver E F J

BOTTOM-UP driver A B C D E F G H I J K L

BOTTOM-UP: VANTAGENS Permite verificação antecipada de comportamento de baixo nível Stubs não são necessários Mais fácil para formular dados de entrada para algumas sub-árvores Mais fácil para interpretar dados de saída para outras sub-árvores

BOTTOM-UP: DESVANTAGENS Retarda verificação de comportamento de nível alto Drivers são necessários para elementos ainda não implementados Como sub-árvores são combinadas, um grande número de elementos deve ser integrado de uma só vez

TESTE DE SISTEMA Investiga o funcionamento da aplicação como um todo Integração dos componentes de software com o ambiente operacional (similar ao de produção) é realizada e testada.

TESTE DE SISTEMA Geralmente emprega teste funcional (Ideal: executado por membro de um grupo independente de testes) Pode-se usar o diagrama de casos de uso como fonte de funcionalidades Pode ser guiado pelos casos de uso (fluxos)

TESTE DE ACEITAÇÃO Testes funcionais, realizados pelo usuário, objetivando demonstrar a conformidade com os requisitos do software Envolve treinamento, documentação e empacotamento

TESTE DE ACEITAÇÃO Os testes podem ser de duas categorias: Alfa Feitos por usuários, geralmente nas instalações do desenvolvedor. Observam e registram/problemas Beta Feitos por usuários, geralmente em suas próprias instalações, sem supervisão do desenvolvedor. Problemas detectados são então relatados ao desenvolvedor

RESUMINDO... Fases de teste de Software Os testes devem estar presentes em todo o processo de desenvolvimento de software, geralmente são divididos nas seguintes fases:

RESUMINDO... Testes de Unidade: É a fase de testes onde cada unidade do sistema é testada individualmente. O objetivo é isolar cada parte do sistema e garantir que elas estão funcionando conforme especificado, porém não garante que a integração dessas partes irá funcionar corretamente. Ex: no teste da função que valida CPF, o teste se resume apenas em checar se a função é capaz de dizer se o CPF é válido ou não.

RESUMINDO... Testes de Integração: Nesta fase as unidades do sistema são testadas de forma combinada, o objetivo é detectar falhas na interação entre as unidades integradas. Não faz parte desta fase os testes de integração com outros sistemas. Ex: Na integração do cadastro de clientes com a função que valida CPF, as duas unidades já foram testadas individualmente na fase de testes de unidade, porém é neste momento que a interação entre elas é validada.

RESUMINDO... Testes de Sistema: Nesta fase o sistema é testado completamente, ou seja, todas as funcionalidades do sistema são testadas, assim como as integrações com outros sistemas que possam existir. Os testes não se limitam apenas a requisitos funcionais, requisitos não funcionais também são testados nesta fase.

RESUMINDO... Testes de aceitação: Nesta fase serão testadas as funcionalidades requeridas pelo cliente durante o projeto. Deve ser feito, preferencialmente, pelo usuário final.

REFERÊNCIAS BIBLIOGRÁFICAS THIAGO, André. As vantagens do teste unitário. Disponível em: http://andrethiago.com/2011/04/06/as-vantagens-do-testeunitario/ Acessado em 11/02/2016 MATERA Systems. Fases do Teste de Software. Disponível em: http://www.matera.com/br/2013/07/19/fases-de-testes-desoftware/. Acessado em 11/02/2016 MONTEIRO, Alexandre. Teste de Unidade, Integração e Sistema. Disponível em; http://www.cin.ufpe.br/~gamr/fafica/desenvolvimento%20d e%20sistemas/aula%2014%20- %20Teste%20de%20integracao_sistema_e_aceitacao.ppt. Acessado em 11/02/2016

DÚVIDAS? PERGUNTAS? ANGÚSTIAS? AFLIÇÕES?

Prof. André Luís Belini E-mail: prof.andre.luis.belini@gmail.com / andre.belini@ifsp.edu.br Blog: http://profandreluisbelini.wordpress.com/ Página: www.profandreluisbelini.com.br