Sonoma State University
Department of Computer Science
CS-370: Software Design and Development
Exercise 13: Estimating software defects with the Lincoln index

Objective:

To estimate the number of likely bugs present in a fictitious software product using the Lincoln index.

Lincoln index:

Lincoln index = (E1 * E2) / S

Where

  • E1 = number of bugs found by first tester.
  • E2 = number of bugs found by second tester.
  • S = number of bugs found by both the first and second tester (i.e. the intersection of E1 and E2).

The scenario:

  • Suppose you have three testers working on a software product: Alice, Bob, and Carmen.
  • You've assigned tracking numbers to each bug that Alice, Bob, and Carmen have found.
  • Alice found the set of bugs with tracking numbers: {1, 2, 3, 4, 5}
  • Bob found the set of bugs with tracking numbers: {2, 5, 6, 7}
  • Carmen found the set of bugs with tracking numbers: {1, 2, 8, 9, 10}
  • Note: a tracking number that matches in two software tester's sets of bugs indicates those two testers found the same bug.
  • Note: a tracking number that matches in all three software tester's sets of bugs indicates all three testers found the same bug.

Questions:

  • How could you strategically use the Lincoln index to estimate the total number of bugs Alice, Bob, and Carmen have found?
  • How many bugs are still at large in a worst-case scenario? Explain your answer.

Uploading your solution:

  • This is an individual exercise, not a team exercise.
  • Please upload your answer in either Word (Microsoft), PDF (Acrobat), an image file (i.e. digital scan of a paper document), or as a text file.