Software reliability modelling

When should testing stop, and when is a release safe? Probabilistic models that estimate reliability from failure data.

Software is an intellectual product, and its development still resists full automation. At the same time, society depends on software more heavily every year, and a single defect can bring down a system or cause a serious accident.

The traditional route runs from requirements through design and coding to a final testing phase, where defects are removed until the product is reliable enough to ship. That raises two quantitative questions: how much testing is enough, and when is it safe to release.

We study probabilistic models that answer them from the failure data observed during testing. Our work centres on software reliability growth models based on non-homogeneous Poisson processes (NHPP), and extends to self-exciting models using Hawkes processes, interval estimation by parametric bootstrap, and long-range failure prediction — always with both estimation accuracy and practical usability in mind.

Research highlights in this area

Software from this area

pysrat Python

A Python package for fitting and analysing NHPP-based software reliability models.

Install

Rsrat R

An R package for evaluating software reliability from fault data.

Rphsrm R

Phase-type software reliability models (PHSRM) for R.

msrat R

An R package that assesses software reliability using development metrics.

gof4srm R

Goodness-of-fit tests for software reliability models (Kolmogorov–Smirnov, EIC).

phsrm Java

A Java implementation of phase-type software reliability models.

Unsupported

SRATS2010 C

The earlier version of the SRATS Excel add-in.

Unsupported