How programmers make sure that their software is correct
I find it interesting that while logic bugs (e.g. off by one errors, switched if conditions, etc) make up less than 1&#x2F;3 of bugs I encounter day to day, it seems to comprise of about 80% of all discussion around testing.<p>Bugs caused by misunderstood or unexpected interactions between subsystems and specification bugs seem to predominate these days IME but discussion about sophisticated ways of dealing with these things seems fairly scant.