Upload
nata-melo
View
785
Download
2
Embed Size (px)
DESCRIPTION
Citation preview
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
6 Teste Dirigido por Modelos - Davi, Delano, Rafael e Natã
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
Modelos
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”
Teste Dirigido por Modelos - Davi, Delano, Rafael e Natã7
MBT
UML – Unified Modeling Language
“UML is to models what C or Pascal are to programs”
Linguagem estruturada
Exemplo: Diagrama de Sequência
Teste Dirigido por Modelos - Davi, Delano, Rafael e Natã8
MBT
Existem outros tipos de modelos que tem como objetivo
descrever o comportamento do software
Startecharts, Markov Chains, Grammars, etc
Teste Dirigido por Modelos - Davi, Delano, Rafael e Natã9
Como saber que tipo de modelo representa
melhor a descrição de um determinado
software???
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’;
Teste Dirigido por Modelos - Davi, Delano, Rafael e Natã10
MBT
Gerar Testes
Modelos: “properties that make test generation effortless and
automatable”
Os caminhos gerados são por definição testes
Teste Dirigido por Modelos - Davi, Delano, Rafael e Natã11
MBT
Executar Testes
Scripts de testes simulam entradas realizadas pelos usuários
Gerador produz scripts de testes simulando cada transição
como procedure call
Teste Dirigido por Modelos - Davi, Delano, Rafael e Natã12
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
Ferramentas de transformação
Definição de transformação
Regra de transformação
Transformações são escritas em:
ATL, MOFScript, MOF2Text, …
15 Teste Dirigido por Modelos - Davi, Delano, Rafael e Natã
PIM
Code
PSM
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
Teste Dirigido por Modelos - Davi, Delano, Rafael e Natã16
MDT
Geração automática de artefatos de teste a partir dos
modelos de desenvolvimento
Teste Dirigido por Modelos - Davi, Delano, Rafael e Natã17
CIM CITM
PIM PITM
PSM PSTM
PITM – Plataform Independent
Testing Model
PSTM – Plataform Specific
Testing Model
CITM – Computational Independent
Testing Model
MDAMDA MDTMDT
MDT
Como funciona?
Teste Dirigido por Modelos - Davi, Delano, Rafael e Natã18
Arquitetura implementada
pela ferramenta MoBIT!
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
Teste Dirigido por Modelos - Davi, Delano, Rafael e Natã19
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
Teste Dirigido por Modelos - Davi, Delano, Rafael e Natã28
Ferramentas
Problema:
Adaptar os modelos de componentes KobrA para a atividade
de testes
Automaticamente
Seguindo BIT
Solução:
Perfil BIT
Teste Dirigido por Modelos - Davi, Delano, Rafael e Natã29
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
Teste Dirigido por Modelos - Davi, Delano, Rafael e Natã30
Ferramentas
Resultado:
Teste Dirigido por Modelos - Davi, Delano, Rafael e Natã31
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)
Teste Dirigido por Modelos - Davi, Delano, Rafael e Natã35
Teste Dirigido por Modelos
Davi Serrano
Delano Oliveira
José Rafael
Natã Venâncio
{davi.teife, delanohelio, rafaefarias, nata.venancio.melo}@gmail.com