Spelling suggestions: "subject:"spectrumbased fault focalization"" "subject:"spectrumbased fault 1ocalization""
1 |
Turning Up the Heat!: Using Fault-Localizing Heat Maps to Help Students Improve Their CodeEdmison, Kenneth Robert, Jr. 16 December 2019 (has links)
Automated grading systems provide feedback to computer science students in a variety of ways, but often focus on incorrect program behaviors. These tools will provide indications of test case failures or runtime errors, but without debugging skills, students often become frus- trated when they don't know where to start. They know their code has defects, but finding the problem may be beyond their experience, especially for beginners. An additional concern is balancing the need to provide enough direction to be useful, without giving the student so much direction that they are effectively given the answer. Drawing on the experiences of the software engineering community, in this work we apply a technique called statistical fault location (SFL) to student program assignments. Using the GZoltar software tool, we applied this technique to a set of previously-submitted student assignments gathered from students in our introductory CS course, CS 1114: Introduction to Software Design. After a manual inspection of the student code, this exercise demonstrated that the SFL technique identifies the defective method in the first three most suspicious methods in the student's code 90% of the time. We then developed a plug-in for Web-CAT to allow new student submissions to be evaluated with the GZoltar SFL system. Additionally, we developed a tool to create a heat map visualization to show the results of the SFL evaluation overlaid on the student's source code. We deployed this toolset for use in CS 1114 in Fall 2017. We then surveyed the students about their perceptions of the utility of the visualization for helping them understand how to find and correct the defects in their code, versus not having access to the heat map. Their responses led to refinements in our presentation of the feedback. We also evaluated the performance of CS 1114 classes from two semesters and discovered that having the heat maps led to more frequent incremental improvements in their code, as well as reaching their highest correctness score on instructor-provided tests more quickly than students that did not have access to the heat maps. Finally, we suggest several directions for future enhancements to the feedback interface. / Doctor of Philosophy / Automated grading systems provide feedback to computer science students in a variety of ways, but often focus on incorrect program behaviors. These tools will provide indications of test case failures or runtime errors, but without debugging skills, students often become frus- trated when they don't know where to start. They know their code has defects, but finding the problem may be beyond their experience, especially for beginners. An additional concern is balancing the need to provide enough direction to be useful, without giving the student so much direction that they are effectively given the answer. Drawing on the experiences of the software engineering community, in this work we apply a technique called statistical fault location (SFL) to student program assignments. Using the GZoltar software tool, we applied this technique to a set of previously-submitted student assignments gathered from students in our introductory CS course, CS 1114: Introduction to Software Design. After a manual inspection of the student code, this exercise demonstrated that the SFL technique identifies the defective method in the first three most suspicious methods in the student's code 90% of the time. We then developed a plug-in for Web-CAT to allow new student submissions to be evaluated with the GZoltar SFL system. Additionally, we developed a tool to create a heat map visualization to show the results of the SFL evaluation overlaid on the student's source code. We deployed this toolset for use in CS 1114 in Fall 2017. We then surveyed the students about their perceptions of the utility of the visualization for helping them understand how to find and correct the defects in their code, versus not having access to the heat map. Their responses led to refinements in our presentation of the feedback. We also evaluated the performance of CS 1114 classes from two semesters and discovered that having the heat maps led to more frequent incremental improvements in their code, as well as reaching their highest correctness score on instructor-provided tests more quickly than students that did not have access to the heat maps. Finally, we suggest several directions for future enhancements to the feedback interface.
|
2 |
Geração evolucionária de heurísticas para localização de defeitos de software / Evolutionary generation of heuristics for software fault localizationFreitas, Diogo Machado de 24 September 2018 (has links)
Submitted by Franciele Moreira (francielemoreyra@gmail.com) on 2018-10-30T13:30:59Z
No. of bitstreams: 2
Dissertação - Diogo Machado de Freitas - 2018.pdf: 1477764 bytes, checksum: 73759c5ece96bf48ffd4d698f14026b9 (MD5)
license_rdf: 0 bytes, checksum: d41d8cd98f00b204e9800998ecf8427e (MD5) / Approved for entry into archive by Luciana Ferreira (lucgeral@gmail.com) on 2018-10-30T13:41:38Z (GMT) No. of bitstreams: 2
Dissertação - Diogo Machado de Freitas - 2018.pdf: 1477764 bytes, checksum: 73759c5ece96bf48ffd4d698f14026b9 (MD5)
license_rdf: 0 bytes, checksum: d41d8cd98f00b204e9800998ecf8427e (MD5) / Made available in DSpace on 2018-10-30T13:41:38Z (GMT). No. of bitstreams: 2
Dissertação - Diogo Machado de Freitas - 2018.pdf: 1477764 bytes, checksum: 73759c5ece96bf48ffd4d698f14026b9 (MD5)
license_rdf: 0 bytes, checksum: d41d8cd98f00b204e9800998ecf8427e (MD5)
Previous issue date: 2018-09-24 / Coordenação de Aperfeiçoamento de Pessoal de Nível Superior - CAPES / Fault Localization is one stage of the software life cycle, which demands important resources
such as time and effort spent on a project. There are several initiatives towards the
automation of the fault localization process and the reduction of the associated resources.
Many techniques are based on heuristics that use information obtained (spectrum) from the
execution of test cases, in order to measure the suspiciousness of each program element to
be defective. Spectrum data generally refers to code coverage and test results (positive or
negative). The present work presents two approaches based on the Genetic Programming
algorithm for the problem of Fault Localization: a method to compose a new heuristic from a
set of existing ones; and a method for constructing heuristics based on data from program
mutation analysis. The innovative aspects of both methods refer to the joint investigation of:
(i) specialization of heuristics for certain programs; (ii) application of an evolutionary
approach to the generation of heuristics with non-linear equations; (iii) creation of heuristics
based on the combination of traditional heuristics; (iv) use of coverage and mutation spectra
extracted from the test activity; (v) analyzing and comparing the efficacy of methods that use
coverage and mutation spectra for fault localization; and (vi) quality analysis of the mutation
spectra as a data source for fault localization. The results have pointed to the competitiveness
of both approaches in their contexts. / Localização de Defeitos é uma etapa do ciclo de vida de software, que demanda recursos
importantes tais como o tempo e o esforço gastos em um projeto. Existem diversas iniciativas
na direção da automação do processo de localização de defeitos e da redução dos recursos
associados. Muitas técnicas são baseadas heurísticas que utilizam informação obtida
(espectro) a partir da execução de casos de teste, visando a medir a suspeita de cada
elemento de programa para ser defeituoso. Os dados de espectro referem-se, em geral, à
cobertura de código e aos resultados dos teste (positivo ou negativo). O presente trabalho
apresenta duas abordagens baseadas no algoritmo Programação Genética para o problema de
Localização de Defeitos: um método para compor automaticamente novas heurísticas a partir
de um conjunto de heurísticas existentes; e um método para a construção de heurísticas
baseadas em dados oriundos da análise de mutação de programas. Os aspectos inovadores de
ambos os métodos referem-se à investigação conjunta de: (i) especialização de heurísticas
para determinados programas; (ii) aplicação de abordagem evolutiva para a geração de
heurísticas com equações não lineares; (iii) criação de heurísticas a partir da combinação de
heurísticas tradicionais; (iv) uso de espectro de cobertura e de mutação extraídos da
atividade de teste; (v) análise e comparação da eficácia de métodos que usam os espectros
de cobertura e de mutação para a localização de defeitos; e (vi) análise da qualidade dos
espectros de mutação como fonte de dados para a localização de defeitos. Os resultados
apontaram competitividade de ambas as abordagens em seus contextos.
|
Page generated in 0.103 seconds