Understanding Situation Coverage In Software Program Testing