Beispiel #1
0
        /// <summary>
        /// Calculates traditional defect density for specified code.
        /// Total code size is LOC at the moment 
        /// (added code minus removed code).
        /// </summary>
        /// <param name="code">Code set to calc metric for.</param>
        /// <returns>Defect density.</returns>
        public static double CalculateTraditionalDefectDensity(this CodeBlockSelectionExpression code)
        {
            code = code.Added().Fixed();

            return CalculateDefectDensity(
                code.CalculateLOC() + code.ModifiedBy().Deleted().CalculateLOC(),
                code.CalculateNumberOfDefects()
            );
        }
Beispiel #2
0
        /// <summary>
        /// Calculates alternative defect density for specified code.
        /// Total code size is added LOC at the moment.
        /// </summary>
        /// <param name="code"></param>
        /// <returns></returns>
        public static double CalculateDefectDensity(this CodeBlockSelectionExpression code)
        {
            code = code.Added().Fixed();

            return CalculateDefectDensity(
                code.CalculateLOC(),
                code.CalculateNumberOfDefects()
            );
        }
Beispiel #3
0
        public static double CalculateDefectCodeSizePerDefect(this CodeBlockSelectionExpression code, string revision)
        {
            code = code.Fixed();

            int numberOfDefects = code.CalculateNumberOfDefects(revision);

            return numberOfDefects > 0 ?
                code.CalculateDefectCodeSize(revision) / numberOfDefects
                :
                0;
        }
Beispiel #4
0
        public static double CalculateDefectDensity(this CodeBlockSelectionExpression code, string revision)
        {
            code = code
                .Commits().TillRevision(revision)
                .CodeBlocks().Again().AddedInitiallyInCommits().Fixed();

            return CalculateDefectDensity(
                code.CalculateLOC(),
                code.CalculateNumberOfDefects(revision)
            );
        }