Self Testing Of Quantum Systems A Review