Critical systems are becoming increasingly software intensive, necessitating reliable software to ensure proper operation. Nonhomogeneous Poisson process software reliability growth models are commonly used to characterize fault detection as a function of testing time, which enables quantitative assessment of software reliability. Many early models assumed that the testing-effort was constant throughout software testing. To remove this assumption, researchers have proposed models incorporating testing-effort, yet this significantly increases model complexity to the degree that most previous studies utilized a two-step procedure involving least squares estimation (LSE) and algorithms, including Newton's method to estimate the parameters of a testing-effort model. This approach may limit the quality of the model fit achieved. Moreover, the research trend over the past 30 years has been to propose progressively more complex models, sacrificing practical considerations such as predictive accuracy. This paper proposes a two-step procedure that utilizes the expectation conditional maximization (ECM) algorithm, referred to as the ECM/ECM approach, to obtain the parameter estimates of a software reliability growth model incorporating testing-effort. The results of the proposed approach are compared to past methods as well as a simpler model that does not consider testing-effort to assess whether the additional complexity introduced by testing-effort functions compromises predictive accuracy. Our results indicate that the ECM/ECM approach achieves a better goodness of fit with respect to four measures, including three predictive measures. In some cases, the simpler model omitting testing-effort outperforms methods considering testing-effort. These results suggest that the proposed ECM/ECM approach can achieve better parameter estimates than the previously proposed LSE/MLE approach and that algorithms to improve fit and predictive accuracy may better serve users of software reliability models. [ABSTRACT FROM AUTHOR]