Abstract
Self-testing is a method to infer the underlying physics of a quantum experiment in a black box scenario. As such it represents the strongest form of certification for quantum systems. In recent years a considerable self-testing literature has been developed, leading to progress in related device-independent quantum information protocols and deepening our understanding of quantum correlations. In this work we give a thorough and self-contained introduction and review of self-testing and its application to other areas of quantum information.