domingo, 9 de novembro de 2008

Quem testa o botão vermelho?

Para aqueles que possuem a atividade de teste de software o que vem a ser falado não é novidade. Sempre, acredite, o software vai apresentar problemas durante o desenvolvimento. Não duvidando da competência da equipe que o desenvolve, mas pelo fato de serem humanos, os desenvolvedores podem cometer erros. A pergunta do título é simples. Quem irá testar o botão vermelho (aquele que exige a operação mais complicada e/ou no caso de todas as outras darem errados)?

Fora este cenário ainda pode-se pensar em situações como sistemas cirúrgicos, de segurança, aéreos, militares, etc. Como é possível simular situações que não são esperadas. Como é possível provar que funciona um software que não pode dar errado?

Fazendo uma analogia, imagine o que seria de Davi se a pedra não derrubasse o Golias. No mínimo ele ficaria machucado. Para executar o arremesso da pedra Davi deve ter calculado, estudado a posição do vento, condições de altura, movimento da atiradeira, peso da pedra, etc. Será que realmente isto ocorreu? Independente se foi bem estudado ou não vale se pensar que, muito provavelmente, a ira de Golias seria bem maior após uma tentativa de o derrubarem. E representando esta analogia em tempos atuais (mas não tão atuais assim) pode-se imaginar que o esforço que tiveram pra se reerguer em Hiroshima poderia ser revertido para revidar o ataque caso a bomba caísse sem surtir o efeito que era previsto.

Com o tempo passa-se a ficar um pouco neurótico. Será que o software do equipamento que será utilizado para auxiliar na realização de uma cirurgia em mim (um exemplo) foi testado adequadamente? E se faltar energia, o cirurgião poderá realizar todos os procedimentos manualmente para me manter vivo????

Calma, segundo o TMM nível 5 o teste "é um processo com o objetivo de prevenir defeitos" (o que dará assunto para um próximo post). Basicamente, não será necessário testar (entenda-se por testes manuais) de fato o meu software. Poderá até ser realizado um ciclo de testes para "garantir" alguma coisa (que funciona, que não funciona, que atende os requisitos, etc) mas não será tão necessário já que todos os defeitos foram prevenidos.

Mas a pergunta continua, você se colocaria de cobaia para um teste de erro de um sistema cirúrgico ou daria uma martelada em uma bomba* para provar que uma tremulação durante o transporte não iria a fazer entrar em atividade?


* Sei que uma bomba não é um software, é só um exemplo para mostrar um erro grave que pode ser cometido e envolve risco


Imagens (por ordem que aparecem):
[1] https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEj7knLItxCr0h8IlXr8lrYpziL6my0toU5lxTOM6Gp7vic5hvo1dcOrTJm3Ajm-qjVqHgKWiN-nNLWI4PV-9KX-k8AkFlfCFziItDZYEBbVmjPBUh7Oz-T1nhCtAWIpjLTNRz4U4_MG7EtK/s1600-h/bot%C3%83%C2%A3o+vermelho.jpg acessado em 09/11/2008
[2] http://www.palavradaverdade.net/Humor/charge0420-20Davi20e20Golias.gif
acessado em 09/11/2008
[3] Eu mesmo que fiz para o post! ;)

11 comentários:

  1. Edwinnn..
    Em primeiro lugar, me desculpa por ontem!! =D~ Não fiz por maL!
    Em segundo lugar, gostei mto do texto muito bem escrito, viu mocinho... ah... não me colocaria de cobaia não... é verdade que qq erro pode causar acontecimentos desastrosos..
    desenhos?? preciso NEM comentar que já vou roubar mais um... tu deixa?! hahaha...
    adoro tuuu bestão!
    :*

    ResponderExcluir
  2. Edwin!!!!
    cara muito bom o post!!
    show de bola.
    tipo, não me colocaria de cobaia não.
    É verdade que uma bomba não é um software, mas também é verdade que um software é uma bomba e ainda mais xiando. uahuahuahauh
    Não consigo imagina o TMM 5 funcionando na prática, porém acho muito interessante. mas se vc diz que funciona eu acredito! heheh

    falo cara!!!

    ResponderExcluir
  3. Como sempre escrevendo sempre muito bem... =D

    Te adoro...nem precisava dizer vc já sabe =D

    beijos

    ResponderExcluir
  4. Muito bom o post... mas não podemos generalizar, TMM manda a gente previnir, mas isso não invalida o fato que temos que testar de todo jeito... como você mesmo disse que produz o software são humanos e humanos erram, então por que não as pessoas que estão previnindo os erros não teriam falhas... no final acho que estamos muito longe de ter um software sem bugs.

    ResponderExcluir
  5. Tarcy,

    Tomara que não seja necessário fazer um teste para verificar se o LHC não vai chegar a um resultado destruidor:

    "...alguns físicos dizem que eles poderiam interagir com a matéria normal da Terra e iniciar uma reação em cadeia que consumiria o planeta inteiro.

    Muitos e muitos estudos dizem que isso não vai acontecer. Mas como decidir o que fazer, se o risco, embora baixíssimo, envolve a destruição da Terra? Sir Martin Rees, o astrônomo real britânico, escreveu um livro inteiro ("Hora Final", ou "Our Final Hour", no original) para alertar sobre experimentos como esse, que, embora com uma probabilidade muito baixa, têm chance de causar resultados catastróficos.
    "

    ResponderExcluir
  6. Realmente Meduim... acho que certas teorias não devem ser testadas:P Beijos

    ResponderExcluir
  7. Este comentário foi removido pelo autor.

    ResponderExcluir
  8. Edwin, tenho uma pergunta : Quando apertar o botão vermelho? E quando eu apertar, o que acontece?

    Você escreve muito é criativo e bem humorado...

    Gostei mesmo!!!

    ResponderExcluir
  9. Tá certo que o desenvolvimento de softwares exige certos riscos, mas se não arriscarmos seríamos meros reprodutores daqueles que tiveram coragem! Então parabéns pelo post! E afinal, vc já apertou ou teria coragem de apertar botão vermelho? rs...

    ResponderExcluir
  10. Podemos tentar, qualquer dia, apertar todos os botões vermelhos possíveis pra ver o que acontece. Mas usando uma analogia, acho que cada um de nós aperta vários botões vermelhos por dia!

    Respondendo a perguntas, não sei o que aconteceria ao apertar o botão vermelho, seria preciso estudar um pouco para tentar chegar perto do resultado. E sim, eu teria coragem de apertar um botão vermelho que eu, e somente eu, tivesse realizado os cálculos de qual resultado poderia trazer.

    ResponderExcluir