Teste Dirigido por Modelos

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

description

 

Transcript of Teste Dirigido por Modelos

Page 1: Teste Dirigido por Modelos

Teste Dirigido por Modelos

Davi Serrano

Delano Oliveira

José Rafael

Natã Venâncio

{davi.teife, delanohelio, rafaefarias, nata.venancio.melo}@gmail.com

Page 2: Teste Dirigido por Modelos

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ã

Page 3: Teste Dirigido por Modelos

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ã

Page 4: Teste Dirigido por Modelos

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ã

Page 5: Teste Dirigido por Modelos

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ã

Page 6: Teste Dirigido por Modelos

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

Page 7: Teste Dirigido por 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

Page 8: Teste Dirigido por Modelos

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

Page 9: Teste Dirigido por Modelos

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???

Page 10: Teste Dirigido por Modelos

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

Page 11: Teste Dirigido por Modelos

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

Page 12: Teste Dirigido por Modelos

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

Page 13: Teste Dirigido por Modelos

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ã

Page 14: Teste Dirigido por Modelos

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ã

Page 15: Teste Dirigido por Modelos

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

Page 16: Teste Dirigido por Modelos

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

Page 17: Teste Dirigido por Modelos

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

Page 18: Teste Dirigido por Modelos

MDT

Como funciona?

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

Arquitetura implementada

pela ferramenta MoBIT!

Page 19: Teste Dirigido por Modelos

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

Page 20: Teste Dirigido por Modelos

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ã

Page 21: Teste Dirigido por Modelos

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ã

Page 22: Teste Dirigido por Modelos

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ã

Page 23: Teste Dirigido por Modelos

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ã

Page 24: Teste Dirigido por Modelos

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ã

Page 25: Teste Dirigido por Modelos

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ã

Page 26: Teste Dirigido por Modelos

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ã

Page 27: Teste Dirigido por Modelos

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ã

Page 28: Teste Dirigido por Modelos

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

Page 29: Teste Dirigido por Modelos

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

Page 30: Teste Dirigido por Modelos

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

Page 31: Teste Dirigido por Modelos

Ferramentas

Resultado:

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

Page 32: Teste Dirigido por Modelos

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ã

Page 33: Teste Dirigido por Modelos

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ã

Page 34: Teste Dirigido por Modelos

Dúvidas

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

Page 35: Teste Dirigido por Modelos

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

Page 36: Teste Dirigido por Modelos

Teste Dirigido por Modelos

Davi Serrano

Delano Oliveira

José Rafael

Natã Venâncio

{davi.teife, delanohelio, rafaefarias, nata.venancio.melo}@gmail.com