Testing Strategy and Technique for Macro-Based Circuits