Nos testes de software, o TLC significa 
 aprendizado orientado a testes  . É uma abordagem relativamente nova que enfatiza o aprendizado através dos testes. Em vez de escrever o código primeiro e depois escrever testes posteriormente (o desenvolvimento tradicional orientado a testes ou abordagem de TDD), o TLC se concentra em escrever testes * para explorar * o domínio do problema e direcionar o processo de aprendizado.  
 Veja como isso difere do TDD: 
 * 
 tdd: Começa com um entendimento claro dos requisitos e usa testes para orientar a implementação de uma solução conhecida. Os testes foram projetados para verificar se o código atende às especificações predefinidas.  
 * 
 tlc: Começa com um entendimento menos claro do problema. Os testes são gravados para explorar o espaço do problema, descobrir requisitos e aprender a resolver o problema de maneira eficaz. Os testes atuam como uma forma de experimentação e loop de feedback. O foco está menos em "testes" no sentido tradicional e mais em "aprendizado".  
 Em essência, o TLC é iterativo e exploratório. Você pode escrever um teste que espera falhar, descobrindo comportamento inesperado ou faltando requisitos ao longo do caminho. Esse processo leva a uma compreensão mais profunda do problema e informa o design da solução.   
 TLC é particularmente útil para: 
 * 
 problemas complexos ou mal compreendidos: Onde os requisitos são vagos ou evoluindo. 
 * 
 Aprendendo uma nova tecnologia ou domínio: Os testes ajudam a entender os meandros do sistema que está sendo testado. 
 * 
 Teste exploratório: Quando você deseja descobrir comportamentos inesperados ou casos de borda.   
 Embora a TLC compartilhe semelhanças com testes exploratórios, ele é mais estruturado e envolve o código de escrita (embora muitas vezes pequeno e descartável) para provar ou refutar hipóteses representadas pelos testes. Ele enfatiza o aspecto * aprendizado * mais explicitamente.