Software reliability growth modeling integrating imperfect debugging, learning effects, and uncertain testing environments | Synapse