Institution: | Slovak University of Technology |
Technologies used: | Hadoop, Hive, Rails, MySQL |
Inputs: | TFS, User Logs, Bug Reports |
Outputs: | Code annotiations describing probability of error occurrences |
Addressed problem
Our work is dedicated to help code reviewers to reveal errors in software projects. We are focused on the code which could be written while software developer was in inappropriate state. The state of software developer has impact on the quality of the code what is our presumption here. The problem itself is in analysing the code and poor capability of code reviewers to find mistakes. Nowadays, we use tools to analyse code and discover antipatterns, smells in code, syntactic error but there is almost none solution to discover all errors which could exist in code. We can however discover errors in runtime. This usually involves inefficiency in code or but at this moment it is usually late.
Description
Very important part of software development is code reviewing. The problem of automated identifying of errors in implemented parts lays is in recognizing specification and partial outputs of reviewed code. However, even correct implementation often suffers from mistakes caused by developer such as ineffectiveness or lack of re-usability. Some of the mistakes could be revealed by monitoring developer's activity. We recognize patterns in developer's productivity to compute the probability of error occurrence using source code management logs and ambient influence of the developer's environment and its attributes. Our intention is to use users' logs and generate rules considering bug reports in the process of model training. For instance, we work with developer's experience and skills in the domain. We also consider other aspects to have impact on the code quality, such as context of time (in the meaning of deadlines, overworking, and late working hours). Also context types such as mood, emotions, physical conditions, actually affects the state of developer and their effectiveness. We do analysis to recognize patterns in developer’s activities and we associate them with the context. These patterns and code reviews enables us to identify problematic code parts. Our experiments and evaluation is based on offline dataset of developer’s activities. We train our method which delivers outputs in form of tags associated with code parts. We simulate the prediction of code errors and compare it to code reviews and bug reports. As a part of evaluation we show that our method is able to predict some errors, however can only cover errors which were already revealed.
References
Zeleník, Dušan - Bieliková, Mária: Code Annotation with Information on Context of its Creation. In: WIKT 2012 : 7th Workshop on Intelligent and Knowledge Oriented Technologies Proceedings, November 22-23, 2012 Smolenice, Slovakia. Bratislava : Nakladateľstvo STU, 2012. - ISBN 978-80-227-3812-5. - S. 53-56 (in slovak)
Zeleník, Dušan: Beyond Code Review: Detecting Errors via Context of Code Creation. In: Personalized Web - Science, Technologies and Engineering : 13th Spring 2013 PeWe Workshop Gabčíkovo, Slovakia April 5, 2013 Proceedings. Bratislava : Vydavateľstvo STU, 2013. - ISBN 978-80-227-3914-6. - S. 109-110