Monday, June 18, 2012

Software quality metrics

In the software world the impetus for any advanced software solution comes from a business opportunity.  In order to best optimise the software for the intended need and with these business requirements in mind, companies of all kinds form metrics to use in different ways monitoring the progress of a software solutions life.  These metrics range innumerably from general metrics used for upper management and decision making to very minute metrics that cover individual lines of code.  Some of the types of information used to generate metrics are execution time, resources needed, total defects existing, number of lines of code, number of developers working on a project.  Through the combination of these factors we can generate many types of metrics that speak to different levels of efficiency and provide useful decision making information to managers.


Some examples of metrics commonly used in the development atmosphere include: total defects existing - defects repaired, resources allocated vs resources consumed, test cases per line of code.


Existing defects - repaired defects: 


This metric is crucial to the development and testing team and can also be seen to gauge progress from the project manager's point of view.  As defects are closed they are removed from the system, and how that number fluctuates given the influx of new defects says much about the team, the software and the plan going forward.


Resources allocated vs. resources consumed:


This metric is used mainly from a managerial standpoint where they can overwatch the progress and resources used to reallocate where ever necessary to attempt to remedy or better the project.  This metric takes into account the software and hardware tools needed in the development process over time as well as the manpower needed to produce these products.  This could lead to decisive changes made in consideration of the business requirements.  It may entail the purchasing of additional or newer hardware and software, or it may mean the addition or removal of team members depending on more specific metrics used to monitor individual progress.


Test cases per line of source code:


This metric is important in code coverage.  Specifically in unit testing where individual functions should be tested thoroughly to establish confidence within a product.  Though 100% coverage could seem ideal in this case, multiple tests of code per line though tedious would bring about higher confidence in the quality of the code being created.

No comments:

Post a Comment