What is Component Testing and it's types?