Testing and debugging: A reality check

Testing and debugging are important activities during software development and maintenance. Testing is performed to check if the code contains errors whereas debugging is done to locate and fix these errors. Testing can be manual or automated and can be of different types such as unit, integration,...

Full description

Saved in:
Bibliographic Details
Main Author: KOCHHAR, Pavneet Singh
Format: text
Language:English
Published: Institutional Knowledge at Singapore Management University 2017
Subjects:
Online Access:https://ink.library.smu.edu.sg/etd_coll_all/17
https://ink.library.smu.edu.sg/cgi/viewcontent.cgi?article=1037&context=etd_coll_all
Tags: Add Tag
No Tags, Be the first to tag this record!
Institution: Singapore Management University
Language: English
id sg-smu-ink.etd_coll_all-1037
record_format dspace
spelling sg-smu-ink.etd_coll_all-10372017-10-24T07:23:05Z Testing and debugging: A reality check KOCHHAR, Pavneet Singh Testing and debugging are important activities during software development and maintenance. Testing is performed to check if the code contains errors whereas debugging is done to locate and fix these errors. Testing can be manual or automated and can be of different types such as unit, integration, system, stress etc. Debugging can also be manual or automated. These two activities have drawn attention of researchers in the recent years. Past studies have proposed many testing techniques such as automated test generation, test minimization, test case selection etc. Studies related to debugging have proposed new techniques to find bugs using various fault localization schemes such as spectrum-based fault localization, IR-based fault localization, program slicing, delta debugging etc. to accurately and efficiently find bugs. However, even after years of research software continues to have bugs, which can have significant implications for the organization and economy. Often developers mention that the number of bugs they receive for the project overwhelms the resources they have. This brings forth the question of analyzing the current state of testing and debugging to understand its advantages and shortcomings. Also, many debugging techniques proposed in the past may ignore bias in data which can lead to wrong results. Furthermore, it is equally important to understand the expectations of practitioners who are currently using or will use these techniques. These analyses will help researchers understand pain points and expectations of practitioners which will help them design better techniques. In this thesis, I take a step in this direction by conducting large-scale data analysis and by interviewing and surveying large number of practitioners. By analysing the quantitative and qualitative data, I plan to bring forward the gap between practitioners’ expectations and the research ouput. My thesis sheds light on current state-of-practice in testing in open-source projects, the tools currently used by developers and challenges faced by them during testing. For bug localization, I find that files that are already localized can have an impact on the results and this bias must be removed before running a bug localization algorithm. Furthermore, practitioners have a high expectation when it comes to adopting a new bug localization tool. I also propose a technique to help developers find elements to test. Furthermore, through interviews and surveys, I provide suggestions for developers to create good test cases based on several characteristics such as size and complexity, coverage, maintainability, bug detection etc. In the future, I plan to perform a longitudinal study to understand the causal impact of testing on software quality. Furthermore, I plan to perform an empirical validation of good test cases based on the suggestions received from the practitioners. 2017-07-01T07:00:00Z text application/pdf https://ink.library.smu.edu.sg/etd_coll_all/17 https://ink.library.smu.edu.sg/cgi/viewcontent.cgi?article=1037&context=etd_coll_all http://creativecommons.org/licenses/by-nc-nd/4.0/ Dissertations and Theses Collection eng Institutional Knowledge at Singapore Management University Software Testing Debugging Bug Localization Empirical Software Engineering Mining Software Repositories Programming Languages and Compilers Software Engineering
institution Singapore Management University
building SMU Libraries
continent Asia
country Singapore
Singapore
content_provider SMU Libraries
collection InK@SMU
language English
topic Software Testing
Debugging
Bug Localization
Empirical Software Engineering
Mining Software Repositories
Programming Languages and Compilers
Software Engineering
spellingShingle Software Testing
Debugging
Bug Localization
Empirical Software Engineering
Mining Software Repositories
Programming Languages and Compilers
Software Engineering
KOCHHAR, Pavneet Singh
Testing and debugging: A reality check
description Testing and debugging are important activities during software development and maintenance. Testing is performed to check if the code contains errors whereas debugging is done to locate and fix these errors. Testing can be manual or automated and can be of different types such as unit, integration, system, stress etc. Debugging can also be manual or automated. These two activities have drawn attention of researchers in the recent years. Past studies have proposed many testing techniques such as automated test generation, test minimization, test case selection etc. Studies related to debugging have proposed new techniques to find bugs using various fault localization schemes such as spectrum-based fault localization, IR-based fault localization, program slicing, delta debugging etc. to accurately and efficiently find bugs. However, even after years of research software continues to have bugs, which can have significant implications for the organization and economy. Often developers mention that the number of bugs they receive for the project overwhelms the resources they have. This brings forth the question of analyzing the current state of testing and debugging to understand its advantages and shortcomings. Also, many debugging techniques proposed in the past may ignore bias in data which can lead to wrong results. Furthermore, it is equally important to understand the expectations of practitioners who are currently using or will use these techniques. These analyses will help researchers understand pain points and expectations of practitioners which will help them design better techniques. In this thesis, I take a step in this direction by conducting large-scale data analysis and by interviewing and surveying large number of practitioners. By analysing the quantitative and qualitative data, I plan to bring forward the gap between practitioners’ expectations and the research ouput. My thesis sheds light on current state-of-practice in testing in open-source projects, the tools currently used by developers and challenges faced by them during testing. For bug localization, I find that files that are already localized can have an impact on the results and this bias must be removed before running a bug localization algorithm. Furthermore, practitioners have a high expectation when it comes to adopting a new bug localization tool. I also propose a technique to help developers find elements to test. Furthermore, through interviews and surveys, I provide suggestions for developers to create good test cases based on several characteristics such as size and complexity, coverage, maintainability, bug detection etc. In the future, I plan to perform a longitudinal study to understand the causal impact of testing on software quality. Furthermore, I plan to perform an empirical validation of good test cases based on the suggestions received from the practitioners.
format text
author KOCHHAR, Pavneet Singh
author_facet KOCHHAR, Pavneet Singh
author_sort KOCHHAR, Pavneet Singh
title Testing and debugging: A reality check
title_short Testing and debugging: A reality check
title_full Testing and debugging: A reality check
title_fullStr Testing and debugging: A reality check
title_full_unstemmed Testing and debugging: A reality check
title_sort testing and debugging: a reality check
publisher Institutional Knowledge at Singapore Management University
publishDate 2017
url https://ink.library.smu.edu.sg/etd_coll_all/17
https://ink.library.smu.edu.sg/cgi/viewcontent.cgi?article=1037&context=etd_coll_all
_version_ 1712300802533490688