Browse Prior Art Database

Method to determine confidence of quality of software by profiling the developer based on a confidence metric generated from static source analysis coupled correlated with commit history

IP.com Disclosure Number: IPCOM000236463D
Publication Date: 2014-Apr-29
Document File: 4 page(s) / 120K

Publishing Venue

The IP.com Prior Art Database

Abstract

Method to determine confidence of quality of software by profiling the developer based on a confidence metric generated from static source analysis coupled correlated with commit history

This text was extracted from a PDF file.
This is the abbreviated version, containing approximately 40% of the total text.

Page 01 of 4

Method to determine confidence of quality of software by profiling the developer based on a confidence metric generated from static source analysis coupled correlated with commit history

Quality is essential to producing a successful piece of software. From reliability to security, a software application is very unlikely to be successful if quality can not be assured and maintained. In addition to this, poor quality in some software applications can cause life threatening consequences.

   The cost to business of having to fix software defects after the release of an application is very high, compared to fixing these defects during the development life cycle. If a software development team can determine defects when they are developing the software these post-GA costs can be greatly reduced. A positive side effect of this is also a perceived higher quality to current and potential customers, generating higher sales.

   Due to these reasons an effective way of analysing the quality and confidence that software developers have in their software is hugely advantageous both for reliability, security and safety, as well as financially. This invention intends to propose a method to determine and improve this confidence.

   As well as maintaining versions of source code files, SCM applications record a lot of information about changes to source code. For each change, basic information, such as who made the change is recorded. This proposal intends to use some of this information to determine whether a development team can be confident in a change, and if not take some automated action to attempt to improve this confidence. At very least this proposal will highlight a potential issue, that can be addressed manually.

   This article introduces the concept of a developer profile as a way of storing a developers experience in certain code areas. For example, if programming in Java the profile could store experience in using certain Java Libraries, like java.io. The profile could also track experience in area's of the product code.

   This record of experience grows with every change the developer makes. The invention uses this profile whenever the developer commits a code change. If the developer is deemed as having below an acceptable level of experience in the code area changed, a code review is automatically triggered. The developer with the most experience in the area of the code change is assigned to the review. If they deem the code change to be good, the original developers experience is increased and the change is not highlighted as low confidence. If no developer has experience in the area, a low confidence flag is set and subsequent action can be taken.

   The idea relies on being able to establish a confident score for a particular developer and an area of code This is done by looking at whether the developer

wrote the original code, has maintained the code, or how much similar code the committer has authored or maintained. It can be thought of as...