Abstract
Software engineers work under strict constraints, balancing a complex, multi-phase development process on top of user support and professional development. Despite their best efforts, software engineers experience human errors, which manifest as software defects. While some defects are simple bugs, others can be costly security vulnerabilities. Practices such as defect tracking and vulnerability disclosure help software engineers reflect on the outcomes of their human errors (i.e. software failures), and even the faults that led to those failures, but not the underlying human behaviors. While human error theory from psychology research has been studied and applied to medical, industrial, and aviation accidents, researchers are only beginning to systematically reflect on software engineers' human errors. Some software engineering research has used human error theories from psychology to help developers identify and organize their human errors (mistakes) during requirements engineering activities, but developers need an improved and systematic way to reflect on their human errors during other phases of software development. The goal of this dissertation is to help software engineers confront and reflect on their human errors by creating a process to document, organize, and analyze human errors. To that end, our research comprises three phases: (1) systematization (i.e. identification and taxonomization) of software engineers' human errors from literature and development artifacts into a Taxonomy of Human Errors in Software Engineering (T.H.E.S.E.), (2) evaluation and refinement of T.H.E.S.E. based on software engineers' perceptions and natural language insights, and (3) creation of a human error informed micro post-mortem process and the Human Error Reflection Engine (H.E.R.E.), a proof-of-concept GitHub workflow facilitating human error reflection. In demonstrating the utility of T.H.E.S.E. and our micro post-mortem process, the software development community will be closer to inculcating the wisdom of historical developer human errors, enabling them to engineer higher quality and more secure software.
Library of Congress Subject Headings
Software failures--Evaluation; Errors--Classification; Software engineering--Management
Publication Date
10-2023
Document Type
Dissertation
Student Type
Graduate
Degree Name
Computing and Information Sciences (Ph.D.)
Department, Program, or Center
Computing and Information Sciences Ph.D, Department of
College
Golisano College of Computing and Information Sciences
Advisor
Andrew Meneely
Advisor/Committee Member
Daniel Krutz
Advisor/Committee Member
Mehdi Mirakhorli
Recommended Citation
Meyers, Benjamin S., "Human Error Assessment in Software Engineering" (2023). Thesis. Rochester Institute of Technology. Accessed from
https://repository.rit.edu/theses/11609
Campus
RIT – Main Campus
Plan Codes
COMPIS-PHD