SlideShare uma empresa Scribd logo
1 de 36
Baixar para ler offline
Teste Dirigido por Modelos


                          Davi Serrano
                        Delano Oliveira
                           José Rafael
                         Natã Venâncio
{davi.teife, delanohelio, rafaefarias, nata.venancio.melo}@gmail.com
Agenda
       Motivação
       MBT
       MDD/MDA
       MDT
       Integração de MDT com MDD
       Ferramentas
       Conclusão
       Dúvidas
       Referências


    2            Teste Dirigido por Modelos - Davi, Delano, Rafael e Natã
Motivação
       O processo de desenvolvimento de software tem passado
        por intensas transformações nos últimos anos

       Novas abordagens de desenvolvimento têm surgido

       Dentre os problemas mais comuns aos projetos de
        software podemos destacar:
           Alto custo para evolução e manutenção
           Inconsistência entre documentação e sistema final
           Baixa portabilidade e confiabilidade


    3                 Teste Dirigido por Modelos - Davi, Delano, Rafael e Natã
Motivação
       Uma das abordagens utilizadas atualmente voltada para o
        desenvolvimento de software com alto padrão de
        qualidade é o Desenvolvimento Dirigido por Modelos
        (MDD).

       Mudança de foco: Modelos




    4              Teste Dirigido por Modelos - Davi, Delano, Rafael e Natã
Motivação
       Um sistema não pode ser considerado confiável sem que
        seja realizado um processo de V&V adequado

       Mesmo sistemas desenvolvidos seguindo a abordagem
        MDD precisam ser validados

       MBT e MDT




    5             Teste Dirigido por Modelos - Davi, Delano, Rafael e Natã
MBT
       Model-based Testing
       Técnica que tem como objetivo a geração de casos testes
        automático a partir de modelos

         Modelos
                                     Descrevem aspectos do
                                      comportamento do software
                                     Sequência de entradas, ações,
                                      condições e saída lógicas
                                     Fluxo de dados e fluxo de controle



    6              Teste Dirigido por Modelos - Davi, Delano, Rafael e Natã
MBT
       Máquina de Estados finito
           “Software is always in a specific state and the current state of the
            application govern what set of inputs testers can select from”




    7                   Teste Dirigido por Modelos - Davi, Delano, Rafael e Natã
MBT
       UML – Unified Modeling Language
           “UML is to models what C or Pascal are to programs”
           Linguagem estruturada
           Exemplo: Diagrama de Sequência




    8                 Teste Dirigido por Modelos - Davi, Delano, Rafael e Natã
MBT
       Existem outros tipos de modelos que tem como objetivo
        descrever o comportamento do software
       Startecharts, Markov Chains, Grammars, etc



                 Como saber que tipo de modelo representa
                  melhor a descrição de um determinado
                               software???




    9             Teste Dirigido por Modelos - Davi, Delano, Rafael e Natã
MBT
    Quais as tarefas fundamentais de MBT?
        Entender o Sistema
            13 Guidelines: Determinar os componentes necessários para os testes,
             Reunir documentações relevantes e úteis, Estudar o domínio de cada
             entrada, ..., criar o modelo;
        Escolher o Tipo de Modelo
        Construir o Modelo
            Listar entradas, “input applicability constraints” e “input behavior
             constraints’;




    10                 Teste Dirigido por Modelos - Davi, Delano, Rafael e Natã
MBT
    Gerar Testes
        Modelos: “properties that make test generation effortless and
         automatable”
        Os caminhos gerados são por definição testes




11                 Teste Dirigido por Modelos - Davi, Delano, Rafael e Natã
MBT
    Executar Testes
        Scripts de testes simulam entradas realizadas pelos usuários
        Gerador produz scripts de testes simulando cada transição
         como procedure call




    12             Teste Dirigido por Modelos - Davi, Delano, Rafael e Natã
MBT
    Coletar Resultados
        Atividade mais difícil do processo
        Os testadores observam se o sistema gerou a saída correta
         para uma dada sequência de entradas




    13             Teste Dirigido por Modelos - Davi, Delano, Rafael e Natã
MDD

    MDD – Model Driven Development
    MDA – Model Driven Architecture
    Proposta pela OMG
        Propor uma mudança de paradigma
    Focar o desenvolvimento do software em modelos
        Modelos não são apenas documentos para auxiliar o
         desenvolvimento de software, eles são o próprio software




    14             Teste Dirigido por Modelos - Davi, Delano, Rafael e Natã
MDD
    PIM – Platform Independent Model
    PSM – Platform Specific Model
                                                                            PIM
    Ferramentas de transformação
        Definição de transformação
             Regra de transformação
         
                                                                            PSM


    Transformações são escritas em:
        ATL, MOFScript, MOF2Text, …                                              Code

    15               Teste Dirigido por Modelos - Davi, Delano, Rafael e Natã
MDT
    Model Driven Test

        É uma abordagem de MBT que faz uso de técnicas de MDD
         para a geração automática de artefatos de teste de acordo
         com regras de transformação pré-definidas, possivelmente a
         partir de modelos de desenvolvimento.


        Realização de MBT com estratégias de MDA




    16             Teste Dirigido por Modelos - Davi, Delano, Rafael e Natã
MDT
    Geração automática de artefatos de teste a partir dos
     modelos de desenvolvimento
         MDA                MDT

                                                 CITM – Computational Independent
         CIM                 CITM
                                                 Testing Model


                                                    PITM – Plataform Independent
         PIM                 PITM
                                                    Testing Model



         PSM                 PSTM
                                                    PSTM – Plataform Specific
                                                    Testing Model



    17          Teste Dirigido por Modelos - Davi, Delano, Rafael e Natã
MDT
    Como funciona?




Arquitetura implementada
pela ferramenta MoBIT!




    18          Teste Dirigido por Modelos - Davi, Delano, Rafael e Natã
MDT
    O que é preciso?

        Modelos bem definidos e especificados
        UML é uma ótima linguagem para este propósito
        Ferramentas de transformações de modelo para modelo e de
         modelo para texto
        Processo Iterativo
        Testadores com conhecimento sobre as tecnologias que
         envolve todo o processo:
            Ferramentas, scripts, linguagens, etc
        Além de conhecimentos matemáticos


    19                 Teste Dirigido por Modelos - Davi, Delano, Rafael e Natã
Integração de MDT com MDD

    Deve ser executada com cuidado

    Alinhamento de características principais

    Benefícios:
        Menor custo de desenvolvimento e manutenção
        Menor custo tempo
        Testes estarão prontos antes



    20             Teste Dirigido por Modelos - Davi, Delano, Rafael e Natã
Integração de MDT com MDD – UML 2.0
    MDD
        Meta-Modelos
            UML, OCL
            Java (dependendo da plataforma)


        Modelos
            Padrão MDA
            CIM
                Funcionais e Estruturais
            PIM
                Estruturais, Funcionais e Comportamentais




    21                  Teste Dirigido por Modelos - Davi, Delano, Rafael e Natã
Integração de MDT com MDD – UML 2.0
    MDD
        Plataforma
            PSM (Java)


        Geração de código
            Ferramenta que implementa exigências da OMG


        Técnicas de Transformação
            QVT – OMG
            ATL – Popular




    22                Teste Dirigido por Modelos - Davi, Delano, Rafael e Natã
Integração de MDT com MDD – UML 2.0
    MDT

        Testes Puramente Funcionais

        CIM e PIM resultam CITM e PITM
            U2TP


        Casos de teste gerados automaticamente
            Derivados a partir do diagramas de classe e máquina de estados
                Algoritmo: Chinese postman (Simples e boa cobertura)




    23                  Teste Dirigido por Modelos - Davi, Delano, Rafael e Natã
Integração de MDT com MDD – UML 2.0
    Arquitetura da Integração                       Arquitetura implementada
                                                     pela ferramenta MoBIT!




    24          Teste Dirigido por Modelos - Davi, Delano, Rafael e Natã
Ferramentas

    SPACES
        SPecification bAsed Component tESter


        Desenvolvida por pesquisadores do GMF (Grupo de Métodos
         Formais - UFCG)


        É uma ferramenta de teste funcional para componentes que faz
         uso de especificações UML e restrições OCL para derivar
         casos de teste de forma automática.



    25             Teste Dirigido por Modelos - Davi, Delano, Rafael e Natã
Ferramentas

    O usuário deve utilizar uma das ferramentas de modelagem
     UML e que exportem para o formato de arquivo XMI.


    Após a construção de alguns diagramas UML, a ferramenta
     SPACES faz a leitura desses diagramas e constrói,
     automaticamente, classes de teste para o componente
     especificado.


    O teste é executado no frameworkComponentTester



26             Teste Dirigido por Modelos - Davi, Delano, Rafael e Natã
Ferramentas

    MoBIT
        Model-driven Built-In contract Testers


        Também desenvolvida pelo GMF.


        Seguindo a abordagem MDA/MDT e a metodologia de
         construção de testes BIT para automatizar o processo da
         criação dos artefatos de teste nos modelos de componentes
         KobrA.



    27               Teste Dirigido por Modelos - Davi, Delano, Rafael e Natã
Ferramentas
    BIT- Built-In contract Testing
        Para se fazer uso de componentes, basta conhecer suas
         interfaces de comunicação
        Metodologia para testar se os contratos de cada componente
         estão sendo seguidos


    KobrA - Komponentenbasierte Anwendungsentwicklung
        Metodologia de desenvolvimento de software baseado em
         componentes
        Objetivo principal aprimorar a engenharia de linha de produtos
        Adota o padrão UML


    28             Teste Dirigido por Modelos - Davi, Delano, Rafael e Natã
Ferramentas
    Problema:
        Adaptar os modelos de componentes KobrA para a atividade
         de testes
        Automaticamente
        Seguindo BIT


    Solução:
        Perfil BIT




    29                Teste Dirigido por Modelos - Davi, Delano, Rafael e Natã
Ferramentas
    Processo
        Casos de teste representados por diagramas de sequência
        Possui um algoritmo interno implementado
        Chinese Postman adaptado


    Resultado
        Modelo dos artefatos de teste para a plataforma Java




    30             Teste Dirigido por Modelos - Davi, Delano, Rafael e Natã
Ferramentas
    Resultado:




    31            Teste Dirigido por Modelos - Davi, Delano, Rafael e Natã
Conclusão

    Vantagens

        Menor custo de desenvolvimento e testes
        Menos tempo empenhado no processo de desenvolvimento e
         testes
        Reduz possibilidade de falhas humanas
        Conformidade entre especificação e testes
        Maior qualidade de produtos




    32            Teste Dirigido por Modelos - Davi, Delano, Rafael e Natã
Conclusão

    Desvantagens

        MDT requer uma certa habilidade dos testadores, pois
         precisam ter conhecimentos sobre as tecnologias que envolve
         o processo de MDT


        Requer muito esforço inicial, para decidir qual modelo utilizar,
         e em seguida construir o modelo, etc.




    33              Teste Dirigido por Modelos - Davi, Delano, Rafael e Natã
Dúvidas




34        Teste Dirigido por Modelos - Davi, Delano, Rafael e Natã
Referências
    Model-based Software Testing (Ibrahim K. El-Far and James
     A. Whittaker, Florida Institute of Technology)
    Uma Abordagem Integrada para Desenvolvimento e Teste
     Dirigido por Modelos (Everton L. G. Alves, Patrícia D. L.
     Machado, Franklin Ramalho)
    Automatic Generation of Platform Independent Built-in
     Contract Testers (Helton S. Lima1, Franklin Ramalho1,
     Patrícia D. L. Machado I, Everton L. Galdino)




    35          Teste Dirigido por Modelos - Davi, Delano, Rafael e Natã
Teste Dirigido por Modelos


                          Davi Serrano
                        Delano Oliveira
                           José Rafael
                         Natã Venâncio
{davi.teife, delanohelio, rafaefarias, nata.venancio.melo}@gmail.com

Mais conteúdo relacionado

Mais procurados

Apresentacao Testes de Unidade
Apresentacao Testes de UnidadeApresentacao Testes de Unidade
Apresentacao Testes de UnidadeAline Ferreira
 
Treinamento Testes Unitários - parte 1
Treinamento Testes Unitários - parte 1Treinamento Testes Unitários - parte 1
Treinamento Testes Unitários - parte 1Diego Pacheco
 
Tecnicas Para Planejamento E Execucao De Testes De Software
Tecnicas Para Planejamento E Execucao De Testes De SoftwareTecnicas Para Planejamento E Execucao De Testes De Software
Tecnicas Para Planejamento E Execucao De Testes De Softwaremarthahuback
 
Testes de Software
Testes de SoftwareTestes de Software
Testes de SoftwareCapgemini
 
Testes, engenharia de Software, teste de Software
Testes, engenharia de Software, teste de SoftwareTestes, engenharia de Software, teste de Software
Testes, engenharia de Software, teste de SoftwareSilas Gonçalves
 
Testes de Unidade com Junit
Testes de Unidade com JunitTestes de Unidade com Junit
Testes de Unidade com Junitcejug
 
Test-Driven Development (TDD) utilizando o framework xUnit.net
Test-Driven Development (TDD) utilizando o framework xUnit.netTest-Driven Development (TDD) utilizando o framework xUnit.net
Test-Driven Development (TDD) utilizando o framework xUnit.netRenato Groff
 
Noções em teste de software e introdução a automação
Noções em teste de software e introdução a automaçãoNoções em teste de software e introdução a automação
Noções em teste de software e introdução a automaçãoSandy Maciel
 
Palestra GUTS - Viabilidade da Automacao Teste Software e Demo QTP
Palestra GUTS - Viabilidade da Automacao Teste Software e Demo QTPPalestra GUTS - Viabilidade da Automacao Teste Software e Demo QTP
Palestra GUTS - Viabilidade da Automacao Teste Software e Demo QTPPriscila Coelho S. Blauth
 
Apresentação jasmine
Apresentação jasmineApresentação jasmine
Apresentação jasmineRangel Javier
 
Implementando Testes Unitários em Java - Manoel Pimentel
Implementando Testes Unitários em Java - Manoel PimentelImplementando Testes Unitários em Java - Manoel Pimentel
Implementando Testes Unitários em Java - Manoel PimentelManoel Pimentel Medeiros
 
Fundamentos de Teste de Software - Dev in PF. por Aline Zanin
Fundamentos de Teste de Software - Dev in PF. por Aline ZaninFundamentos de Teste de Software - Dev in PF. por Aline Zanin
Fundamentos de Teste de Software - Dev in PF. por Aline ZaninDevInPF
 
Testes Automatizados de Software
Testes Automatizados de SoftwareTestes Automatizados de Software
Testes Automatizados de SoftwareMaurício Aniche
 
Testes Unitários/Integrados
Testes Unitários/IntegradosTestes Unitários/Integrados
Testes Unitários/IntegradosGiovanni Bassi
 
Ciclo de vida de testes implementado
Ciclo de vida de testes implementadoCiclo de vida de testes implementado
Ciclo de vida de testes implementadoTestRock!
 

Mais procurados (20)

Teste de software
Teste de softwareTeste de software
Teste de software
 
Apresentacao Testes de Unidade
Apresentacao Testes de UnidadeApresentacao Testes de Unidade
Apresentacao Testes de Unidade
 
Treinamento Testes Unitários - parte 1
Treinamento Testes Unitários - parte 1Treinamento Testes Unitários - parte 1
Treinamento Testes Unitários - parte 1
 
Tecnicas Para Planejamento E Execucao De Testes De Software
Tecnicas Para Planejamento E Execucao De Testes De SoftwareTecnicas Para Planejamento E Execucao De Testes De Software
Tecnicas Para Planejamento E Execucao De Testes De Software
 
Testes de Software
Testes de SoftwareTestes de Software
Testes de Software
 
Mini aula de teste de software
Mini aula de teste de softwareMini aula de teste de software
Mini aula de teste de software
 
Testes, engenharia de Software, teste de Software
Testes, engenharia de Software, teste de SoftwareTestes, engenharia de Software, teste de Software
Testes, engenharia de Software, teste de Software
 
Testes de Unidade com Junit
Testes de Unidade com JunitTestes de Unidade com Junit
Testes de Unidade com Junit
 
Test-Driven Development (TDD) utilizando o framework xUnit.net
Test-Driven Development (TDD) utilizando o framework xUnit.netTest-Driven Development (TDD) utilizando o framework xUnit.net
Test-Driven Development (TDD) utilizando o framework xUnit.net
 
Testes de Sistema
Testes de SistemaTestes de Sistema
Testes de Sistema
 
Noções em teste de software e introdução a automação
Noções em teste de software e introdução a automaçãoNoções em teste de software e introdução a automação
Noções em teste de software e introdução a automação
 
Palestra GUTS - Viabilidade da Automacao Teste Software e Demo QTP
Palestra GUTS - Viabilidade da Automacao Teste Software e Demo QTPPalestra GUTS - Viabilidade da Automacao Teste Software e Demo QTP
Palestra GUTS - Viabilidade da Automacao Teste Software e Demo QTP
 
Apresentação jasmine
Apresentação jasmineApresentação jasmine
Apresentação jasmine
 
Implementando Testes Unitários em Java - Manoel Pimentel
Implementando Testes Unitários em Java - Manoel PimentelImplementando Testes Unitários em Java - Manoel Pimentel
Implementando Testes Unitários em Java - Manoel Pimentel
 
Fundamentos de Teste de Software - Dev in PF. por Aline Zanin
Fundamentos de Teste de Software - Dev in PF. por Aline ZaninFundamentos de Teste de Software - Dev in PF. por Aline Zanin
Fundamentos de Teste de Software - Dev in PF. por Aline Zanin
 
Apresentação testes white box
Apresentação testes white boxApresentação testes white box
Apresentação testes white box
 
Overview de QA
Overview de QA Overview de QA
Overview de QA
 
Testes Automatizados de Software
Testes Automatizados de SoftwareTestes Automatizados de Software
Testes Automatizados de Software
 
Testes Unitários/Integrados
Testes Unitários/IntegradosTestes Unitários/Integrados
Testes Unitários/Integrados
 
Ciclo de vida de testes implementado
Ciclo de vida de testes implementadoCiclo de vida de testes implementado
Ciclo de vida de testes implementado
 

Semelhante a Modelos para Testes Automáticos

Gerenciando Testes Com Qualidade V2a
Gerenciando Testes Com Qualidade V2aGerenciando Testes Com Qualidade V2a
Gerenciando Testes Com Qualidade V2aLeonardo Molinari
 
Processo de Desenvolvimento MDA: metodologias e agilidade
Processo de Desenvolvimento MDA: metodologias e agilidadeProcesso de Desenvolvimento MDA: metodologias e agilidade
Processo de Desenvolvimento MDA: metodologias e agilidadeLuiz Matos
 
Application Lifecycle Management - Campus Party Brasil 2009
Application Lifecycle Management -  Campus Party  Brasil 2009Application Lifecycle Management -  Campus Party  Brasil 2009
Application Lifecycle Management - Campus Party Brasil 2009Ramon Durães
 
PLP – Paradigma de Programação Orientado a Modelos
PLP – Paradigma de Programação Orientado a ModelosPLP – Paradigma de Programação Orientado a Modelos
PLP – Paradigma de Programação Orientado a Modeloselliando dias
 
DDD – Domain Driven Design
DDD – Domain Driven DesignDDD – Domain Driven Design
DDD – Domain Driven DesignÍtalo Bandeira
 
Palestra TaSafo Conf-2015: Refatoração com Métricas
Palestra TaSafo Conf-2015: Refatoração com MétricasPalestra TaSafo Conf-2015: Refatoração com Métricas
Palestra TaSafo Conf-2015: Refatoração com MétricasClaudio Martins
 
Es2 modelo de processo de software
Es2 modelo de processo de softwareEs2 modelo de processo de software
Es2 modelo de processo de softwareluacal
 
Campus Party Brasil 2010 - ALM - Application Lifecycle Management
Campus Party Brasil 2010 - ALM - Application Lifecycle ManagementCampus Party Brasil 2010 - ALM - Application Lifecycle Management
Campus Party Brasil 2010 - ALM - Application Lifecycle ManagementRamon Durães
 
MDA – Sistemas Distribuidos
MDA – Sistemas DistribuidosMDA – Sistemas Distribuidos
MDA – Sistemas Distribuidoselliando dias
 
Tendências e Dicas para o Desenvolvimento de Software
Tendências e Dicas para o Desenvolvimento de SoftwareTendências e Dicas para o Desenvolvimento de Software
Tendências e Dicas para o Desenvolvimento de SoftwareNorberto Santos
 
Cobertura de Código: Testes de Unidade
Cobertura de Código: Testes de UnidadeCobertura de Código: Testes de Unidade
Cobertura de Código: Testes de UnidadeThiago Bertuzzi
 
Qualidade de Software com Visual Studio 2012
Qualidade de Software com Visual Studio 2012Qualidade de Software com Visual Studio 2012
Qualidade de Software com Visual Studio 2012Adriano Bertucci
 
Qualidade de software com Visual Studio ALM
Qualidade de software com Visual Studio ALMQualidade de software com Visual Studio ALM
Qualidade de software com Visual Studio ALMAdriano Bertucci
 

Semelhante a Modelos para Testes Automáticos (20)

Gerenciando Testes Com Qualidade V2a
Gerenciando Testes Com Qualidade V2aGerenciando Testes Com Qualidade V2a
Gerenciando Testes Com Qualidade V2a
 
Processo de Desenvolvimento MDA: metodologias e agilidade
Processo de Desenvolvimento MDA: metodologias e agilidadeProcesso de Desenvolvimento MDA: metodologias e agilidade
Processo de Desenvolvimento MDA: metodologias e agilidade
 
Application Lifecycle Management - Campus Party Brasil 2009
Application Lifecycle Management -  Campus Party  Brasil 2009Application Lifecycle Management -  Campus Party  Brasil 2009
Application Lifecycle Management - Campus Party Brasil 2009
 
PLP – Paradigma de Programação Orientado a Modelos
PLP – Paradigma de Programação Orientado a ModelosPLP – Paradigma de Programação Orientado a Modelos
PLP – Paradigma de Programação Orientado a Modelos
 
DDD – Domain Driven Design
DDD – Domain Driven DesignDDD – Domain Driven Design
DDD – Domain Driven Design
 
FDD
FDDFDD
FDD
 
Palestra TaSafo Conf-2015: Refatoração com Métricas
Palestra TaSafo Conf-2015: Refatoração com MétricasPalestra TaSafo Conf-2015: Refatoração com Métricas
Palestra TaSafo Conf-2015: Refatoração com Métricas
 
Es2 modelo de processo de software
Es2 modelo de processo de softwareEs2 modelo de processo de software
Es2 modelo de processo de software
 
Aula - Teste de Software
Aula - Teste de SoftwareAula - Teste de Software
Aula - Teste de Software
 
Campus Party Brasil 2010 - ALM - Application Lifecycle Management
Campus Party Brasil 2010 - ALM - Application Lifecycle ManagementCampus Party Brasil 2010 - ALM - Application Lifecycle Management
Campus Party Brasil 2010 - ALM - Application Lifecycle Management
 
MDA – Sistemas Distribuidos
MDA – Sistemas DistribuidosMDA – Sistemas Distribuidos
MDA – Sistemas Distribuidos
 
Academia do programador
Academia do programadorAcademia do programador
Academia do programador
 
Tendências e Dicas para o Desenvolvimento de Software
Tendências e Dicas para o Desenvolvimento de SoftwareTendências e Dicas para o Desenvolvimento de Software
Tendências e Dicas para o Desenvolvimento de Software
 
Trabalho CMM
Trabalho CMMTrabalho CMM
Trabalho CMM
 
Cobertura de Código: Testes de Unidade
Cobertura de Código: Testes de UnidadeCobertura de Código: Testes de Unidade
Cobertura de Código: Testes de Unidade
 
Gt 2 – ferramentas
Gt 2 – ferramentasGt 2 – ferramentas
Gt 2 – ferramentas
 
Tdd na veia
Tdd na veiaTdd na veia
Tdd na veia
 
Teste de software
Teste de softwareTeste de software
Teste de software
 
Qualidade de Software com Visual Studio 2012
Qualidade de Software com Visual Studio 2012Qualidade de Software com Visual Studio 2012
Qualidade de Software com Visual Studio 2012
 
Qualidade de software com Visual Studio ALM
Qualidade de software com Visual Studio ALMQualidade de software com Visual Studio ALM
Qualidade de software com Visual Studio ALM
 

Mais de Natã Melo

Sistemas Distribuídos - Publish-Subscribe - Kafka
Sistemas Distribuídos - Publish-Subscribe - KafkaSistemas Distribuídos - Publish-Subscribe - Kafka
Sistemas Distribuídos - Publish-Subscribe - KafkaNatã Melo
 
[Android] Publish on Google Play & Google Analytics
[Android] Publish on Google Play & Google Analytics[Android] Publish on Google Play & Google Analytics
[Android] Publish on Google Play & Google AnalyticsNatã Melo
 
[Android] Google Service Play & Google Maps
[Android] Google Service Play & Google Maps[Android] Google Service Play & Google Maps
[Android] Google Service Play & Google MapsNatã Melo
 
Minicurso grails
Minicurso grailsMinicurso grails
Minicurso grailsNatã Melo
 
Java Style Grading
Java Style Grading Java Style Grading
Java Style Grading Natã Melo
 
Listas em Prolog
Listas em PrologListas em Prolog
Listas em PrologNatã Melo
 
Motores de busca em redes sociais
Motores de busca em redes sociaisMotores de busca em redes sociais
Motores de busca em redes sociaisNatã Melo
 
MATRACA: Ferramenta open source para auxílio a deficientes visuais no uso do ...
MATRACA: Ferramenta open source para auxílio a deficientes visuais no uso do ...MATRACA: Ferramenta open source para auxílio a deficientes visuais no uso do ...
MATRACA: Ferramenta open source para auxílio a deficientes visuais no uso do ...Natã Melo
 
Biografia de Bill Gates - Parte 4
Biografia de Bill Gates - Parte 4Biografia de Bill Gates - Parte 4
Biografia de Bill Gates - Parte 4Natã Melo
 
Biografia de Bill Gates - Parte 3
Biografia de Bill Gates - Parte 3Biografia de Bill Gates - Parte 3
Biografia de Bill Gates - Parte 3Natã Melo
 
Biografia de Bill Gates - Parte 2
Biografia de Bill Gates - Parte 2Biografia de Bill Gates - Parte 2
Biografia de Bill Gates - Parte 2Natã Melo
 
Biografia de Bill Gates - Parte 1
Biografia de Bill Gates - Parte 1Biografia de Bill Gates - Parte 1
Biografia de Bill Gates - Parte 1Natã Melo
 
Copas do Mundo de Futebol
Copas do Mundo de FutebolCopas do Mundo de Futebol
Copas do Mundo de FutebolNatã Melo
 
Linguagem Python
Linguagem PythonLinguagem Python
Linguagem PythonNatã Melo
 
Sistemas Recomendação em Redes Sociais
Sistemas Recomendação em Redes SociaisSistemas Recomendação em Redes Sociais
Sistemas Recomendação em Redes SociaisNatã Melo
 
Sistema de Recomendação - Amigos DINS
Sistema de Recomendação - Amigos DINSSistema de Recomendação - Amigos DINS
Sistema de Recomendação - Amigos DINSNatã Melo
 
Regresão Múltipla
Regresão MúltiplaRegresão Múltipla
Regresão MúltiplaNatã Melo
 
Educação a Distância
Educação a DistânciaEducação a Distância
Educação a DistânciaNatã Melo
 

Mais de Natã Melo (20)

Sistemas Distribuídos - Publish-Subscribe - Kafka
Sistemas Distribuídos - Publish-Subscribe - KafkaSistemas Distribuídos - Publish-Subscribe - Kafka
Sistemas Distribuídos - Publish-Subscribe - Kafka
 
[Android] Publish on Google Play & Google Analytics
[Android] Publish on Google Play & Google Analytics[Android] Publish on Google Play & Google Analytics
[Android] Publish on Google Play & Google Analytics
 
[Android] Google Service Play & Google Maps
[Android] Google Service Play & Google Maps[Android] Google Service Play & Google Maps
[Android] Google Service Play & Google Maps
 
Minicurso grails
Minicurso grailsMinicurso grails
Minicurso grails
 
Java Style Grading
Java Style Grading Java Style Grading
Java Style Grading
 
Listas em Prolog
Listas em PrologListas em Prolog
Listas em Prolog
 
Motores de busca em redes sociais
Motores de busca em redes sociaisMotores de busca em redes sociais
Motores de busca em redes sociais
 
MATRACA: Ferramenta open source para auxílio a deficientes visuais no uso do ...
MATRACA: Ferramenta open source para auxílio a deficientes visuais no uso do ...MATRACA: Ferramenta open source para auxílio a deficientes visuais no uso do ...
MATRACA: Ferramenta open source para auxílio a deficientes visuais no uso do ...
 
Biografia de Bill Gates - Parte 4
Biografia de Bill Gates - Parte 4Biografia de Bill Gates - Parte 4
Biografia de Bill Gates - Parte 4
 
Biografia de Bill Gates - Parte 3
Biografia de Bill Gates - Parte 3Biografia de Bill Gates - Parte 3
Biografia de Bill Gates - Parte 3
 
Biografia de Bill Gates - Parte 2
Biografia de Bill Gates - Parte 2Biografia de Bill Gates - Parte 2
Biografia de Bill Gates - Parte 2
 
Biografia de Bill Gates - Parte 1
Biografia de Bill Gates - Parte 1Biografia de Bill Gates - Parte 1
Biografia de Bill Gates - Parte 1
 
Copas do Mundo de Futebol
Copas do Mundo de FutebolCopas do Mundo de Futebol
Copas do Mundo de Futebol
 
Linguagem Python
Linguagem PythonLinguagem Python
Linguagem Python
 
Sistemas Recomendação em Redes Sociais
Sistemas Recomendação em Redes SociaisSistemas Recomendação em Redes Sociais
Sistemas Recomendação em Redes Sociais
 
Sistema de Recomendação - Amigos DINS
Sistema de Recomendação - Amigos DINSSistema de Recomendação - Amigos DINS
Sistema de Recomendação - Amigos DINS
 
Terremotos
TerremotosTerremotos
Terremotos
 
Regresão Múltipla
Regresão MúltiplaRegresão Múltipla
Regresão Múltipla
 
Linguagem Go
Linguagem GoLinguagem Go
Linguagem Go
 
Educação a Distância
Educação a DistânciaEducação a Distância
Educação a Distância
 

Modelos para Testes Automáticos

  • 1. Teste Dirigido por Modelos Davi Serrano Delano Oliveira José Rafael Natã Venâncio {davi.teife, delanohelio, rafaefarias, nata.venancio.melo}@gmail.com
  • 2. Agenda  Motivação  MBT  MDD/MDA  MDT  Integração de MDT com MDD  Ferramentas  Conclusão  Dúvidas  Referências 2 Teste Dirigido por Modelos - Davi, Delano, Rafael e Natã
  • 3. Motivação  O processo de desenvolvimento de software tem passado por intensas transformações nos últimos anos  Novas abordagens de desenvolvimento têm surgido  Dentre os problemas mais comuns aos projetos de software podemos destacar:  Alto custo para evolução e manutenção  Inconsistência entre documentação e sistema final  Baixa portabilidade e confiabilidade 3 Teste Dirigido por Modelos - Davi, Delano, Rafael e Natã
  • 4. Motivação  Uma das abordagens utilizadas atualmente voltada para o desenvolvimento de software com alto padrão de qualidade é o Desenvolvimento Dirigido por Modelos (MDD).  Mudança de foco: Modelos 4 Teste Dirigido por Modelos - Davi, Delano, Rafael e Natã
  • 5. Motivação  Um sistema não pode ser considerado confiável sem que seja realizado um processo de V&V adequado  Mesmo sistemas desenvolvidos seguindo a abordagem MDD precisam ser validados  MBT e MDT 5 Teste Dirigido por Modelos - Davi, Delano, Rafael e Natã
  • 6. MBT  Model-based Testing  Técnica que tem como objetivo a geração de casos testes automático a partir de modelos Modelos  Descrevem aspectos do comportamento do software  Sequência de entradas, ações, condições e saída lógicas  Fluxo de dados e fluxo de controle 6 Teste Dirigido por Modelos - Davi, Delano, Rafael e Natã
  • 7. MBT  Máquina de Estados finito  “Software is always in a specific state and the current state of the application govern what set of inputs testers can select from” 7 Teste Dirigido por Modelos - Davi, Delano, Rafael e Natã
  • 8. MBT  UML – Unified Modeling Language  “UML is to models what C or Pascal are to programs”  Linguagem estruturada  Exemplo: Diagrama de Sequência 8 Teste Dirigido por Modelos - Davi, Delano, Rafael e Natã
  • 9. MBT  Existem outros tipos de modelos que tem como objetivo descrever o comportamento do software  Startecharts, Markov Chains, Grammars, etc Como saber que tipo de modelo representa melhor a descrição de um determinado software??? 9 Teste Dirigido por Modelos - Davi, Delano, Rafael e Natã
  • 10. MBT  Quais as tarefas fundamentais de MBT?  Entender o Sistema  13 Guidelines: Determinar os componentes necessários para os testes, Reunir documentações relevantes e úteis, Estudar o domínio de cada entrada, ..., criar o modelo;  Escolher o Tipo de Modelo  Construir o Modelo  Listar entradas, “input applicability constraints” e “input behavior constraints’; 10 Teste Dirigido por Modelos - Davi, Delano, Rafael e Natã
  • 11. MBT  Gerar Testes  Modelos: “properties that make test generation effortless and automatable”  Os caminhos gerados são por definição testes 11 Teste Dirigido por Modelos - Davi, Delano, Rafael e Natã
  • 12. MBT  Executar Testes  Scripts de testes simulam entradas realizadas pelos usuários  Gerador produz scripts de testes simulando cada transição como procedure call 12 Teste Dirigido por Modelos - Davi, Delano, Rafael e Natã
  • 13. MBT  Coletar Resultados  Atividade mais difícil do processo  Os testadores observam se o sistema gerou a saída correta para uma dada sequência de entradas 13 Teste Dirigido por Modelos - Davi, Delano, Rafael e Natã
  • 14. MDD  MDD – Model Driven Development  MDA – Model Driven Architecture  Proposta pela OMG  Propor uma mudança de paradigma  Focar o desenvolvimento do software em modelos  Modelos não são apenas documentos para auxiliar o desenvolvimento de software, eles são o próprio software 14 Teste Dirigido por Modelos - Davi, Delano, Rafael e Natã
  • 15. MDD  PIM – Platform Independent Model  PSM – Platform Specific Model PIM  Ferramentas de transformação  Definição de transformação Regra de transformação  PSM  Transformações são escritas em:  ATL, MOFScript, MOF2Text, … Code 15 Teste Dirigido por Modelos - Davi, Delano, Rafael e Natã
  • 16. MDT  Model Driven Test  É uma abordagem de MBT que faz uso de técnicas de MDD para a geração automática de artefatos de teste de acordo com regras de transformação pré-definidas, possivelmente a partir de modelos de desenvolvimento.  Realização de MBT com estratégias de MDA 16 Teste Dirigido por Modelos - Davi, Delano, Rafael e Natã
  • 17. MDT  Geração automática de artefatos de teste a partir dos modelos de desenvolvimento MDA MDT CITM – Computational Independent CIM CITM Testing Model PITM – Plataform Independent PIM PITM Testing Model PSM PSTM PSTM – Plataform Specific Testing Model 17 Teste Dirigido por Modelos - Davi, Delano, Rafael e Natã
  • 18. MDT  Como funciona? Arquitetura implementada pela ferramenta MoBIT! 18 Teste Dirigido por Modelos - Davi, Delano, Rafael e Natã
  • 19. MDT  O que é preciso?  Modelos bem definidos e especificados  UML é uma ótima linguagem para este propósito  Ferramentas de transformações de modelo para modelo e de modelo para texto  Processo Iterativo  Testadores com conhecimento sobre as tecnologias que envolve todo o processo:  Ferramentas, scripts, linguagens, etc  Além de conhecimentos matemáticos 19 Teste Dirigido por Modelos - Davi, Delano, Rafael e Natã
  • 20. Integração de MDT com MDD  Deve ser executada com cuidado  Alinhamento de características principais  Benefícios:  Menor custo de desenvolvimento e manutenção  Menor custo tempo  Testes estarão prontos antes 20 Teste Dirigido por Modelos - Davi, Delano, Rafael e Natã
  • 21. Integração de MDT com MDD – UML 2.0  MDD  Meta-Modelos  UML, OCL  Java (dependendo da plataforma)  Modelos  Padrão MDA  CIM  Funcionais e Estruturais  PIM  Estruturais, Funcionais e Comportamentais 21 Teste Dirigido por Modelos - Davi, Delano, Rafael e Natã
  • 22. Integração de MDT com MDD – UML 2.0  MDD  Plataforma  PSM (Java)  Geração de código  Ferramenta que implementa exigências da OMG  Técnicas de Transformação  QVT – OMG  ATL – Popular 22 Teste Dirigido por Modelos - Davi, Delano, Rafael e Natã
  • 23. Integração de MDT com MDD – UML 2.0  MDT  Testes Puramente Funcionais  CIM e PIM resultam CITM e PITM  U2TP  Casos de teste gerados automaticamente  Derivados a partir do diagramas de classe e máquina de estados  Algoritmo: Chinese postman (Simples e boa cobertura) 23 Teste Dirigido por Modelos - Davi, Delano, Rafael e Natã
  • 24. Integração de MDT com MDD – UML 2.0  Arquitetura da Integração Arquitetura implementada pela ferramenta MoBIT! 24 Teste Dirigido por Modelos - Davi, Delano, Rafael e Natã
  • 25. Ferramentas  SPACES  SPecification bAsed Component tESter  Desenvolvida por pesquisadores do GMF (Grupo de Métodos Formais - UFCG)  É uma ferramenta de teste funcional para componentes que faz uso de especificações UML e restrições OCL para derivar casos de teste de forma automática. 25 Teste Dirigido por Modelos - Davi, Delano, Rafael e Natã
  • 26. Ferramentas  O usuário deve utilizar uma das ferramentas de modelagem UML e que exportem para o formato de arquivo XMI.  Após a construção de alguns diagramas UML, a ferramenta SPACES faz a leitura desses diagramas e constrói, automaticamente, classes de teste para o componente especificado.  O teste é executado no frameworkComponentTester 26 Teste Dirigido por Modelos - Davi, Delano, Rafael e Natã
  • 27. Ferramentas  MoBIT  Model-driven Built-In contract Testers  Também desenvolvida pelo GMF.  Seguindo a abordagem MDA/MDT e a metodologia de construção de testes BIT para automatizar o processo da criação dos artefatos de teste nos modelos de componentes KobrA. 27 Teste Dirigido por Modelos - Davi, Delano, Rafael e Natã
  • 28. Ferramentas  BIT- Built-In contract Testing  Para se fazer uso de componentes, basta conhecer suas interfaces de comunicação  Metodologia para testar se os contratos de cada componente estão sendo seguidos  KobrA - Komponentenbasierte Anwendungsentwicklung  Metodologia de desenvolvimento de software baseado em componentes  Objetivo principal aprimorar a engenharia de linha de produtos  Adota o padrão UML 28 Teste Dirigido por Modelos - Davi, Delano, Rafael e Natã
  • 29. Ferramentas  Problema:  Adaptar os modelos de componentes KobrA para a atividade de testes  Automaticamente  Seguindo BIT  Solução:  Perfil BIT 29 Teste Dirigido por Modelos - Davi, Delano, Rafael e Natã
  • 30. Ferramentas  Processo  Casos de teste representados por diagramas de sequência  Possui um algoritmo interno implementado  Chinese Postman adaptado  Resultado  Modelo dos artefatos de teste para a plataforma Java 30 Teste Dirigido por Modelos - Davi, Delano, Rafael e Natã
  • 31. Ferramentas  Resultado: 31 Teste Dirigido por Modelos - Davi, Delano, Rafael e Natã
  • 32. Conclusão  Vantagens  Menor custo de desenvolvimento e testes  Menos tempo empenhado no processo de desenvolvimento e testes  Reduz possibilidade de falhas humanas  Conformidade entre especificação e testes  Maior qualidade de produtos 32 Teste Dirigido por Modelos - Davi, Delano, Rafael e Natã
  • 33. Conclusão  Desvantagens  MDT requer uma certa habilidade dos testadores, pois precisam ter conhecimentos sobre as tecnologias que envolve o processo de MDT  Requer muito esforço inicial, para decidir qual modelo utilizar, e em seguida construir o modelo, etc. 33 Teste Dirigido por Modelos - Davi, Delano, Rafael e Natã
  • 34. Dúvidas 34 Teste Dirigido por Modelos - Davi, Delano, Rafael e Natã
  • 35. Referências  Model-based Software Testing (Ibrahim K. El-Far and James A. Whittaker, Florida Institute of Technology)  Uma Abordagem Integrada para Desenvolvimento e Teste Dirigido por Modelos (Everton L. G. Alves, Patrícia D. L. Machado, Franklin Ramalho)  Automatic Generation of Platform Independent Built-in Contract Testers (Helton S. Lima1, Franklin Ramalho1, Patrícia D. L. Machado I, Everton L. Galdino) 35 Teste Dirigido por Modelos - Davi, Delano, Rafael e Natã
  • 36. Teste Dirigido por Modelos Davi Serrano Delano Oliveira José Rafael Natã Venâncio {davi.teife, delanohelio, rafaefarias, nata.venancio.melo}@gmail.com