Branch Guided Metrics For Functional And Gate-Level Testing