O programador profissional precisa de testes unitários?  XML
Índice dos Fóruns » Arquitetura de Sistemas
Autor Mensagem
jbernab
What is classpath?
[Avatar]

Membro desde: 24/07/2006 12:01:41
Mensagens: 6
Localização: São Paulo - SP
Offline

nadele wrote:Essa discussão é realmente inútil, como muitos testes unitários por aí que não testam nada e são feitos por estagiários de saco cheio como o Leonardo falou!


Pois é testes unitarios sem fazer TDD, e feitos por estagiarios de saco cheio, pareceria ser unicamente um desperdiço, não são esses testes unitarios que eu pelo menos me refiro.

Agora testes unitarios no contexto do TDD fazem toda a diferença. Eu por exemplo trabalhei em projetos de software embarcados, repetidoras microondas, centrais telefônicas para suporte de serviços de chamadas massivas com cargas ultra altas, e um monte de produtos que se você não tivesse feito TDD o prejuiço seria gigantesco.

Tem que entender que Teste Unitario como estamos falando aqui de TDD na verdade nada tem a ver com testes e sim com design, nos ajudam a formalizar qual é o objetivo, eles te ajudam a pensar no teu design e te ajudam a que você possa evoluir teu design fazendo refactoring sem medo de quebrar alguma coisa, e sair da ideia de equipe que esta ganhando não se mexe, e passar para em todo momento eu mexo no codigo porque posso melhorar ele continuamente porque tenho uma rede de segurança para me indicar o que quebrei.


Cara, primeiro defina PROFISSIONAL. O que é um PROFISSIONAL? Escolha abaixo:


Nenhuma das opções acima, talvez profissional seja alguem que tem vergonha de ver quanto seus bugs atrapalham a vida de muita gente, alguem que tem orgulho daquilo que produz, alguem que esta a procura constante de excelência.

Digamos que um cirurgião que não tem um processo para contar a quantidade de gases que são usadas no paciente para quando fechar ele eles possam ter um "assert" dando a conta original, não é um teste que agrega valor depois de fechado, agrega valor durante o "procedimento", assim como testes unitários nos permitem sair da implementação de uma feature com certeza de que estamos fazendo aquilo que imaginamos que faríamos no inicio.

O cirurgião que corre esse risco sabendo que o ideal é contar as gases, ele é mais profissional ou menos profissional daquele que toma o cuidado de conta-las?


Abraços,
Juan

www.TeamWare.com.br
Developing Highly Effective
Software Development Teams
[WWW] [MSN]
aleck
Virtual Machine Man
[Avatar]

Membro desde: 27/03/2006 08:08:33
Mensagens: 811
Localização: Rio de Janeiro
Offline

nadele wrote:
Luca wrote:

Programador profissional é aquele que faz programa para viver. Os que fazem programas ou frameworks para aprender ou para ter seu próprio modo de fazer as coisas, são diletantes.



A vida seria muito chata se isso fosse verdade. E o pior é que muitas vezes o pessoal do segundo grupo acaba ganhando muito mais e conseguindo muito mais sucesso do que o pessoal do primeiro grupo. Mas não são profissionais, porque um programador profissional é .... (vide resposta 3)



Diletante: O que se ocupa de qualquer assunto por gosto, e não por obrigação.
Profissional: Pessoa que faz uma coisa por profissão.
Inveja: Sentimento de cobiça à vista da felicidade, da superioridade de outrem


http://alexandresoli.wordpress.com

Aquele que duvida e não investiga torna-se não só infeliz mas também injusto. (Pascal)

No mundo, apenas há duas maneiras de subirmos, ou graças à nossa habilidade, ou mediante a imbecilidade dos outros (Jean de La Bruyère)
[WWW] [MSN]
Luca
Moderador
[Avatar]

Membro desde: 06/09/2002 14:30:10
Mensagens: 5406
Localização: São Paulo/SP ou Paraty/RJ
Offline

Olá

aleck wrote:Diletante: O que se ocupa de qualquer assunto por gosto, e não por obrigação.
Profissional: Pessoa que faz uma coisa por profissão.
Inveja: Sentimento de cobiça à vista da felicidade, da superioridade de outrem


Repare que na minha resposta eu NÃO exclui o profissional que trabalha por prazer que foi sempre o que eu tentei fazer desde que me formei engenheiro em 1970.

E não entendi porque incluiu inveja na sua mensagem. Você acha que alguém faz frameworks por inveja? Ou que eu tenho inveja de quem faz? Explique-se.

[]s
Luca

Dare Obasanjo (Program Manager at Microsoft)
"The folks I know from across the industry who have to build large scale Web services on the Web today at Google, Yahoo!, Facebook, Windows Live, Amazon, etc are using RESTful Web services. The only times I encounter someone with good things to say about WS-* is if it is their job to pimp these technologies or they have already "invested" in WS-* and want to defend that investment."


CEP, JMS, JMX e coisas afins (ou não)
http://lucabastos.blogspot.com/
[Email] [WWW]
pcalcado
Moderador
[Avatar]

Membro desde: 08/03/2004 17:19:35
Mensagens: 5169
Localização: Sydney - Australia
Offline

Como um 'profissional' fica confidente para refatorar um sistema sem testes unitários (e demais) automatizados?

Phillip Calçado "Shoes"
http://fragmental.tw/
http://blog.fragmental.com.br/
"It is unfortunate that much of what is called 'object-oriented programming today is simply old style programming with fancier constructs." - Alan Kay
[Email] [WWW] [Yahoo!] [MSN]
peczenyj
Moderador
[Avatar]

Membro desde: 26/03/2006 23:25:37
Mensagens: 2761
Localização: Rio de Janeiro
Offline

Em uma realidade alternativa eu sou um excelente programador ABAP e meus códigos resolvem 100% dos problemas dos clientes.

Os testes nunca encontram bugs, mas eu não faço testes unitários. Meus codigos fontes utilizam uma lógica que para mim é trivial, utilizo recursos arcanos e otimizações de forma totalmente obfuscada.

Por mais que a minha empresa me considerasse O cara, e eu era super profissional em todos os momentos, não deixei entidades do tipo "testes unitarios", documentação ou mesmo comentários de código uteis. O sistema funcionava mesmo assim.

Um dia eu resolvi sair do meu emprego e programar os bits de um satélite que vai investigar um planeta distante... e a empresa pediu para um grupo de 6 desenvolvedores que fizesse uma pequena alteração no sistema... o resultado dessa história é: não deixei nada que ajudasse uma outra equipe e MESMO que o meu código tivesse comentarios totalmente esclarecedores, como a equipe teria certeza que uma modificação em uma função não teria impacto em algum lugar obscuro, muito dificil de testar manualmente?

Em outra realidade eu sou um programador ABAP mediano. Faço TDD e TUDO o que eu desenvolvo possui uma mega suite de testes. 2 anos após a minha saída um grupo de 6 pessoas pegaram os meus testes, javadocs e as wikis cheias de coisa divertida. Eles tem que mudar varias coisas e se sentem seguros pois existe uma entidade que testa o codigo e ja avisa que tem algo estranho. Provavelmente alguns testes terão que ser reescritos mas é facil com os artefatos que eu deixei pra tras.

Provavelmente esse cenário é menos pior do que o outro em termos de manutenção.

http://pacman.blog.br

'Não importa quanto alguém se dedique à tarefa. Ninguém consegue fazer a água da cascata cair para cima.'
[WWW]
aleck
Virtual Machine Man
[Avatar]

Membro desde: 27/03/2006 08:08:33
Mensagens: 811
Localização: Rio de Janeiro
Offline

Luca wrote:Olá

aleck wrote:Diletante: O que se ocupa de qualquer assunto por gosto, e não por obrigação.
Profissional: Pessoa que faz uma coisa por profissão.
Inveja: Sentimento de cobiça à vista da felicidade, da superioridade de outrem


Repare que na minha resposta eu NÃO exclui o profissional que trabalha por prazer que foi sempre o que eu tentei fazer desde que me formei engenheiro em 1970.

E não entendi porque incluiu inveja na sua mensagem. Você acha que alguém faz frameworks por inveja? Ou que eu tenho inveja de quem faz? Explique-se.

[]s
Luca


Eu estava quotando o nadele

Agregando ao post: When TDD goes bad

This message was edited 2 times. Last update was at 22/03/2008 07:51:42


http://alexandresoli.wordpress.com

Aquele que duvida e não investiga torna-se não só infeliz mas também injusto. (Pascal)

No mundo, apenas há duas maneiras de subirmos, ou graças à nossa habilidade, ou mediante a imbecilidade dos outros (Jean de La Bruyère)
[WWW] [MSN]
 
Índice dos Fóruns » Arquitetura de Sistemas
Ir para:   
Powered by JForum 2.1.8 © JForum Team