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?