"Aprimorando a verificação de conformidade em programas baseadas em contratos".

Detalhes bibliográficos
Autor(a) principal: MILANEZ, Alysson Filgueira.
Data de Publicação: 2014
Tipo de documento: Dissertação
Idioma: por
Título da fonte: Biblioteca Digital de Teses e Dissertações da UFCG
Texto Completo: http://dspace.sti.ufcg.edu.br:8080/jspui/handle/riufcg/4875
Resumo: Teste é comumente usado para verificar conformidade em programas baseados em contrato; uma vez que verificação por provas formais tem baixo poder de escalabilidade e análise estática é, em alguns casos, limitada para identificar não-conformidades mais gerais. Casos de teste tradicionais, com dados de teste providos manualmente, podem ser ineficazes para detectar não-conformidades sutis que surgem apenas após diversas criações e modificações nos objetos sob teste. Essas não-conformidades podem sinalizar bugs mais sutis, diminuindo os benefícios de usar programas baseados em contrato. Casos de teste gerados aleatoriamente com dados de teste gerados automaticamente, por outro lado, são uma abordagem promissora quando testes mais substanciais são necessários. No presente trabalho, propomos e avaliamos uma abordagem, JMLOK 2.0, para detecção e categorização de não-conformidades, no contexto de Java Modeling Language (JML). Nossa abordagem objetiva auxiliar o programador no processo de correção de não-conformidades. A detecção é suportada por uma abordagem de Testes Gerados Aleatoriamente (RGT). E a categorização por uma abordagem baseada em heurísticas. Realizamos duas avaliações. Na primeira, realizamos uma avaliação de nossa abordagem para detecção de não-conformidades e de nosso processo para categorização manual: detectamos 84 nãoconformidades em mais de 29 KLOC e mais de 9 K linhas de contratos JML (que iremos nos referir como KLJML); aplicando nosso modelo de categorização manual, obtivemos que a maioria das não-conformidades detectadas foram classificadas como erros de póscondição; também observamos que uma não-conformidade é detectada após 2.54 top-level chamadas num caso de teste, em média, e que o número de chamadas internas ao caso de teste que revela a não-conformidade é, em média, de 2.23, nos dando evidências da necessidade de uma estrutura de testes mais elaborada para detecção de não-conformidades. Além disso, comparamos nossa abordagem com JET, uma ferramenta existente para detecção de não-conformidades em programas JML baseada em testes, utilizando um subconjunto dos programas usados no primeiro estudo (6 KLOC e 5 KLJML). JMLOK 2.0 detectou 30 não-conformidades com cobertura Java de 78.44% e JML de 67.67%, enquanto que JET detectou 9 não-conformidades cobrindo 47.97% de Java e 56.97% de JML. Na segunda, realizamos uma avaliação da nossa abordagem automática de categorização: comparamos a categorização manual e a automática e tivemos um valor de coincidências de 0.73 (considerando as não-conformidades da primeira avaliação) indicando que há similaridade entre as abordagens de categorização manual e automática; além disso, comparamos os resultados da categorização automática com a categorização realizada por experts em JML e também observamos alguma similaridade entre as abordagens.
id UFCG_aab74fd4fd4e51c0593953be73bd9fa2
oai_identifier_str oai:localhost:riufcg/4875
network_acronym_str UFCG
network_name_str Biblioteca Digital de Teses e Dissertações da UFCG
repository_id_str 4851
spelling "Aprimorando a verificação de conformidade em programas baseadas em contratos"."Enhancing compliance checking in contract-based programs".Programação por ContratosVerificação de ConformidadeSistemas de SoftwareProgramming by ContractCompliance CheckSoftware SystemsTeste é comumente usado para verificar conformidade em programas baseados em contrato; uma vez que verificação por provas formais tem baixo poder de escalabilidade e análise estática é, em alguns casos, limitada para identificar não-conformidades mais gerais. Casos de teste tradicionais, com dados de teste providos manualmente, podem ser ineficazes para detectar não-conformidades sutis que surgem apenas após diversas criações e modificações nos objetos sob teste. Essas não-conformidades podem sinalizar bugs mais sutis, diminuindo os benefícios de usar programas baseados em contrato. Casos de teste gerados aleatoriamente com dados de teste gerados automaticamente, por outro lado, são uma abordagem promissora quando testes mais substanciais são necessários. No presente trabalho, propomos e avaliamos uma abordagem, JMLOK 2.0, para detecção e categorização de não-conformidades, no contexto de Java Modeling Language (JML). Nossa abordagem objetiva auxiliar o programador no processo de correção de não-conformidades. A detecção é suportada por uma abordagem de Testes Gerados Aleatoriamente (RGT). E a categorização por uma abordagem baseada em heurísticas. Realizamos duas avaliações. Na primeira, realizamos uma avaliação de nossa abordagem para detecção de não-conformidades e de nosso processo para categorização manual: detectamos 84 nãoconformidades em mais de 29 KLOC e mais de 9 K linhas de contratos JML (que iremos nos referir como KLJML); aplicando nosso modelo de categorização manual, obtivemos que a maioria das não-conformidades detectadas foram classificadas como erros de póscondição; também observamos que uma não-conformidade é detectada após 2.54 top-level chamadas num caso de teste, em média, e que o número de chamadas internas ao caso de teste que revela a não-conformidade é, em média, de 2.23, nos dando evidências da necessidade de uma estrutura de testes mais elaborada para detecção de não-conformidades. Além disso, comparamos nossa abordagem com JET, uma ferramenta existente para detecção de não-conformidades em programas JML baseada em testes, utilizando um subconjunto dos programas usados no primeiro estudo (6 KLOC e 5 KLJML). JMLOK 2.0 detectou 30 não-conformidades com cobertura Java de 78.44% e JML de 67.67%, enquanto que JET detectou 9 não-conformidades cobrindo 47.97% de Java e 56.97% de JML. Na segunda, realizamos uma avaliação da nossa abordagem automática de categorização: comparamos a categorização manual e a automática e tivemos um valor de coincidências de 0.73 (considerando as não-conformidades da primeira avaliação) indicando que há similaridade entre as abordagens de categorização manual e automática; além disso, comparamos os resultados da categorização automática com a categorização realizada por experts em JML e também observamos alguma similaridade entre as abordagens.Testing is commonly used to check conformance in contract-based programs, as verification by formal proofs is hard to scale and static analysis is, sometimes, limited for detecting general nonconformances. Traditional test cases, with manually-provided data, may be ineffective in detecting subtle nonconformances that arise only after several instantiations and modifications in objects under test. Those nonconformances may signalize more subtle bugs, hindering the benefits of using contract-based programs. Random-generated tests with automatic test data generation, on the other hand, is a promising approach when more substantial testing is demanded. In this work, we propose and evaluate an approach, JMLOK 2.0, for automatically detecting and categorizing nonconformances, in the context of Java Modeling Language (JML). Our approach aims to help the programmer in the process of nonconformances correction. The detection is backed by Randomly-Generated Tests (RGT) approach. And the categorization is backed by heuristics-based approach. We perform two evaluations. First, we perform an evaluation of our detection approach and our manual categorization process: we detected 84 nonconformances in over 29 KLOC and 9 K lines of JML contracts (that we will refer as KLJML henceforth); applying our manual classification system we got that most detected nonconformances were classified as postcondition errors; we also observed that a nonconformance is detected after 2.54 top-level test case calls, in average, and the number of internal calls within the faulty test case call is an average of 2.23, providing evidence for the need of a more complex generated test structure in nonconformance detection; furthermore, we compare our approach with JET, an existing test-based approach for detecting nonconformances in JML programs, using a subset of programs from first study (6 KLOC and 5 KLJML). JMLOK 2.0 detected 30 nonconformances with Java coverage of 78.44% and JML coverage of 67.67%, while JET detected 9 nonconformances by covering 47.97% of Java and 56.97% of JML. Second, we perform an evaluation of our automatic categorization approach: we compare automatic and manual categorization and got a matches value of 0.73 (considering the nonconformances from first evaluation) indicating similarity between automatic and manual approaches; furthermore, we compare our results with the categorization performed by voluntary JML experts and we also observed some similarity.Universidade Federal de Campina GrandeBrasilCentro de Engenharia Elétrica e Informática - CEEIPÓS-GRADUAÇÃO EM CIÊNCIA DA COMPUTAÇÃOUFCGMASSONI, Tiago Lima.MASSONI, T. L.http://lattes.cnpq.br/3563923906851611LIMA, Ricado Massa Ferreira.ANDRADE, Wilkerson de Lucena.MILANEZ, Alysson Filgueira.2014-06-062019-07-15T12:15:49Z2019-07-152019-07-15T12:15:49Zinfo:eu-repo/semantics/publishedVersioninfo:eu-repo/semantics/masterThesishttp://dspace.sti.ufcg.edu.br:8080/jspui/handle/riufcg/4875MILANEZ, Alysson Filgueira. "Aprimorando a verificação de conformidade em programas baseadas em contratos". 2014. 123f. (Dissertação de Mestrado em Ciência da Computação) Programa de 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, 2014. Disponível em: http://dspace.sti.ufcg.edu.br:8080/jspui/handle/riufcg/4875porinfo:eu-repo/semantics/openAccessreponame:Biblioteca Digital de Teses e Dissertações da UFCGinstname:Universidade Federal de Campina Grande (UFCG)instacron:UFCG2022-03-23T10:37:13Zoai:localhost:riufcg/4875Biblioteca 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:48512022-03-23T10:37:13Biblioteca Digital de Teses e Dissertações da UFCG - Universidade Federal de Campina Grande (UFCG)false
dc.title.none.fl_str_mv "Aprimorando a verificação de conformidade em programas baseadas em contratos".
"Enhancing compliance checking in contract-based programs".
title "Aprimorando a verificação de conformidade em programas baseadas em contratos".
spellingShingle "Aprimorando a verificação de conformidade em programas baseadas em contratos".
MILANEZ, Alysson Filgueira.
Programação por Contratos
Verificação de Conformidade
Sistemas de Software
Programming by Contract
Compliance Check
Software Systems
title_short "Aprimorando a verificação de conformidade em programas baseadas em contratos".
title_full "Aprimorando a verificação de conformidade em programas baseadas em contratos".
title_fullStr "Aprimorando a verificação de conformidade em programas baseadas em contratos".
title_full_unstemmed "Aprimorando a verificação de conformidade em programas baseadas em contratos".
title_sort "Aprimorando a verificação de conformidade em programas baseadas em contratos".
author MILANEZ, Alysson Filgueira.
author_facet MILANEZ, Alysson Filgueira.
author_role author
dc.contributor.none.fl_str_mv MASSONI, Tiago Lima.
MASSONI, T. L.
http://lattes.cnpq.br/3563923906851611
LIMA, Ricado Massa Ferreira.
ANDRADE, Wilkerson de Lucena.
dc.contributor.author.fl_str_mv MILANEZ, Alysson Filgueira.
dc.subject.por.fl_str_mv Programação por Contratos
Verificação de Conformidade
Sistemas de Software
Programming by Contract
Compliance Check
Software Systems
topic Programação por Contratos
Verificação de Conformidade
Sistemas de Software
Programming by Contract
Compliance Check
Software Systems
description Teste é comumente usado para verificar conformidade em programas baseados em contrato; uma vez que verificação por provas formais tem baixo poder de escalabilidade e análise estática é, em alguns casos, limitada para identificar não-conformidades mais gerais. Casos de teste tradicionais, com dados de teste providos manualmente, podem ser ineficazes para detectar não-conformidades sutis que surgem apenas após diversas criações e modificações nos objetos sob teste. Essas não-conformidades podem sinalizar bugs mais sutis, diminuindo os benefícios de usar programas baseados em contrato. Casos de teste gerados aleatoriamente com dados de teste gerados automaticamente, por outro lado, são uma abordagem promissora quando testes mais substanciais são necessários. No presente trabalho, propomos e avaliamos uma abordagem, JMLOK 2.0, para detecção e categorização de não-conformidades, no contexto de Java Modeling Language (JML). Nossa abordagem objetiva auxiliar o programador no processo de correção de não-conformidades. A detecção é suportada por uma abordagem de Testes Gerados Aleatoriamente (RGT). E a categorização por uma abordagem baseada em heurísticas. Realizamos duas avaliações. Na primeira, realizamos uma avaliação de nossa abordagem para detecção de não-conformidades e de nosso processo para categorização manual: detectamos 84 nãoconformidades em mais de 29 KLOC e mais de 9 K linhas de contratos JML (que iremos nos referir como KLJML); aplicando nosso modelo de categorização manual, obtivemos que a maioria das não-conformidades detectadas foram classificadas como erros de póscondição; também observamos que uma não-conformidade é detectada após 2.54 top-level chamadas num caso de teste, em média, e que o número de chamadas internas ao caso de teste que revela a não-conformidade é, em média, de 2.23, nos dando evidências da necessidade de uma estrutura de testes mais elaborada para detecção de não-conformidades. Além disso, comparamos nossa abordagem com JET, uma ferramenta existente para detecção de não-conformidades em programas JML baseada em testes, utilizando um subconjunto dos programas usados no primeiro estudo (6 KLOC e 5 KLJML). JMLOK 2.0 detectou 30 não-conformidades com cobertura Java de 78.44% e JML de 67.67%, enquanto que JET detectou 9 não-conformidades cobrindo 47.97% de Java e 56.97% de JML. Na segunda, realizamos uma avaliação da nossa abordagem automática de categorização: comparamos a categorização manual e a automática e tivemos um valor de coincidências de 0.73 (considerando as não-conformidades da primeira avaliação) indicando que há similaridade entre as abordagens de categorização manual e automática; além disso, comparamos os resultados da categorização automática com a categorização realizada por experts em JML e também observamos alguma similaridade entre as abordagens.
publishDate 2014
dc.date.none.fl_str_mv 2014-06-06
2019-07-15T12:15:49Z
2019-07-15
2019-07-15T12:15:49Z
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 http://dspace.sti.ufcg.edu.br:8080/jspui/handle/riufcg/4875
MILANEZ, Alysson Filgueira. "Aprimorando a verificação de conformidade em programas baseadas em contratos". 2014. 123f. (Dissertação de Mestrado em Ciência da Computação) Programa de 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, 2014. Disponível em: http://dspace.sti.ufcg.edu.br:8080/jspui/handle/riufcg/4875
url http://dspace.sti.ufcg.edu.br:8080/jspui/handle/riufcg/4875
identifier_str_mv MILANEZ, Alysson Filgueira. "Aprimorando a verificação de conformidade em programas baseadas em contratos". 2014. 123f. (Dissertação de Mestrado em Ciência da Computação) Programa de 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, 2014. Disponível em: http://dspace.sti.ufcg.edu.br:8080/jspui/handle/riufcg/4875
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
Brasil
Centro de Engenharia Elétrica e Informática - CEEI
PÓS-GRADUAÇÃO EM CIÊNCIA DA COMPUTAÇÃO
UFCG
publisher.none.fl_str_mv Universidade Federal de Campina Grande
Brasil
Centro de Engenharia Elétrica e Informática - CEEI
PÓS-GRADUAÇÃO EM CIÊNCIA DA COMPUTAÇÃO
UFCG
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
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_ 1809744380333916160