Topics in Metrics for Software Testing - Drexel CCIspiros/teaching/SE320/slides/metrics.pdf ·...

40
Topics in Metrics for Software Testing [Reading assignment: Chapter 20, pp. 314-326]

Transcript of Topics in Metrics for Software Testing - Drexel CCIspiros/teaching/SE320/slides/metrics.pdf ·...

Page 1: Topics in Metrics for Software Testing - Drexel CCIspiros/teaching/SE320/slides/metrics.pdf · Topics in Metrics for Software Testing [Reading assignment: Chapter 20, pp. 314-326]

Topics in Metrics forSoftware Testing

[Reading assignment: Chapter 20, pp. 314-326]

Page 2: Topics in Metrics for Software Testing - Drexel CCIspiros/teaching/SE320/slides/metrics.pdf · Topics in Metrics for Software Testing [Reading assignment: Chapter 20, pp. 314-326]

Quantification

• One of the characteristics of a maturingdiscipline is the replacement of art byscience.

• Early physics was dominated byphilosophical discussions with noattempt to quantify things.

• Quantification was impossible until theright questions were asked.

Page 3: Topics in Metrics for Software Testing - Drexel CCIspiros/teaching/SE320/slides/metrics.pdf · Topics in Metrics for Software Testing [Reading assignment: Chapter 20, pp. 314-326]

Quantification (Cont’d)

• Computer Science is slowly followingthe quantification path.

• There is skepticism because so much ofwhat we want to quantify it tied to erratichuman behavior.

Page 4: Topics in Metrics for Software Testing - Drexel CCIspiros/teaching/SE320/slides/metrics.pdf · Topics in Metrics for Software Testing [Reading assignment: Chapter 20, pp. 314-326]

Software quantification

• Software Engineers are still countinglines of code.

• This popular metric is highly inaccuratewhen used to predict:– costs– resources– schedules

Page 5: Topics in Metrics for Software Testing - Drexel CCIspiros/teaching/SE320/slides/metrics.pdf · Topics in Metrics for Software Testing [Reading assignment: Chapter 20, pp. 314-326]

Science begins withquantification

• Physics needs measurements for time,mass, etc.

• Thermodynamics needs measurementsfor temperature.

• The “size” of software is not obvious.• We need an objective measure of

software size.

Page 6: Topics in Metrics for Software Testing - Drexel CCIspiros/teaching/SE320/slides/metrics.pdf · Topics in Metrics for Software Testing [Reading assignment: Chapter 20, pp. 314-326]

Software quantification

• Lines of Code (LOC) is not a good measuresoftware size.

• In software testing we need a notion of sizewhen comparing two testing strategies.

• The number of tests should be normalized tosoftware size, for example:– Strategy A needs 1.4 tests/unit size.

Page 7: Topics in Metrics for Software Testing - Drexel CCIspiros/teaching/SE320/slides/metrics.pdf · Topics in Metrics for Software Testing [Reading assignment: Chapter 20, pp. 314-326]

Asking the right questions

• When can we stop testing?• How many bugs can we expect?• Which testing technique is more effective?• Are we testing hard or smart?• Do we have a strong program or a weak test

suite?• Currently, we are unable to answer these

questions satisfactorily.

Page 8: Topics in Metrics for Software Testing - Drexel CCIspiros/teaching/SE320/slides/metrics.pdf · Topics in Metrics for Software Testing [Reading assignment: Chapter 20, pp. 314-326]

Lessons from physics• Measurements lead to Empirical Laws

which lead to Physical Laws.• E.g., Kepler’s measurements of

planetary movement lead to Newton’sLaws which lead to Modern Laws ofphysics.

Page 9: Topics in Metrics for Software Testing - Drexel CCIspiros/teaching/SE320/slides/metrics.pdf · Topics in Metrics for Software Testing [Reading assignment: Chapter 20, pp. 314-326]

Lessons from physics (Cont’d)

• The metrics we are about to discussaim at getting empirical laws that relateprogram size to:– expected number of bugs– expected number of tests required to find

bugs– testing technique effectiveness

Page 10: Topics in Metrics for Software Testing - Drexel CCIspiros/teaching/SE320/slides/metrics.pdf · Topics in Metrics for Software Testing [Reading assignment: Chapter 20, pp. 314-326]

Metrics taxonomy

• Linguistic Metrics: Based on measuringproperties of program text without interpretingwhat the text means.– E.g., LOC.

• Structural Metrics: Based on structuralrelations between the objects in a program.– E.g., number of nodes and links in a control

flowgraph.

Page 11: Topics in Metrics for Software Testing - Drexel CCIspiros/teaching/SE320/slides/metrics.pdf · Topics in Metrics for Software Testing [Reading assignment: Chapter 20, pp. 314-326]

Lines of code (LOC)• LOC is used as a measure of software

complexity.• This metric is just as good as source listing

weight if we assume consistency w.r.t. paperand font size.

• Makes as much sense (or nonsense) to say:– “This is a 2 pound program”

• as it is to say:– “This is a 100,000 line program.”

Page 12: Topics in Metrics for Software Testing - Drexel CCIspiros/teaching/SE320/slides/metrics.pdf · Topics in Metrics for Software Testing [Reading assignment: Chapter 20, pp. 314-326]

Lines of code paradox

• Paradox: If you unroll a loop, you reduce thecomplexity of your software ...

• Studies show that there is a linearrelationship between LOC and error rates forsmall programs (i.e., LOC < 100).

• The relationship becomes non-linear asprograms increases in size.

Page 13: Topics in Metrics for Software Testing - Drexel CCIspiros/teaching/SE320/slides/metrics.pdf · Topics in Metrics for Software Testing [Reading assignment: Chapter 20, pp. 314-326]

Halstead’s program length

program. in the

objects) (data operandsdistinct ofnumber the= n

operator.) single a as treatedare

end) ...(begin operators (Paired program. in the

(keywords) operatorsdistinct ofnumber the= n

n log n + n log n = H

2

1

222121

LOCLength Program :WARNING !

Page 14: Topics in Metrics for Software Testing - Drexel CCIspiros/teaching/SE320/slides/metrics.pdf · Topics in Metrics for Software Testing [Reading assignment: Chapter 20, pp. 314-326]

Example of program length

48 7 log 7 + 9 log 9 = H1.0) 1, x,z, pow, 0, (y, 7 = n

/)(minus), - *, =,! while,(sign), =,- <,(if, 9 = n

22

2

1

if (y < 0) pow = - y;else pow = y;z = 1.0;while (pow != 0) { z = z * x; pow = pow - 1; }if (y < 0) z = 1.0 / z;

Page 15: Topics in Metrics for Software Testing - Drexel CCIspiros/teaching/SE320/slides/metrics.pdf · Topics in Metrics for Software Testing [Reading assignment: Chapter 20, pp. 314-326]

Example of program length

48 7 log 7 + 9 log 9 = H temp)list, k, last, N, 1, (j, 7 = n

if) >,[], +, -, +,+ <,=, (for, 9 = n

22

2

1

for ( j=1; j<N; j++) { last = N - j + 1; for (k=1; k <last; k ++) { if (list[k] > list[k+1]) { temp = list[k]; list[k] = list[k+1]; list[k+1] = temp; } } }

Page 16: Topics in Metrics for Software Testing - Drexel CCIspiros/teaching/SE320/slides/metrics.pdf · Topics in Metrics for Software Testing [Reading assignment: Chapter 20, pp. 314-326]

Halstead’s bug prediction

bugs 0.0753000

7) + (9 log 31) + (25 = B

bugs 0.049 3000

7) + (9 log 21) + (16= B

operands ofnumber total the= N

operators ofnumber total the= N

operandsdistinct ofnumber the= n

operatorsdistinct ofnumber the= n

3000

)n + (n log )N + (N = B

2

2

2

1

2

1

21221

!

!

t Example:Bubble Sor

le:tion ExampExponentia

Page 17: Topics in Metrics for Software Testing - Drexel CCIspiros/teaching/SE320/slides/metrics.pdf · Topics in Metrics for Software Testing [Reading assignment: Chapter 20, pp. 314-326]

How good areHalstead’s metrics?

• The validity of the metric has beenconfirmed experimentally many times,independently, over a wide range ofprograms and languages.

• Lipow compared actual to predicted bugcounts to within 8% over a range ofprogram sizes from 300 to 12,000statements.

Page 18: Topics in Metrics for Software Testing - Drexel CCIspiros/teaching/SE320/slides/metrics.pdf · Topics in Metrics for Software Testing [Reading assignment: Chapter 20, pp. 314-326]

Structural metrics

• Linguistic complexity is ignored.• Attention is focused on control-flow and

data-flow complexity.• Structural metrics are based on the

properties of flowgraph models ofprograms.

Page 19: Topics in Metrics for Software Testing - Drexel CCIspiros/teaching/SE320/slides/metrics.pdf · Topics in Metrics for Software Testing [Reading assignment: Chapter 20, pp. 314-326]

Cyclomatic complexity

• McCabe’s Cyclomatic complexity isdefined as: M = L - N + 2P

• L = number of links in the flowgraph• N = number of nodes in the flowgraph• P = number of disconnected parts of the

flowgraph.

Page 20: Topics in Metrics for Software Testing - Drexel CCIspiros/teaching/SE320/slides/metrics.pdf · Topics in Metrics for Software Testing [Reading assignment: Chapter 20, pp. 314-326]

Property of McCabe’s metric

• The complexity of several graphsconsidered together is equal to the sumof the individual complexities of thosegraphs.

Page 21: Topics in Metrics for Software Testing - Drexel CCIspiros/teaching/SE320/slides/metrics.pdf · Topics in Metrics for Software Testing [Reading assignment: Chapter 20, pp. 314-326]

Examples ofcyclomatic complexity

L=1, N=2, P=1M=1-2+2=1

L=4, N=4, P=1M=4-4+2=2

L=4, N=5, P=1M=4-5+2=1

L=2, N=4, P=2M=2-4+4=2

Page 22: Topics in Metrics for Software Testing - Drexel CCIspiros/teaching/SE320/slides/metrics.pdf · Topics in Metrics for Software Testing [Reading assignment: Chapter 20, pp. 314-326]

Cyclomatic complexityheuristics

• To compute Cyclomatic complexity of aflowgraph with a single entry and a singleexit:

• Note:– Count n-way case statements as N binary

decisions.– Count looping as a single binary decision.

decisionsbinary ofnumber total 1 M +!

Page 23: Topics in Metrics for Software Testing - Drexel CCIspiros/teaching/SE320/slides/metrics.pdf · Topics in Metrics for Software Testing [Reading assignment: Chapter 20, pp. 314-326]

Compound conditionals• Each predicate of each compound condition

must be counted separately. E.g.,

A&B&CA&B&C

A B&CA

A_

B&C

B&C___

A&B&C_____

A A

A_

C

B_

B C

C _

M = 2

M = 3

M = 4

Page 24: Topics in Metrics for Software Testing - Drexel CCIspiros/teaching/SE320/slides/metrics.pdf · Topics in Metrics for Software Testing [Reading assignment: Chapter 20, pp. 314-326]

Cyclomatic complexity ofprogramming constructs

2

2

M = 2

1. if E then A else B2. C

1

l

m

K2 3 ...1. case E of2. a: A3. b: B …k. k-1: Nl. end casem. L

M = (2(k-1)+1)-(k+2)+2=K-1

1

4

2

3

M = 2

1. loop A2. exit when E B3. end loop4. C

2

11. A B C …2. Z

M = 1

Page 25: Topics in Metrics for Software Testing - Drexel CCIspiros/teaching/SE320/slides/metrics.pdf · Topics in Metrics for Software Testing [Reading assignment: Chapter 20, pp. 314-326]

Applying cyclomatic complexity toevaluate test plan completeness

• Count how many test cases are intended toprovide branch coverage.

• If the number of test cases < M then one ofthe following may be true:– You haven’t calculated M correctly.– Coverage isn’t complete.– Coverage is complete but it can be done with

more but simpler paths.– It might be possible to simplify the routine.

Page 26: Topics in Metrics for Software Testing - Drexel CCIspiros/teaching/SE320/slides/metrics.pdf · Topics in Metrics for Software Testing [Reading assignment: Chapter 20, pp. 314-326]

Warning

• Use the relationship between M and thenumber of covering test cases as aguideline not an immutable fact.

Page 27: Topics in Metrics for Software Testing - Drexel CCIspiros/teaching/SE320/slides/metrics.pdf · Topics in Metrics for Software Testing [Reading assignment: Chapter 20, pp. 314-326]

Subroutines &M

Nm+kNcLm+kLc00

NmLm+kNc+2Lc

Lm+kLc-Nm-kNc+20Lm+kLc-Nm-kNc+2

Lm+k-Nm+2Lc-Nc-2+2=Lc-Nc=McLm+Lc-Nm-Nc+k+2

Main NodesMain LinksSubnodesSublinks

Main MSubroutine MTotal M

Embedded Common Part

Subroutine for Common Part

Page 28: Topics in Metrics for Software Testing - Drexel CCIspiros/teaching/SE320/slides/metrics.pdf · Topics in Metrics for Software Testing [Reading assignment: Chapter 20, pp. 314-326]

When is the creation of asubroutine cost effective?

• Break Even Point occurs when the totalcomplexities are equal:

• The break even point is independent ofthe main routine’s complexity.

1-k

k M

k 1)-(kM

k M-kM

M k -kM

M 1)-k(M

N-L 1)-N-k(L

kN-L )N-k(L

2kN-N-LL 2kN-N-kLL

c

c

cc

cc

cc

cccc

cccc

cmcmcmcm

=

=

=

=

=

=

+=

+++=++

Page 29: Topics in Metrics for Software Testing - Drexel CCIspiros/teaching/SE320/slides/metrics.pdf · Topics in Metrics for Software Testing [Reading assignment: Chapter 20, pp. 314-326]

Example• If the typical number of calls to a

subroutine is 1.1 (k=1.1), the subroutinebeing called must have a complexity of11 or greater if the net complexity of theprogram is to be reduced.

11 1-1.1

1.1 M

c==

Page 30: Topics in Metrics for Software Testing - Drexel CCIspiros/teaching/SE320/slides/metrics.pdf · Topics in Metrics for Software Testing [Reading assignment: Chapter 20, pp. 314-326]

Cost effective subroutines(Cont’d)

1) ally toasymptotic decreases M calls, more(for

1 999

1000 M 1000,k

1.5 2

3 M 3,k

2) M when occurseven (break

2 1

2 M 2,k

effective)cost not

is once callonly you subroutine a (creating

M 1,k

c

c

c

c

c

c

!==

===

=

===

"==

Page 31: Topics in Metrics for Software Testing - Drexel CCIspiros/teaching/SE320/slides/metrics.pdf · Topics in Metrics for Software Testing [Reading assignment: Chapter 20, pp. 314-326]

Cost effective subroutines(Cont’d)

1-k

1 + 1 =

1-k

k = M

:k and Mbetween iprelationsh The

c

c

Page 32: Topics in Metrics for Software Testing - Drexel CCIspiros/teaching/SE320/slides/metrics.pdf · Topics in Metrics for Software Testing [Reading assignment: Chapter 20, pp. 314-326]

Relationship plotted as a function

• Note that the function does not make sensefor values of 0 < k < 1 because Mc < 0!

• Therefore we need to mention that k > 1.

0 1

1

Mc

k

Page 33: Topics in Metrics for Software Testing - Drexel CCIspiros/teaching/SE320/slides/metrics.pdf · Topics in Metrics for Software Testing [Reading assignment: Chapter 20, pp. 314-326]

How good is M?

• A military software project applied the metricand found that routines with M > 10 (23% ofall routines) accounted for 53% of the bugs.

• Also, of 276 routines, the ones with M > 10had 21% more errors per LOC than thosewith M <= 10.

• McCabe advises partitioning routines withM > 10.

Page 34: Topics in Metrics for Software Testing - Drexel CCIspiros/teaching/SE320/slides/metrics.pdf · Topics in Metrics for Software Testing [Reading assignment: Chapter 20, pp. 314-326]

Pitfalls

• if ... then ... else has the same M as aloop!

• case statements, which are highlyregular structures, have a high M.

• Warning: McCabe’s metric should beused as a rule of thumb at best.

Page 35: Topics in Metrics for Software Testing - Drexel CCIspiros/teaching/SE320/slides/metrics.pdf · Topics in Metrics for Software Testing [Reading assignment: Chapter 20, pp. 314-326]

Rules of thumb based on M

• Bugs/LOC increases discontinuously for M > 10• M is better than LOC in judging life-cycle

efforts.• Routines with a high M (say > 40) should be

scrutinized.• M establishes a useful lower-bound rule of

thumb for the number of test cases requiredto achieve branch coverage.

Page 36: Topics in Metrics for Software Testing - Drexel CCIspiros/teaching/SE320/slides/metrics.pdf · Topics in Metrics for Software Testing [Reading assignment: Chapter 20, pp. 314-326]

Software testingprocess metrics

• Bug tracking tools enable the extraction ofseveral useful metrics about the software andthe testing process.

• Test managers can see if any trends in thedata show areas that:– may need more testing– are on track for its scheduled release date

• Examples of software testing process metrics:– Average number of bugs per tester per day– Number of bugs found per module– The ratio of Severity 1 bugs to Severity 4 bugs– …

Page 37: Topics in Metrics for Software Testing - Drexel CCIspiros/teaching/SE320/slides/metrics.pdf · Topics in Metrics for Software Testing [Reading assignment: Chapter 20, pp. 314-326]

Example queries applied to abug tracking database

• What areas of the software have the mostbugs? The fewest bugs?

• How many resolved bugs are currentlyassigned to John?

• Mary is leaving for vacation soon. How manybugs does she have to fix before she leaves?

• Which tester has found the most bugs?• What are the open Priority 1 bugs?

Page 38: Topics in Metrics for Software Testing - Drexel CCIspiros/teaching/SE320/slides/metrics.pdf · Topics in Metrics for Software Testing [Reading assignment: Chapter 20, pp. 314-326]

Example data plots• Number of bugs versus:

– fixed bugs– deferred bugs– duplicate bugs– non-bugs

• Number of bugs versus each major functionalarea of the software:– GUI– documentation– floating-point arithmetic– etc

Page 39: Topics in Metrics for Software Testing - Drexel CCIspiros/teaching/SE320/slides/metrics.pdf · Topics in Metrics for Software Testing [Reading assignment: Chapter 20, pp. 314-326]

Example data plots (cont’d)• Bugs opened versus date opened over time:

– This view can show:• bugs opened each day• cumulative opened bugs

• On the same plot we can plot resolved bugs,closed bugs, etc to compare the trends.

Page 40: Topics in Metrics for Software Testing - Drexel CCIspiros/teaching/SE320/slides/metrics.pdf · Topics in Metrics for Software Testing [Reading assignment: Chapter 20, pp. 314-326]

You now know …

• … the importance of quantification• … various software metrics• … various software testing process

metrics and views