Geração automática de testes com objetos mock baseados em interações.
| Ano de defesa: | 2010 |
|---|---|
| Autor(a) principal: | |
| Orientador(a): | |
| Banca de defesa: | , |
| Tipo de documento: | Dissertação |
| Tipo de acesso: | Acesso aberto |
| Idioma: | por |
| Instituição de defesa: |
Universidade Federal de Campina Grande
|
| Programa de Pós-Graduação: |
PÓS-GRADUAÇÃO EM CIÊNCIA DA COMPUTAÇÃO
|
| Departamento: |
Centro de Engenharia Elétrica e Informática - CEEI
|
| País: |
Brasil
|
| Palavras-chave em Português: | |
| Área do conhecimento CNPq: | |
| Link de acesso: | https://dspace.sti.ufcg.edu.br/handle/riufcg/7883 |
Resumo: | O objetivo de um teste de unidade é verificar o funcionamento de um software e procurar defeitos na menor parte testável, de forma isolada do restante do sistema. Porém, este isolamento nem sempre é possível devido às interações entre a a classe sob teste - CUT (Class Under Test) e seus colaboradores, fazendo-se necessário o uso de objetos mock para simular os colaboradores, em um mecanismo onde a CUT não sabe se ela está interagindo com colaboradores reais ou objetos mock. Desta forma, objetos mock podem ser de grande utilidade na escrita de testes de unidade, uma vez que isolam a CUT, tornando o teste mais eficaz e eficiente. Entretanto, escrever testes com objetos mock pode ser uma tarefa custosa, tediosa e repetitiva, mesmo com o suporte de frameworks, como o EasyMock [34] por exemplo, devido às atividades necessárias ao seu funcionamento. Dada a necessidade de se utilizar objetos mock nos testes de unidade e seus benefícios, e considerando a dificuldade envolvida no desenvolvimento e manutenção deste tipo de código, propomos e avaliamos uma técnica para automatizar o desenvolvimento de testes com objetos mock, gerando-os automaticamente para um determinado cenário de teste. Esta técnica tem por base a identificação das interações entre a CUT e seus colaboradores em um dado cenário de teste, através da análise estática e dinâmica de código. Após essas análises, a técnica provê a geração de código de teste com objetos mock para os colaboradores e interações identificadas. O código resultante consiste em uma nova versão do código do cenário de teste inicial, onde os colaboradores da CUT são substituídos por objetos mock, bem como suas interações. Considerando o baixo custo de se gerar automaticamente o código para os objetos mock, não se faz necessária a reutilização deste código, o qual poderá ser gerado novamente a cada modificação. Para avaliar nossa técnica realizamos um estudo experimental comparativo entre a forma manual e a automática de se desenvolver testes com objetos mock, através da observação do esforço empregado em tais atividades e o nível de cobertura de interações do código resultante, que tenta assegurar que o código gerado possui pelo menos a mesma precisão do código inicial. Os resultados da avaliação evidenciam que nossa técnica foi capaz de reduzir o esforço empregado no desenvolvimento de testes com objetos mock, resultando em um código melhor e mais preciso comparado ao manual. |
| id |
UFCG_c81a689d122321e42709479a8d9ca68f |
|---|---|
| oai_identifier_str |
oai:dspace.sti.ufcg.edu.br:riufcg/7883 |
| network_acronym_str |
UFCG |
| network_name_str |
Biblioteca Digital de Teses e Dissertações da UFCG |
| repository_id_str |
|
| spelling |
GUERRERO, Dalton Dario Serei.GUERRERO, D. D. S.http://lattes.cnpq.br/2050632960242405FIGUEIREDO , Jorge Cesar Abrantes de.COELHO, Roberta de Souza.http://lattes.cnpq.br/0595422027989879SOUTO, Sabrina de Figueirêdo.O objetivo de um teste de unidade é verificar o funcionamento de um software e procurar defeitos na menor parte testável, de forma isolada do restante do sistema. Porém, este isolamento nem sempre é possível devido às interações entre a a classe sob teste - CUT (Class Under Test) e seus colaboradores, fazendo-se necessário o uso de objetos mock para simular os colaboradores, em um mecanismo onde a CUT não sabe se ela está interagindo com colaboradores reais ou objetos mock. Desta forma, objetos mock podem ser de grande utilidade na escrita de testes de unidade, uma vez que isolam a CUT, tornando o teste mais eficaz e eficiente. Entretanto, escrever testes com objetos mock pode ser uma tarefa custosa, tediosa e repetitiva, mesmo com o suporte de frameworks, como o EasyMock [34] por exemplo, devido às atividades necessárias ao seu funcionamento. Dada a necessidade de se utilizar objetos mock nos testes de unidade e seus benefícios, e considerando a dificuldade envolvida no desenvolvimento e manutenção deste tipo de código, propomos e avaliamos uma técnica para automatizar o desenvolvimento de testes com objetos mock, gerando-os automaticamente para um determinado cenário de teste. Esta técnica tem por base a identificação das interações entre a CUT e seus colaboradores em um dado cenário de teste, através da análise estática e dinâmica de código. Após essas análises, a técnica provê a geração de código de teste com objetos mock para os colaboradores e interações identificadas. O código resultante consiste em uma nova versão do código do cenário de teste inicial, onde os colaboradores da CUT são substituídos por objetos mock, bem como suas interações. Considerando o baixo custo de se gerar automaticamente o código para os objetos mock, não se faz necessária a reutilização deste código, o qual poderá ser gerado novamente a cada modificação. Para avaliar nossa técnica realizamos um estudo experimental comparativo entre a forma manual e a automática de se desenvolver testes com objetos mock, através da observação do esforço empregado em tais atividades e o nível de cobertura de interações do código resultante, que tenta assegurar que o código gerado possui pelo menos a mesma precisão do código inicial. Os resultados da avaliação evidenciam que nossa técnica foi capaz de reduzir o esforço empregado no desenvolvimento de testes com objetos mock, resultando em um código melhor e mais preciso comparado ao manual.The main purpose of unit tests is to verify the correct work of software and search for defects in the smallest part of the system, in isolated way. However, this isolation not always is possible due to the relationship among the CUT (Class Under Test) and its collaborators, needing the use of mock objects to simulate the collaborators behavior, by a mechanism that the CUT has no science if it is interacting with real collaborators or mock objects. As a result, mock objects can be very useful to write unit tests because they isolate the CUT, improving both efficiency and effectiveness of unit testing. On the other hand, writing tests that use mocks can be a tedious, repetitive, and costly task, even with the support of frameworks, due to the necessary procedures for it working. Given the high importance in the use of mock objects and its benefits, and considering the mentioned drawbacks, we propose a technique that automates the development of tests with mock objects, by automatically generating them for a given testing scenario. This technique is based on automatically identifying interactions among the CUT and its collaborators in a given testing scenario, via both static analysis and dynamic analysis of the code. After these analyses, the technique generates code of test with mock objects for those collaborators and the identified interactions, resulting on a new version of the initial testing scenario code, where the collaborators are replaced by mock objects as well its interactions. Considering the low cost in automatically generate test code with mock objects, it is not necessary maintain this code, which can be generated for each change in the testing scenario. In order to evaluate our technique, we performed a comparative study, by means of experimentation, between the manual and automatic way of develop tests with mock objects, by observing the spent effort (development time and size of produced code) on those procedures and the interaction coverage level of the resulting code, which tries to assure that the generated code contains in minimum the same quality of the input code. The evaluation results demonstrate that our technique was able to reduce the spent effort on developing tests with mock objects, resulting on a better and more precise code when compared to the one manually developed.Submitted by Maria Medeiros (maria.dilva1@ufcg.edu.br) on 2019-10-09T10:02:09Z No. of bitstreams: 1 SABRINA DE FIGUEIRÊDO SOUTO - DISSERTAÇÃO (PPGCC) 2010.pdf: 2874046 bytes, checksum: 5211a26a1f1681e30762c4baa12692f8 (MD5)Made available in DSpace on 2019-10-09T10:02:09Z (GMT). No. of bitstreams: 1 SABRINA DE FIGUEIRÊDO SOUTO - DISSERTAÇÃO (PPGCC) 2010.pdf: 2874046 bytes, checksum: 5211a26a1f1681e30762c4baa12692f8 (MD5) Previous issue date: 2010-08-31Universidade Federal de Campina GrandePÓS-GRADUAÇÃO EM CIÊNCIA DA COMPUTAÇÃOUFCGBrasilCentro de Engenharia Elétrica e Informática - CEEICiência da ComputaçãoTeste de SoftwareTeste de UnidadeObjetos MockAnálise EstáticaAnálise DinâmicaSoftware TestingUnit TestMock ObjectsStatic AnalysisDynamic AnalysisGeração automática de testes com objetos mock baseados em interações.Automatic test generation with mock objects based on interactions.2010-08-312019-10-09T10:02:09Z2019-09-092019-10-09T10:02:09Zhttps://dspace.sti.ufcg.edu.br/handle/riufcg/7883SOUTO, S. de F. Geração automática de testes com objetos mock baseados em interações. 2010. 133 f. Dissertação (Mestrado em Ciência da Computação) – Pós-Graduação em Ciência da Computação, Centro de Engenharia Elétrica e Informática, Universidade Federal de Campina Grande, Paraíba, Brasil, 2010. Disponível em: https://dspace.sti.ufcg.edu.br/handle/riufcg/7883info:eu-repo/semantics/publishedVersioninfo:eu-repo/semantics/masterThesisporinfo:eu-repo/semantics/openAccessreponame:Biblioteca Digital de Teses e Dissertações da UFCGinstname:Universidade Federal de Campina Grande (UFCG)instacron:UFCGTEXTSABRINA DE FIGUEIRÊDO SOUTO - DISSERTAÇÃO (PPGCC) 2010.pdf.txtSABRINA DE FIGUEIRÊDO SOUTO - DISSERTAÇÃO (PPGCC) 2010.pdf.txttext/plain214988https://dspace.sti.ufcg.edu.br/bitstream/riufcg/7883/4/SABRINA+DE+FIGUEIR%C3%8ADO+SOUTO+-+DISSERTA%C3%87%C3%83O+%28PPGCC%29+2010.pdf.txt7bc097e5ff665df4ef81dc1bf76a8e85MD54ORIGINALSABRINA DE FIGUEIRÊDO SOUTO - DISSERTAÇÃO (PPGCC) 2010.pdfSABRINA DE FIGUEIRÊDO SOUTO - DISSERTAÇÃO (PPGCC) 2010.pdfapplication/pdf1521379https://dspace.sti.ufcg.edu.br/bitstream/riufcg/7883/3/SABRINA+DE+FIGUEIR%C3%8ADO+SOUTO+-+DISSERTA%C3%87%C3%83O+%28PPGCC%29+2010.pdf545ee01bdad40100e5eac230cf4a8cf8MD53LICENSElicense.txtlicense.txttext/plain; charset=utf-81748https://dspace.sti.ufcg.edu.br/bitstream/riufcg/7883/2/license.txt8a4605be74aa9ea9d79846c1fba20a33MD52riufcg/78832025-07-24 04:57:44.699oai:dspace.sti.ufcg.edu.br:riufcg/7883Tk9URTogUExBQ0UgWU9VUiBPV04gTElDRU5TRSBIRVJFClRoaXMgc2FtcGxlIGxpY2Vuc2UgaXMgcHJvdmlkZWQgZm9yIGluZm9ybWF0aW9uYWwgcHVycG9zZXMgb25seS4KCk5PTi1FWENMVVNJVkUgRElTVFJJQlVUSU9OIExJQ0VOU0UKCkJ5IHNpZ25pbmcgYW5kIHN1Ym1pdHRpbmcgdGhpcyBsaWNlbnNlLCB5b3UgKHRoZSBhdXRob3Iocykgb3IgY29weXJpZ2h0Cm93bmVyKSBncmFudHMgdG8gRFNwYWNlIFVuaXZlcnNpdHkgKERTVSkgdGhlIG5vbi1leGNsdXNpdmUgcmlnaHQgdG8gcmVwcm9kdWNlLAp0cmFuc2xhdGUgKGFzIGRlZmluZWQgYmVsb3cpLCBhbmQvb3IgZGlzdHJpYnV0ZSB5b3VyIHN1Ym1pc3Npb24gKGluY2x1ZGluZwp0aGUgYWJzdHJhY3QpIHdvcmxkd2lkZSBpbiBwcmludCBhbmQgZWxlY3Ryb25pYyBmb3JtYXQgYW5kIGluIGFueSBtZWRpdW0sCmluY2x1ZGluZyBidXQgbm90IGxpbWl0ZWQgdG8gYXVkaW8gb3IgdmlkZW8uCgpZb3UgYWdyZWUgdGhhdCBEU1UgbWF5LCB3aXRob3V0IGNoYW5naW5nIHRoZSBjb250ZW50LCB0cmFuc2xhdGUgdGhlCnN1Ym1pc3Npb24gdG8gYW55IG1lZGl1bSBvciBmb3JtYXQgZm9yIHRoZSBwdXJwb3NlIG9mIHByZXNlcnZhdGlvbi4KCllvdSBhbHNvIGFncmVlIHRoYXQgRFNVIG1heSBrZWVwIG1vcmUgdGhhbiBvbmUgY29weSBvZiB0aGlzIHN1Ym1pc3Npb24gZm9yCnB1cnBvc2VzIG9mIHNlY3VyaXR5LCBiYWNrLXVwIGFuZCBwcmVzZXJ2YXRpb24uCgpZb3UgcmVwcmVzZW50IHRoYXQgdGhlIHN1Ym1pc3Npb24gaXMgeW91ciBvcmlnaW5hbCB3b3JrLCBhbmQgdGhhdCB5b3UgaGF2ZQp0aGUgcmlnaHQgdG8gZ3JhbnQgdGhlIHJpZ2h0cyBjb250YWluZWQgaW4gdGhpcyBsaWNlbnNlLiBZb3UgYWxzbyByZXByZXNlbnQKdGhhdCB5b3VyIHN1Ym1pc3Npb24gZG9lcyBub3QsIHRvIHRoZSBiZXN0IG9mIHlvdXIga25vd2xlZGdlLCBpbmZyaW5nZSB1cG9uCmFueW9uZSdzIGNvcHlyaWdodC4KCklmIHRoZSBzdWJtaXNzaW9uIGNvbnRhaW5zIG1hdGVyaWFsIGZvciB3aGljaCB5b3UgZG8gbm90IGhvbGQgY29weXJpZ2h0LAp5b3UgcmVwcmVzZW50IHRoYXQgeW91IGhhdmUgb2J0YWluZWQgdGhlIHVucmVzdHJpY3RlZCBwZXJtaXNzaW9uIG9mIHRoZQpjb3B5cmlnaHQgb3duZXIgdG8gZ3JhbnQgRFNVIHRoZSByaWdodHMgcmVxdWlyZWQgYnkgdGhpcyBsaWNlbnNlLCBhbmQgdGhhdApzdWNoIHRoaXJkLXBhcnR5IG93bmVkIG1hdGVyaWFsIGlzIGNsZWFybHkgaWRlbnRpZmllZCBhbmQgYWNrbm93bGVkZ2VkCndpdGhpbiB0aGUgdGV4dCBvciBjb250ZW50IG9mIHRoZSBzdWJtaXNzaW9uLgoKSUYgVEhFIFNVQk1JU1NJT04gSVMgQkFTRUQgVVBPTiBXT1JLIFRIQVQgSEFTIEJFRU4gU1BPTlNPUkVEIE9SIFNVUFBPUlRFRApCWSBBTiBBR0VOQ1kgT1IgT1JHQU5JWkFUSU9OIE9USEVSIFRIQU4gRFNVLCBZT1UgUkVQUkVTRU5UIFRIQVQgWU9VIEhBVkUKRlVMRklMTEVEIEFOWSBSSUdIVCBPRiBSRVZJRVcgT1IgT1RIRVIgT0JMSUdBVElPTlMgUkVRVUlSRUQgQlkgU1VDSApDT05UUkFDVCBPUiBBR1JFRU1FTlQuCgpEU1Ugd2lsbCBjbGVhcmx5IGlkZW50aWZ5IHlvdXIgbmFtZShzKSBhcyB0aGUgYXV0aG9yKHMpIG9yIG93bmVyKHMpIG9mIHRoZQpzdWJtaXNzaW9uLCBhbmQgd2lsbCBub3QgbWFrZSBhbnkgYWx0ZXJhdGlvbiwgb3RoZXIgdGhhbiBhcyBhbGxvd2VkIGJ5IHRoaXMKbGljZW5zZSwgdG8geW91ciBzdWJtaXNzaW9uLgo=Biblioteca Digital de Teses e Dissertaçõeshttp://bdtd.ufcg.edu.br/PUBhttp://dspace.sti.ufcg.edu.br:8080/oai/requestbdtd@setor.ufcg.edu.br || bdtd@setor.ufcg.edu.bropendoar:48512025-07-24T07:57:44Biblioteca Digital de Teses e Dissertações da UFCG - Universidade Federal de Campina Grande (UFCG)false |
| dc.title.pt_BR.fl_str_mv |
Geração automática de testes com objetos mock baseados em interações. |
| dc.title.alternative.pt_BR.fl_str_mv |
Automatic test generation with mock objects based on interactions. |
| title |
Geração automática de testes com objetos mock baseados em interações. |
| spellingShingle |
Geração automática de testes com objetos mock baseados em interações. SOUTO, Sabrina de Figueirêdo. Ciência da Computação Teste de Software Teste de Unidade Objetos Mock Análise Estática Análise Dinâmica Software Testing Unit Test Mock Objects Static Analysis Dynamic Analysis |
| title_short |
Geração automática de testes com objetos mock baseados em interações. |
| title_full |
Geração automática de testes com objetos mock baseados em interações. |
| title_fullStr |
Geração automática de testes com objetos mock baseados em interações. |
| title_full_unstemmed |
Geração automática de testes com objetos mock baseados em interações. |
| title_sort |
Geração automática de testes com objetos mock baseados em interações. |
| author |
SOUTO, Sabrina de Figueirêdo. |
| author_facet |
SOUTO, Sabrina de Figueirêdo. |
| author_role |
author |
| dc.contributor.advisor1.fl_str_mv |
GUERRERO, Dalton Dario Serei. |
| dc.contributor.advisor1ID.fl_str_mv |
GUERRERO, D. D. S. |
| dc.contributor.advisor1Lattes.fl_str_mv |
http://lattes.cnpq.br/2050632960242405 |
| dc.contributor.referee1.fl_str_mv |
FIGUEIREDO , Jorge Cesar Abrantes de. |
| dc.contributor.referee2.fl_str_mv |
COELHO, Roberta de Souza. |
| dc.contributor.authorLattes.fl_str_mv |
http://lattes.cnpq.br/0595422027989879 |
| dc.contributor.author.fl_str_mv |
SOUTO, Sabrina de Figueirêdo. |
| contributor_str_mv |
GUERRERO, Dalton Dario Serei. FIGUEIREDO , Jorge Cesar Abrantes de. COELHO, Roberta de Souza. |
| dc.subject.cnpq.fl_str_mv |
Ciência da Computação |
| topic |
Ciência da Computação Teste de Software Teste de Unidade Objetos Mock Análise Estática Análise Dinâmica Software Testing Unit Test Mock Objects Static Analysis Dynamic Analysis |
| dc.subject.por.fl_str_mv |
Teste de Software Teste de Unidade Objetos Mock Análise Estática Análise Dinâmica Software Testing Unit Test Mock Objects Static Analysis Dynamic Analysis |
| description |
O objetivo de um teste de unidade é verificar o funcionamento de um software e procurar defeitos na menor parte testável, de forma isolada do restante do sistema. Porém, este isolamento nem sempre é possível devido às interações entre a a classe sob teste - CUT (Class Under Test) e seus colaboradores, fazendo-se necessário o uso de objetos mock para simular os colaboradores, em um mecanismo onde a CUT não sabe se ela está interagindo com colaboradores reais ou objetos mock. Desta forma, objetos mock podem ser de grande utilidade na escrita de testes de unidade, uma vez que isolam a CUT, tornando o teste mais eficaz e eficiente. Entretanto, escrever testes com objetos mock pode ser uma tarefa custosa, tediosa e repetitiva, mesmo com o suporte de frameworks, como o EasyMock [34] por exemplo, devido às atividades necessárias ao seu funcionamento. Dada a necessidade de se utilizar objetos mock nos testes de unidade e seus benefícios, e considerando a dificuldade envolvida no desenvolvimento e manutenção deste tipo de código, propomos e avaliamos uma técnica para automatizar o desenvolvimento de testes com objetos mock, gerando-os automaticamente para um determinado cenário de teste. Esta técnica tem por base a identificação das interações entre a CUT e seus colaboradores em um dado cenário de teste, através da análise estática e dinâmica de código. Após essas análises, a técnica provê a geração de código de teste com objetos mock para os colaboradores e interações identificadas. O código resultante consiste em uma nova versão do código do cenário de teste inicial, onde os colaboradores da CUT são substituídos por objetos mock, bem como suas interações. Considerando o baixo custo de se gerar automaticamente o código para os objetos mock, não se faz necessária a reutilização deste código, o qual poderá ser gerado novamente a cada modificação. Para avaliar nossa técnica realizamos um estudo experimental comparativo entre a forma manual e a automática de se desenvolver testes com objetos mock, através da observação do esforço empregado em tais atividades e o nível de cobertura de interações do código resultante, que tenta assegurar que o código gerado possui pelo menos a mesma precisão do código inicial. Os resultados da avaliação evidenciam que nossa técnica foi capaz de reduzir o esforço empregado no desenvolvimento de testes com objetos mock, resultando em um código melhor e mais preciso comparado ao manual. |
| publishDate |
2010 |
| dc.date.issued.fl_str_mv |
2010-08-31 |
| dc.date.accessioned.fl_str_mv |
2019-10-09T10:02:09Z |
| dc.date.available.fl_str_mv |
2019-09-09 2019-10-09T10:02:09Z |
| dc.type.status.fl_str_mv |
info:eu-repo/semantics/publishedVersion |
| dc.type.driver.fl_str_mv |
info:eu-repo/semantics/masterThesis |
| format |
masterThesis |
| status_str |
publishedVersion |
| dc.identifier.uri.fl_str_mv |
https://dspace.sti.ufcg.edu.br/handle/riufcg/7883 |
| dc.identifier.citation.fl_str_mv |
SOUTO, S. de F. Geração automática de testes com objetos mock baseados em interações. 2010. 133 f. Dissertação (Mestrado em Ciência da Computação) – Pós-Graduação em Ciência da Computação, Centro de Engenharia Elétrica e Informática, Universidade Federal de Campina Grande, Paraíba, Brasil, 2010. Disponível em: https://dspace.sti.ufcg.edu.br/handle/riufcg/7883 |
| url |
https://dspace.sti.ufcg.edu.br/handle/riufcg/7883 |
| identifier_str_mv |
SOUTO, S. de F. Geração automática de testes com objetos mock baseados em interações. 2010. 133 f. Dissertação (Mestrado em Ciência da Computação) – Pós-Graduação em Ciência da Computação, Centro de Engenharia Elétrica e Informática, Universidade Federal de Campina Grande, Paraíba, Brasil, 2010. Disponível em: https://dspace.sti.ufcg.edu.br/handle/riufcg/7883 |
| dc.language.iso.fl_str_mv |
por |
| language |
por |
| dc.rights.driver.fl_str_mv |
info:eu-repo/semantics/openAccess |
| eu_rights_str_mv |
openAccess |
| dc.publisher.none.fl_str_mv |
Universidade Federal de Campina Grande |
| dc.publisher.program.fl_str_mv |
PÓS-GRADUAÇÃO EM CIÊNCIA DA COMPUTAÇÃO |
| dc.publisher.initials.fl_str_mv |
UFCG |
| dc.publisher.country.fl_str_mv |
Brasil |
| dc.publisher.department.fl_str_mv |
Centro de Engenharia Elétrica e Informática - CEEI |
| publisher.none.fl_str_mv |
Universidade Federal de Campina Grande |
| dc.source.none.fl_str_mv |
reponame:Biblioteca Digital de Teses e Dissertações da UFCG instname:Universidade Federal de Campina Grande (UFCG) instacron:UFCG |
| instname_str |
Universidade Federal de Campina Grande (UFCG) |
| instacron_str |
UFCG |
| institution |
UFCG |
| reponame_str |
Biblioteca Digital de Teses e Dissertações da UFCG |
| collection |
Biblioteca Digital de Teses e Dissertações da UFCG |
| bitstream.url.fl_str_mv |
https://dspace.sti.ufcg.edu.br/bitstream/riufcg/7883/4/SABRINA+DE+FIGUEIR%C3%8ADO+SOUTO+-+DISSERTA%C3%87%C3%83O+%28PPGCC%29+2010.pdf.txt https://dspace.sti.ufcg.edu.br/bitstream/riufcg/7883/3/SABRINA+DE+FIGUEIR%C3%8ADO+SOUTO+-+DISSERTA%C3%87%C3%83O+%28PPGCC%29+2010.pdf https://dspace.sti.ufcg.edu.br/bitstream/riufcg/7883/2/license.txt |
| bitstream.checksum.fl_str_mv |
7bc097e5ff665df4ef81dc1bf76a8e85 545ee01bdad40100e5eac230cf4a8cf8 8a4605be74aa9ea9d79846c1fba20a33 |
| bitstream.checksumAlgorithm.fl_str_mv |
MD5 MD5 MD5 |
| repository.name.fl_str_mv |
Biblioteca Digital de Teses e Dissertações da UFCG - Universidade Federal de Campina Grande (UFCG) |
| repository.mail.fl_str_mv |
bdtd@setor.ufcg.edu.br || bdtd@setor.ufcg.edu.br |
| _version_ |
1863363441398382592 |