1.      Explain quantitatively (made up numbers are OK) why it may take less effort to do multiple test phases and inspection phases, rather than just one single test phase at the end.  Identify any assumptions you make.


2.      Defect Prevention

a.      Identify three defect detection practices and three defect prevention practices. 

b.      Why are the defect prevention practices only applicable at a higher maturity level?  (i.e. Why can't you apply the defect prevention practices until you have most of the defect detection practices in place?)


3.      The below diagram shows the cost of quality and defect densities for several projects in your organization.

50

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

Cost of Quality

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

40

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

Defect Density

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

30

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

20

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

10

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

Project A

 

 

Project B

 

 

Project C

 

 

Project D

 

 

a.      What can you infer from the data about quality practices in Project C?

b.      What are the assumptions and limitations underlying your inferences?


c.       What can you infer about the maturity level of the organization?

4.      Here is the DRE table for a project: 

Phase of Origin

Phase Found

 

Req

Des

Code

UT

IT

ST

Field

Total

Cum

Req

5

 

 

 

 

 

 

5

5

Des

1

17

 

 

 

 

 

18

23

Code

0

3

52

 

 

 

 

55

78

UT

0

0

6

0

 

 

 

6

84

IT

2

14

25

0

5

 

 

46

130

ST

8

24

6

0

1

42

 

81

211

Field

36

15

10

0

0

14

0

75

286

Total

52

73

99

0

6

56

0

286

 

Cum

52

125

224

224

230

286

286

 

 

 

(Illustrative example, not real data)

a.      What is the DRE for each phase (Req, Design, Impl, UT, IT, ST)?


b.      How effective are design inspections at making sure that ensuring that design defects are contained in the phase i.e. detected soon after they are created?


c.       Overall, how effective has the project been at removing defects before release?


d.      If the code size is 220 KLOC, what is the injection rate for coding defects?


e.      What does the data indicate to you about the effectiveness of requirements practices and requirements reviews? Indicate your reasoning briefly.


f.        From the data, which phases stand out as being most desperately in need of process improvement?  Indicate your reasoning briefly.


g.      This project claims that their use of a new programming language has resulted in a dramatic drop in coding bugs compared to previous projects.  How would you go about verifying their claim based on statistical evidence?


5.      Your company develops and sells several software products, and has a log of the defect reports received for each product.

a.      If you wanted to find out which of the software products are most badly in need of improvement, what quality tool would you use?


b.      You suspect that the number of defect reports received for the different products may be influenced heavily by the number of licenses sold for each.  How can you determine whether this is the case?


c.       If you wanted to use the defect log as a starting point to systematically improve the quality of the current and future software, how would you go about it?  Note that each entry in the defect log currently contains only a description of the problem and the product it was associated with.


6.      You are working on a team that is building software for automated regulation of home comfort systems: heating, a/c, humidity levels etc.   Your team already keeps track of defects found during development (number of bugs found and the date they were found), and you decide it would be neat to try out the concept of reliability growth curves and see if it adds value.  You enter the defect data for the last few months into a statistical reliability tool, and get a curve like this:

Failures / 1000 hrs

50

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

40

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

30

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

20

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

10

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

1

2

3

4

5

6

7

8

9

10

11

12

13

14

15

 

Time

a.      What are the prerequisites for your curve to be meaningful as a measure of reliability?


b.      Identify some other practices that your team could follow that would improve the meaningfulness of this curve?  (Need not repeat what you listed in previous question)


c.       Your team does fresh builds every week, and each build adds/changes roughly similar amounts of code – usually about 100-200 new lines, and 5-10 changes.  What observations would you make about the quality of these changes from the graph?


d.      What are the limitations on the meaningfulness of your observations?


e.      What would you conclude about the quality of the product and about the development process from the curves?


f.        If you were selling your product to a large real estate concern that planned to install it in thousands of homes, and they wanted to make sure that your software and system would work reliably as advertised, is there a way they could check this?