tag:blogger.com,1999:blog-22048720077804798472024-03-07T22:28:03.057-08:00Rômulo CamposRômulo Camposhttp://www.blogger.com/profile/05988175083988676014noreply@blogger.comBlogger10125tag:blogger.com,1999:blog-2204872007780479847.post-82095789981443008612012-01-17T04:15:00.000-08:002012-01-17T04:16:49.779-08:00Novo domínioPessoal,<br />
<br />
O blogger é uma boa ferramenta entretando é limitada, agora o blog tem novo domínio:<br />
<a href="http://www.blogger.com/goog_1704647948"><br /></a><br />
<a href="http://www.blogger.com/%20http://www.romulocampos.com%20">http://www.romulocampos.com </a><br />
<br />Rômulo Camposhttp://www.blogger.com/profile/05988175083988676014noreply@blogger.com0tag:blogger.com,1999:blog-2204872007780479847.post-71332588600623440402011-09-26T06:21:00.000-07:002011-09-29T05:06:58.145-07:00Professional Scrum Developer em BH<div style="font-family: Verdana,sans-serif;">
<span style="font-size: small;">Treinamento oficial Professional Scrum Develepor em Belo Horizonte. Além de ensinar fundamentos do Scrum o treinamento </span><span style="font-size: small;">ensina aos alunos como
usar práticas de engenharia de software modernas para desenvolver um
incremento de funcionalidade potencialmente entregável usando uma
tecnologia específica. Os alunos aprenderão a fazê-lo dentro do
framework Scrum, trabalhar como parte de um time auto organizável e
multidisciplinar para fazer desenvolvimento iterativo e incremental. As
aulas são práticas, com alunos trabalhando em times para desenvolver
incrementos “prontos” dos itens de Backlog do produto. </span></div>
<div style="font-family: Verdana,sans-serif;">
<br /></div>
<div style="font-family: Verdana,sans-serif;">
<span style="font-size: small;">O programa Professional Scrum Developer (PSD) treina, avalia
e certifica desenvolvedores trabalhando em uma plataforma tecnológica
específica. O programa inclui um treinamento de 5 dias, uma avaliação
online e uma certificação reconhecida mundialmente. </span></div>
<div style="font-family: Verdana,sans-serif;">
<br /></div>
<div style="font-family: Verdana,sans-serif;">
<span style="font-size: small;">O investimento gira em torno de R$2000,00.</span></div>
<div style="font-family: Verdana,sans-serif;">
<span style="font-size: small;"> </span><span style="font-size: small;"><br /></span></div>
<span style="font-family: Verdana,sans-serif; font-size: small;"> </span><span style="font-size: small;"><span style="font-family: Verdana,sans-serif; font-size: small;">O curso será ministrado em Dezembro.</span></span><br />
<br />
<h2 style="font-family: Verdana,sans-serif;">
<span style="font-size: small;">Descrição do Curso</span></h2>
<span style="font-family: Verdana,sans-serif; font-size: small;">
</span><br />
<div style="font-family: Verdana,sans-serif;">
<span style="font-size: small;">
O programa Professional Scrum Developer (PSD) treina, avalia
e certifica desenvolvedores trabalhando em uma plataforma tecnológica
específica. O programa inclui um treinamento de 5 dias, uma avaliação
online e uma certificação reconhecida mundialmente. Cada programa
Professional Scrum Developer é direcionado a um conjunto específico de
ferramentas. Até o momento, a Scrum.org oferece os programas para <b>Microsoft .NET</b> e para <b>Java</b>.
</span></div>
<span style="font-family: Verdana,sans-serif; font-size: small;">
</span><br />
<div style="font-family: Verdana,sans-serif;">
<br /></div>
<span style="font-family: Verdana,sans-serif; font-size: small;">
</span><br />
<h2 style="font-family: Verdana,sans-serif;">
<span style="font-size: small;">Os cursos</span></h2>
<span style="font-family: Verdana,sans-serif; font-size: small;">
</span><br />
<div style="font-family: Verdana,sans-serif;">
<span style="font-size: small;">
O curso Professional Scrum Developer ensina aos alunos como
usar práticas de engenharia de software modernas para desenvolver um
incremento de funcionalidade potencialmente entregável usando uma
tecnologia específica. Os alunos aprenderão a fazê-lo dentro do
framework Scrum, trabalhar como parte de um time auto organizável e
multidisciplinar para fazer desenvolvimento iterativo e incremental. As
aulas são práticas, com alunos trabalhando em times para desenvolver
incrementos “prontos” dos itens de Backlog do produto.
</span></div>
<span style="font-family: Verdana,sans-serif; font-size: small;">
</span><br />
<div style="font-family: Verdana,sans-serif;">
<span style="font-size: small;">
Todos os cursos Professional Scrum Developer cobrem três tópicos principais:
</span></div>
<span style="font-family: Verdana,sans-serif; font-size: small;">
</span><br />
<br />
<br />
<br />
<aside style="font-family: Verdana,sans-serif;"><span style="font-size: small;"><img border="0" src="http://www.lambda3.com.br/Content/images/ScrumGraph.png" style="float: right; height: 200px; margin-left: 10px; width: 200px;" /></span>
<h3>
<span style="font-size: small;">Scrum</span></h3>
<span style="font-size: small;">
O curso PSD cobre os fundamentos do Scrum como regras,
artefatos e processos. O curso simula um time Scrum para expor os alunos
a esses conceitos em ação. Os alunos aprendem como trabalhar como parte
de um time Scrum, que requer o entendimento de técnicas para
auto-organização. No final do curso, os alunos desenvolvem habilidades
na identificação e eliminação de típicas disfunções de um time Scrum.
</span><br />
<h3>
<span style="font-size: small;">Ferramentas</span></h3>
<span style="font-size: small;">
O curso PSD ensina aos alunos como utilizar diferentes
ferramentas de desenvolvimento para aplicar as práticas do Scrum. Os
cursos PSD.NET são ensinados no contexto do Visual Studio 2010 usando
tanto o template de processo <a href="http://visualstudiogallery.msdn.microsoft.com/59ac03e3-df99-4776-be39-1917cbfc5d8e" target="_blank">Visual Studio Scrum 1.0</a>
como o MSF for Agile, enquanto que os cursos PSD Java são ensinados no
contexto de Eclipse + IBM Rational Jazz ou Eclipse + Plugins Open
Source. Os alunos aprendem como mapear recursos e funções de ferramentas
específicas para práticas gerais do Scrum que eles devem usar para
serem membros mais efetivos de um time Scrum.
</span><br />
<h3>
<span style="font-size: small;">Melhores Práticas</span></h3>
<span style="font-size: small;">
O curso PSD cobre todas as práticas que os membros de um
time Scrum precisam para implementar e entregar um software com sucesso.
Isso inclui:
</span><br />
<ul class="skills">
<li><span style="font-size: small;">Práticas de Codificação como TDD (Test Driven Development), Integração Contínua e Refatoração; </span></li>
<li><span style="font-size: small;">Práticas de Arquitetura como Arquitetura Emergente e Desenvolvimento Evolutivo de Banco de Dados;</span></li>
<li><span style="font-size: small;">Práticas de Gerenciamento de Releases como Planejamento e Definição de Requisitos e Entregas;</span></li>
<li><span style="font-size: small;">Práticas de Qualidade que passam por Definição de Pronto, Programação em Pares, Versionamento e Testes de Aceitação.</span></li>
</ul>
<span style="font-size: small;">
</span>
<span style="font-size: small;">
Mais informações estão disponíveis sobre os currículos <a href="http://www.lambda3.com.br/treinamentos/scrumorg/psdnet">PSD.NET</a> e PSD Java. </span><br />
<br />
<span style="font-size: small;"><span style="font-size: x-small;">Fonte da descrição do curso: http://www.lambda3.com.br/treinamentos/scrumorg/psd </span></span><br />
</aside><br />
<div style="font-family: Verdana,sans-serif;">
<br /></div>
<br />
<br />
<br />Rômulo Camposhttp://www.blogger.com/profile/05988175083988676014noreply@blogger.com4tag:blogger.com,1999:blog-2204872007780479847.post-84112621793686251682011-09-26T05:44:00.000-07:002011-09-26T06:01:33.451-07:00Biblioteca JavaScript para desenhar grafos<div class="MsoNormal" style="font-family: Verdana,sans-serif;"><span style="font-size: small;">Esta semana precisei desenhar um grafo em uma aplicação web, depois de desenvolver a lógica em PHP precisei de alguma biblioteca para plotar o grafo.<br />
Encontrei várias bibliotecas JavaScrips dentre elas:<br />
<br />
- </span> <span style="font-size: small;"><span itemprop="name">Canviz</span> http://code.google.com/p/canviz/<br />
- Graph JavaScript framework version 0.0.1 http://snipplr.com/view/1950/graph-javascript-framework-version-001/<br />
- Graphvix http://www.graphviz.org/<br />
- Graph-it http://js-graph-it.sourceforge.net/<br />
- MooWhell http://labs.unwieldy.net/moowheel/<br />
- Dracula Graph Layout and Drawing Framework 0.0.3alpha https://github.com/grigoryk/dracula-js-fork<br />
<br />
Para minha aplicação optei utilizar a Dracula Graph que nada mais é que uma evolução da Graph JavaScript framework feita pelo Raphael (http://raphaeljs.com/). A vantagem da Dracula é o layout limpo e a implementação simples. </span><span style="font-size: small;"><br />
<br />
Tive a oportunidade de conversar com aslak.hellesoy@gmail.com sobre algumas limitações da Graph JavaScript e ele nem sabia que o código que desenvolveu a 5 anos atrás tinha se tornado uma poderosa library. </span><span style="font-size: small;"><br />
<br />
Segue alguns exemplos e fica a dica:</span> </div><div class="separator" style="clear: both; text-align: center;"><a href="http://1.bp.blogspot.com/-prkBCjZeMKw/ToB2hwL-QaI/AAAAAAAAAGk/h19TRdo0hHM/s1600/exemplo2.jpg" imageanchor="1" style="margin-left: 1em; margin-right: 1em;"><img border="0" height="205" src="http://1.bp.blogspot.com/-prkBCjZeMKw/ToB2hwL-QaI/AAAAAAAAAGk/h19TRdo0hHM/s400/exemplo2.jpg" width="400" /></a></div><div class="separator" style="clear: both; text-align: center;"><a href="http://1.bp.blogspot.com/-VsvjGzKk0N4/ToB2cFT_khI/AAAAAAAAAGg/vsqD5O1yIE4/s1600/exemplo1.jpg" imageanchor="1" style="margin-left: 1em; margin-right: 1em;"><img border="0" height="253" src="http://1.bp.blogspot.com/-VsvjGzKk0N4/ToB2cFT_khI/AAAAAAAAAGg/vsqD5O1yIE4/s400/exemplo1.jpg" width="400" /></a></div> []'s.Rômulo Camposhttp://www.blogger.com/profile/05988175083988676014noreply@blogger.com0tag:blogger.com,1999:blog-2204872007780479847.post-8173446559544165332011-06-01T19:20:00.000-07:002011-09-26T06:04:21.872-07:00Nova Certificação Professional Scrum Master em BH<div style="font-family: Verdana,sans-serif;"><span style="font-size: small;">A nova certificação PSM (Certificação Professional Scrum Master) será ministrada em Belo Horizonte. A PSM é da Scrum.org , a nova empresa do Ken Schwaber (pai do SCRUM) e todos ministrantes fizeram curso com o mesmo. Serão 4 dias de treinamento, ao final cada aluno é submetido a uma prova tendo 2 chances para obter 85% de aproveitamento.</span></div><div style="font-family: Verdana,sans-serif;"><span style="font-size: small;"><br />
</span></div><div style="font-family: Verdana,sans-serif;"><span style="font-size: small;">As vagas para esta certificação são limitadas.<br />
<br />
Agenda:</span> <span style="font-size: small;"><br />
<b><br />
Data</b>: De 22/08/2011 à 25/08/2011 (18:30 às 22:30)<br />
<b>Investimento</b>: R$ 1.200,00</span></div><div style="font-family: Verdana,sans-serif;"><br />
</div><div style="font-family: Verdana,sans-serif;">Maiores informações: <a href="mailto:romulocmp@gmail.com" target="_blank">romulocmp@gmail.com</a><span style="font-size: small;"> </span> </div>Rômulo Camposhttp://www.blogger.com/profile/05988175083988676014noreply@blogger.com2tag:blogger.com,1999:blog-2204872007780479847.post-1620837387648482822011-05-13T17:53:00.001-07:002011-09-26T06:05:19.298-07:00Certificação Scrum Master em BH<span style="font-family: Verdana,sans-serif; font-size: small;">Olá pessoal,<br />
<br />
Estamos reunindo interessados para uma turma de Certificação Scrum Master da Scrum Alliance em Belo Horizonte.<br />
<br />
Detalhes:<br />
<br />
Carga Horária: 16 horas;<br />
Investimento: R$1.650,00<br />
Forma de pagamento: à vista ou boleto bancário em até 1+2;<br />
Oferecemos: Coffee break;<br />
Idioma: Português;<br />
<br />
Ao final do curso você obtém a certificação.É realizada um prova para medir o quanto você aprendeu, não existe pontuação mínima na prova para obter a certificação.<br />
<br />
Interessados enviar e-mail para: romulocmp@gmail.com</span>Rômulo Camposhttp://www.blogger.com/profile/05988175083988676014noreply@blogger.com2tag:blogger.com,1999:blog-2204872007780479847.post-69175641758684880752011-04-05T15:29:00.000-07:002011-04-05T15:30:29.100-07:00Gerente tem que colocar a mão na massa!<span style="font-family: Verdana,sans-serif;">Saiu no TI Especialistas:</span> <a href="http://www.tiespecialistas.com.br/2011/03/gerente-tem-que-colocar-a-mao-na-massa/"><span style="font-family: "Courier New",Courier,monospace;">http://www.tiespecialistas.com.br/2011/03/gerente-tem-que-colocar-a-mao-na-massa/</span></a><br />
<br />
<span style="font-family: Verdana,sans-serif;">Obrigado pelos comentários que postaram no site.</span>Rômulo Camposhttp://www.blogger.com/profile/05988175083988676014noreply@blogger.com0tag:blogger.com,1999:blog-2204872007780479847.post-71185930920085460092011-03-24T07:05:00.000-07:002011-03-24T07:13:26.976-07:00Integração contínua - Parte II - Automatizando testes<div style="font-family: Verdana,sans-serif;"></div><div class="Texto1oparagrafo" style="font-family: Verdana,sans-serif; text-align: justify;"><span style="font-size: small;"><span class="hps"><span lang="PT">"Selenium</span></span><span class="longtext"><span lang="PT"> </span></span><span class="hps"><span lang="PT">IDE</span></span><span class="longtext"><span lang="PT"> </span></span><span class="hps"><span lang="PT">é</span></span><span class="longtext"><span lang="PT"> </span></span><span class="hps"><span lang="PT">um</span></span><span class="longtext"><span lang="PT"> </span></span><span class="hps"><span lang="PT">ambiente integrado de desenvolvimento</span></span><span class="longtext"><span lang="PT"> </span></span><span class="hps"><span lang="PT">para scripts de testes automatizados</span></span><span class="longtext"><span lang="PT">. </span></span><span class="hps"><span lang="PT">Ele é implementado como</span></span><span class="longtext"><span lang="PT"> </span></span><span class="hps"><span lang="PT">uma extensão</span></span><span class="longtext"><span lang="PT"> </span></span><span class="hps"><span lang="PT">do Firefox</span></span><span class="longtext"><span lang="PT"> </span></span><span class="hps"><span lang="PT">e</span></span><span class="longtext"><span lang="PT"> </span></span><span class="hps"><span lang="PT">permite</span></span><span class="longtext"><span lang="PT"> </span></span><span class="hps"><span lang="PT">gravar</span></span><span class="longtext"><span lang="PT">, </span></span><span class="hps"><span lang="PT">editar</span></span><span class="longtext"><span lang="PT"> </span></span><span class="hps"><span lang="PT">e depurar</span></span><span class="longtext"><span lang="PT"> </span></span><span class="hps"><span lang="PT">os testes</span></span><span class="longtext"><span lang="PT">.O </span></span><span class="hps"><span lang="PT">Selenium</span></span><span class="longtext"><span lang="PT"> </span></span><span class="hps"><span lang="PT">IDE</span></span><span class="longtext"><span lang="PT"> </span></span><span class="hps"><span lang="PT">inclui</span></span><span class="longtext"><span lang="PT"> </span></span><span class="hps"><span lang="PT">o</span></span><span class="longtext"><span lang="PT"> </span></span><span class="hps"><span lang="PT">Selenium</span></span><span class="longtext"><span lang="PT"> </span></span><span class="hps"><span lang="PT">Core</span></span><span class="longtext"><span lang="PT"> , permitindo que </span></span><span class="hps"><span lang="PT">você</span></span><span class="longtext"><span lang="PT"> </span></span><span class="hps"><span lang="PT">facilmente e</span></span><span class="longtext"><span lang="PT"> </span></span><span class="hps"><span lang="PT">rapidamente possa</span></span><span class="longtext"><span lang="PT"> </span></span><span class="hps"><span lang="PT">gravar e</span></span><span class="longtext"><span lang="PT"> </span></span><span class="hps"><span lang="PT">reproduzir</span></span><span class="longtext"><span lang="PT"> </span></span><span class="hps"><span lang="PT">os testes</span></span><span class="longtext"><span lang="PT"> </span></span><span class="hps"><span lang="PT">no</span></span><span class="longtext"><span lang="PT"> </span></span><span class="hps"><span lang="PT">ambiente</span></span><span class="longtext"><span lang="PT"> </span></span><span class="hps"><span lang="PT">real</span></span><span class="longtext"><span lang="PT"> </span></span><span class="hps"><span lang="PT">que</span></span><span class="longtext"><span lang="PT"> </span></span><span class="hps"><span lang="PT">será executado</span></span><span class="longtext"><span lang="PT">." <span style="font-size: small;"><span style="font-family: "Courier New",Courier,monospace;">(http://seleniumhq.org/projects/ide)</span></span></span></span></span></div><div class="Texto1oparagrafo" style="font-family: Verdana,sans-serif; text-align: justify;"><span style="font-size: small;"><br />
</span></div><div class="MsoNormal" style="font-family: Verdana,sans-serif; text-align: justify;"><span style="font-size: small;">É muito simples criar seus scripts de testes utilizando o Selenium IDE por ser uma ferramenta gráfica integrada com o Firefox. Além de falicitar a escrita e execução de testes de sistema a ferramenta também simplifica os testes de regressão, já que a qualquer momento pode-se realizar um mesmo teste nas novas versões do sistema.</span></div><div class="MsoNormal" style="font-family: Verdana,sans-serif; text-align: justify;"><span style="font-size: small;"><br />
</span></div><div class="MsoNormal" style="font-family: Verdana,sans-serif; text-align: justify;"><span style="font-size: small;">A escrita dos scripts de maneira gráfica é simples, com o Selenium IDE aberto basta clicar com o botão direito em cima do elemento e adicionar o evento, originalmente o script é gerado em HTML mas pode ser exportado para C#, PHP, Java e outras linguagens.</span></div><div class="MsoNormal" style="font-family: Verdana,sans-serif; text-align: justify;"><span style="font-size: small;"><br />
</span></div><div class="MsoNormal" style="font-family: Verdana,sans-serif; text-align: justify;"><span style="font-size: small;">O Selenium RC é um servidor escrito em java. Ele recebe chamadas http, executa os testes e envia de volta para o seu programa os resultados. As chamadas vem dos testes unitários, como junit, por exemplo). </span></div><div class="MsoNormal" style="font-family: Verdana,sans-serif; text-align: justify;"><span style="font-size: small;"><br />
</span></div><div class="MsoNormal" style="font-family: Verdana,sans-serif; text-align: justify;"><span style="font-size: small;">"Selênio RC vem em duas partes.</span></div><div class="MsoNormal" style="font-family: Verdana,sans-serif; text-align: justify;"><span style="font-size: small;"><br />
</span></div><div class="MsoNormal" style="font-family: Verdana,sans-serif; text-align: justify;"><ul><li><span style="font-size: small;"><span class="hps"><span lang="PT">Um servidor,</span></span><span lang="PT"> <span class="hps">que</span> <span class="hps">executa automaticamente</span> <span class="hps">e</span> <span class="hps">e atua</span> <span class="hps">como um</span> <span class="hps">proxy</span> <span class="hps">HTTP</span> <span class="hps">para</span> <span class="hps">solicitações</span> <span class="hps">web</span> <span class="hps">a partir do browser</span>.</span></span><span style="font-size: small;"><span class="hps"><span lang="PT"> <br />
<br />
</span></span></span></li>
<li><span style="font-size: small;"><span class="hps"><span lang="PT">Bibliotecas</span></span><span lang="PT"> <span class="hps">cliente para</span> <span class="hps">a</span> <span class="hps">linguagem de programação</span> <span class="hps">favorita</span>." <span style="font-family: "Courier New",Courier,monospace; font-size: small;">(http://seleniumhq.org/projects/remote-control)</span></span></span></li>
</ul></div><div class="MsoNormal" style="font-family: Verdana,sans-serif; text-align: justify;"><span style="font-size: small;"><br />
</span></div><div class="MsoNormal" style="font-family: Verdana,sans-serif; text-align: justify;"><span style="font-size: small;"><span lang="PT">Primeiramente vamos automatizar testes escritos utilizando o Selenium IDE e exportados com a propria ferramenta para o formato HTML.Os seguintes passos devem ser executados:</span></span></div><div class="MsoNormal" style="font-family: Verdana,sans-serif; text-align: justify;"><span style="font-size: small;"><br />
</span></div><ol style="font-family: Verdana,sans-serif; text-align: justify;"><li><span style="font-size: small;"><span lang="PT">Faça o downlod do Selenium RC no site oficial (site), crie o diretorio <span style="font-family: "Courier New",Courier,monospace; font-size: small;">"C:\selenium"</span> e salve o arquivo no mesmo, crie também o diretório <span style="font-family: "Courier New",Courier,monospace; font-size: small;">"C:\selenium\testes"</span> e salve seus scripts de testes escritos pelo Selenium IDE.<br />
<br />
</span></span></li>
<li><span style="font-size: small;"><span lang="PT">Abra o Hudson e crie uma nova tarefa, dê um nome, selecione a opção "</span>Construir um projeto de software free-style" e clique em "OK".<br />
</span></li>
<table cellpadding="0" cellspacing="0" class="tr-caption-container" style="margin-left: auto; margin-right: auto; text-align: center;"><tbody>
<tr><td style="text-align: center;"><span style="font-size: small;"><a href="https://lh5.googleusercontent.com/-yC8oArE2KxA/TYtKYkPD2xI/AAAAAAAAADk/rDiKAY0WK9k/s1600/1.jpg" imageanchor="1" style="margin-left: auto; margin-right: auto;"><img border="0" height="93" src="https://lh5.googleusercontent.com/-yC8oArE2KxA/TYtKYkPD2xI/AAAAAAAAADk/rDiKAY0WK9k/s320/1.jpg" width="320" /></a></span></td></tr>
<tr><td class="tr-caption" style="text-align: center;"><span style="font-size: x-small;">Figura 1 - Criando um projeto</span></td><td class="tr-caption" style="text-align: center;"><span style="font-size: small;"><br />
</span></td><td class="tr-caption" style="text-align: center;"><span style="font-size: small;"><br />
</span></td></tr>
</tbody></table><li><span style="font-size: small;"> </span><span style="font-size: small;">Agora em "Construção" e selecione "Executar comando do Windows" no ComboBox.Também é posível executar um comando de Shell do GNU/Linux.</span></li>
<table cellpadding="0" cellspacing="0" class="tr-caption-container" style="margin-left: auto; margin-right: auto; text-align: center;"><tbody>
<tr><td style="text-align: center;"><span style="font-size: small;"><a href="https://lh3.googleusercontent.com/-dPO10p2RXpE/TYtKU9ZUmEI/AAAAAAAAADU/XfMpDgrJjm4/s1600/2.jpg" imageanchor="1" style="margin-left: auto; margin-right: auto;"><img border="0" height="81" src="https://lh3.googleusercontent.com/-dPO10p2RXpE/TYtKU9ZUmEI/AAAAAAAAADU/XfMpDgrJjm4/s320/2.jpg" width="320" /></a></span></td></tr>
<tr><td class="tr-caption" style="text-align: center;"><span style="font-size: x-small;">Figura 2 - Comando Window</span></td></tr>
</tbody></table></ol><ol start="4" style="font-family: Verdana,sans-serif; text-align: justify;"><li><span style="font-size: small;"><i><span lang="PT" style="font-style: normal;">No campo que se abriu iremos adicionar o seguinte comando:</span></i></span> <span style="font-size: small;"><span style="font-family: "Courier New",Courier,monospace; font-size: x-small;"><i><span lang="PT" style="font-style: normal;"><br />
<br />
<span style="font-size: small;">java -jar C:\selenium\selenium-server.jar -htmlSuite "*firefox C:\Program Files (x86)\Mozilla Firefox\firefox.exe" "http://www.google.com" "C:\selenium\testes\testehtml.html" "C:\results.htm"</span></span></i></span><br />
</span> <span style="font-size: small;"><i><span lang="PT" style="font-style: normal;"><br />
Estamos invocando o selenium server, a opção - htmlSuite indica que executaremos uma Suite de testes criadas com o Selenium IDE, os demais parametros indicam respectivamente: o browser, a URL inicial dos testes, o script de testes e o endereço de arquivo de resultados.Você deve alterar o endereço do browser, do aquivo script de teste e resultados conforme suas necessidades.</span></i></span></li>
</ol><div class="MsoNormal" style="font-family: Verdana,sans-serif; text-align: justify;"><ol start="5"><li><span style="font-size: small;"><i><span lang="PT" style="font-style: normal;">Para finalizar basta clicar no botão "Salva" e em seguida "Construir Agora" para executar os testes do arquivo <span style="font-family: "Courier New",Courier,monospace; font-size: small;">"C:\selenium\testes\testehtml.html".</span></span></i></span></li>
</ol></div><div class="MsoNormal" style="font-family: Verdana,sans-serif; margin-left: 18pt; text-align: justify;"><span style="font-size: small;"><br />
</span></div><div class="MsoNormal" style="font-family: Verdana,sans-serif; text-align: justify;"><span style="font-size: small;"><i><span lang="PT" style="font-style: normal;">Existe o </span></i>plugin SeleniumHQ htmlSuite (página), que simplifica a tarefa que acabamos de executar. O plugin deve ser instalado através do "Gerenciador de plugins" do Hudson. Depois de instalar o SeleniumHQ htmlSuite ele deve ser configurado através dos seguintes passos:</span></div><div class="MsoNormal" style="font-family: Verdana,sans-serif; text-align: justify;"><span style="font-size: small;"><br />
</span><br />
<ol><li><span style="font-size: small;">Faça o downlod do Selenium RC no site oficial (site), crie o diretorio <span style="font-family: "Courier New",Courier,monospace; font-size: small;">"C:\selenium"</span> e salve o arquivo no mesmo, crie também o diretório <span style="font-family: "Courier New",Courier,monospace; font-size: small;">"C:\selenium\testes"</span> e salve seus scripts de testes escritos pelo Selenium IDE.</span><span style="font-size: small;"><br />
</span></li>
<li><span style="font-size: small;">Em "Gerenciar Hudson" procure pela opção " Selenium Remote Control", indique o endereço de selenium-server e salve.</span></li>
<table cellpadding="0" cellspacing="0" class="tr-caption-container" style="margin-left: auto; margin-right: auto; text-align: center;"><tbody>
<tr><td style="text-align: center;"><span style="font-size: small;"><a href="https://lh4.googleusercontent.com/-c7rzGrToqwk/TYtKVF00PeI/AAAAAAAAADY/NLrLwOAZ-40/s1600/3.jpg" imageanchor="1" style="margin-left: auto; margin-right: auto;"><img border="0" height="44" src="https://lh4.googleusercontent.com/-c7rzGrToqwk/TYtKVF00PeI/AAAAAAAAADY/NLrLwOAZ-40/s320/3.jpg" width="320" /></a></span></td></tr>
<tr><td class="tr-caption" style="text-align: center;"><span style="font-size: x-small;">Figura 3 - Selenium Remote Control</span></td><td class="tr-caption" style="text-align: center;"><span style="font-size: small;"><br />
</span></td><td class="tr-caption" style="text-align: center;"><span style="font-size: small;"> </span></td></tr>
</tbody></table><li><span style="font-size: small;"><span lang="PT">Clique em "Nova Tarefa" selecione a opção "</span>Construir um projeto de software free-style" e clique em "OK".</span><span style="font-size: small;"><i><span lang="PT" style="font-style: normal;"> <br />
<br />
</span></i></span></li>
<li><span style="font-size: small;"><i><span lang="PT" style="font-style: normal;">Agora em "Construção" e selecione "SeleniumHQ htmlSuite Run" no ComboBox.<br />
<br />
</span></i></span></li>
<table cellpadding="0" cellspacing="0" class="tr-caption-container" style="margin-left: auto; margin-right: auto; text-align: center;"><tbody>
<tr><td style="text-align: center;"><span style="font-size: small;"><a href="https://lh5.googleusercontent.com/-ymAsuzcdLxw/TYtKVjpjc3I/AAAAAAAAADc/_naRiEMqhWI/s1600/4.jpg" imageanchor="1" style="margin-left: auto; margin-right: auto;"><img border="0" height="91" src="https://lh5.googleusercontent.com/-ymAsuzcdLxw/TYtKVjpjc3I/AAAAAAAAADc/_naRiEMqhWI/s320/4.jpg" width="320" /></a></span></td></tr>
<tr><td class="tr-caption" style="text-align: center;"><span style="font-size: x-small;">Figura 4 - SeleniumHQ Plugin</span></td><td class="tr-caption" style="text-align: center;"><span style="font-size: small;"> </span></td></tr>
</tbody></table><li><span style="font-size: small;">Basicamente o SeleniumHQ invoca o SeleniumRC e passa parâmetros, estes são os mesmo indicados no script de comando Windows ou para o Shell do Linux, aqui a tarefa é simplifica pela interface, conforme mostrado na figura 5:</span></li>
</ol></div><table cellpadding="0" cellspacing="0" class="tr-caption-container" style="font-family: Verdana,sans-serif; margin-left: auto; margin-right: auto; text-align: center;"><tbody>
<tr><td style="text-align: center;"><span style="font-size: small;"><a href="https://lh3.googleusercontent.com/-2ACL99reyWw/TYtKWC0X4bI/AAAAAAAAADg/LlGICNYO7zE/s1600/5.jpg" imageanchor="1" style="margin-left: auto; margin-right: auto;"><img border="0" height="96" src="https://lh3.googleusercontent.com/-2ACL99reyWw/TYtKWC0X4bI/AAAAAAAAADg/LlGICNYO7zE/s320/5.jpg" width="320" /></a></span></td></tr>
<tr><td class="tr-caption" style="text-align: center;"><span style="font-size: x-small;">Figura 5 - Configurando SeleniumHQ</span></td></tr>
</tbody></table><div style="font-family: Verdana,sans-serif; text-align: justify;"><span style="font-size: small;"><br />
</span></div><div style="font-family: Verdana,sans-serif;"><ul style="text-align: justify;"><ul><li><span style="font-size: small;">Em browser deve-se indicar qual será usado: Firefox, Intenet Explore, Chrome ou outro.Também é necessario indicar o endereço completo para o brownser se não existir um path para o mesmo. </span></li>
</ul></ul><ul style="margin-top: 0cm; text-align: justify;" type="disc"></ul><div class="MsoNormal" style="text-align: justify;"><ul><ul><li><span style="font-size: small;">startURL indica a página inicia onde os testes serão executados.</span></li>
</ul></ul></div><ul style="margin-top: 0cm; text-align: justify;" type="disc"></ul><div class="MsoNormal" style="margin-left: 36pt; text-align: justify;"><span style="font-size: small;"><br />
</span></div><ul style="margin-top: 0cm; text-align: justify;" type="disc"><ul><li class="MsoNormal"><span style="font-size: small;">suiteFile é o arquivo onde os testes estão escritos, ou uma suite que invoca vários arquivos de teste.</span></li>
</ul></ul><div class="MsoNormal" style="text-align: justify;"><span style="font-size: small;"><br />
</span></div><ul style="margin-top: 0cm; text-align: justify;" type="disc"><ul><li class="MsoNormal"><span style="font-size: small;">resultFile é o arquivo onde será salvo o resultado da execução.</span></li>
</ul></ul><div class="MsoNormal" style="text-align: justify;"><span style="font-size: small;"><br />
</span></div><ul style="margin-top: 0cm; text-align: justify;" type="disc"><ul><li class="MsoNormal"><span style="font-size: small;">other é destinado a outros argumentos como, por exemplo, -timeout.</span></li>
</ul></ul><ol start="6"><li style="text-align: justify;"><span style="font-size: small;"> Salve as novas configurações e execute a construção.</span></li>
</ol></div><div class="separator" style="clear: both; font-family: Verdana,sans-serif; text-align: center;"><span style="font-size: small;"><a href="https://lh3.googleusercontent.com/-2ACL99reyWw/TYtKWC0X4bI/AAAAAAAAADg/LlGICNYO7zE/s1600/5.jpg" imageanchor="1" style="margin-left: 1em; margin-right: 1em;"> </a></span></div><div style="font-family: Verdana,sans-serif;"><br />
</div><div class="MsoNormal" style="font-family: Verdana,sans-serif; margin-left: 18pt; text-indent: -18pt;"><br />
</div>Rômulo Camposhttp://www.blogger.com/profile/05988175083988676014noreply@blogger.com0tag:blogger.com,1999:blog-2204872007780479847.post-29691045113109783632011-03-14T09:36:00.000-07:002011-03-15T22:03:52.046-07:00Integração contínua - Parte I - Instalando o Hudson<div class="Texto2oparagrafo" style="font-family: Verdana,sans-serif;"><span style="font-size: small;"><span style="color: black;">A </span><span style="line-height: 130%;">escrita, execução e análise de resultados de testes é uma atividade que exige demasiado esforço , além disso é uma atividade periódica e nem sempre se pode contar com o comprometimento da equipe com a execução total dos testes.O mesmo pode-se dizer sobre scripts de builds tanto do Ant quanto do Maven.</span></span></div><div class="Texto2oparagrafo" style="font-family: Verdana,sans-serif;"><br />
</div><div class="Texto2oparagrafo" style="font-family: Verdana,sans-serif;"><span style="font-size: small;"><span style="line-height: 130%;">Alguns teste também impõe certas características que dificultam sua execução, tais como: testes que manipulam muitas dados.</span></span></div><div class="Texto2oparagrafo" style="font-family: Verdana,sans-serif;"><br />
</div><div class="Texto2oparagrafo" style="font-family: Verdana,sans-serif;"><span style="font-size: small;"><span style="line-height: 130%;">A solução proposta neste texto é o Hudson, uma ferramenta de integração contínua usada automatizar builds e testes, desta forma temos um servidor de testes e builds que quando encontra alterações no repositório SVN ou Git executa os builds e testes automaticamente. A ferramenta vem ganhando adeptos pela sua facilidade de uso e o grande número de plugins disponíveis.</span></span></div><div class="Texto2oparagrafo" style="font-family: Verdana,sans-serif;"><br />
</div><div class="Texto2oparagrafo" style="font-family: Verdana,sans-serif;"><span style="font-size: small;"><span style="line-height: 130%;">A instalação do Hudson é simples e bem documentada no site oficial da ferramenta. É importante destacar que o Hudson roda como uma aplicação web e necessita de um container servlet, por padrão ele roda sob o Winstone não sendo necessária a instalação de outro container. Então basicamente existem 2 formas de instalação:</span></span></div><div class="Texto2oparagrafo" style="font-family: Verdana,sans-serif;"><br />
</div><div class="Texto2oparagrafo" style="font-family: Verdana,sans-serif;"><span style="font-size: small;"><span style="line-height: 130%;">Instalação simples:</span></span></div><div class="Texto2oparagrafo" style="font-family: Verdana,sans-serif;"><br />
</div><div class="Texto2oparagrafo" style="font-family: Verdana,sans-serif;"><span style="font-size: small;"><span style="line-height: 130%;">1. Faça download do arquivo hudson.war</span></span></div><div class="Texto2oparagrafo" style="font-family: Verdana,sans-serif;"><span style="font-size: small;"><span style="line-height: 130%;">2. Execute "java -jar hudson.war", executa o Winstone automaticamente.</span></span></div><div class="Texto2oparagrafo" style="font-family: Verdana,sans-serif;"><br />
</div><div class="Texto2oparagrafo" style="font-family: Verdana,sans-serif;"><span style="font-size: small;"><span style="line-height: 130%;">Instalação elaborada:</span></span></div><div class="Texto2oparagrafo" style="font-family: Verdana,sans-serif;"><br />
</div><div class="Texto2oparagrafo" style="font-family: Verdana,sans-serif;"><span style="font-size: small;"><span style="line-height: 130%;">1. Faça download do arquivo hudson.war</span></span></div><div class="Texto2oparagrafo" style="font-family: Verdana,sans-serif;"><span style="font-size: small;"><span style="line-height: 130%;">2. Instale no seu container servlet GlassFish, JBoss, Apache Tomcat ou outros. </span></span></div><div class="Texto2oparagrafo" style="font-family: Verdana,sans-serif;"><span style="font-size: small;"><span style="line-height: 130%;">3. A instalação é feita como de qualquer aplicação web, respeitando as diferenças de cada container servlet.</span></span></div><div class="Texto2oparagrafo" style="font-family: Verdana,sans-serif;"><br />
</div><div class="Texto2oparagrafo" style="font-family: Verdana,sans-serif;"><span style="font-size: small;"><span style="line-height: 130%;">Em nosso exemplo vamos utilizar a instalação simples:</span></span></div><div class="Texto2oparagrafo" style="font-family: Verdana,sans-serif;"><br />
</div><div class="Texto2oparagrafo" style="font-family: Verdana,sans-serif;"><span style="font-size: small;"><span style="line-height: 130%;">Depois de baixar o arquivo hudson.war e executar o comando "java -jar hudson.war" no prompt de comando o Hudson é carregado e "startado" pelo Winstone.</span></span></div><div class="Texto2oparagrafo" style="font-family: Verdana,sans-serif;"><br />
</div><div class="Texto2oparagrafo" style="font-family: Verdana,sans-serif;"><span style="font-size: small;"><span style="line-height: 130%;">A interface do Hudson é web, então no browser digitamos a seguinte URL:</span></span></div><div class="Texto2oparagrafo" style="font-family: Verdana,sans-serif;"><br />
</div><div class="Texto2oparagrafo" style="font-family: Verdana,sans-serif;"><span style="font-size: small;"><span style="line-height: 130%;">http://localhost:8080</span></span></div><div class="Texto2oparagrafo" style="font-family: Verdana,sans-serif;"><br />
</div><div class="separator" style="clear: both; text-align: center;"><a href="https://lh4.googleusercontent.com/-Qw7bfHaldZo/TX5JSXugZwI/AAAAAAAAADM/Prah72FgQkg/s1600/1.jpg" imageanchor="1" style="margin-left: 1em; margin-right: 1em;"><img border="0" height="225" src="https://lh4.googleusercontent.com/-Qw7bfHaldZo/TX5JSXugZwI/AAAAAAAAADM/Prah72FgQkg/s320/1.jpg" width="320" /></a></div><div class="separator" style="clear: both; text-align: center;"></div><div class="Texto2oparagrafo" style="font-family: Verdana,sans-serif;"><br />
</div><div class="Texto2oparagrafo" style="font-family: Verdana,sans-serif;"><br />
</div><div class="Texto2oparagrafo" style="font-family: Verdana,sans-serif;"></div><div class="Texto2oparagrafo" style="font-family: Verdana,sans-serif;"><span style="font-size: small;"><span style="line-height: 130%;">Neste caso estamos executando o Hudson na maquina local através da porta padrão 8080, está porta é a padrão mas pode ser alterada posteriormente, para a primeira execução a porta 8080 deve estar livre, se a maquina local tiver outro serviço como o Apache rodando na porta, o mesmo deve ser temporariamente interrompido.</span></span></div><div class="Texto2oparagrafo" style="font-family: Verdana,sans-serif;"><br />
</div><div class="Texto2oparagrafo" style="font-family: Verdana,sans-serif;"><span style="font-size: small;"><span style="line-height: 130%;">Se estiver utilizando Windows clique no menu "Gerenciar Hudson" e então "Instalar como um serviço do Windows", neste caso o Hudson irá iniciar juntamente com o sistema operacional. Será pedido o diretório de instalação, quando o Hudson foi carregado o diretório "C:\Hudson" foi criado e será nela que iremos realizar a instalação.</span></span></div><div class="Texto2oparagrafo" style="font-family: Verdana,sans-serif;"><br />
</div><div class="separator" style="clear: both; text-align: center;"><a href="https://lh6.googleusercontent.com/-cjmrchXx_Us/TX5JXR6SK_I/AAAAAAAAADQ/fSfvSDbfedE/s1600/3.jpg" imageanchor="1" style="margin-left: 1em; margin-right: 1em;"><img border="0" height="168" src="https://lh6.googleusercontent.com/-cjmrchXx_Us/TX5JXR6SK_I/AAAAAAAAADQ/fSfvSDbfedE/s320/3.jpg" width="320" /></a></div><div class="separator" style="clear: both; text-align: center;"></div><div class="Texto2oparagrafo" style="font-family: Verdana,sans-serif;"><br />
</div><div class="Texto2oparagrafo" style="font-family: Verdana,sans-serif;"><br />
</div><span style="font-family: Verdana,sans-serif; font-size: small;">Basta clicar no botão "Instalar" aguarda a instalação finalizar, logo após clique em "Sim" para reiniciar o Hudson.</span><br />
<div class="Texto2oparagrafo" style="font-family: Verdana,sans-serif;"><br />
</div>Rômulo Camposhttp://www.blogger.com/profile/05988175083988676014noreply@blogger.com0tag:blogger.com,1999:blog-2204872007780479847.post-78502777045039123422011-03-01T12:46:00.000-08:002011-03-11T10:57:17.355-08:00Selenium IDE, ferramenta de teste automatizado<div class="separator" style="clear: both; text-align: right;"><a href="http://seleniumhq.org/projects/ide/selenium-ide.gif" imageanchor="1" style="clear: right; float: right; margin-bottom: 1em; margin-left: 1em;"><img border="0" height="320" src="http://seleniumhq.org/projects/ide/selenium-ide.gif" width="246" /></a></div><div style="font-family: Verdana,sans-serif;"><span style="font-size: small;"><span class="long_text" id="result_box" lang="pt"><span class="hps" title="Clique para mostrar traduções alternativas">"Selenium</span> <span class="hps" title="Clique para mostrar traduções alternativas">IDE</span> <span class="hps" title="Clique para mostrar traduções alternativas">é</span> <span class="hps" title="Clique para mostrar traduções alternativas">um</span> <span class="hps" title="Clique para mostrar traduções alternativas">ambiente integrado de desenvolvimento</span> <span class="hps" title="Clique para mostrar traduções alternativas">para scripts de testes automatizados</span><span class="hps" title="Clique para mostrar traduções alternativas"></span><span title="Clique para mostrar traduções alternativas">.</span> <span class="hps" title="Clique para mostrar traduções alternativas">Ele é implementado como</span> <span class="hps" title="Clique para mostrar traduções alternativas">uma extensão</span> <span class="hps" title="Clique para mostrar traduções alternativas">do Firefox</span> <span class="hps" title="Clique para mostrar traduções alternativas">e</span> <span class="hps" title="Clique para mostrar traduções alternativas">permite</span> <span class="hps" title="Clique para mostrar traduções alternativas">gravar</span><span title="Clique para mostrar traduções alternativas">,</span> <span class="hps" title="Clique para mostrar traduções alternativas">editar</span> <span class="hps" title="Clique para mostrar traduções alternativas">e depurar</span> <span class="hps" title="Clique para mostrar traduções alternativas">os testes</span><span title="Clique para mostrar traduções alternativas">.</span>O <span class="hps" title="Clique para mostrar traduções alternativas">Selenium</span> <span class="hps" title="Clique para mostrar traduções alternativas">IDE</span> <span class="hps" title="Clique para mostrar traduções alternativas">inclui</span> <span class="hps" title="Clique para mostrar traduções alternativas">o</span> <span class="hps" title="Clique para mostrar traduções alternativas">Selenium</span> <span class="hps" title="Clique para mostrar traduções alternativas">Core</span> <span title="Clique para mostrar traduções alternativas">, permitindo que</span> <span class="hps" title="Clique para mostrar traduções alternativas">você</span> <span class="hps" title="Clique para mostrar traduções alternativas">facilmente e</span> <span class="hps" title="Clique para mostrar traduções alternativas">rapidamente possa</span> <span class="hps" title="Clique para mostrar traduções alternativas">gravar e</span> <span class="hps" title="Clique para mostrar traduções alternativas">reproduzir</span> <span class="hps" title="Clique para mostrar traduções alternativas">os testes</span> <span class="hps" title="Clique para mostrar traduções alternativas">no</span> <span class="hps" title="Clique para mostrar traduções alternativas">ambiente</span> <span class="hps" title="Clique para mostrar traduções alternativas">real</span> <span class="hps" title="Clique para mostrar traduções alternativas">que</span> <span class="hps" title="Clique para mostrar traduções alternativas">será executado</span><span title="Clique para mostrar traduções alternativas">.</span>"</span></span></div><div style="font-family: Verdana,sans-serif;"><span style="font-size: small;"><br />
</span></div><div style="font-family: Verdana,sans-serif;"><span style="font-size: small;"><span class="long_text" id="result_box" lang="pt">É muito simples criar seus scripts de testes utilizando o Selenium IDE por ser uma ferramenta gráfica integrada com o Firefox.Além de automatizar os testes de sistema</span><span class="long_text" id="result_box" lang="pt"> a ferramenta também simplifica os testes de regressão, já que a qualquer momento pode-se realizar um mesmo teste nas novas versões do sistema.</span></span></div><div style="font-family: Verdana,sans-serif;"><span style="font-size: small;"><span class="long_text" id="result_box" lang="pt"><br />
</span></span></div><div style="font-family: Verdana,sans-serif;"><span style="font-size: small;"><span class="long_text" id="result_box" lang="pt">A escrita dos scripts de maneira gráfica é simples, com o Selenium IDE aberto basta clicar com o botão direito em cima do elemento e adicionar o evento, originalmente o script é gerado em HTML mas pode ser exportado para </span><span class="long_text" id="result_box" lang="pt">C#, PHP, Java e outras linguagens.</span></span></div><div style="font-family: Verdana,sans-serif;"><span style="font-size: small;"><br />
</span></div><div style="font-family: Verdana,sans-serif;"><span style="font-size: small;"><span class="long_text" id="result_box" lang="pt">Existe a versão do Selenium WebDrive em que se pode escrever os scripts na linguagem suportada, está versão é indicada para testes mais elaborados e por usuários familiarizados com a ferramenta, geralmete usa-se o Selenium IDE para testes básicos, exporta-se o script e depois edita-se o script para realizar testes mais elaborados.</span></span></div><div style="font-family: Verdana,sans-serif;"><span style="font-size: small;"><br />
</span></div><div style="font-family: Verdana,sans-serif;"><span style="font-size: small;"><span class="long_text" id="result_box" lang="pt">O download da ferramenta pode ser feito em : http://seleniumhq.org/download/</span></span></div><div style="font-family: Verdana,sans-serif;"><span style="font-size: small;"><br />
</span></div><div style="font-family: Verdana,sans-serif;"><span style="font-size: small;"><span class="long_text" id="result_box" lang="pt">Referência:</span></span></div><div style="font-family: Verdana,sans-serif;"><span style="font-size: small;"><br />
</span></div><div style="font-family: Verdana,sans-serif;"><span style="font-size: small;"><span class="long_text" id="result_box" lang="pt">http://seleniumhq.org/ - Acessado em 01-03-11 </span></span> </div><span class="long_text" id="result_box" lang="pt"></span><br />
<span class="long_text" id="result_box" lang="pt"></span><br />
<span class="long_text" id="result_box" lang="pt"></span><br />
<span class="long_text" id="result_box" lang="pt"></span><br />
<span class="long_text" id="result_box" lang="pt"></span><br />
<span class="long_text" id="result_box" lang="pt"></span><br />
<span class="long_text" id="result_box" lang="pt"></span><br />
<span class="long_text" id="result_box" lang="pt"><span class="hps" title="Clique para mostrar traduções alternativas"></span><span class="hps" title="Clique para mostrar traduções alternativas"></span></span>Rômulo Camposhttp://www.blogger.com/profile/05988175083988676014noreply@blogger.com0tag:blogger.com,1999:blog-2204872007780479847.post-34525224951735863512011-02-05T10:47:00.000-08:002011-02-11T04:20:24.250-08:00Fundação Bradesco oferece curso de ITIL e CobiT gratuitos<div style="font-family: Verdana,sans-serif;"><span style="font-size: small;"> A Fundação Bradesco oferece,dentre outros, os cursos o de ITIL e CobiT 4.1 online gratuitos. Os cursos são uma iniciativa da Escola Virtual apoida pela Fundação.</span></div><div style="font-family: Verdana,sans-serif;"><span style="font-size: small;"><br />
</span></div><div style="font-family: Verdana,sans-serif;"><span style="font-size: small;">Os cursos não são destinados para as respectivas certificações, entretanto podem ser utilizados para complementar os estudos.</span></div><div style="font-family: Verdana,sans-serif;"><span style="font-size: small;"><br />
</span></div><div style="font-family: Verdana,sans-serif;"><span style="font-size: small;">Todos os cursos da Escola Virtual estão disponíveis no site www.ev.org.br.</span></div><div style="font-family: Verdana,sans-serif;"><span style="font-size: small;"><br />
</span></div><span style="font-family: Verdana,sans-serif; font-size: small;">Bons estudos.</span>Rômulo Camposhttp://www.blogger.com/profile/05988175083988676014noreply@blogger.com4