Code Coverage
Desde quando vi o Tim Koschützki anunciando o Code Coverage no CakePHP fiquei muito animado. A cobertura do código é umas das ferramentas que sempre achei interessante! Minha animação foi abalada por um problema que eu, e outras pessoas, encontramos com o XDebug nas versões novas. Mas graças a união de conhecimento do grupo de CakePHP em português, tudo foi resolvido.
Mas afinal, o que é code coverage? Vamos fazer uma analogia, quando você vai comer um bolo de chocolate, você desejaria que a cobertura e os granulados estivessem em toda a superfície do bolo, certo? Ter o bolo coberto completamente te garante que, a cada pedaço, o sabor será delicioso. Este é o benefício que temos por ter todo o bolo coberto, todos os pedaços são muito saborosos. Recentemente falei que a prática do TDD traz confiança no desenvolvimento, mas e se não testarmos todo o nosso código? Alguns trechos não serão tão confiáveis e poderão se tornar um problema no futuro. Ai que entra a cobertura de código. Code Coverage é uma métrica para estabelecer o quanto seu código está confiável, o quanto podemos nos beneficiar com a confiança que o TDD nos proporciona.
Mas não é assim tão simples. Nós podemos ter um bolo completamente coberto, porém a cobertura não é muito boa, ela pode ter passado do ponto. Mesmo com 100% de cobertura, o bolo não vai ser tão gostoso.
No desenvolvimento de software, um código completamente coberto não significa que o sistema está correto ou está confiante. Mesmo que seus testes acessem a todos os métodos, eles podem estar defasados ou mal formulados. O que eu quero dizer com isso? A cobertura de teste é uma ótima métrica de qualidade do seu software, mas isto não significa que seu código está correto, ela não pode ser a sua única métrica. Utilizem a cobertura ao seu favor, busquem a cobertura completa, mas não se iludam com os resultados.
Ahh, sem contar que ver seu código todo testado traz uma sensação incrível de realização. Imagino se é a mesma de um confeiteiro vendo algum cliente se deliciando com um dos seus bolos.
Tags: code coverage, tdd




