Automatizado maneira de detectar testes que não pode falhar, verificados em obter por cobertura de código mínimo?

StackOverflow https://stackoverflow.com/questions/105330

  •  01-07-2019
  •  | 
  •  

Pergunta

Eu tenho um dev, que vai ficar em torno de nossa cobertura de código escrevendo testes que nunca falham.

O código é apenas atroz, mas os testes não pegá-lo, porque eles assert (true).

I revisão de código, mas eu não posso fazer everyones trabalho para eles, o tempo todo. Como você recebe as pessoas como este motivados para fazer um bom software?

Existe um plugin de construção para a detecção de testes que não pode falhar?

C #, testes MbUnit.

Foi útil?

Solução

motiviation real vem de dentro. Algumas pessoas vão jogar com o sistema sempre que podem, por vezes, por nenhuma outra razão do que podem. Outros fazê-lo simplesmente porque eles são hacks.

Dito isto, assumindo que o seu gestor, ter uma reunião "Venha a Jesus" com o desenv. Se isso ainda não funcionar, há sempre a porta.

Se você não é o gerente, em seguida, levá-la até os canais adequados.

Outras dicas

Eu acho que você quase respondeu a pergunta para si mesmo lá. Se você tem alguém trabalhar para você ou com você (você não está nenhum se você é gerente deste dev limpar), então se eles não estão fazendo o trabalho corretamente, então certamente há procedimentos que estão disponíveis para torná-lo claro para essa pessoa que eles não estão produzindo trabalho para um padrão aceitável.

É o dev novo para TDD? Talvez eles precisam de alguma taxa de matrícula em escrever testes bons etc. Caso contrário, eles precisam de um pontapé na bunda e tê-lo salientou a eles que os testes são como se não mais importante do que o código que ele / ela está produzindo.

Ah sim, e na coisa plugin, esquecer que, exatamente o mesmo código de revisão que você está fazendo deve ser bom o suficiente.

Você realmente deve especificar o idioma / quadro que você está usando.

No caso mais simples, eu suponho que deve ser fácil de detectar cordas assert(true) com simples grep-ping.

Você pode sempre tentar um teste com o lixo para os valores de configuração do aplicativo.

Quaisquer testes que passam são suspeitos?

Em vez de gastar tempo na procura de testes que não pode falhar, como sobre como estender os testes de um bit - tornam o código de falha de muitas maneiras. Isso

  • Mostre-lhe como escrever melhores testes
  • forçá-lo a corrigir o seu código e impedir que mais código ruim de ser verificados em

Um pedaço de código de buggy você tem que usar seria um bom ponto de partida - você deve ter certeza que funciona ...

Tome a interface ele está testando e reduzi-lo a forma mais simples a sua. Em outras palavras, tomar as assinaturas de classe / método e só adicionar o código necessário para compilar além disso. Executar seus testes contra isso. Pergunte a ele por seus testes estão passando quando o programa não faz nada.

Code Review, por dois ou mais desenvolvedores que já estão infectadas testar, é provavelmente a melhor maneira de obter o dev em questão para ver que o teste de unidade automatizado é realmente não é tão difícil, nem incomum. Ter dois desenvolvedores teste infectados em cada revisão irá reforçar a importância dos testes de unidade de qualidade para ele. Além disso, atribuindo-lhe revisões de código de outro desenvolvedor que está bem testado irá ajudá-lo a aprender a unidade de teste.

Você deve ter um olhar para fazer algumas mutação testar , para detectar testes fracos. Nester , (o equivalente Net de Jester ) é uma ferramenta que você pode achar útil.

Por favor, deixe-nos saber como você vai!

Update: me deparei com: "Por que a maioria dos desenvolvedores não testes de unidade de gravação, ainda?" e pensei que seria bom ler aqui também.

Eu acho que você precisa para tentar levá-lo a escrever um teste falhando em primeiro lugar. Tente levá-lo para esse hábito. Muitas vezes ppl novo para testes de unidade têm dificuldade em escrevê-los.

Além disso, existem algumas ferramentas que podem ajudá-lo a "explorar todos os caminhos de código possíveis". Eu sugiro que você dê uma olhada, PEX que irá gerar testes automatizados, e ele provavelmente irá quebrar seu código ... Embora isso possa não ser uma ótima soultion, tentar promoveu o conceito de um compartilhada código de base.

Tire suas devs para o programa par, é muito mais difícil de ser "preguiçoso" quando você está trabalhando com outra pessoa na mesma função, e vai espalhar a propriedade do código ao redor. Você parece não estar fazendo isso, já que você fala sobre " sua " código. Ele pode ser supprising quanto você pode ter feito se houver 2 pessoas que trabalham no mesmo trabalho, ele irá aumentar a qualidade por um monte.

Também unidade testes não são o Santo Graal para erradicar todos os problemas ... Eles devem ser uma das ferramentas que você tem à sua disposição.

O que é sua exigência de cobertura de código?

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