Teste de mutação para programas concorrentes em elixir

Registro completo de metadados
MetadadosDescriçãoIdioma
Autor(es): dc.contributorSilva, Rodolfo Adamshuk-
Autor(es): dc.contributorSilva, Rodolfo Adamshuk-
Autor(es): dc.contributorSouza, Francisco Carlos Monteiro-
Autor(es): dc.contributorOliveira, Rafael Alves Paes de-
Autor(es): dc.creatorBordignon, Matheus Deon-
Data de aceite: dc.date.accessioned2022-02-21T21:57:56Z-
Data de disponibilização: dc.date.available2022-02-21T21:57:56Z-
Data de envio: dc.date.issued2020-11-12-
Data de envio: dc.date.issued2020-11-12-
Data de envio: dc.date.issued2019-11-25-
Fonte completa do material: dc.identifierhttp://repositorio.utfpr.edu.br/jspui/handle/1/10771-
Fonte: dc.identifier.urihttp://educapes.capes.gov.br/handle/capes/664731-
Descrição: dc.descriptionThe processing capacity of computers has been insufficient and encourages the use of concurrent programming for the development of applications that reduce computational time. Elixir is a language that supports the development of concurrent and distributed applications in a dynamic and modern way. The use of concurrent programming differs from sequential programming, adding features such as communication, synchronization, and non-determinism to programs. Testing activities seek to guarantee the quality and correctness of the programs and they become more complex due to these characteristics presents in concurrent programs. Mutation testing is a test criterion based on mistakes made by programmers during software development and is highly effective in revealing defects. The aim of this work is the definition of mutation operators for concurrent functions in Elixir. For this, a benchmark of concurrent programs in Elixir was built and validated to aid in software testing activity. Using the benchmark, the fault taxonomy in Elixir was defined, exploiting the faults produced by the concurrent functions of the Kernel and the Task module. Considering the faults of the taxonomy and exploiting typical programmer mistakes during development, a set of mutation operators was defined to exploit concurrents aspects. Also, an experiment was proposed to evaluate some quality characteristics of the defined mutation operators and the results showed that the ReplSpawn mutation operator generated the largest number of mutants, while the DelReceive operator demonstred more completeness in the scope of fault taxonomy. The inclusion rate of the deletion mutation operators in relation to the DelSpawn and DelTaskStart operators was also calculated.-
Descrição: dc.descriptionA capacidade de processamento dos computadores mostra-se cada vez mais insuficiente e incentiva o uso de programação concorrente para o desenvolvimento de aplicações que reduzam o tempo computacional. O Elixir é uma linguagem que suporta o desenvolvimento de aplicações concorrentes e distribuídas de forma dinâmica e moderna. A utilização da programação concorrente difere-se da programação convencional, adicionando características como a comunicação, sincronização e o não determinismo aos programas. As atividades de teste, que buscam garantir a qualidade e corretude dos programas, tornam-se mais complexas devido a estas características. O teste de mutação é um critério de teste que se baseia nos enganos cometidos por programadores durante o desenvolvimento do software e apresenta uma alta eficácia para revelar defeitos. Este trabalho tem por objetivo a definição de operadores de mutação para funções concorrentes em Elixir. Para isso, um benchmark de programas concorrentes em Elixir foi construído e validado para auxiliar na atividade de teste de software. Utilizando o benchmark, foi definida a taxonomia de falhas em Elixir, explorando as falhas produzidas pela funções concorrentes do Kernel e do módulo Task. Considerando as falhas da taxonomia e explorando enganos típicos de programadores durante o desenvolvimento, foi definido um conjunto de operadores de mutação para explorar aspectos de concorrência. Também, foi proposto um experimento para avaliar algumas características de qualidade dos operadores de mutação definidos e os resultados mostraram que o operador de mutação ReplSpawn gerou o maior número de mutantes, enquanto o operador DelReceive demonstrou mais completude na abrangência da taxonomia de falhas. No experimento também foi calculada a taxa de inclusão dos operadores de mutação de deleção em relação aos operadores DelSpawn e DelTaskStart.-
Formato: dc.formatapplication/pdf-
Idioma: dc.languagept_BR-
Publicador: dc.publisherUniversidade Tecnológica Federal do Paraná-
Publicador: dc.publisherDois Vizinhos-
Publicador: dc.publisherBrasil-
Publicador: dc.publisherEngenharia de Software-
Publicador: dc.publisherUTFPR-
Direitos: dc.rightsopenAccess-
Palavras-chave: dc.subjectLinguagens de programação funcional-
Palavras-chave: dc.subjectSoftware - Desenvolvimento-
Palavras-chave: dc.subjectEngenharia de software-
Palavras-chave: dc.subjectFunctional programming languages-
Palavras-chave: dc.subjectComputer software - Development-
Palavras-chave: dc.subjectSoftware engineering-
Palavras-chave: dc.subjectCNPQ::CIENCIAS EXATAS E DA TERRA::CIENCIA DA COMPUTACAO::METODOLOGIA E TECNICAS DA COMPUTACAO::ENGENHARIA DE SOFTWARE-
Título: dc.titleTeste de mutação para programas concorrentes em elixir-
Título: dc.titleMutation testing for concurrent programs in elixir-
Tipo de arquivo: dc.typelivro digital-
Aparece nas coleções:Repositorio Institucional da UTFPR - RIUT

Não existem arquivos associados a este item.