  Context:The extent of post-release use of software affects the number of
faults, thus biasing quality metrics and adversely affecting associated
decisions. The proprietary nature of usage data limited deeper exploration of
this subject in the past. Objective: To determine how software faults and
software use are related and how an accurate quality measure can be designed.
Method: New users, usage intensity, usage frequency, exceptions, and release
date and duration measured for complex proprietary mobile applications for
Android and iOS. Utilized Bayesian Network and Random Forest models to explain
the interrelationships and to derive the usage independent release quality
measure. Investigated the interrelationship among various code complexity
measures, usage (downloads), and number of issues for 520 NPM packages and
derived a usage-independent quality measure from these analyses, applied it on
4430 popular NPM packages to construct timelines for comparing the perceived
quality (issues) and our derived measure of quality for these packages.Results:
We found the number of new users to be the primary factor determining the
number of exceptions, and found no direct link between the intensity and
frequency of software usage and software faults. Release quality expressed as
crashes per user was independent of other usage-related predictors, thus
serving as a usage independent measure of software quality. Usage also affected
quality in NPM, where downloads were strongly associated with numbers of
issues, even after taking the other code complexity measures into
consideration. Conclusions: We expect our result and our proposed quality
measure will help gauge release quality of a software more accurately and
inspire further research in this area.

Software Engineering