TESTES UNIT?RIOS

DS2T 05/11/2015 20:14:42
#453517
Conheço faz um tempinho, mas nos lugares que trabalhei, nunca usei. E nunca fiz questão de usar nos meus projetos autônomos também.

Estou pensando em começar a usar. Vi alguns exemplos. Mas dá um trabalho legal e começo a me questionar se realmente vale a pena usar.
Se sim, quais métodos devo realizar os testes? Porque se for fazer em tudo, vai ser um trabalho gigante. O que seria considerado um método crítico para um teste unitário?

Fico olhando meu sistema e talvez por falta de prática, eu penso [Ô]poxa, é tão simples fazer o teste na munheca. Esse teste unitário vai só me dar mais trabalho[Ô].

Outra coisa, vale a pena implementar isso num sistema 50% pronto já?
Vi que seguindo os princípios básicos do TDD, eu deveria primeiro implementar o meu teste unitário, para só depois codificar. Então, já comecei errado...

Queria a opinião de vocês!
Obrigado a todos!
KERPLUNK 05/11/2015 20:28:47
#453520
Você precisa calcular esse [Ô]vale a pena[Ô] em tempo. Quando você lança algum projeto para o cliente, muito possivelmente você vai encarar erros que você não previu e vai levar um bom tempo consertando. Esse conserto pode levar à consertos de outras áreas, correlatas ou não. Então você escolhe, gastar 5 horas em testes unitários no desenvolvimento e pegar um número muito maior de erros ou 20 horas num conserto que pode ser infrutífero e gerar ainda mais horas de retrabalho.

Quanto aos métodos para realizar os testes unitários, vai depender e muito do tipo de sistema que está fazendo.
JABA 05/11/2015 20:37:51
#453521
Resposta escolhida
Eu recomendo profundamente essa prática, mesmo em projetos já desenvolvidos, pois acho que as vantagens compensam em muito as desvantagens. TDD é um novo paradigma que trouxeram a existência e acho que praticamente todos teriam dificuldades no começo, pois programar de trás pra frente é algo que dá curto até nos neurônios só de se imaginar. Mas pelo que tenho visto, o pessoal tem elogiado bastante. Na verdade, podemos usar os testes unitários sem se prender ao paradigma TDD, só isso já daria uma boa solidificada no sistema.
NICKOSOFT 07/11/2015 15:42:30
#453605
até a ultima vez q dei uma pesquisada so encontrei métodos legais pra funções matemáticas, nunca algo mais na minha realidade de programas de banco de dados e relatórios....
JABA 07/11/2015 19:34:29
#453610
Citação:

até a ultima vez q dei uma pesquisada so encontrei métodos legais pra funções matemáticas, nunca algo mais na minha realidade de programas de banco de dados e relatórios....



Os testes unitários trabalham mais na lógica de negócios.
NICKOSOFT 07/11/2015 20:49:36
#453611
mesmo assim da pra esperar retornos q pode confirmar se foi gravado ou não no BD
de qq formas os meus testes são bem na unha mesmo :(
KERPLUNK 07/11/2015 23:48:50
#453615
Citação:

:
até a ultima vez q dei uma pesquisada so encontrei métodos legais pra funções matemáticas, nunca algo mais na minha realidade de programas de banco de dados e relatórios....

Os testes unitários trabalham mais na lógica de negócios.


Exatamente. Quando envolve banco de dados, para testes unitários eu uso um banco de dados [Ô]mock up[Ô], com dados bem específicos e previsíveis. Além disso, todas as camadas devem ser MUITO BEM separadas e cada uma com seu teste unitário. Isso complica um pouco para meu caso, onde a minha camada de acesso à dados é uma classe genérica que eu herdo. Mas ainda assim, totalmente possível e plausível.
Existe uma corrente de programadores que defende que se existe banco de dados envolvidos, então não pode ser teste unitário, mas sim Integration Testing e não Unit Testing, ainda que o padrão possa ser chamado de TDD
DS2T 08/11/2015 08:52:55
#453617
Aproveitando o assunto sobre testes, existe alguma ferramenta para testar a entrada de dados numa página(ASP.NET) ou num form(WinForm)?

Exemplo:
Um formulário tem 4 caixas de texto, 1 comboBox e 1 botão.

Existiria uma ferramenta capaz de fazer todos os testes de input (preencher caixa de texto, mudar index do compo, clicar no botão) adicionando valores aleatoriamente, de tamanhos diferentes, conteudo (numeros, alfanumericos) diferentes e procurando alguma exceção?

Estou pensando em começar a fazer uma, acho que pode ser útil para encontrar erros grosseiros na aplicação... Dei uma olhada rápida no google e não encontrei nada. Sabem se existe? Seria basicamente um Bot de usuário.
JABA 08/11/2015 12:19:53
#453618
Você poderia usar o Selenium para isso.

http://www.qualister.com.br/blog/introducao-ao-selenium

http://imasters.com.br/artigo/13317/desenvolvimento/utilizando-a-selenium-ide/

https://seleniumtoolkit.codeplex.com/
DS2T 19/11/2015 15:22:41
#454165
Obrigado a todos que responderam.
Infelizmente não dá pra pontuar mais que uma pessoa.
Tópico encerrado , respostas não são mais permitidas