Open In App
Related Articles

Mills’ Error Seeding Model – Software Engineering

Like Article
Save Article
Report issue

Mills’error seeding model proposed an error seeding method to estimate the number of errors in a program by introducing seeded errors into the program. From the debugging data, which consists of inherent errors and induced errors, the unknown number of inherent errors could be estimated. If both inherent errors and induced errors are equally likely to be detected, then the probability of k induced errors in r removed errors follows a hypergeometric distribution which is given by

    $$ P(k;N, n_1, r)=\frac{\binom{n_1}{k}\binom{N}{r-k}}{\binom{N+n_1}{r}}, \; k=1, 2, ...., r$$

where N = total number of inherent errors n1 = total number of induced errors r = total number of errors removed during debugging k = total number of induced errors in r removed errors r – k = total number of inherent errors in r removed errors Since n1, r, and k are known, the MLE of N can be shown to be

    $$\hat{N} = [N_0]+1$$



If $N_0$       is an integer, then $N_0$       and $N_0 + I$       are both the MLEs of N. 


  1. It is expensive to conduct testing of the software and at the same time, it increases the testing effort.
  2. This method was also criticized for its inability to determine the type, location, and difficulty level of the induced errors such that they would be detected equally likely as the inherent errors.

Another realistic method for estimating the residual errors in a program is based on two independent groups of programmers testing the program for errors using independent sets of test cases. Suppose that out of a total number of N initial errors, the first programmer detects n1 errors (and does not remove them at all) and the second independently detects r errors from the same program. Assume that k common errors are found by both programmers. If all errors have an equal chance of being detected, then the fraction detected by the first programmer (k) of a randomly selected subset of errors (e.g., r) should equal the fraction that the first programmer detects (n1) of the total number of initial errors N. In other words, 


so that an estimate of the total number of initial errors, N, is 


The probability of exactly N initial errors with k common errors in r detected errors by the second programmer can be obtained using a hypergeometric distribution as follows: 

    $$ P(k;N, n_1, r)=\frac{\binom{n_1}{k}\binom{N-m}{r-k}}{\binom{N}{r}} $$

and the MLE of N is 


which is the same as the above.

The Mills’ Error Seeding Model, also known as the Mills’ Model, is a software testing technique that was developed by E.K. Mills in the early 1980s. The model is based on the idea that faults, or errors, are intentionally introduced into the software code in order to test the effectiveness of the software’s testing process.

Mills’ Error Seeding Model consists of the following steps:

  1. Introduce Errors: Errors are intentionally introduced into the software code, in a controlled and systematic manner.
  2. Conduct Testing: The software is then tested to see if the introduced errors are detected.
  3. Measure Results: The results of the testing process are measured and analyzed to determine the effectiveness of the software testing process.
  4. Improve Testing Process: Based on the results of the testing process, the testing process can be improved to increase its effectiveness in detecting errors.
  5. The Mills’ Error Seeding Model is useful for improving the software testing process and for evaluating the effectiveness of the testing process. It can help to identify weaknesses in the testing process and to make improvements that will result in a more effective and efficient testing process.

Objectives of Mills’ Error Seeding Model

  1. Defect Prediction: Using the known error seeds, estimate the total number of flaws or faults in a software system.
  2. Software Quality Assessment: Test the software’s quality by purposefully inserting known flaws into the code and gauging how well defect detection techniques work.
  3. Metric Establishment: By measuring the frequency of faults in the code, establish metrics for evaluating the software’s robustness and dependability.
  4. Process Improvement: Lead efforts towards continuous improvement by offering insights into the efficacy and efficiency of the software development and testing processes.
  5. Cost Estimation: Extrapolate from the found error seeds to estimate the possible expenses related to repairing software flaws.
  6. Benchmarking: Establishing a benchmark will help in the selection of best practices for upcoming projects by allowing comparisons between various software development and testing methods.
  7. Improved Debugging: By concentrating on particular error-prone regions, you can facilitate more effective debugging methods that result in faster issue discovery and resolution.

Advantages of Mills’ Error Seeding Model

  1. Improved Testing Process: The Mills’ Error Seeding Model helps to improve the software testing process by intentionally introducing errors into the code and evaluating the effectiveness of the testing process in detecting those errors.
  2. Increased Confidence in Software Quality: By detecting and correcting errors in the software, the Mills’ Error Seeding Model can increase confidence in the software’s quality and reliability.
  3. Improved Efficiency: By identifying weaknesses in the testing process and making improvements, the Mills’ Error Seeding Model can lead to a more efficient and effective testing process.
  4. Early Detection of Errors: The Mills’ Error Seeding Model allows for early detection of errors in the software development process, reducing the likelihood that these errors will be discovered by users or customers after release.
  5. Objective Evaluation: The model provides an objective evaluation of the testing process, allowing for the identification of specific areas that need improvement.
  6. Cost-effective: The Mills’ Error Seeding Model can be a cost-effective way to improve the testing process, as it allows for the identification of potential issues early in the development process, which can prevent more expensive fixes later on.
  7. Increased Customer Satisfaction: By improving software quality and reliability, the Mills’ Error Seeding Model can increase customer satisfaction and loyalty, leading to improved business outcomes.
  8. Iterative Improvement: The Mills’ Error Seeding Model allows for iterative improvement of the testing process, with each iteration leading to further improvements and refinements in the testing process.
  9. Better Resource Allocation: By identifying areas of the software that require more testing and debugging, the Mills’ Error Seeding Model can lead to better allocation of testing resources, reducing the likelihood of errors slipping through the testing process undetected.

Disadvantages of Mills’ Error Seeding Model

  1. Increased Development Time: Introducing errors into the software code and conducting thorough testing can increase the time required to develop the software.
  2. Limited Scope: The Mills’ Error Seeding Model is limited in scope to the testing process and does not address other aspects of software development such as design or coding.
  3. Artificial Introduction of Errors: The Mills’ Error Seeding Model involves artificially introducing errors into the software code, which may not accurately reflect the types of errors that could occur in real-world usage scenarios.
  4. Risk of False Positives/Negatives: The model may not accurately identify all errors in the software, leading to the risk of false positives (identifying errors that do not actually exist) or false negatives (failing to identify existing errors).
  5. Inaccurate Results: The accuracy of the model’s results can be impacted by the selection of errors to be seeded, the testing methodology, and other factors, which can lead to inaccurate results and undermine the effectiveness of the model.
  6. Difficulty in Interpreting Results: The Mills’ Error Seeding Model can produce large amounts of data and metrics, which can be difficult to interpret and act on effectively.
  7. Resistance to Change: The model may be met with resistance from developers or other stakeholders who may be resistant to the idea of intentionally introducing errors into the software, even for testing purposes.
  8. Difficulty in Implementing: Implementing the Mills’ Error Seeding Model requires significant expertise in software testing and quality assurance, making it difficult to implement for organizations without a dedicated testing team or resources.


A structured framework for assessing the dependability of testing processes and spotting any flaws early in the development lifecycle is provided by Mills’ Error Seeding Model for organizations. Development teams can assess the completeness of testing procedures and improve their capacity to identify and handle unforeseen problems by knowingly adding known faults.

Last Updated : 01 Feb, 2024
Like Article
Save Article
Share your thoughts in the comments
Similar Reads