Use este identificador para citar ou linkar para este item: http://repositorio.utfpr.edu.br/jspui/handle/1/10771
Registro completo de metadados
Campo DCValorIdioma
dc.creatorBordignon, Matheus Deon
dc.date.accessioned2020-11-13T11:57:07Z-
dc.date.available2020-11-13T11:57:07Z-
dc.date.issued2019-11-26
dc.identifier.citationBORDIGNON, Matheus Deon. Teste de mutação para programas concorrentes em elixir. 2019. Trabalho de Conclusão de Curso (Bacharelado em Engenharia de Software) - Universidade Tecnológica Federal do Paraná, Dois Vizinhos, 2019.pt_BR
dc.identifier.urihttp://repositorio.utfpr.edu.br/jspui/handle/1/10771-
dc.description.abstractThe 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.pt_BR
dc.languageporpt_BR
dc.publisherUniversidade Tecnológica Federal do Paranápt_BR
dc.rightsopenAccesspt_BR
dc.subjectLinguagens de programação funcionalpt_BR
dc.subjectSoftware - Desenvolvimentopt_BR
dc.subjectEngenharia de softwarept_BR
dc.subjectFunctional programming languagespt_BR
dc.subjectComputer software - Developmentpt_BR
dc.subjectSoftware engineeringpt_BR
dc.titleTeste de mutação para programas concorrentes em elixirpt_BR
dc.title.alternativeMutation testing for concurrent programs in elixirpt_BR
dc.typebachelorThesispt_BR
dc.description.resumoA 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.pt_BR
dc.degree.localDois Vizinhospt_BR
dc.publisher.localDois Vizinhospt_BR
dc.contributor.advisor1Silva, Rodolfo Adamshuk
dc.contributor.referee1Silva, Rodolfo Adamshuk
dc.contributor.referee2Souza, Francisco Carlos Monteiro
dc.contributor.referee3Oliveira, Rafael Alves Paes de
dc.publisher.countryBrasilpt_BR
dc.publisher.programEngenharia de Softwarept_BR
dc.publisher.initialsUTFPRpt_BR
dc.subject.cnpqCNPQ::CIENCIAS EXATAS E DA TERRA::CIENCIA DA COMPUTACAO::METODOLOGIA E TECNICAS DA COMPUTACAO::ENGENHARIA DE SOFTWAREpt_BR
Aparece nas coleções:DV - Engenharia de Software

Arquivos associados a este item:
Arquivo Descrição TamanhoFormato 
DV_COENS_2019_2_10.pdf1,6 MBAdobe PDFThumbnail
Visualizar/Abrir


Os itens no repositório estão protegidos por copyright, com todos os direitos reservados, salvo quando é indicado o contrário.