Test Techniques for System-on-Chip