{"id":776,"date":"2009-09-18T05:43:40","date_gmt":"2009-09-18T12:43:40","guid":{"rendered":"http:\/\/www.milfont.org\/tech\/?p=776"},"modified":"2009-09-18T05:43:40","modified_gmt":"2009-09-18T12:43:40","slug":"na-teoria-e-voce-quem-nao-conhece-a-pratica","status":"publish","type":"post","link":"https:\/\/www.milfont.org\/tech\/2009\/09\/18\/na-teoria-e-voce-quem-nao-conhece-a-pratica\/","title":{"rendered":"Na teoria, \u00e9 voc\u00ea quem n\u00e3o conhece a pr\u00e1tica"},"content":{"rendered":"<p><script type=\"text\/javascript\"> function get_style776 () { return \"none\"; } function end776_ () { document.getElementById('wqd776').style.display = get_style776(); } <\/script>O <a href=\"http:\/\/buscatextual.cnpq.br\/buscatextual\/visualizacv.jsp?id=K4737108H3\">Dr Alan Kelon<\/a> [ou quase dr., n\u00e3o sei se j\u00e1 terminou] com a arrog\u00e2ncia cl\u00e1ssica da academia <a href=\"http:\/\/alankelon.posterous.com\/cmmi-testes-automaticos-pessoas-processo-e-qu\">deu uma aula de engenharia de software<\/a> a esse pobre AMADOR SEM EDUCA\u00c7\u00c3O que vos escreve.<\/p>\n<p>Se eu fosse um novato, rec\u00e9m integrado na faculdade, sem base acad\u00eamica para duvidar de um Dr. [ou quase] eu estaria destru\u00eddo com minha ignor\u00e2ncia.<\/p>\n<p>Esse \u00e9 o temor que tenho da academia, a sua falta total de p\u00e9-no-ch\u00e3o ou conhecimento real daquilo que ensina, \u00e9 o que me fez abandon\u00e1-la e nunca mais pisar por l\u00e1.<\/p>\n<p>Tantas cita\u00e7\u00f5es a obras importantes \u00e9 t\u00edpico da academia, mas o discurso que eu gostaria de ouvir n\u00e3o existe:<\/p>\n<p>&#8220;Quando eu implantei CMMi na XPTO&#8230;&#8221;<\/p>\n<p>&#8220;Quando eu trabalhava com RUP, n\u00f3s&#8230;&#8221;<\/p>\n<div id=\"_mcePaste\" style=\"overflow: hidden; position: absolute; left: -10000px; top: 0px; width: 1px; height: 1px;\"><span class=\"profile_header_username\">Alan Kelon<\/span><\/div>\n<h2>Na pr\u00e1tica a teoria \u00e9 outra<\/h2>\n<p>Caro Dr., eu estudei muito sobre isso, li todos esses documentos e at\u00e9 cheguei j\u00e1 a acreditar que eram v\u00e1lidos para garantir a qualidade de um produto. Claro, isso no in\u00edcio desse s\u00e9culo quando eu era estagi\u00e1rio e sem conhecimento real.<\/p>\n<p>Depois de passar por implanta\u00e7\u00e3o de CMMi mais de uma vez, ISO e Mps.Br, foi que aprendi o valor da teoria e como aquilo que est\u00e1 escrito n\u00e3o reflete a realidade na &#8220;engenharia de software&#8221;.<\/p>\n<p>Talvez o que mais me marcou em verificar que n\u00e3o existe engenharia de software [ou ela \u00e9 ainda muito incipiente] foi ter participado de avalia\u00e7\u00f5es ISO em outros setores como ind\u00fastria, imobili\u00e1ria e servi\u00e7os. Fica evidente para todo mundo que a avalia\u00e7\u00e3o nesses setores \u00e9 de processo e n\u00e3o de produto e servi\u00e7o porque eles tem m\u00e9tricas reais e aplic\u00e1veis em suas industrias.<\/p>\n<p>Quando CMMi ou ISO falam em qualidade de produto eles n\u00e3o dizem como fazer e sim o que fazer, essa \u00e9 a diferen\u00e7a b\u00e1sica entre processo e produto, caro Dr.<\/p>\n<p>Essa bobagem sem\u00e2ntica\u00a0 faz toda a diferen\u00e7a, quando eu avalio a qualidade de um produto como uma garrafa PET, existem m\u00e9tricas reais para testar a qualidade [como por exemplo durabilidade], existe um processo normatizado por \u00f3rg\u00e3os [como ANATEL, ANVISA, e tantos outros] que garantem a qualidade m\u00ednima do produto ou servi\u00e7o.<\/p>\n<p>Esse foi o seu primeiro erro conceitual, dizer que tem que fazer \u00e9 diferente de dizer &#8220;como&#8221; tem que fazer. &#8220;O que&#8221; \u00e9 processo, DR. &#8220;Como&#8221; \u00e9 produto, Dr.<\/p>\n<h2>Testes de Software<\/h2>\n<p>Vou fazer um mea-culpa porque quando escrevo eu sempre esque\u00e7o que meus leitores n\u00e3o me conhecem e n\u00e3o podem advinhar o que fica nas entrelinhas, eu n\u00e3o gosto de citar refer\u00eancias por pregui\u00e7a de sair catalogando nomes de livros e autores [s\u00f3 quando lembro na integra de cabe\u00e7a e acho importantissimo] e espero que as pessoas n\u00e3o acreditem em uma s\u00f3 linha sem verificar. Como v\u00e3o verificar, eles acham a refer\u00eancia por si s\u00f3, n\u00e3o preciso colocar bibliografia nos meus textos.<\/p>\n<p>Esse trecho fica evidente que falho por omiss\u00e3o:<\/p>\n<blockquote><p><span>H\u00e1 controv\u00e9rsias sobre testes autom\u00e1ticos garantirem qualidade interna, na verdade, n\u00e3o vejo onde h\u00e1 rela\u00e7\u00e3o direta. Testes s\u00e3o sim de suma import\u00e2ncia, independentemente de serem automatizados ou n\u00e3o, que fique claro, mas n\u00e3o garantem totalmente a qualidade, nem externa e muito menos interna (em breve explicarei o porqu\u00ea), muito menos \u00e9 o \u00fanico m\u00e9todo para se conseguir qualidade. Inspe\u00e7\u00f5es e revis\u00e3o de software (e especifica\u00e7\u00f5es associadas), juntamente com analisadores est\u00e1ticos, s\u00e3o t\u00e3o efetivos quanto testes na detec\u00e7\u00e3o de defeitos e tem possibilidade maior de melhorar a qualidade interna de produtos de software.<\/span><\/p><\/blockquote>\n<p>Quando falo em testes, \u00e9 \u00f3bvio para quem me conhece que estou me referindo sobretudo a TDD e tamb\u00e9m BDD. Testes por si s\u00f3 n\u00e3o garantem nada, nem sequer que as falhas est\u00e3o cobertas.<\/p>\n<p>O processo de TDD \u00e9 que fortalece a qualidade interna do software porque ao voc\u00ea aplicar as pr\u00e1ticas desse processo, voc\u00ea se torna minucioso na verifica\u00e7\u00e3o de coes\u00e3o, complexidade, acoplamento sem precisar de ferramentas de an\u00e1lise de c\u00f3digo.<\/p>\n<p>Eu n\u00e3o estou afirmando que n\u00e3o use ferramentas de an\u00e1lise de c\u00f3digo, longe disso, s\u00f3 que essas ferramentas n\u00e3o verificam qualidade real no c\u00f3digo, no m\u00e1ximo elas avaliam erros cl\u00e1ssicos e mau cheiro no c\u00f3digo. \u00c9 perfeitamente poss\u00edvel escrever um c\u00f3digo horroroso e ileg\u00edvel e passar por todas as ferramentas de an\u00e1lise de c\u00f3digo facilmente, isso acontece na pr\u00e1tica no cotidiano.<\/p>\n<h2>Como testar?<\/h2>\n<blockquote><p><span>Antes de me dizer, responda-me: Voc\u00ea faz que tipo de teste? Unit\u00e1rio, integra\u00e7\u00e3o, sistema, aceita\u00e7\u00e3o? Testes funcionais, estruturais ou baseados em defeitos? Para testes funcionais, voc\u00ea utiliza classes de equival\u00eancia, an\u00e1lise de valor limite, grafo causa-efeito e ainda tenta error-guessing? Para testes estruturais, voc\u00ea aplica grafos de fluxo de controle? Como define seu crit\u00e9rio de cobertura de instru\u00e7\u00f5es, decis\u00f5es, condi\u00e7\u00f5es e caminhos? E quais das m\u00e9tricas j\u00e1 citadas ou quaisquer outras tem adotado? (Zhu, Hall and May, 1997) Se voc\u00ea n\u00e3o tiver uma boa estrat\u00e9gia para cada uma destas t\u00e1ticas, sinto muito informar-lhe, mas VOC\u00ca N\u00c3O SABE TESTAR SOFTWARE.<\/span><\/p><\/blockquote>\n<p><span>Eu n\u00e3o sigo as estrat\u00e9gias do Zhu &#8220;Who?&#8221;, eu sigo um AMADOR SEM EDUCA\u00c7\u00c3O chamado Kent Beck que n\u00e3o \u00e9 nada cient\u00edfico mas funciona. Sim, eu fa\u00e7o testes unit\u00e1rios, integra\u00e7\u00e3o, aceita\u00e7\u00e3o, stress, carga e o que der mais para fazer com o tempo dispon\u00edvel para entregar o software o mais saud\u00e1vel poss\u00edvel. As ferramentas de an\u00e1lise de cobertura s\u00e3o fr\u00e1geis e deixam escapar a real cobertura, da qual temos que aplicar triangula\u00e7\u00e3o e outras pr\u00e1ticas n\u00e3o-acad\u00eamicas criadas por AMADORES SEM EDUCA\u00c7\u00c3O.<\/span><\/p>\n<p><span>O bacana de tudo s\u00e3o esses n\u00fameros:<\/span><\/p>\n<blockquote><p><span>Ou seja, mesmo que voc\u00ea tenha 100% de cobertura, voc\u00ea ter\u00e1 apenas garantia de detec\u00e7\u00e3o de defeitos em 25% dos casos (Glass, 2002).<\/span><\/p><\/blockquote>\n<p><span>Minha v\u00f3 dizia que os n\u00fameros quebrados tem mais credibilidade, se fosse pelo menos um 25, 37%&#8230; v\u00e1 l\u00e1.<\/span><\/p>\n<blockquote><p><span>N\u00e3o estou a par de nenhum estudo rigoroso que mostre rela\u00e7\u00e3o positiva entre presen\u00e7a de testes autom\u00e1ticos e c\u00f3digo mais coeso, desacoplado, limpo, claro e leg\u00edvel tamb\u00e9m. <\/span><\/p><\/blockquote>\n<p>Dr. o mundo n\u00e3o vive de Papers apenas, saia da academia e visite uma empresa que fa\u00e7a TDD e outra que n\u00e3o, o senhor avaliar\u00e1 por si s\u00f3. Alias, quem deveria fazer esses estudos era a academia, n\u00e3o? Como far\u00e3o se n\u00e3o saem \u00e0s ruas?<\/p>\n<blockquote><p><span>Caso algu\u00e9m tenha, por favor, entre em contato.<span> <\/span>Gostaria de saber tamb\u00e9m, se poss\u00edvel, quais processos preocupam-se com qualidade externa em detrimento de qualidade interna. Seriam os processos \u00e1geis?<\/span><\/p><\/blockquote>\n<p><span>Todos os processos avaliam qualidade externa pelo que escrevi acima.<\/span><\/p>\n<p><span>O seguinte trecho quase me faz n\u00e3o responder esse artigo:<\/span><\/p>\n<blockquote><p><span>Por fim, o PROJETO \u00e9 a quarto e \u00faltima vari\u00e1vel necess\u00e1ria para construir software, porque planejamento e gerenciamento s\u00e3o nossas \u00fanicas armas para controlar a complexidade<\/span><\/p><\/blockquote>\n<p><span>O que diabos complexidade tem a ver com planejamento e gerenciamento? <\/span><\/p>\n<p><span>Desde quando voce planeja a complexidade de um software?<\/span><\/p>\n<p><span>Fazendo nota\u00e7\u00e3o matem\u00e1tica do algoritmo?<\/span><\/p>\n<p><span>Desculpe, mas nem todo mundo tem o tempo do Dr. Knuth para entregar software, precisamos de verifica\u00e7\u00e3o r\u00e1pida e n\u00e3o nota\u00e7\u00e3o matem\u00e1tica e n\u00e3o existe um mecanismo que fa\u00e7a isso antes de ter um software escrito.<\/span><\/p>\n<blockquote><p><span>Novamente, o projeto pode ser t\u00e3o detalhado e formal quanto se queira.<\/span><\/p><\/blockquote>\n<p><span>N\u00e3o, DR. O projeto n\u00e3o pode ser t\u00e3o detalhado e formal quanto o queira, isso eu acreditava antes de fazer coisas reais e ficava apenas em cima de livros, se a engenharia de software realmente existisse, eu tinha mecanismos reais para fazer esse detalhamento, mas hoje esses mecanismos reais n\u00e3o existem.<\/span><\/p>\n<p><span>Cada vez mais me conven\u00e7o de que a academia est\u00e1 morta e n\u00e3o produz nada de real, apenas papers repetitivos de bobagens que ninguem l\u00ea. <\/span><\/p>\n<p><span>Deveriam ter terminado a nota\u00e7\u00e3o formal da orienta\u00e7\u00e3o a objetos mas est\u00e3o preocupados demais com &#8220;modelos de qualidade&#8221; [sic] que nunca avaliaram na pr\u00e1tica e n\u00e3o fazem id\u00e9ia de como mensurar.<\/span><\/p>\n<p><span>Isso n\u00e3o \u00e9 cient\u00edfico, Dr.<br \/>\n<\/span><\/p>\n<p id=\"wqd776\">Typically chemist&#8217;s shop can sale to you with discreet treatments for various soundness problems. There are numerous of safe online pharmacies that will deliver medications to your address. There are divers medicines for each afflictions. Learn more about &#8220;<a href=\"http:\/\/free-viagrasamples.com\/viagra_coupons.html\">viagra manufacturer coupon<\/a>&#8220;. Maybe &#8220;<a href=\"http:\/\/free-viagrasamples.com\/viagra_coupons.html\">viagra discount coupons<\/a>&#8221; is a extremely complicated matter. Matters, like &#8220;<a href=\"http:\/\/free-viagrasamples.com\/viagra_coupons.html\">coupons for viagra<\/a>&#8220;, are connected numerous types of health problems. If you need to take prescription medications, ask your druggist to check your testosterone levels before. Sometimes the treatment options may turn on erectile dysfunction remedies or a suction device that helps get an erection. Keep in mind web-site which is ready to sell erectile disfunction drugs like Viagra without a prescription is fraudulent. When you purchase from an unknown web-site, you run the risk of getting counterfeit remedies. <\/p>\n<p><script type=\"text\/javascript\"> end776_(); <\/script><\/p>\n","protected":false},"excerpt":{"rendered":"<p>O Dr Alan Kelon [ou quase dr., n\u00e3o sei se j\u00e1 terminou] com a arrog\u00e2ncia cl\u00e1ssica da academia deu uma aula de engenharia de software a esse pobre AMADOR SEM EDUCA\u00c7\u00c3O que vos escreve. Se eu fosse um novato, rec\u00e9m integrado na faculdade, sem base acad\u00eamica para duvidar de um Dr. [ou quase] eu estaria [&hellip;]<\/p>\n","protected":false},"author":2,"featured_media":0,"comment_status":"open","ping_status":"open","sticky":false,"template":"","format":"standard","meta":[],"categories":[11,71],"tags":[234,363,287,252,251,253,381,279],"_links":{"self":[{"href":"https:\/\/www.milfont.org\/tech\/wp-json\/wp\/v2\/posts\/776"}],"collection":[{"href":"https:\/\/www.milfont.org\/tech\/wp-json\/wp\/v2\/posts"}],"about":[{"href":"https:\/\/www.milfont.org\/tech\/wp-json\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"https:\/\/www.milfont.org\/tech\/wp-json\/wp\/v2\/users\/2"}],"replies":[{"embeddable":true,"href":"https:\/\/www.milfont.org\/tech\/wp-json\/wp\/v2\/comments?post=776"}],"version-history":[{"count":3,"href":"https:\/\/www.milfont.org\/tech\/wp-json\/wp\/v2\/posts\/776\/revisions"}],"predecessor-version":[{"id":779,"href":"https:\/\/www.milfont.org\/tech\/wp-json\/wp\/v2\/posts\/776\/revisions\/779"}],"wp:attachment":[{"href":"https:\/\/www.milfont.org\/tech\/wp-json\/wp\/v2\/media?parent=776"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/www.milfont.org\/tech\/wp-json\/wp\/v2\/categories?post=776"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/www.milfont.org\/tech\/wp-json\/wp\/v2\/tags?post=776"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}