MAKE: UM FRAMEWORK PARA GERAÇÃO DE DADOS PARA TESTES UNITÁRIOS EM JAVA Guilherme Braga Viana BahiaAluno: Orientador:Prof. Joaquim Pedro C. de Oliveira,

Slides:



Advertisements
Apresentações semelhantes
Análise e Projeto de Sistemas I
Advertisements

Introdução a Algoritmos
Raphael Gatti Thomás Bryan
ISO Processos do Ciclo de Vida do Software
UML Modelando um sistema.
Java - Interfaces Prof. Msc. Flávio Viotti.
Diagrama de Classes.
Tópicos Motivação para teste Por que algumas empresas não testam
Padrões de Projeto Prototype.
O processo de coletar os requisitos (escopo do cliente)
Simulação de Sistemas Prof. MSc Sofia Mara de Souza AULA2.
Extração de Requisitos
Java Server Faces Leandro O. Gomes Primeiros passos - FES(2009-1)
Java Persistence API (JPA) Eduardo Martins Guerra Instituto Tecnológico de Aeronáutica Curso de Pós-Graduação em Engenharia de Software Programação Distribuída.
Roteiro Para o Trabalho do Módulo
Metodologia Versão 2 FSRS.
Linguagem técnica de programação I Java – REVISÃO
Configuração de manutenção
Introdução ao Teste Unitário com JUnit
JAVA: Conceitos Iniciais
Projetar Serviços Vítor Braga –
RUPinho Qualidade de Software
Biblioteca para coleta de dados na plataforma Symbian
Conceitos de Linguagem de Programação
Laboratório de Programação I Carlos Oberdan Rolim Ciência da Computação Sistemas de Informação.
Web Services Uninorte Semana de Tecnologia da Informação
SGH – Sistema de Gerenciamento de Hotel
Um Framework Para Testes
Aluno: Cristiano Levi Arnold Orientador: Alexandre Luís Franco 2009
The art of Unit Testing. Unit testing O Um teste unitário é uma parte de código (geralmente um método/função), que invoca outra parte de codigo e verifica.
Professor: Márcio Amador
Aulas 2 e 3 – Java – Prof. Marcelo Heitor # O método main e argumentos na linha de comando; # Fluxo padrão de entrada e saída; # A classe JOptionPane;
Formação Técnica em Administração Modulo de Padronização e Qualidade
GESTÃO DE PROJETOS DE MANUTENÇÃO
Implementação MVC Pedro Antonino.
Teste de Software Conceitos iniciais.
PROGRAMAÇÃO ORIENTADA A OBJETOS
ANÁLISE ESTRUTURADA DE SISTEMAS
Engenharia de Software
Introdução Teste Unitário com JUnit
Orientador: Prof. Msc. Silvio César Cazella Um protótipo de aplicação para recomendação de produtos baseado no interesse e comportamento de consumo do.
Introdução a Teste de Software
Introdução a JEE Marco A. S. Reis Arquiteto de Software Abril/2011.
GERENCIAMENTO DE PROJETOS DE T.I
Classes Abstratas e Interface
RUP - Cap. 3 – Processo Dirigido por Caso de Uso
Automação de Testes de Software
PROCESSO DE DESENVOLVIMENTO DE SOFTWARE AULA 5
DBSync4J Uma Ferramenta para Apoio na Sincronização entre Bases de Dados de Desenvolvimento e Produção Autores: Ana Carolina Ferreira Lins Rafael Fernandes.
Empresa de vendas de insumos para máquinas industriais
DBSync4J Uma Ferramenta para Apoio na Sincronização entre Bases de Dados de Desenvolvimento e Produção Autores: Ana Carolina Ferreira Lins Rafael Fernandes.
ACCESS AULA 01 Na primeira aula você terá uma visão geral do Microsoft Access, conhecerá sua evolução e suas versões. Ao final da aula você irá possuir.
Gerenciamento de Configuração de Software
Leo Silva Leonardo Murta Luiz Viana Persistência em Java.
Administração Financeira
J U nit Um Framework Para Testes. Motivação  Todos os programadores sabem que devem testar seu código  Quanto mais curto o prazo menos testes são realizados.
Universidade Federal de Sergipe Departamento de Sistemas de Informação Bruno Cruz Jessica Rodrigo Aragão – ASP.NET MVC 3.
Projeto Supervisionado no Desenvolvimento de Aplicações Profissionais na Web Introdução ao Projeto.
UCSal – Bacharelado em Informática Tópicos Especiais em Informática II Profa. Semíramis Assis
Aluno: Oscar Chamma Orientador: Armando Hage Curso de Especialização Engenharia de componentes com JAVA ENTERPRISE 1.
REFATORAÇÃO JOÃO LACERDA DJALMA LIMA. MARTIN FOWLER É um autor conhecido na área de arquitetura de software, especializado em análise orientada a objetos,
PSW1 Prof. Rafael. Persistência Atividade que permite que o estado de um objeto exista mesmo após a extinção do processo computacional que o criou. Em.
Desenvolvimento WEB II Professora: Kelly de Paula Cunha.
BPMN automatizando processos
1 Projeto Piloto Conclusão em Agenda Projeto Piloto –Descrição –Execução da aplicação –Implementação de requisitos funcionais e não- funcionais.
1. 2 Prof. Maurício Rodrigues de Morais Programação Orientada a Objetos II.
TESTES DE SOFTWARE – AULA 1 Prof. Me. Ronnison Reges Vidal
Testes de Unidade. 2 Pauta Testes de Unidade; Testes de Unidade; Desenvolvimento orientado a testes; Desenvolvimento orientado a testes; Testes unitários.
Introdução à Orientação a Objetos em Java Prof. Gustavo Wagner (Alterações) Slides originais: Prof. Tiago Massoni Desenvolvimento de Sistemas FATEC-PB.
Prof.: Jean Carlo Mendes
Transcrição da apresentação:

MAKE: UM FRAMEWORK PARA GERAÇÃO DE DADOS PARA TESTES UNITÁRIOS EM JAVA Guilherme Braga Viana BahiaAluno: Orientador:Prof. Joaquim Pedro C. de Oliveira, MSc.

Testes Unitários Automatizados  Aumentam o índice de acerto no desenvolvimento de funcionalidades do sistema.  O teste é criado em conjunto com a implementação da regra de negócio pelo desenvolvedor.  Pequenas funcionalidades são avaliadas várias vezes em diferentes momentos.  Os testes são executados rapidamente e os resultados são instantâneos.

Ciclo do Teste Unitário Planejamento PreparaçãoExecução Avaliação Neste momento é definido o que se deseja testar e a forma como o teste será feito. Consiste em preparar o ambiente para executar o teste. Execução de tudo que foi planejado e montado. Determina se o sistema está se comportando da forma esperada ou se é necessário realizar correções.

JSR-303  Define um modelo de anotações e API para validação de atributos em uma classe.  JPA2 realiza a validação antes de salvar ou atualizar valores no banco de dados.  JSF2 realiza a validação na submissão de qualquer formulário HTML.

MAKE – Definição  Desenvolvido para gerar valores fictícios para realização de testes unitários ou população de banco de dados.  Valores são limitados à validação definida nas anotações da especificação JSR-303.  Pode ser utilizado em conjunto com qualquer framework de teste unitário: JUnit, EJB3Unit, Arquilian, etc.  Open Source:

MAKE – Como Funciona  Utilizar a classe MakeEntity para criar uma entidade, chamando um dos métodos sobrecarregados MakeEntity.makeEntity:  T makeEntity(Class entity)  T makeEntity(String testName, Class entity)  T makeEntity(String testName, Class entity, boolean makeRelationships)  List makeEntities(String testName, Class entity, int amount, boolean makeRelationships)

MAKE – Fábricas de Valores  Ao executar qualquer um dos métodos de criação de entidades todas as Fábricas serão consultadas para saber quais são capazes de criar o valor. Fábricas de valores disponíveis para Factory que "assinaram " com contrato através de ValueFactory. Factory pergunta as suas fábricas que é responsável por gerar o valor para o Field. Make solicita a Factory que gere uma objeto ValueFactory que crie o valor para o Field MakeFactoryMakeWorksFactorySizeFactoryNumberFactoryDateFactoryTrueFalseFactoryEnumFactoryDefaultFactory

MAKE – Tipos de Dados  Make é capaz de gerar diversos tipos de dados:  Números: Byte, Short, Integer, Long, Float, Double, BigInteger e BigDecimal.  Textos: Character e Strings.  Booleanos: True e False.  Date e Calendar

MAKE – Gerenciando Valores  Quando a limitação de valores da validação não é suficiente para a geração de dados que simule a realidade que a aplicação irá enfrentar o atributo testName entra em ação.

MAKE – Fábricas Especializadas  São classes que podem ser integradas ao Make, quando o mesmo não pode gerar valores para alguma situação.  Criar uma classe e implementar a interface ValueSpecializedFactory  Registrar a fábrica especializada no arquivo make.properties. Avalia o tipo: boolean, String, Integer, etc. Avalia a propriedade definida no arquivo make.properties. Cria o valor a ser inserido no atributo.

MAKE – Fluxo de Trabalho  Para que o valor de um Field seja criado um fluxo de execução foi definido.

MAKE – Utilização  Framework criado com base em uma necessidade real. Um projeto novo que não possuía histórico de dados.  Atualização de scripts SQL constantes atrasavam o desenvolvimento e os testes.  Preparação dos testes comprometiam a criação dos mesmos.  Dados “viciados” estavam comprometendo a integridade dos testes.

MAKE – Benefícios  Menor necessidade de avaliar regra de validação para testes.  Zero em necessidade de manutenção de scripts SQL.  Algumas validações foram refeitas devido a valores gerados que não foram previstos.  População do banco de dados com maior volume de informação.

MAKE – Limitações  Alguns campos que não eram delimitados com fábricas especializadas apresentavam valores ilegíveis ou irreais.  Vários testes com nomes diferentes que recebiam a mesma fábrica especializada.

Conclusão  Quanto maior for a quantidade de possibilidades a ser aferida no sistema, maior será o tempo de criação e execução do teste.  O tempo existente entre preparar o teste unitário e executar o mesmo pode ser reduzida utilizando o framework Make.  A criação de valores para serem inseridos no banco de dados para realização de testes é outra tarefa que o Make pode auxiliar.  A utilização do Make permite ao desenvolvedor reduzir o tempo de trabalho em tarefas complexas permitindo ganho de produtividade e, consequentemente, torna possível a entrega de mais valor de negócio ao cliente.