ABSTRACT

For achieving high reliability in software, one must consider the nature of actual defects and the defect finding process, which is necessary to make testing efficient and to ensure that the reliability growth modeling is realistic. This chapter presents a perspective based on the nature of actual defects as described by the detectability profile. The real defects vary significantly in testability and the hard-to-test faults are likely to be found later during testing. The chapter considers software partitioning and how it impacts testing effectiveness. The defect-finding process is initially modeled using the common assumptions of a fixed fault exposure ratio and then refined using actual reliability growth data. The two approaches result in the exponential and the logarithmic Poisson software reliability growth models. The chapter also considers the relationship between test coverage and defect density. It discusses the extent to which ultra-high reliability is achievable.