Geração de casos de teste usando Bounded Model Checking

dc.contributor.advisor-co1Rocha, Herbert Oliveira
dc.contributor.advisor-co1Latteshttp://lattes.cnpq.br/2284500318304899eng
dc.contributor.advisor-co1orcidhttps://orcid.org/0000-0002-2648-8468eng
dc.contributor.advisor1Cordeiro, Lucas Carvalho
dc.contributor.advisor1Latteshttp://lattes.cnpq.br/5005832876603012eng
dc.contributor.advisor1orcidhttps://orcid.org/0000-0002-6235-4272eng
dc.contributor.referee1Barreto, Raimundo da Silva
dc.contributor.referee1Latteshttp://lattes.cnpq.br/1132672107627968eng
dc.contributor.referee1orcidhttps://orcid.org/0000-0001-8494-4225eng
dc.contributor.referee2Lima Filho, Eddie Batista de
dc.contributor.referee2Latteshttp://lattes.cnpq.br/7827981023232761eng
dc.contributor.referee2orcidhttps://orcid.org/0000-0002-2758-4638eng
dc.creatorMenezes, Rafael Sá
dc.creator.Latteshttp://lattes.cnpq.br/9276676299919657eng
dc.creator.orcidhttps://orcid.org/0000-0002-6102-4343eng
dc.date.issued2021-06-08
dc.description.abstractTestcase generation consists in generating inputs for an algorithm that are able to explore all paths of a program, maximizing its coverage. Usually, fuzzing techniques are used because of its great performace and low cost. However, formal techniques such as Symbolic Execution are gaining notority in this domain, one of those is Bounded Model Checking (BMC). BMC is a verification technique that encodes a property in paths of transition system up to a bound k to one single logic formula such that if the system contains a flaw the formula will generate a proof. This proof contain information for the testcase generation. The difficult of using BMC for testcase is at the time/space complexity and at the optimizations trying to workaround this issue. Incremental BMC is a strategy that increases the k limit until the violation is found or the system is completely verified. The issue is that at each increment every path is verified again, which add time and memory consuption to solve the current instance. To solve those issue this work proposes two main contributions: (1) algorithm for testcase generation using proofs; and (2) a caching system that uses small instances by: (A) direct use; and (B) indirect use of other systems. Those contributions were implemented into the Efficient SMT-based Bounded Model Checker (ESBMC), being tested over Continuos Integration and over public benchmarks of C programs, obtaining the first place at TestComp’21 in the Cover-error category and reducing the time of the CI.eng
dc.description.resumoA geração automática de casos de teste consiste na geração de entradas para um algoritmo que sejam capazes de explorar todos os caminhos de um programa, maximizando a cobertura. Comumente, técnicas como fuzzing são utilizadas para isso por sua performance alta e de custo baixo. Entretanto, técnicas formais, como execução simbólica, vêm ganhando espaço nesse domínio, entre elas, a Bounded Model Checking (BMC). BMC é uma técnica de verificação que codifica uma propriedade em caminhos de um sistema de transição até um limite k, resultando em uma única fórmula lógica que, caso contenha uma violação, irá gerar uma prova. Essa prova - embora reduzida - contém informações que podem ser utilizadas como base para a geração de um caso de teste. A dificuldade de usar BMC em casos de teste está na complexidade de tempo/espaço da técnica e nas simplificações feitas para tentar contornar isso (simplificações, estratégias). Incremental BMC é uma estratégia que, de forma incremental, aumenta esse limite k até que uma violação seja encontrada ou que o sistema seja completamente verificado. Entretanto, cada caminho do sistema é reverificado a cada incremento, o que adiciona tempo e consumo de memória para resolver a instância atual. Para resolver esses problemas, este trabalho propõe duas contribuições: (1) algoritmo de geração de casos de teste a partir de provas e (2) um sistema de cache que utiliza soluções de instâncias menores através de (A) uso direto das instâncias anteriores; e (B) uso indireto através de fórmulas de outros sistemas. Essas contribuições foram implementadas no Efficient SMT-based Bounded Model Checker (ESBMC), sendo testadas em situações de Integração Contínua (CI) e sobre benchmarks públicos de programas em C, obtendo a primeira colocação na competição TestComp’21 na categoria reach-error e reduzindo o tempo do CI.eng
dc.description.sponsorshipCNPq - Conselho Nacional de Desenvolvimento Científico e Tecnológicoeng
dc.formatapplication/pdf*
dc.identifier.citationMENEZES, Rafael Sá. Geração de casos de teste usando Bounded Model Checking. 2021. 54 f. Dissertação (Mestrado em Informática) - Universidade Federal do Amazonas, Manaus, 2021.eng
dc.identifier.urihttps://tede.ufam.edu.br/handle/tede/8447
dc.languageporeng
dc.publisherUniversidade Federal do Amazonaseng
dc.publisher.countryBrasileng
dc.publisher.departmentInstituto de Computaçãoeng
dc.publisher.initialsUFAMeng
dc.publisher.programPrograma de Pós-graduação em Informáticaeng
dc.rightsAcesso Aberto
dc.rights.urihttp://creativecommons.org/licenses/by/4.0/
dc.subjectFuzzingeng
dc.subjectSistema de transiçãopor
dc.subjectAgoritmo de slicingpor
dc.subjectOperações bit a bitpor
dc.subjectSistema de armazenamentopor
dc.subject.cnpqCIÊNCIAS EXATAS E DA TERRAeng
dc.subject.userBounded model checkingeng
dc.subject.userCachingeng
dc.subject.userSoftwareeng
dc.subject.userVerificationeng
dc.subject.userSMT solvingeng
dc.subject.userTestcase generationeng
dc.thumbnail.urlhttps://tede.ufam.edu.br/retrieve/48966/Disserta%c3%a7%c3%a3o_RafaelMenezes_PPGI.pdf.jpg*
dc.titleGeração de casos de teste usando Bounded Model Checkingeng
dc.typeDissertaçãoeng

Arquivos

Pacote original

Agora exibindo 1 - 2 de 2
Carregando...
Imagem de Miniatura
Nome:
CartaEncaminhamentoTCC-TESE-DISSERTAÇÃO.pdf
Tamanho:
109.39 KB
Formato:
Documentos internos
Descrição:
Carta de Encaminhamento
Carregando...
Imagem de Miniatura
Nome:
Dissertação_RafaelMenezes_PPGI.pdf
Tamanho:
2.38 MB
Formato:
Adobe Portable Document Format
Descrição:
Dissertação_RafaelMenezes_PPGI

Licença do pacote

Agora exibindo 1 - 1 de 1
Carregando...
Imagem de Miniatura
Nome:
license.txt
Tamanho:
2.32 KB
Formato:
Item-specific license agreed upon to submission
Descrição: