TESTE DE SOFTWARE COM XP. Isac Aguiar isacaguiar.com.br isacaguiar@gmail.com

Documentos relacionados
JUnit: framework de testes unitários. Fred Lopes

Leves ou pesadas Incrementais, cascata, lineares... etc. Pro ativas e reativas RAD, SDLC

Jonas de Souza H2W SYSTEMS

Tópicos. Métodos Ágeis. Histórico; Valores; Métodos Ágeis x Modelos Tradicionais; Exemplo: Referências Bibliográficas.

UTILIZAÇÃO DAS METODOLOGIAS ÁGEIS XP E SCRUM PARA O DESENVOLVIMENTO RÁPIDO DE APLICAÇÕES

Desenvolvimento Ágil de Software

Engenharia de Software II

UMA ABORDAGEM SOBRE TESTES AUTOMATIZADO DE SOFTWARES EM AMBIENTES DE DESENVOLVIMENTO

XP extreme Programming, uma metodologia ágil para desenvolvimento de software. Equipe WEB Cercomp

Prof. Me. Marcos Echevarria

ENGENHARIA DE SOFTWARE I

Programação Orientada a Testes Rodrigo Rebouças de Almeida

O Processo Unificado

TESTES AUTOMATIZADOS COM JUNITE MOCKITO

REVISÃO ENGENHARIA DO SOFTWARE. Isac Aguiar isacaguiar.com.br

Com metodologias de desenvolvimento

Melhoria no Desenvolvimento Ágil com Implantação de Processo de Integração Contínua Multiplataforma para Java e.net. Hudson

O CONCEITO DE TDD NO DESENVOLVIMENTO DE SOFTWARE

JUnit. Alexandre Menezes Silva Eduardo Manuel de Freitas Jorge

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

Aula 2 Revisão 1. Ciclo de Vida. Processo de Desenvolvimento de SW. Processo de Desenvolvimento de SW. Processo de Desenvolvimento de SW

MAPEAMENTO OBJETO RELACIONAL: UM ESTUDO DE CASO

RESULTADOS PRÁTICOS DO USO DE INTEGRAÇÃO CONTÍNUA COM O JENKINS. Emerson Cordeiro Vieira. emerson@7comm.com.br

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

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

4 O Workflow e a Máquina de Regras

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

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

Aula 17: Estudo de Caso: JUnit

DISCIPLINA ENGENHARIA DE SOFTWARE Aula 03 Processo Unificado e Desenvolvimento Ágil. Profª Esp.: Maysa de Moura Gonzaga

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

UNIDADE 4. Introdução à Metodologia de Desenvolvimento de Sistemas

DESENVOLVENDO APLICAÇÃO UTILIZANDO JAVA SERVER FACES

SELENIUM 28/03/2011. Márcio Delamaro Harry Trinta

Engenharia de Software I. Aula 15: Metodologias Ágeis. Prof. Márcio D. Puntel

MANIFESTO ÁGIL. Esses conceitos aproximam-se melhor com a forma que pequenas e médias organizações trabalham e respondem à mudanças.

Introdução a Métodos Ágeis de Desenvolvimento de Software

A Evolução de XP segundo Kent Beck Parte 2

DISCIPLINA ENGENHARIA DE SOFTWARE Aula 03 Desenvolvimento Ágil Modelos Ágeis. Profª Esp.: Maysa de Moura Gonzaga

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

INTRODUÇÃO E CONFIGURAÇÃO DO PRIMEFACES MOBILE EM APLICAÇÕES JSF

Instalação do Plugin LeJOS

AULA 1 INTRODUÇÃO - ENGENHARIA DE SOFTWARE. Prof. Msc. Hélio Esperidião

Engenharia de Software

MÓDULO 9 METODOLOGIAS DE DESENVOLVIMENTO DE SISTEMAS

Ferramenta de apoio a gerência de configuração de software. Aluno: Rodrigo Furlaneto Orientador: Everaldo Artur Grahl

PROJETO DE FÁBRICA DE SOFTWARE

Como melhorar a Qualidade de Software através s de testes e nua. Cláudio Antônio de Araújo 22/11/2008

Model Checking of Statecharts using Automatic White Box Test Generation

ANÁLISE COMPARATIVA ENTRE OS MODELOS DE PROCESSO: PROTOTIPAÇÃO, PSP E SCRUM

Comparativo entre Processos Ágeis. Daniel Ferreira

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

Agile Methods for the Traditional Guy

ENG1000 Introdução à Engenharia

04/07/2015 UML. Prof. Esp. Fabiano Taguchi DEFINIÇÃO DE REQUSIITOS

Um Ambiente Gráfico para Desenvolvimento de Software de Controle para Robôs Móveis Utilizando Simulação 3D

Resumo artigo Agile Modeling- Overview

Programação Extrema. Luis Fernando Machado. Engenharia de Software

2 Engenharia de Software

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

Apresentar os conceitos básicos da metodologia de desenvolvimento Processo Unificado, utilizando como aporte o Processo Unificado Rational RUP

Metodologias Ágeis. Aécio Costa

Manual Integra S_Line

Uma Abordagem usando PU

Modelagemde Software Orientadaa Objetos com UML

UNIVERSIDADE FEDERAL RURAL DE PERNAMBUCO DEPARTAMENTO DE ESTATÍSTICA E INFORMÁTICA BACHARELADO EM SISTEMAS DE INFORMAÇÃO RAPID APPLICATION DEVELOPMENT

Especialização em Arquitetura e Engenharia de Software

Aspectos técnicos do desenvolvimento baseado em componentes

UML Unified Modeling Language. Professor: André Gustavo Bastos Lima

Desenvolvimento Ágil de Software em Larga Escala

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

Desempenho e Segurança em Sistemas de Informação. Profa.: Me. Christiane Zim Zapelini christianezapelini@nwk.edu.br

Sistemas de Informação I

Artur Petean Bove Júnior Tecnologia SJC

UML 01. Curso Superior de Tecnologia em Banco de Dados Disciplina: Projeto de Banco de Dados Relacional 1 Prof.: Fernando Hadad Zaidan

Daniel Wildt

INTRODUÇÃO AOS MÉTODOS ÁGEIS

Modelagem Ágil. (Melhorando o aprendizado num projeto de desenvolvimento) Pimentel Medeiros

Introdução ao OpenUP (Open Unified Process)

Organização Curricular do Curso Superior de Tecnologia em Sistemas para Internet

Metodologias Ágeis. Gerenciando e Desenvolvendo Projetos de forma eficiente. Gabriel Verta Rafael Reimberg Vinicius Quaiato

Arquitectura de Sistemas de Software Mestrado em Engenharia Informática Licenciatura em Engenharia Informática e Computação

O Processo de Desenvolvimento de Software

Sistemas de Informação I

METODOLOGIA ÁGIL. Lílian Simão Oliveira

Manipulação de Banco de Dados com Java. Ms. Bruno Crestani Calegaro Maio/ 2015

Engenharia de Software

Engenharia de Software na Prática Hélio Engholm Jr.

Modelo Cascata. Alunos: Bruno Nocera Zanette Pedro Taques

UNIVERSIDADE FEDERAL DO PARANÁ UFPR Bacharelado em Ciência da Computação

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

Felipe Denis M. de Oliveira. Fonte: Alice e Carlos Rodrigo (Internet)

Figura 1: Componentes do Kepler

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

PROGRAMAÇÃO AVANÇADA -CONCEITOS DE ORIENTAÇÃO A OBJETOS. Prof. Angelo Augusto Frozza, M.Sc. frozza@ifc-camboriu.edu.br

Comunidade de Suporte e Feedback

Um Processo para Desenvolvimento de Aplicações Web Baseado em Serviços. Autores: Fábio Zaupa, Itana Gimenes, Don Cowan, Paulo Alencar e Carlos Lucena

The Software Economics Company. Testando para os Outros Lições Aprendidas pela Fábrica de Testes Funcionais da PrimeUp

Transcrição:

TESTE DE SOFTWARE COM XP Isac Aguiar isacaguiar.com.br isacaguiar@gmail.com

Contexto Inúmeros processos de software Evolução das formas/metodologias de desenvolvimento de software Dificuldades encontradas nos modelos baseados em produção industrial Dificuldade de adaptação O processo complexo com maior perca de tempo e dinheiro

Modelagem Ágil Metodologia baseada na prática para modelagem e documentação eficazes de sistemas baseados em software. É um conjunto de práticas guiado por princípios e valores para profissionais de software aplicarem no seu dia a dia[...]. Em outras palavras, não define procedimentos detalhados sobre como criar um determinado tipo de modelo. Em vez disso, fornece conselhos sobre como ser um modelador eficientes. AMBLER, 2004

Comparativo Modelos Modelos Tradicionais Previsibilidade Adaptabilidade Modelos Ágeis Controlar Mudanças Planejamento contínuo Burocráticos Documentação essencial Excesso de documentação Mudanças rápidas Enfatizam os aspectos de engenharia do desenvolvimento Enfatizam os aspectos humanos de desenvolvimento

Esboço de um diagrama UML

Diagrama UML em ferramenta

XP Extreme Programming Desenvolvimento focado no cliente, com times pequenos e trabalhos diários Consecutivas modelagem do sistema para melhorar a performance e reagir melhor a mudança Enquanto as práticas individuais são aplicadas em muitas situações, menos atenção é dada as práticas de gerência

Valores fundamentais Comunicação Fundamental para atividades realizadas por equipes Simplicidade A maneira mais simples de realizar a tarefa. Feedback Realização de testes unitários, na etapa de codificação Coragem Tomar decisões que parecem ser erradas mais acabam se mostrando valiosas

Práticas XP

Teste Unitário Nível de teste mais próximo das menores unidades de software Processo de testar as menores unidades de software desenvolvidas (pequenas partes ou unidades do sistema) As funções individuais ou métodos são o tipo mais simples de componente.

JUnit Framework open-source, criado por Eric Gamma e Kent Beck Suporta à criação de testes automatizados na linguagem de programação Java Facilita a criação de código para automação de testes unitários, com apresentação dos resultados Verifica o correto funcionamento de cada método, exibindo erros ou falhas Tem o objetivo de evitar bug s oriundos de códigos mau escritos e propiciar uma melhor qualidade

Vantagens do JUnit Criação rápida de código de teste possibilitando um aumento na qualidade do desenvolvimento e teste; Amplamente utilizado pelos desenvolvedores da comunidade código-aberto, possuindo um grande número de exemplos; Uma vez escritos, os testes são executados rapidamente sem que, para isso, seja interrompido o processo de desenvolvimento; Checa os resultados dos testes e fornece uma resposta imediata; Livre e orientado a objetos.

Configuração no Eclipse Baixar o arquivo.jar http//www.junit.org Adicionar o.jar do JUnit ao projeto <<projeto>>/ Properties /Java Build Path/ Add External JARs Externo

Adicionando Biblioteca

Arquitetura JUnit

Classe TestCase command O padrão (pattern) permite encapsular um pedido (de teste) como objeto e fornece um método run(). run() Cria um contexto (método setup); em seguida executa o código usando um contexto e verifica o resultado (método runtest); e por fim, limpa o contexto (método teardown). setup() Método chamado antes de cada método, pode ser utilizado para abrir uma conexão de banco de dados. teardown() Método chamado depois de cada método de teste, usado para desfazer o que setup() fez, por exemplo fechar uma conexão de banco de dados. runtest() Método responsável por controlar a execução de um teste particular.

Classe TestSuite Com esta classe, o desenvolvedor executa um único teste com vários métodos de testes e registra os resultados num TestResult. composite O padrão (pattern) permite tratar objetos individuais e composições de objetos de forma uniforme. addtest() Método responsável em adicionar um novo teste a rotina.

Analisando o resultado

Dúvidas

Referências Bibliográficas (Artigo) Gestão de Teste Ferramentas Open Source e melhores práticas na gestão de teste (Monografia) Extreme Programming: Uma abordagem em Teste de Software Utilizando Xunit (Artigo) Criando teste com Junit (Link) Site oficial do JUnit: http://www.junit.org (Link) Wikipédia: http://pt.wikipedia.org/wiki/junit (Manual) JUnit: http://junit.sourceforge.net/doc/cookstour/cookstour.htm