Pergunta

Existe uma boa ferramenta para gerar casos de teste de unidade dado dizer um projeto .NET ou Java, gera casos de teste de unidade que cobrem uma cobertura de código quase 100%. O número de casos de teste pode ser directamente proporcional à complexidade do código cyclomatic (quanto maior o assentamento de lacetes e as condições maior a complexidade cyclomatic), onde a superior a complexidade cyclomatic, quanto maior o conjunto de casos de teste são gerados. Eu não estou esperando que ele seja totalmente funcional (dizer que eu estou indo para construir os testes de unidade e executá-lo após a sua sido gerado), mas eu diria que ele pode ter um estilo de modelo no caso de teste onde você está para modificar o caso que se adapte às suas necessidades pretendidos. Mas também deve ter um método teardown configuração adequada e e é bom o suficiente para detectar se objetos fictícios para teste de unidade deve ser usado caso haja quaisquer dependências. Assim, há uma ferramenta que existe?

Foi útil?

Solução

Para .NET, a Microsoft tem Pex que esperamos ir mainstream para .NET 4.0, juntamente com Código . Eu recomendo assistir ao vídeo Channel 9.

Parece-me que este tipo de coisa é muito bom para as classes muito impulsionado data-- analisadores etc. eu não posso ver que eu muitas vezes começar com ele, mas um útil ferramenta para ter em seu arsenal, no entanto.

Outras dicas

Para C # (ou .NET em geral), PEX pode ser essa ferramenta. Ele funciona no nível do IL, e tentativas de forçar seu caminho em todos os ramos. Ele foi descoberto com sucesso uma ampla gama de erros (na BCL etc).

Embora pareça contra-Intuitivo, você também pode estar interessado em estruturas de geração de teste aleatórios. A investigação tem demonstrado que ele pode ser tão eficaz em encontrar bugs do que abordagens sistemáticas baseadas em cobertura, como você sugere.

Confira Randoop tanto para .NET e Java. Ele funciona através da geração de uma sequência mais ou menos aleatória de chamadas de método, e contratos de cheques, acidentes etc. É totalmente automático.

Além disso, você pode querer verificar algumas outras ferramentas de teste aleatório com base em QuickCheck , por exemplo, para Java, Scala, F #. que são mais parecidos com Pex, ou seja, você dá uma especificação ou teste de unidade parametrizada, e a ferramenta verifica-lo por um número de argumentos de entrada gerados.

Descobri que este "parametrizada" maneira de escrever testes de unidade é realmente muito mais natural em pelo menos 60% dos casos, e encontra muito mais erros.

Para Java, você pode verificar EvoSuite , que é open source e atualmente ativa (aviso legal, eu sou um de seus colaboradores). Ver também relacionado questão para uma lista de mais ferramentas .

Para Java, tente JUnit-Tools . Tem próprio plugin eclipse junto com boa documentação.

Licenciado em: CC-BY-SA com atribuição
Não afiliado a StackOverflow
scroll top