Páginas

quarta-feira, 23 de novembro de 2011

Dica rápida: debug desabilitado no Visual Studio

Hoje estava trabalhando em um projeto e precisei debuggar uma solução. Só que o debug estava desabilitado, tanto o botão de "triângulo deitado verde" quanto o F5. Achei estranho, mas acabei percebendo o porquê: o projeto que estava ajustado como StartUp Project era do tipo Modeling Project. Foi só mudar isso para um projeto que gera um executável, como um Console Application ou Web, que o debug voltou a ficar disponível.

Projetos de banco de dados também fazem o debug ficar indisponível.

Óbvio, mas não tão claro...

[]'s

quarta-feira, 2 de novembro de 2011

Pex + TDD

Olá, pessoal!

Na última edição da .NET Magazine (nº 90), saiu meu artigo falando sobre a ferramenta Pex e seu uso dentro do TDD.

imageO Pex (http://research.microsoft.com/en-us/projects/pex/) é uma ferramenta de geração de código de testes automatizada, ou seja, ela gera as unit tests para você a partir do código-fonte já desenvolvido. Em um primeiro momento não vemos como isso pode se relacionar com TDD, já que a idéia desta técnica é escrever testes antes do código do programa que estamos desenvolvendo. Realmente ferramentas como o Pex não têm utilidade neste cenário quando utilizado o conceito de testes baseado em exemplos. Testes baseados em exemplos são aqueles nos quais nós temos uma entrada de dados e um resultado conhecido, e testamos o nosso código para garantir que o processamento produza a saída esperada.

Para fazer sentido o uso de ferramentas de geração de testes automatizada, precisamos de um conceito de testes de unidade diferente. Precisamos pensar nossos testes como teorias.

Podemos considerar que uma teoria é falsa se encontrarmos alguma condição que a invalide. Por exemplo, se tivermos uma teoria que “a cor dos olhos de uma pessoa é sempre igual para ambos os olhos”, basta que encontremos uma pessoa com heterocromia para rejeitarmos a idéia. É baseado neste conceito que o Pex pode ser utilizado numa abordagem TDD. Ao criarmos um teste de unidade parametrizável (ou seja, que receba dados de entrada), o Pex pode explorar o código em busca de situações de entrada que façam nosso programa falhar (encontrar furos no código que levem a bugs), e assim podemos refatorá-lo (da maneira que o TDD dita).

É claro que no artigo (http://www.devmedia.com.br/post-22581-Geracao-automatica-de-testes-numa-abordagem-TDD.html) eu explico isso melhor e com mais detalhes, não vou fazê-lo aqui para que os editores da revista fiquem bravos comigo, rs. Mas segue um link onde essa idéia de testes com teorias é explorado: http://shareandenjoy.saff.net/tdd-specifications.pdf.

[]’s e até a próxima!