Automock. Interaction-based Mock Code Generation. Renato Miceli Costa Ribeiro

Documentos relacionados
Verificação e Validação

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

Verificação e Validação

INTRODUÇÃO A ENGENHARIA DE SOFTWARE

Ferramentas CASE. CASE fornece ao engenheiro de software a habilidade de automatizar atividades manuais e de aperfeiçoar o conhecimento de engenharia.

Verificação e Validação. Ian Sommerville 2006 Engenharia de Software, 8ª. edição. Capítulo 22 Slide 1

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

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

Teste de Software. Karen Frigo Busolin Novembro / 2010

30% a 50% dos custos desenvolvimento A complexidade torna impossível teste completo (cobertura total) Mas...

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

- 8ª Lista de Exercícios -

TESTES DE SOFTWARE. Profa. Maria Auxiliadora

ENGENHARIA DE SOFTWARE. Aula 12 Testes de software

Teste de Software. Objetivo: Executar software para revelar erros/falhas ainda não descobertos. Pode gastar 40% do esforço de desenvolvimento

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:

VALIDAÇÃO DE UMA TÉCNICA PARA GERAÇÃO AUTOMÁTICA DE TESTES COM OBJETOS MOCK

MUTAÇÃO DE INTERFACE (MI) JACKSON ANTONIO DO PRADO LIMA SILVIA REGINA VERGILIO

JUnit. Facilitando o desenvolvimento e execução de testes unitários em código java. Peterson Rodrigues

Engenharia de Software

Introdução a Teste de Software

Fundamentos de Teste de Software

SSC 0721 Teste e Validação de Software

CATÁLOGO GRADUAÇÃO DOS CURSOS DE UNIVERSIDADE FEDERAL DO PARÁ

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

Teste de Software. Roberta Coelho

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

Engenharia de Software

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

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

Processos de Validação e Verificação do MPS-Br

Guia do Processo de Teste Metodologia Celepar

Introdução aos Testes de Software

Qualidade de Software e Atividades de Verificação e Validação

TESTES DE SOFTWARE 1. Fundamentos sobre testes de software

Universidade Federal de Pernambuco

EMPREENDIMENTO: Bosque Heliópolis. Novo Heliópolis - Garanhuns-PE 24 meses após a assinatura do contrato CAIXA. CORREÇÃO: BLOCO: INCC

Arquitetura Java Pastoreando gatos

Verificação e Validação

Testes de Software. Prof. Edjandir C. Costa

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

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

Engenharia de Software Aula 21. Revisão da Prova 2. Eduardo Figueiredo.

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

Teste de Software Básico

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

Eliane Martins. Instituto de Computação - Unicamp 6º Workshop do Projeto ATIFS - INPE - 5/12/2003

Testes de Software. Prof: Sérgio Portari

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

Engenharia de Software

VERIFICAÇÃO & VALIDAÇÃO

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

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

Programação Orientada a Objetos

Prof. Me. Sérgio Carlos Portari Júnior

Teste de Software Intermediário

Plano de Testes VideoSystem

Estágio II. Aula 04 Testes Ágeis. Prof. MSc. Fred Viana

Teste de Software: conceitos, técnicas e benefícios

ENGENHARIA DE SOFTWARE

SISTEMA DISTRIBUÍDO PARA GERENCIAMENTO DE LIBERAÇÃO DE RELEASES DE SOFTWARE

O ATIFS na Plataforma para Validação e Integração de Software em Sistemas Espacias

DESIGN PATTERNS. Como evitar problemas no futuro

UNIVERSIDADE FEDERAL DE CAMPINA GRANDE - UFCG CENTRO DE ENGENHARIA ELÉTRICA E INFORMÁTICA - CEEI DEPARTAMENTO DE SISTEMAS E COMPUTAÇÃO - DSC

Estágio II. Aula 01 Qualidade de Software. Prof. MSc. Fred Viana

Interface Humano- Computador (IHC) Prof. Dr. Ronaldo Barbosa

SOP - TADS Fundamentos de Sistemas Operacionais

Desenvolvendo aplicações de qualidade com TDD

2 Estado da Arte. 2.1.Geração automática de casos de teste

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

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

TS04. Teste de Software PLANOS DE TESTE. COTI Informática Escola de Nerds

Makefiles O que é mak a efi f le make

whitepaper 20 MOTIVOS para escolher o OpMon COMO A SUA SOLUÇÃO de gerenciamento de TI

Sumário. Parte I Fundamentos Capítulo 1 O Problema de Entregar Software... 3

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

RPC e RMI. Sistemas Distribuídos. Mauro Lopes Carvalho Silva. Professor EBTT DAI Departamento de Informática Campus Monte Castelo

Código Limpo. Curso de Verão IME/USP Hugo Corbucci

Teste de Software Parte 2. Prof. Jonas Potros

October 13, 2016 Web.br hugeinc.com

Manutenção Leitura: Sommerville; Pressman

Folder Gerenciamento de Baterias Versão 01 18/5/2011. Manual Técnico do Gerenciador de Baterias

PROCESSO DE DESENVOLVIMENTO DE SOFTWARE. Prof. Fabiano Papaiz IFRN

Engenharia de Software

Plano de pesquisa de mestrado em ciência da computação. Márcio G. Morais

José Carlos Ramalho Alda Reis Lopes Pedro Rangel Henriques

ADMINISTRAÇÃO GERAL. AbordagemNeoclássica daadministração Decorrênciasda TeoriaNeoclássica:ProcessoAdministrativo- - Controle.

Uma introdução a Domain Driven Design. Daniel Cukier IME-USP

Padrões de Testes Automatizados. Exame de Defesa de Mestrado Paulo Cheque Bernardo Orientador: Fabio Kon DCC IME/USP 4 de julho de 2011

Processo de desenvolvimento de sistema de informação - DSI

Orientador: Jacques Robert Heckmann

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

7 Discussão dos Resultados

PROJETO DE BANCO DE DADOS

3ª Aula. Processo de Projeto em SE Exemplo de projeto: Sistema de Mapa GPS. Introdução. PSI3441 Arquitetura de Sistemas Embarcados

MÓDULO 16 PLANEJAMENTO DE CONSTRUÇÃO, TESTES E DOCUMENTAÇÃO DO SISTEMA

Teste em Esquemas de Dados

DCC / ICEx / UFMG. O Modelo CMMI. Eduardo Figueiredo.

Microarquiteturas Avançadas

Transcrição:

Automock Interaction-based Mock Code Generation Renato Miceli Costa Ribeiro renato@lsd.ufcg.edu.br Setembro de 2009

Introdução: construindo testes Fazer testes é importante! Testes ajudam a identificar falhas no software. Vários tipos de teste: Unidade; Integração; Aceitação; Sistema. Diferentes tipos de teste focam em identificar diferentes falhas no software.

Introdução: refatorando código Identificar falhas VS identificar faltas. Isolamento: um dos princípios de testes de unidade. Como eliminar as dependências de uma classe sob teste?

Introdução: testes podem ser custosos Ainda, as dependências podem causar efeitos colaterais no teste: Assincronia; Multithreading; Demora em execução; Suscetível às condições do ambiente. E, muitas vezes, as próprias dependências não existem ainda!

Introdução: acesso a banco de dados

Introdução: Stubs Solução inicial: usar Stubs! Stubs são classes que implementam a mesma interface das dependências da classe sob teste. As respostas esperadas para cada invocação das dependências são determinadas estaticamente em código; O comportamento se estabelece em tempo de compilação. Mas se houver muitos dependentes, e muitas classes de teste, quantos Stubs haveriam...

Introdução: Objetos Mock Outra solução: usar Objetos Mock! Mocks são objetos que implementam a mesma interface das dependências da classe sob teste. As respostas esperadas para cada invocação das dependências são determinadas dinamicamente em código; O comportamento se estabelece em tempo de execução.

Introdução: Testes com Objetos Mock São mais efetivos, por fornecer informação precisa do comportamento das dependências. Tendem a executar mais rapidamente. Simulam um ambiente real sem os efeitos colaterais do próprio ambiente. Isolam a classe sob teste, de modo que se torna mais fácil a identificação das faltas do software.

Introdução: Por outro lado... São custosos de se escrever: é necessário escrever um passo-a-passo de todas as expectativas das dependências. Testadores requerem bastante experiência com o sistema, de modo que entendam e saibam todas as interações que ocorrem entre os objetos no cenário de teste. Qualquer mudança no código causa mudanças profundas em testes com Objetos Mock.

Solução: Automock Desenvolvida no ano de 2008, no âmbito do projeto AutoTest, no Laboratório de Sistemas Distribuídos (LSD). Ferramenta de apoio ao desenvolvimento de testes. Gera automaticamente testes com Objetos Mock a partir de outros testes. Identifica as dependências da classe sob teste e as converte em Objetos Mock. Cataloga as interações entre os objetos no teste original em tempo de execução para determinar o comportamento dos Objetos Mock. Evita os malefícios do uso de Mocks, mantendo-se somente seus benefícios.

Funcionamento do Automock

Validação da Técnica Qual a redução de esforço do testador ao usar o Automock? Quanto em tempo se ganha no desenvolvimento de código Mock ao usar o Automock? Podemos assegurar que o teste original e o oriundo do Automock têm a mesma semântica?

Abordagens Análise de semântica: Testes de mutação; Cobertura; Resultado da execução. Análise de esforço e tempo: Experimentação; Estimadores. Softwares candidatos a experimentação: OurBackup (atividades A); Hidrogis (atividades B); OurGrid (atividades C).

Cronograma

Equipe e Ambiente de Estágio Supervisora Técnica: Sabrina de Figueirêdo Souto (mestranda) Supervisor Acadêmico: Dalton Serey Guerrero (Professor Dr.) O estágio será desenvolvido no Laboratório de Sistemas Distribuídos (LSD), bloco CO da UFCG.

Resultados Esperados Sinal positivo sobre o Automock promover ganhos sobre a construção manual de código Mock. Compilar os resultados e a experiência obtidos no estágio em um artigo científico para publicação.

Dúvidas? Obrigado