Vou comentar os dois tipos menos conhecidos: smoke test e mock objects.
Mock objects ou Objetos Emulados, em português, são utilizados para descrever um caso especial de objetos que imitam objetos reais para teste, também atuam como Objetos Stub, fornecendo dados para o objeto em teste através dos objetos colaboradores. Por isso, eles também podem ser utilizados rotineiramente durante a criação dos cenários de teste.
Smoke test ou Testes de fumaça são verificações simples para busca de grandes erros, que geralmente afetam muitas funcionalidades e são fáceis de se detectar. Eles são geralmente executados antes de outras baterias de testes mais especializadas, pois, se grandes erros forem encontrados, provavelmente uma grande parcela dos outros cenários de verificações também irá falhar. Por isso, os testes de fumaça podem economizar tempo gasto com a execução de outras baterias de testes e com a identificação das causas dos problemas.
O nome deste tipo de teste deve-se aos testes de fumaça realizados em hardware. Se uma placa de hardware não pega fogo ou não solta fumaça durante um teste, então é um primeiro indício que a placa pode ter sido corretamente produzida. Esse termo também é utilizado em outras áreas do conhecimento, por exemplo, existem testes de fumaça para verificar a vedação de encanamentos e de instrumentos de sopro. É pressionado uma fumaça atóxica dentro dos objetos para verificar se existem rachaduras.
Testes de fumaça são geralmente pouco específicos e muito abrangentes, além de rápidos de implementar e de executar. Eles são úteis para capturar erros grandes, principalmente alguns erros de configuração e de ambiente que são facilmente detectados após a instalação do software.
http://www.teses.usp.br/teses/disponiveis/45/45134/tde-02042012-120707/publico/TestesAutomatizados_PauloCheque_Dissertacao.pdf