Fault Aware Software Engineering (FASE)
Maryjane Betrand · 2019
Human factors play a significant role in software development. When the human element is not considered in software development, it may lead to faulty software which may cause delays in software delivery. Faults in software are mostly because of human errors, which consequently results in software failure. Therefore, the ability to model developer-fault relationship will subsequently lead to the production of a proactive adaptive recommendation system that will profile developers' characteristics against fault characteristic. Subsequently, reducing the number of faults developers seed into code. The overall aim of this research is to reduce the number of faults developers introduce into code by modelling a developer-fault relationship which will be implemented into a profoundly new adaptive IDE plug-in. The objectives of this study are: to establish the personalities of developers that influence the introduction of fault in code by the developer; to determine the characteristics of faults that are influenced by the human personality; to identify the relationship between the fault characteristics and human characteristics; and model the relationship between the fault characteristics and human personality. This study provides conceptual knowledge, reports findings, and presents both real and hypothesised challenges facing software engineering community. The study will evaluate the personality of software developers using the IPIP-NEO five-factor-personality test and the SZZ algorithm to evaluate faults found in code from Open source repositories. The result of this study will be used for the implementation of the model in a proof-of-concept IDE plug-in that adapts to developers, helping them avoid introducing faults they are individually prone.