Understanding Software Development and Testing Practices Public Deposited

http://ir.library.oregonstate.edu/concern/graduate_thesis_or_dissertations/sj139429r

Descriptions

Attribute NameValues
Creator
Abstract or Summary
  • A bad software development process leads to wasted effort and inferior products. In order to improve a software process, it must be first understood. In this work I focus on understanding software processes. The first process we seek to understand is Continuous Integration (CI). CI systems automate the compilation, building, and testing of software. Despite CI rising as a big success story in automated software engineering, it has received almost no attention from the research community. For example, how widely is CI used in practice, and what are some costs and benefits associated with CI? Without answering such questions, developers, tool builders, and researchers make decisions based on folklore instead of data. We use three complementary methods to study the usage of CI in open-source projects. To understand which CI systems developers use, we analyzed 34,544 open-source projects from GitHub. To understand how developers use CI, we analyzed 1,529,291 builds from the most commonly used CI system. To understand why projects use or do not use CI, we surveyed 442 developers. With this data, we answered several key questions related to the usage, costs, and benefits of CI. Among our results, we show evidence that supports the claim that CI helps projects release more often, that CI is widely adopted by the most popular projects, as well as finding that the overall percentage of projects using CI continues to grow, making it important and timely to focus more research on CI. Furthermore, we present a qualitative study of the barriers and needs developers face when using CI. In this paper, we conduct 16 semi-structured interviews with developers from different industries and development scales. We triangulate our findings by running two surveys. The Focused Survey samples 51 developers at a single company. The Broad Survey samples a population of 523 developers from all over the world. We identify trade-offs developers face when using and implementing CI. Developers face trade-offs between speed and certainty (Assurance), between better access and information security (Security), and between more configuration options and better ease of use (Flexibility). We present implications of these trade-offs for developers, tool builders, and researchers. Additionally, we seek to use code and test changes to understand conformance to the Test Driven Development (TDD) process. We designed and implemented TDDViz, a tool that supports developers in better understanding how they conform to TDD. TDDViz supports this understanding by providing novel visualizations of developers’ TDD process. To enable TDDViz’s visualizations, we developed a novel automatic inferencer that identifies the phases that make up the TDD process solely based on code and test changes. We evaluate TDDViz using two complementary methods: a controlled experiment with 35 participants to evaluate the visualization, and a case study with 2601 TDD Sessions to evaluate the inference algorithm. The controlled experiment shows that, in comparison to existing visualizations, participants performed significantly better when using TDDViz to answer questions about code evolution. In addition, the case study shows that the inferencing algorithm in TDDViz infers TDD phases with an accuracy (F-measure) of 87%.
Resource Type
Date Available
Date Copyright
Date Issued
Degree Level
Degree Name
Degree Field
Degree Grantor
Commencement Year
Advisor
Committee Member
Academic Affiliation
Non-Academic Affiliation
Keyword
Subject
Rights Statement
Peer Reviewed
Language
Replaces
Additional Information
  • description.provenance : Approved for entry into archive by Laura Wilson(laura.wilson@oregonstate.edu) on 2017-05-04T22:24:40Z (GMT) No. of bitstreams: 2 license_rdf: 1370 bytes, checksum: cd1af5ab51bcc7a5280cf305303530e9 (MD5) HiltonMichaelE2017.pdf: 841343 bytes, checksum: df1f35ab72bebb8dfdfd6f18b0e6ec68 (MD5)
  • description.provenance : Approved for entry into archive by Julie Kurtz(julie.kurtz@oregonstate.edu) on 2017-05-04T18:56:44Z (GMT) No. of bitstreams: 2 license_rdf: 1370 bytes, checksum: cd1af5ab51bcc7a5280cf305303530e9 (MD5) HiltonMichaelE2017.pdf: 841343 bytes, checksum: df1f35ab72bebb8dfdfd6f18b0e6ec68 (MD5)
  • description.provenance : Made available in DSpace on 2017-05-04T22:24:41Z (GMT). No. of bitstreams: 2 license_rdf: 1370 bytes, checksum: cd1af5ab51bcc7a5280cf305303530e9 (MD5) HiltonMichaelE2017.pdf: 841343 bytes, checksum: df1f35ab72bebb8dfdfd6f18b0e6ec68 (MD5) Previous issue date: 2017-04-17
  • description.provenance : Submitted by Michael Hilton (hiltonm@onid.orst.edu) on 2017-05-03T23:37:55Z No. of bitstreams: 2 license_rdf: 1370 bytes, checksum: cd1af5ab51bcc7a5280cf305303530e9 (MD5) HiltonMichaelE2017.pdf: 841343 bytes, checksum: df1f35ab72bebb8dfdfd6f18b0e6ec68 (MD5)

Relationships

In Administrative Set:
Last modified: 08/04/2017

Downloadable Content

Download PDF
Citations:

EndNote | Zotero | Mendeley

Items