A Theoretical and Empirical Analysis of Program Spectra Diagnosability