Pergunta

Quando um software é desenvolvido, vários tipos de teste é feito - unidade, integração, funcionais, manual.In meu projeto atual (winforms com sql server), que tem código legado (sem testes), temos muitos erros . Estamos tentando removê-los usando combinação de testes + manual (principalmente a integração)

Mas, ainda alguns bugs pode escapar.

Por exemplo (um cenário hipotético) - se um cliente tiver comprado algum valor das mercadorias para últimos 6 meses, ele deve ser dado algum desconto em compras que ele faz uma vez 6 meses tem estado lapsed.His deve ser atualizado para privilégio <. / p>

Mas, por alguma razão (bug no código) o sistema não está fazendo so.How devemos enfrentar tais situações? Deveríamos ter um script em execução no banco de dados que procura cenários como descrito? Outra extensão do cenário poderia ser, o cliente deve ser enviar um presente, uma vez que ele é privilegiada, mas o sistema está faltando a fazê-lo.

Os pensamentos?

Foi útil?

Solução

"Se nós temos um script em execução no banco de dados que procura cenários como descrito?"

Você quer dizer "colocar um script no banco de dados para corrigir o problema", então não .

NO. Nunca. Sob nenhuma circunstância. Trabalhando em torno de um bug, adicionando lógica de caso especial peculiar é realmente uma idéia muito ruim.

  1. Quando essa lógica peculiar-caso especial tem suas próprias erros, você adicionou o código buggy para tentar e código de buggy correta. A perda líquida.

  2. Quando você tenta melhorar o sistema, você tem essa peculiar lógica de caso especial que não faz qualquer sentido.

    a. Se você tiver sorte, você reparou o erro que era suposto trabalho ao redor, e será redundante. E agora? Que copiar para remover?

    b. Caso contrário, ele irá contradizer outro código. E agora? Qual é o certo?

Se você quer dizer "colocar um script no banco de dados para ajudar a encontrar e depurar o problema", então sim. Por um curto período de tempo, usar todas as ferramentas à sua disposição para encontrar e erros de correção. Uma vez encontrados e corrigidos, este script é então inútil e deve ser excluído.

Se você quer dizer "escrever um script no banco de dados para testar a aplicação", então sim. Isso é o que scripts de teste de unidade são para. Usa-os.

É muito melhor para criar testes de unidade que é para criar scripts que você colocar no banco de dados. Os testes unitários são a melhor abordagem.

Outras dicas

Você deve ter um teste de banho automatizado no lugar. Este teste-suite irá implementar todos os cenários que a especificação exige. Como não se pode esperar seis meses para testar se as obras descontando, a implementação real é substituído por um implementação simulada (o exemplo é em java, mas os mesmos princípios se aplicam em outros idiomas), que, por exemplo 'simula' que 6 meses se passaram. Pode-se usar afirmações para automatizar os testes.

Depois de ter toda test-suite pronto, se todos os testes passam depois (como antes) uma refatoração / alteração do código, pode-se ter certeza de que nenhuma característica quebrou devido à refatoração.

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