Bem-vindo: Sex, 29 de Março 2024, 8:59 Pesquisa avançada

Os 4 níveis do programador em relação aos testes

Esta secção é dirigida a todo o tipo de conversas que não se enquadrem nas secções acima. São proibidas conversas com teor racista, religioso, político, pornográfico, violento entre outros semelhantes.

Os 4 níveis do programador em relação aos testes

Mensagempor nuno_nunes » Sáb, 6 de Abril 2013, 19:46

Classificar é uma tarefa difícil, mas vamos tentar agrupar os programadores em 4 níveis em relação aos testes:

1) O atrasado: Ele não sabe o que é um teste. Ele escreve seu código, coloca em produção e nem se lembra que o software pode não funcionar como ele espera.

2) O ingênuo: Ele sabe como escrever testes mas não enxerga muito valor. Normalmente escreve testes por obrigação ou para não passar vergonha diante da equipe. Ele é do tipo que se o build está quebrado e alguém pede para ele consertar, ele comenta o teste e faz git push. Também reclama muito que escrever testes demora muito e ele seria muito mais produtivo se não tivesse que testar.

3) O extremista: Ele valoriza o teste de forma extrema. Para ele, todo código deve ser testado. 100% de cobertura é o objetivo é a maior garantia. Até utiliza técnicas como TDD, BDD e outras, mas o que importa mesmo é ter teste para tudo, inclusive para código que ele não escreveu. Quanto mais teste por linha de código melhor.

4) O experiente: Ele entende que o principal objetivo dos testes é fornecer garantias. Compreende que nem tudo precisa ser testado e nem tudo é viável de testar. Por experiência e prática, ele testa aquilo que pode quebrar e não gasta tempo com testes inúteis que levam tempo demais para serem escritos. Pratica TDD quando faz sentido e não fica preso a “regrinhas”.

Fonte: Rinaldi Fonseca e Revista Espírito Livre


Avatar do usuário
nuno_nunes
 
Mensagens: 3932
Registrado em: 28 Maio, 2012
Localização: Pampilhosa da Serra - Portugal

Re: Os 4 níveis do programador em relação aos testes

Mensagempor Luis Cardoso » Dom, 7 de Abril 2013, 0:11

Eu não sabia que estava no nível 4... Já passei por todos esses níveis (excepto o 2), mas passei do 1 ao 3 enquanto estava a aprender a programar. De início levava algumas chamadas de atenção por não ter testado... Depois passei a testar tudo (tipo 8 ou 80 xD )! Com o tempo, adquiri (parece-me) o nível 4!
ImagemImagem
«Escolhe um trabalho de que gostes, e não terás que trabalhar um só dia na tua vida» - Confúcio
Avatar do usuário
Luis Cardoso
Redator
 
Mensagens: 10455
Registrado em: 26 Maio, 2011
Localização: Portugal

Re: Os 4 níveis do programador em relação aos testes

Mensagempor Claudio Novais » Dom, 7 de Abril 2013, 0:32

Fazes Unit Testing Luís? Isso é das coisas mais importantes que se pode fazer num sistema, mas é também algo que requer trabalho quase redobrado. Na maioria dos casos é difícil estar no mercado a satisfazer modernismos e ao mesmo tempo a produzir tal qualidade.
Avatar do usuário
Claudio Novais
Editor do Ubuntued
 
Mensagens: 16869
Registrado em: 25 Maio, 2011

Re: Os 4 níveis do programador em relação aos testes

Mensagempor Luis Cardoso » Dom, 7 de Abril 2013, 0:42

Claudio Novais (06-04-2013, 23:32) escreveu:Fazes Unit Testing Luís? Isso é das coisas mais importantes que se pode fazer num sistema, mas é também algo que requer trabalho quase redobrado. Na maioria dos casos é difícil estar no mercado a satisfazer modernismos e ao mesmo tempo a produzir tal qualidade.

Como é que tu achas que eu detectei um problema de comunicação com a CmuCam3 e o MSP430, através de uma comunicação por porta RS232? Já para não falar de outros casos...

Lembra-te de uma coisa, se esse teste já é fundamental em software, imagina no hardware! Já viste o que é um semáforo ter uma entrada errada e deixar de funcionar, ou produzir uma saída que aplicava o sinal verde para todas as vias cruzantes? Era o caos... :medo:
ImagemImagem
«Escolhe um trabalho de que gostes, e não terás que trabalhar um só dia na tua vida» - Confúcio
Avatar do usuário
Luis Cardoso
Redator
 
Mensagens: 10455
Registrado em: 26 Maio, 2011
Localização: Portugal

Re: Os 4 níveis do programador em relação aos testes

Mensagempor Claudio Novais » Dom, 7 de Abril 2013, 0:56

Em hardware a coisa funciona mais no sentido controlado que no sentido abrange que existe necessidade de testes unitários. Explicando melhor, no software, há determinadas perspetivas/algoritmos de engenharia de software que basicamente nos dizem que devemos tratar como uma caixa negra (tal como no hardware) cada módulo e então testá-lo através de unidades de teste -- padrões de teste. No caso do Hardware a coisa funciona mais no sentido de autómatos. Claro que se falarmos de coisas mais complexas, acaba por culminar com o software, sem dúvida, mas geralmente as coisas em hardware, creio eu, vão mais no sentido exato, onde a possibilidade de aplicação de autómatos é o ideal.
Avatar do usuário
Claudio Novais
Editor do Ubuntued
 
Mensagens: 16869
Registrado em: 25 Maio, 2011

Re: Os 4 níveis do programador em relação aos testes

Mensagempor Luis Cardoso » Dom, 7 de Abril 2013, 12:55

Claudio Novais (06-04-2013, 23:56) escreveu:Em hardware a coisa funciona mais no sentido controlado que no sentido abrange que existe necessidade de testes unitários. Explicando melhor, no software, há determinadas perspetivas/algoritmos de engenharia de software que basicamente nos dizem que devemos tratar como uma caixa negra (tal como no hardware) cada módulo e então testá-lo através de unidades de teste -- padrões de teste. No caso do Hardware a coisa funciona mais no sentido de autómatos. Claro que se falarmos de coisas mais complexas, acaba por culminar com o software, sem dúvida, mas geralmente as coisas em hardware, creio eu, vão mais no sentido exato, onde a possibilidade de aplicação de autómatos é o ideal.

Mesmo em hardware não se pode ser exacto, mas sim pelo método de padrões, porque ao termos de lidar com algo que tem por interferência o meio onde este se encontra, podes facilmente verificar que não pode ser exacto! E quando se tem de recolher dados do meio, vais ver que exactidão é apenas uma teoria... É por isso, que por vezes o circuito possui uma memória acoplada, não porque o sistema precise obrigatoriamente dela, mas para alojar o LOG resultante desses mesmos testes unitários!

Pegando novamente no exemplo do semáforo, ele não precisa de memória já que se trata de uma programação por padrões, mas no entanto, podes encontrar um circuito de memória acoplado, ao qual os técnicos da manutenção se ligam para ver o que se passou desde a sua última manutenção! Caso detectem anomalias, podem actualizar os módulos de forma a evitar outra anomalia do género!
ImagemImagem
«Escolhe um trabalho de que gostes, e não terás que trabalhar um só dia na tua vida» - Confúcio
Avatar do usuário
Luis Cardoso
Redator
 
Mensagens: 10455
Registrado em: 26 Maio, 2011
Localização: Portugal

Re: Os 4 níveis do programador em relação aos testes

Mensagempor Claudio Novais » Dom, 7 de Abril 2013, 14:48

Certo, mas o semáforo é precisamente uma situação de aplicação de autómatos bem controlados. Claro que estás a tender para robôs dinâmicos e aí claro que tudo se assemelha a software no geral, no sentido de se ter analisar os dados. No entanto, muita da eletrónica que encontramos no dia-a-dia são máquinas de estado, autómatos.
Avatar do usuário
Claudio Novais
Editor do Ubuntued
 
Mensagens: 16869
Registrado em: 25 Maio, 2011

Re: Os 4 níveis do programador em relação aos testes

Mensagempor Luis Cardoso » Dom, 7 de Abril 2013, 15:08

Claudio Novais (07-04-2013, 13:48) escreveu:Certo, mas o semáforo é precisamente uma situação de aplicação de autómatos bem controlados. Claro que estás a tender para robôs dinâmicos e aí claro que tudo se assemelha a software no geral, no sentido de se ter analisar os dados. No entanto, muita da eletrónica que encontramos no dia-a-dia são máquinas de estado, autómatos.

Eu dei o caso do semáforo, porque muitas das vezes o consideram tanto como autómatos como tu referes, mas como está num ambiente considerado agressivo, a sua aplicação não pode ser assim tão simples, porque aquilo que tu indicas pode falhar! Já me aconteceu estar no momento em que um deles falhou devido às graves oscilações que sofria do vento, isso fez com que houvesse uma anomalia não detectada e valeu o bom civismo dos condutores para evitar o caos, pois abrira dois ramos que poderiam dar em desastre, já que um deles, apenas se podia reger pelo semáforo, por não serem visíveis os carros que surgiam...
ImagemImagem
«Escolhe um trabalho de que gostes, e não terás que trabalhar um só dia na tua vida» - Confúcio
Avatar do usuário
Luis Cardoso
Redator
 
Mensagens: 10455
Registrado em: 26 Maio, 2011
Localização: Portugal

Re: Os 4 níveis do programador em relação aos testes

Mensagempor Claudio Novais » Dom, 7 de Abril 2013, 15:14

Eu nem sequer estava a falar de semáforos concretos da estrada xD Estava a falar do conceito de semáforo, aquilo (variável/estado) que deixa ou não avançar ;)
Avatar do usuário
Claudio Novais
Editor do Ubuntued
 
Mensagens: 16869
Registrado em: 25 Maio, 2011

Re: Os 4 níveis do programador em relação aos testes

Mensagempor Luis Cardoso » Dom, 7 de Abril 2013, 15:29

Claudio Novais (07-04-2013, 14:14) escreveu:Eu nem sequer estava a falar de semáforos concretos da estrada xD Estava a falar do conceito de semáforo, aquilo (variável/estado) que deixa ou não avançar ;)

Pois, é o que dá darem nomes aos conceitos iguais aos de objectos físicos xD Pois, eu estive este tempo todo a falar dos semáforos que regem a circulação rodoviária :sneaky:

Embora na teoria, os semáforos possam ser implementados através do uso de simples flip-flops, na prática, isso não é tão simples assim, porque pode dar-se o caso de um deles induzir misturas de estados devido à interferência externa...

Só uma observação, quando ligas um computador, não podes dizer que a memória RAM está vazia, porque ela na realidade está cheia de dados, devido à indução de estados. Então o que é feito, é limpar o conteúdo de cada posição, através de uma opção que as memórias possuem. Porque na realidade, a memória RAM, não é mais do que uma simples Máquina de Estados, e como tal, padece do mesmo problema que o semáforo, que indiquei em cima. Por isso é muito importante, que o hardware se encontre em locais que possam induzir o mínimo de "influência" possível...
ImagemImagem
«Escolhe um trabalho de que gostes, e não terás que trabalhar um só dia na tua vida» - Confúcio
Avatar do usuário
Luis Cardoso
Redator
 
Mensagens: 10455
Registrado em: 26 Maio, 2011
Localização: Portugal

Próximo

Voltar para Seja livre e converse! [OFF-TOPIC]

Quem está online

Usuários navegando neste fórum: Nenhum usuário registrado e 221 visitantes

cron