Why are both specification-based and structure-based testing techniques useful?