danielfrossardcosta - uel.br · pecíficos da plataforma (plataform specific model - psm),...

36
DANIEL FROSSARD COSTA ESTUDO DO PROCESSO DE AUTOMATIZAÇÃO DE TESTES DIRIGIDOS POR MODELOS LONDRINA–PR 2015

Upload: others

Post on 07-Sep-2019

4 views

Category:

Documents


0 download

TRANSCRIPT

DANIEL FROSSARD COSTA

ESTUDO DO PROCESSO DE AUTOMATIZAÇÃO DETESTES DIRIGIDOS POR MODELOS

LONDRINA–PR

2015

DANIEL FROSSARD COSTA

ESTUDO DO PROCESSO DE AUTOMATIZAÇÃO DETESTES DIRIGIDOS POR MODELOS

Trabalho de Conclusão de Curso apresentadoao curso de Bacharelado em Ciência da Com-putação da Universidade Estadual de Lon-drina para obtenção do título de Bacharel emCiência da Computação.

Orientador: Prof(a). Dr(a). Jandira GuenkaPalma

LONDRINA–PR

2015

Daniel Frossard CostaEstudo do processo de automatização de testes dirigidos por modelos/ Daniel

Frossard Costa. – Londrina–PR, 2015-34 p. : il. (algumas color.) ; 30 cm.

Orientador: Prof(a). Dr(a). Jandira Guenka Palma

– Universidade Estadual de Londrina, 2015.

1. Palavra-chave1. 2. Palavra-chave2. I. Orientador. II. Universidade xxx. III.Faculdade de xxx. IV. Título

CDU 02:141:005.7

DANIEL FROSSARD COSTA

ESTUDO DO PROCESSO DE AUTOMATIZAÇÃO DETESTES DIRIGIDOS POR MODELOS

Trabalho de Conclusão de Curso apresentadoao curso de Bacharelado em Ciência da Com-putação da Universidade Estadual de Lon-drina para obtenção do título de Bacharel emCiência da Computação.

BANCA EXAMINADORA

Prof(a). Dr(a). Jandira Guenka PalmaUniversidade Estadual de Londrina

Orientador

Prof. Dr. Segundo Membro da BancaUniversidade/Instituição do Segundo

Membro da Banca

Prof. Dr. Terceiro Membro da BancaUniversidade/Instituição do Terceiro

Membro da Banca

Prof. Ms. Quarto Membro da BancaUniversidade/Instituição do Quarto

Membro da Banca

Londrina–PR, 22 de Fevereiro de 2015

Este trabalho é dedicado às crianças adultas que,quando pequenas, sonharam em se tornar cientistas.

AGRADECIMENTOS

Os agradecimentos principais são direcionados à Gerald Weber, Miguel Frasson,Leslie H. Watter, Bruno Parente Lima, Flávio de Vasconcellos Corrêa, Otavio Real Sal-vador, Renato Machnievscz1 e todos aqueles que contribuíram para que a produção detrabalhos acadêmicos conforme as normas ABNT com LATEX fosse possível.

Agradecimentos especiais são direcionados ao Centro de Pesquisa em Arquiteturada Informação2 da Universidade de Brasília (CPAI), ao grupo de usuários latex-br3 e aosnovos voluntários do grupo abnTEX2 4 que contribuíram e que ainda contribuirão para aevolução do abnTEX2.

1 Os nomes dos integrantes do primeiro projeto abnTEX foram extraídos de <http://codigolivre.org.br/projects/abntex/>

2 <http://www.cpai.unb.br/>3 <http://groups.google.com/group/latex-br>4 <http://groups.google.com/group/abntex2> e <http://abntex2.googlecode.com/>

“Não vos amoldeis às estruturas deste mundo,mas transformai-vos pela renovação da mente,a fim de distinguir qual é a vontade de Deus:

o que é bom, o que Lhe é agradável, o que é perfeito.(Bíblia Sagrada, Romanos 12, 2)

COSTA, D. F.. Estudo do processo de automatização de testes dirigidos por mo-delos. 34 p. Trabalho de Conclusão de Curso (Bacharelado em Ciência da Computação) –Universidade Estadual de Londrina, Londrina–PR, 2015.

RESUMO

O MDD ou Desenvolvimento Dirigido a Modelos tem por objetivo aprimorar o desenvol-vimento de software usando uma metodologia que consiste em abstrair o desenvolvimentodo sistema em modelos, os quais podem sofrer transformações até o código ser gerado au-tomaticamente. Essa metodologia de desenvolvimento também pode ser útil para a fase detestes, pois podem ser gerados casos de testes a partir dos modelos de forma automática.O objetivo deste trabalho é fazer um estudo sobre a automação de teste com base nosmodelos, seguindo o Desenvolvimento Dirigido por Modelos.

Palavras-chave: Automação de Teste. MDD. MDA. MDT.

COSTA, D. F.. Study of model driven test automation process. 34 p. Final Project(Bachelor of Science in Computer Science) – State University of Londrina, Londrina–PR,2015.

ABSTRACT

The MDD aims to improve software development using a methodology consisting in ab-stract the system development in models, which may be transformed until the code isautomatically generated This develepment methodology also may be useful to the testphase, because test cases can be automatically generated from models. The goal of thiswork is to make a study on the testing automation based in models, following the ModelDriven Development.

Keywords: Test automation. MDD. MDA. MDT.

LISTA DE ILUSTRAÇÕES

Figura 1 – Processo MDA [1] . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 24Figura 2 – Processo MDT [2] . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 25

LISTA DE ABREVIATURAS E SIGLAS

CIM Computation Independent Model

MBT Model Based Testing

MDA Model Driven Architecture

MDD Model Driven Development

MDT Model Driven Testing

OMG Object Management Group

PIM Plataform Independent Model

PSM Plataform Specific Model

TTCN-3 Testing and Test Control Notation version 3

U2TP UML 2.0 Testing Profile

UML Unified Modeling Language

SUMÁRIO

1 INTRODUÇÃO . . . . . . . . . . . . . . . . . . . . . . . . . . . . 21

2 FUNDAMENTAÇÃO TEÓRICA . . . . . . . . . . . . . . . . . 232.1 Model Driven Development . . . . . . . . . . . . . . . . . . . . . 232.2 Model Driven Architecture . . . . . . . . . . . . . . . . . . . . . . 232.3 Model Based Testing . . . . . . . . . . . . . . . . . . . . . . . . . . 242.4 Model Driven Testing . . . . . . . . . . . . . . . . . . . . . . . . . 252.5 Trabalhos e ferramentas conhecidas . . . . . . . . . . . . . . . . 252.5.1 NovaStudio . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 252.5.2 eUML, eTML e TTCN-3 . . . . . . . . . . . . . . . . . . . . . . . 262.5.3 Outras Abordagens . . . . . . . . . . . . . . . . . . . . . . . . . . . 26

3 ESTUDO DO PROCESSO DE AUTOMATIZAÇÃO DE TESTEDIRIGIDO POR MODELOS . . . . . . . . . . . . . . . . . . . 29

3.1 Sistema . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 293.2 Aplicação . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 293.3 Análise e Resultados . . . . . . . . . . . . . . . . . . . . . . . . . . 29

4 CONCLUSÃO . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 31

REFERÊNCIAS . . . . . . . . . . . . . . . . . . . . . . . . . . . 33

21

1 INTRODUÇÃO

Com a demanda e o avanço da tecnologia nas últimas décadas e, consequentemente,o avanço do poder dos componentes de hardware, somos hoje capazes de construir sistemasde sofware muito robustos e complexos. A Engenharia de Software surgiu para amenizaros problemas que essa complexidade nos gerou. Uma das ferramentas utilizadas pelaEngenharia de Software são os modelos. Os modelos surgiram com o intuito de auxiliar osdesenvolvedores na abstração do desenvolvimento de software, entender o sistema atravésde um modelo é muito mais simples do que olhando diretamente para o código, no entantoexistem alguns problemas nessa relação modelo-código, como por exemplo, Produtividade,Portabilidade, Manutenção e Documentação.[3]

O Desenvolvimento Dirigido por Modelos (Model Driven Development - MDD) éuma metodologia de desenvolvimento com o objetivo de abstrair o desenvolvimento docódigo em modelos, não só apenas na sua documentação mas como parte integrante dodesenvolvimento do sistema. Para isso os modelos sofrem as transformações necessáriasaté gerar o código automaticamente. O foco principal da produção do software deixariade ser o código e passaria a ser os modelos, a maior vantagem disso é que expressar osoftware através de modelos torna o sistema mais compreensível, os esforços passam a serem contruir os modelos ao invés de implementar o código.[4][5]

A Arquitetura Dirigida a Modelos (Model Driven Architecture - MDA) é um pa-drão do MDD criado pela OMG (Object Management Group - OMG). Primeiro são ge-rados Modelos Independentes de Computação (Computation Independent Model - CIM ),em seguida esses modelos são transformados em Modelos Independentes de Plataforma(Plataform Independent Model - PIM ), logo depois são transformados em Modelos Es-pecíficos da Plataforma (Plataform Specific Model - PSM ), utilizando-se de padrões deprojeto e ferramentas de transformação de modelos para isso, e em seguida é gerado ocódigo automaticamente[6][7]

Uma das abordagens da Engenharia de Software são os testes. Testar hoje em diaé fundamental para garantir a qualidade do sistema, mas acaba tomando mais de 50% dotempo de desenvolvimento do software[8]. Com os sitemas complexos da atualidade, setornou importante integrar o teste ao desenvolvimento do sistema logo em seu inicio.[2]Como a modelagem faz parte do inicio do desenvolvimento do software, surgiu a necessi-dade de se obter casos de teste a partir de modelos, foi criado então o Teste Baseado emModelos (Model-Based Testing - MBT ) cujo objetivo é verificar se o que foi implementadono código está de acordo com sua especificação no modelo. Porém o MBT não consegueencontrar todos os erros entre o modelo e sua implementação, além disso, ele também nãose beneficia das caracteristicas de separação de modelos independentes (PIM) e específicos

22

(PSM) de plataforma do MDA.[9] O Teste Dirigido por Modelos (Model-Driven Testing -MDT ) foi criado a fim de juntar as práticas do MBT às técnicas da metodologia MDA.

23

2 FUNDAMENTAÇÃO TEÓRICA

Ao longo dos últimos anos a demanda de serviços das empresas de desenvolvimentode software cresceu muito, praticamente todas as empresas hoje em dia possuem algumtipo de software que auxiliam nas mais diversas áreas. Com essa grande procura pelosserviços das empresas de desenvolvimento de software, surgiu a necessidade da entrega rá-pida do produto, mas como desenvolver um software com qualidade de uma forma rápida?Um dos objetivos da Engenharia de Software é solucionar ou amenizar esse problema euma de suas propostas é o MDD, Desenvolvimento Dirigido por Modelos

2.1 Model Driven Development

O Desenvolvimento Dirigido por Modelos é uma abordagem da Engenharia deSoftware que surgiu para enfatizar a importância dos modelos, não apenas no início dedesenvolvimento do software, mas como parte integrante do mesmo. Com um modelo émais fácil de visualizar, entender e montar uma solução para o problema.[10][5]

Existem muitas vantagens no Desenvolvimento dirigido por Modelos, uma delas éque o nível de abstração do software aumenta, ou seja, os desenvolvedores são protegidosdas complexidades da plataforma de implementação. Outra vantagem é a geração autóma-tica de códigos através das transformações dos modelos mais abstratos até modelos maisespecíficos da plataforma de implementação e por fim o código gerado automaticamente,ganhando assim, tempo e qualidade no produto final. Os modelos de nível de abstraçãomais altos podem ser tranformados em vários outros tipos, com isso, é possivel reutilizá-los com o intuito de poupar tempo e focar na construção dos modelos mais específicos [5].Para alcançar esse nível de abstração, o sistema pode ser quebrado em unidades cada vezmenores e concretas até que possam ser individualmente abordadas.[11] A construção dosmodelos é feita de cima para baixo, primeiramente são feitos os modelos mais gerais comnível de abstração maior, logo depois os modelos gerais sofem transformações e se tornammodelos mais específicos os quais podem ser implementados facilmente.

2.2 Model Driven Architecture

O MDA ou Arquitetura Dirigida por Modelos, é um padrão para a metodologiaMDD criado pela OMG. A utilização desse framework se baseia em três tipos de modelos:CIM, PIM e PSM.

O tipo de modelo mais abstrato é o CIM, Modelo Independente de Computação,que também pode ser chamado de modelo de negócio, ele tem por objetivo definir os

24

requisitos de sistema e seu ambiente, o modelo é independente de qualquer tipo de imple-mentação e de detalhes de plataforma. O CIM não considera a estrutura e a forma comoo processamento será tratado.[7] [9]

O segundo tipo de modelo é o PIM, Modelo Independente de Plataforma, essemodelo especifíca puramente o funcionamento correto do sistema, independente de qualplataforma específica ele será implementado e executado [2] [1]. A principal diferença entreo PIM e o CIM está em que o primeiro especifíca qual o funcionamento do sistema.

Por fim, o último tipo de modelo proposto pelo MDA é o PSM, Modelo Específicode Plataforma. Com um nível de abstração mais baixo, o PSM tem por meta espefícicaro que foi descrito a partir do PIM com detalhes de plataforma de implementação e sobrecomo o sistema utiliza essa plataforma. [5]

As etapas do MDA envolvem, criar os CIMs e transforma-los em PIMs, essa etapadeve ser manual pois a decisão sobre a informatização é sempre feita por uma pessoa e nãopor uma máquina. Em seguida uma ferramenta de tranformação de modelos é usada paratransformar os PIMs em PSMs automaticamente, de acordo com regras de transformaçãodefinidas com precisão. A partir dos PSMs é possivel gerar o código automaticamenteseguindo também um conjunto de regras de tranformação [6].

Figura 1 – Processo MDA [1]

2.3 Model Based Testing

É estimado que os desenvolvedores gastam em média 50% do tempo de desen-volvimento de software na fase de testes, por isso essa parte do desenvolvimento tem setornado tão importante nos últimos anos [12]. Assim surgiu o MBT ou Teste Baseado emModelos com o intuito de automatizar também a fase de testes, economizando tempo erecursos. No MBT os casos de teste são automaticamente derivados de um modelo queespecifíca os aspectos fundamentais do sitema. A sua meta principal é verificar se o quefoi descrito e especificado no modelo está de acordo com o que foi implementado, seusprincipais benefícios são a detecção de falhas, redução do tempo e custo de teste, aumentoda qualidade do teste, descoberta de erros de requisitos e evolução do sistema [9]. Poréma maioria das abordagens MBT não consideram a separação entre tipos de modelos que oMDA oferece, elas são muito genéricas, levando em conta somente a informação do modelo

25

independente de plataforma ou são muito específicas sendo amarradas a uma plataformaespecífica de destino.

2.4 Model Driven Testing

Para fazer uso do benefício da separação PIM e PSM foi criado o MDT ou TesteDirigido a Modelos [13], nessa abordagem os tipos de modelos PIM e PSM sofrem trans-formações e são gerados os seus modelos equivalentes para a fase de teste, o modelo PITou Teste Independente de Plataforma e o PST ou Teste Específico da Plataforma. Dessaforma a fase de teste é integrada com todo o desenvolvimento do sistema, assim que o PIMé construído um PIT pode ser derivado dele a partir de transformações e regras, e tambémum PST pode transformado para um código de caso de teste [2]. A principal vantagem doMDT é ter um nível maior na automatização da geração dos testes e possibilita o reuso demodelos, pois através das ferramentas de transformações podem ser gerados vários tiposde modelos de acordo com as regras especificadas. A figura 2 mostra o processo do MDTe seu envolvimento com o MDA.

Figura 2 – Processo MDT [2]

2.5 Trabalhos e ferramentas conhecidas

Nesta sessão serão verificadas algumas ferramentas que permitem a utilização doMDT e alguns trabalhos e pesquisas que utilizam técnicas para automatização de testes.Existem outros tipos de ferramentas e muitos trabalhos e pesquisas nessa área, entretandoainda faltam muitos detalhes no processo de teste, o que faz as pesquisas na área setornarem incipientes. [5]

2.5.1 NovaStudio

No trabalho de Zambiasi em 2010 [9] é criada uma funcionalidade para o produtoNovaStudio da empresa Francesa BULL S.A.S, esse software permite a geração automática

26

de boa parte do código de aplicações Java a partir de uma modelagem UML utilizando-sedas técnicas do MDA.

Como o produto NovaStudio já utiliza a abordagem do MDA, o intuito do autoré criar uma funcionalidade que permita a geração também do código de testes, que porsua vez devem ser derivados a partir de uma modelagem UML, seguindo a metodologiaMDT. O autor propõe uma nova forma de modelagem de testes utilizando diagramasde sequencia, essa meta-modelagem permite a criação de testes unitários para as classesgeradas pelo NovaStudio. Também é necesário que o meta-modelo siga uma um padrãodefinido para a utilização correta da funcionalidade .

A funcionalidade criada apresentou bons resultados segundo o autor, entretantonão é possível perceber aonde as técnicas do MDT foram utilizadas nesse desenvolvimento,e também somente é possível perceber a utilização das transformações verticais da meto-logia do MDT, as transformações de PIM e PSM para PIT e PST não são observadas.

Outra questão é que a funcionalidade é muito específica, sendo que o desenvolvedoré obrigado a seguir um padrão na modelagem dos diagramas de sequencia, os quais gerarãosomente testes de unidade, os testes de integração ainda devem ser feitos manualmente.

2.5.2 eUML, eTML e TTCN-3

Nos trabalhos de Dai [2], Zander [14] e Busch [1] os autores propõe uma aborda-gem que utiliza o eUML o qual é uma variação do UML que utiliza apenas os 5 tiposmais importantes de diagramas suportados pelo UML, ele é utilizado para representar osmodelos do PIM e PSM. O eTML é uma variação do U2TP e é utilizado para representaros modelos do PIT. Por fim um meta-modelo da linguagem de teste TTCN-3 é utilizadopara representar os modelos do PST.

Essa abordagem proposta utiliza quase todos os conceitos do MDA e MDT. Osmodelos PIM, baseados em eUML, podem ser transformados para modelos PIT, baseadosem eTML, que por sua vez podem ser transformados em modelos PST, baseados nometa-modelo da linguagem de teste TTCN-3, e esses podem gerar o código de testeautomaticamente.

Ainda assim, não são desenvolvidas transformações de PIM para PSM, nem astransformações de PSM para PST. Também são somente desenvolvidas as transformaçõespara a linuagem de programação Java e ainda os própios testes realizados pelos autoresrevelaram alguns erros.

2.5.3 Outras Abordagens

No trabalho de Ali et al. [15] é proposto um método para automatizar a criação decasos de teste, para isso, o diagrama de estados UML é transformado em uma maquina

27

de estados finito, cada estado guarda a informação necessária para a geração do casode teste, essa informação também inclui pré e pós condições representadas pela ObjectConstrained Language e são obtidas através dos diagramas de caso de uso.

No trabalho de Mingsong et al. [16] é proposta a geração de caso de testes atravésde diagramas de atividades UML. Cada atividade do diagrama é mapeada para umafunção do programa.

29

3 ESTUDO DO PROCESSO DE AUTOMATIZAÇÃO DETESTE DIRIGIDO POR MODELOS

Para a realização deste estudo será modulado um sistema seguindo as diretrizesdo MDD. Nos modelos será efetuado um estudo do processo de automatização de testedirigido por modelos e este será aplicado nas ferramentas e técnicas levantadas na funda-mentação teórica.

3.1 Sistema

3.2 Aplicação

3.3 Análise e Resultados

31

4 CONCLUSÃO

Neste trabalho tivemos uma melhor compreensão do Desenvolvimento Dirigido porModelos, sua variação, a Arquitetura Dirigida por Modelos. Também pudemos aprendermais sobre a importância da fase de teste e associá-la com o MDD, descobrindo assim, oTeste Baseado em Modelos e o Teste Dirigido por Modelos explicando suas diferenças.

Também pudemos estudar e analisar alguns trabalhos e ferramentas conhecidasque aplicam as técnicas de MDD e MDA na fase de testes para poderem gerar casos ecódigo de teste de forma automática. Ainda são necessárias mais pesquisas nessa área,que parece promissora, mas difícil de aplicar em casos reais.

33

REFERÊNCIAS

[1] BUSCH, M. et al. Model transformers for test generation from system models.In: CITESEER. Proceedings of Conquest 2006, 10th International Conference onQuality Engineering in Software Technology. [S.l.], 2006.

[2] DAI, Z. R. Model-driven testing with uml 2.0. Computer Science at Kent, p. 179,2004.

[3] KLEPPE, A. G.; WARMER, J.; BAST, W. MDA Explained: The Model DrivenArchitecture: Practice and Promise. Boston, MA, USA: Addison-Wesley LongmanPublishing Co., Inc., 2003. ISBN 032119442X.

[4] SELIC, B. The pragmatics of model-driven development. IEEE software, IEEE,n. 5, p. 19–25, 2003.

[5] QUEIROZ, P. G. G. Desenvolvimento Baseado em Modelos e Teste de Software.Disponível em: <moodle.stoa.usp.br/mod/resource/view.php?id=14492>.

[6] MAGRI, J. Arquitetura dirigida a modelos (mda): Utilizando modelos nodesenvolvimento de sistemas. Augusto Guzzo Revista Acadêmica, v. 0, n. 8, p.29–43, 2008. ISSN 2316-3852. Disponível em: <http://www.fics.edu.br/index.php/augusto_guzzo/article/view/42>.

[7] ALI, S. et al. Model Transformations as a Strategy to Automate Model-BasedTesting-A Tool and Industrial Case Studies. Simula Research Laboratory, TechnicalReport (2010-01), p. 1–28, 2010. Disponível em: <http://citeseerx.ist.psu.edu/viewdoc/download?doi=10.1.1.164.999&amp;rep=rep1&amp;type=pdf>.

[8] YONGJUN, R. et al. Identity-based key issuing protocol for ad hoc networks.Proceedings - 2007 International Conference on Computational Intelligence andSecurity, CIS 2007, p. 917–921, 2007.

[9] ZAMBIASI, M. Novastudio: Geração de testes a partir de uma modelagem uml.2010. Disponível em: <http://www.lume.ufrgs.br/handle/10183/28323>.

[10] HAILPERN, B.; TARR, P. Model-driven development: The good, the bad, and theugly. IBM Syst. J., IBM Corp., Riverton, NJ, USA, v. 45, n. 3, p. 451–461, jul. 2006.ISSN 0018-8670. Disponível em: <http://dx.doi.org/10.1147/sj.453.0451>.

[11] BORN, M. et al. Model-driven development and testing-a case study. In: CITESEER.1st European Workshop on Model Driven Architecture with Emphasis on IndustrialApplication, number TR-CTIT-04-12 in CTIT Technical Report. [S.l.], 2004. p.97–104.

[12] ANAND, S. et al. An orchestrated survey of methodologies for automated softwaretest case generation. Journal of Systems and Software, Elsevier, v. 86, n. 8, p.1978–2001, 2013.

34

[13] HECKEL, R.; LOHMANN, M. Towards model-driven testing. ElectronicNotes in Theoretical Computer Science, v. 82, n. 6, p. 33 – 43, 2003. ISSN1571-0661. TACoS’03, International Workshop on Test and Analysis ofComponent-Based Systems (Satellite Event of {ETAPS} 2003). Disponível em:<http://www.sciencedirect.com/science/article/pii/S1571066104810235>.

[14] ZANDER, J. et al. From u2tp models to executable tests with ttcn-3-an approach tomodel driven testing. In: Testing of Communicating Systems. [S.l.]: Springer, 2005.p. 289–303.

[15] ALI, M. A.; SHAIK, K.; KUMAR, S. Test case generation using uml state diagramand ocl expression. International Journal of Computer Applications, Foundation ofComputer Science, v. 95, n. 12, 2014.

[16] MINGSONG, C.; XIAOKANG, Q.; XUANDONG, L. Automatic test case generationfor uml activity diagrams. In: ACM. Proceedings of the 2006 international workshopon Automation of software test. [S.l.], 2006. p. 2–8.