Pular para o conteúdo principal

Browsers para todos os gostos e um aperitivo de Selenium nas nuvens

Em 1989, foi derrubado o muro de Berlim. O ensaista Francis Fukuyama decretou o "fim da história": o capitalismo norteamericano havia vencido a guerra fria com seu sistema rival, o antes temido comunismo soviético. De fato, o sistema capitalista se tornou dominante, com a exceção de um par de cenários de reality show onde moram alguns milhões de pessoas: o Pedro Bial de um deles usa um topete midiático e o outro, que não raspa a barba há meio século, virou garoto propaganda da Adidas.

Na geopolítica, de lá pra cá, a hegemonia norteamericana sofreu abalos: vivemos em um novo mundo multipolar, onde outros atores passaram a crescer em relevância, principalmente os BRICs.

Em 2002/2003, a primeira guerra dos browsers também chegou ao fim. Com mais de 95% de participação, o Internet Explorer se tornou o único browser relevante. Os webdesigners colocavam avisos dizendo que, se você não atualizasse seu browser para IE 6, você não teria o privilégio de visitar aquele site.

Assim, para quê se preocupar com os padrões do W3C ou da ECMA ? Se não funcionava para os desajustados, eles que se ajustassem. Naquela época, acessar a web a partir do celular era uma raridade, e apenas os nerds mais radicais insistiam em usar um desktop Linux: assim como os grupúsculos de ultraesquerda que só existem em diretórios de estudantes de universidades públicas, eles se dividiam entre os partidários de cada distribuição. Para o dono da confecção que queria divulgar suas promoções na internet, ou simplesmente falar orgulhosamente para os clientes "agora temos um saitenauebe !", o fato de alguém não poder acessar a página inicial dele usando o Konqueror era irrelevante.

Hoje, a situação é bem diferente. O acesso à web por celulares e PDAs, dos quais apenas uma minoria consegue rodar IE, é corriqueiro. Computadores de mesa, laptops e netbooks comprados nas Casas Bahia já vêm com Ubuntu instalado, e Macs não são mais exclusivos de designers estilosos. Em novos dispositivos como mini-tablets (Kindle, iPad = iPhone de Itu), ainda não se sabe se haverá uma plataforma dominante. O ChromeOS também deve mexer nesse mix.

Nas estatísticas, a participação do IE já se reduziu aproximadamente à metade dos dispositivos que acessam a web, e a metade restante está bastante pulverizada. Hoje, o dono da confecção que passou a depender mais da web e não reformulou seu site IE-only desde 2002, pode estar deixando de fora metade dos seus clientes.

Quem já leu algum outro post deste blog, deve ter percebido que sou viciado em teste de software: como fazer para testar seu site com um número crescente de browsers ? Comprar diversos tipos de hardware, instalar sistemas operacionais diversos e contratar um exército de testadores manuais não parece ser uma estratégia viável para o dono da confecção.

É ai que começamos a pensar no assunto da moda: cloud. Seria possível montar uma infraestrutura com máquinas virtuais, cada uma executando um sistema operacional e um browser diferente, e poder controlá-los remotamente, executando um mesmo roteiro de testes ?

Felizmente, isso é possível. A família de ferramentas Selenium permite montar tal infraestrutura através do Selenium Grid. No site tem um passo-a-passo de como montar um conjunto de nós escravos de Selenium Grid no serviço EC2 da Amazon (http://selenium-grid.seleniumhq.org/setting_up_selenium_grid_on_ec2.html)

Outra possibilidade, talvez menos nerd, é contratar alguém que já fez isso e que oferece o teste como serviço (TaaS ?), a partir dos seus próprios scripts para Selenium, numa nuvem pública. Você paga o que o taxímetro indicar, e recebe os relatórios no conforto do seu browser. Este serviço é oferecido pela BrowserMob (http://browsermob.com). De quebra, você pode fazer testes de carga com um número grande de browsers reais, reutilizando toda a lógica dos seus testes funcionais, em vez de precisar escrever testes específicos para ferramentas como JMeter.

Se, por algum motivo, você não deseja confiar sua preciosa lógica de teste (o que provavelmente não é o caso do dono da confecção) aos cuidados de terceiros, daria para montar uma nuvem interna usando, por exemplo, o Eucalyptus nos computadores que normalmente ficariam ociosos durante a noite.

Pretendo explorar esta possibilidade nas próximas semanas e postar os resultados do experimento.
Aguardem.

Jorge Diz
http://twitter.com/jorgediz

Comentários

Dr. Spock disse…
Oi Jorge,

Acho que o tico e teco aqui não captaram os binds. Qual o bind entre guerra fria, BBB, esquerda, radicalismo, etc com os browsers, testes e selenium? Eles conseguiram captar sobre a necessidade de testes automatizados com a crescente adoção de vários browsers e meios diferentes de conexão (konqueror, safari, firefox, chrome, opera, iphone, ipod, pc, mac, smartphones, netbooks, ipad, etc). Nesse ponto tudo bem! Começou com história/filosofia e parou no técnico ... aí pifou o teco ... e o tico ficou confuso :)
Jorge Diz disse…
Explicando:

Guerra fria ~ Guerra dos browsers

Capitalismo ~ IE : vitória esmagadora

Relíquias comunistas ~ Usuários de outros browsers

BRICs ~ FOCS (Firefox, Opera, Chrome, Safari)

A geopolítica mudou desde o fim da guerra fria ~ O cenário da web mudou desde o fim da guerra dos browsers.

Ai talvez faltou continuar com a metáfora ...
mas a ideia era tentar mostrar que o mundo mudou e que vc espanta metade dos seus clientes se continuar com a ideia de que o IE marcou o "fim da história"

Acho que dei um cavalo de pau quando comecei a falar de testes, uma vez montado o cenário...

Obrigado pelo feedback :)

Jorge
Anônimo disse…
Pois sua "metafora" ficou excelente! So nao havia entendido o lance do BRICs, que esclareceu aqui. Parabens! - Daniel

Postagens mais visitadas deste blog

Melhorando Performance de JPA com Spring Web Flow

No TDC2009 realizado pela Globalcode em São Paulo foi apresentado um Lightning Talk sobre um problema específico de performance em aplicações Web com JPA e uma possível solução usando o Spring Web Flow . Num período de 15 minutos, os slides a seguir foram apresentados e seguidos de alguns vídeos de demonstração de uma aplicação Web em execução. Melhorando performance do JPA com Spring Web Flow View more presentations from Dr. Spock . Nesta apresentação foi dito que temos encontrado problemas de performance em aplicações Web que utilizam as tecnologias JSF + JPA + Ajax quando precisamos gerenciar um contexto de persistência (EntityManager). Estes problemas se manifestam quando aplicamos uma resposta errada para a pergunta: Como gerenciar o contexto de persistência numa aplicação Web? Se as aplicações não usam Ajax e limitam-se ao modelo orientado a requisições, a solução mais comum é o uso do design pattern chamado "Open Session In View Filter". Através deste design

O que é Lógica de programação?

Este é o segundo de uma série de posts voltados aos leitores do blog que estão dando início à carreira de desenvolvimento de software. O assunto de hoje é a lógica de programação. Para ler antes: Entendendo como funciona a programação de computadores: linguagens de programação, lógica, banco de dados A lógica de programação é um pré-requisito para quem quer se tornar um desenvolvedor de software, independente da linguagem de programação que se pretende utilizar. Mas o que é de fato a Lógica de Programação e como saber se eu tenho esse pré-requisito? A lógica de programação nada mais é do que a organização coerente das instruções do programa para que seu objetivo seja alcançado. Para criar essa organização, instruções simples do programa, como mudar o valor de uma variável ou desenhar uma imagem na tela do computador, são interconectadas a estruturas lógicas que guiam o fluxo da execução do programa. Isso é muito próximo ao que usamos em nosso cotidiano para realizar atividad

Dica rápida: Apagando registros duplicados no MySQL

Ola pessoal, Sei que vocês estão acostumados a ver posts meus sobre tecnologia móvel ou algo relacionado, mas hoje vou falar sobre um pequeno "truque" que usei esse final de semana com o MySQL. Eu estava desenvolvendo o lado servidor de uma nova aplicação mobile (ahh, então "tem a ver" com mobile hehe), e quando fui fazer alguns testes percebi que tinha quase 7 mil registros duplicados (!!!) na minha base de dados! Bom, o meu primeiro reflexo como programador foi pensar em fazer um "programinha" Java para buscar e deletar todos esses registros duplicados. Mas ai, resolvi tirar as teias de aranha dos neurônios e usar os vários anos de experiência que passei com SQL e criar uma query que fizesse esse trabalho todo de uma vez!! E a query ficou assim: delete from TABLE_NAME USING  TABLE_NAME, TABLE_NAME  AS  auxtable WHERE   ( NOT  TABLE_NAME.id  =  auxtable.id ) AND   ( TABLE_NAME.name  =  auxtable.name ) Explicação direta: TABLE_NAME

Muitas vagas, otimismo e sensação de reaquecimento da economia

2010 começou cedo, contrariando a expectativa que muitos Brasileiros tem de "O ano começa mesmo depois do carnaval".  Embora o inicio do ano tenha sido "repleto" de catástrofes naturais e muita chuva aqui no Brasil, no campo profissional o otimismo está evidente, as pessoas estão cheias de energia e boas perspectivas em relação as oportunidades de JavaEE 6 e muitas outras tecnologias. Mas, parece que não são somente as pessoas que estão otimistas, os anúncios de vagas voltaram a crescer, empresas anunciando boas vagas, ou grandes quantidades de vagas, refletindo o que podemos chamar de "Otimismo corporativo" . Veja algumas empresas que anunciaram vagas: IBM SpringSource   Yahoo!  Elumini   Cyberlynxx   Google Kaizen SPC Brasil Se em 2009, um ano de crise fizemos tudo isto , imagine em 2010. E você está preparado ?  Está otimista ? []s Yara http://twitter.com/yarasenger http://twitter.com/globalcode

Devo fazer um curso ou ler um livro?

Acredito que todos os instrutores ou professores, independentemente da área, escola ou centro de treinamento, já devam ter recebido essa pergunta alguma vez na vida: devo fazer um curso ou ler um livro? Para responder a essa pergunta, precisamos avaliar os prós e contras de cada opção. Trabalho com treinamento há algum tempo e, hoje, recebi essa pergunta de um aluno. Não adianta responder a ou b sem argumentar, demonstrando as opções conforme a situação do aluno. O conteúdo, a forma de transmissão e a capacidade de assimilação do indivíduo são chaves para haver benefício maior de aprendizado. Tanto em um bom curso quanto em um bom livro, o conteúdo é a premissa básica . Por conteúdo entendemos: se está organizado; se respeita pré-requisitos; se promove o aprendizado guiado e incremental; se aborda de forma satisfatória os principais pontos; se tem bom balanço entre teoria, exemplos e prática (favorecendo exemplos e prática); se tem como premissa a acessibilidade possível (e cabível) pa

JavaLi no Lançamento mundial do JDK7 em São Paulo

O Lançamento mundial do JDK7 foi realizado no dia 7/7 em três cidades simultaneamente: São Paulo (SouJava), Londres (London User Group) e São Francisco (Oracle) com transmissão ao vivo via satélite! Evidentemente as cidades não foram escolhidas por acaso, e podemos enxergar a escolha da cidade de São Paulo como um sinal de reconhecimento à comunidade Java Brasileira, ao SouJava e à Globalcode. Com certeza houveram várias pessoas fundamentais para isto, como o Bruno Souza e o Mauricio Leal responsáveis pela organização e realização do Mês de Java! Veja a entrevista com o JavaLi no TDC2011: Veja também as fotos do Lançamento do JDK7 na cobertura realizada aqui no Globalcoders. É isso aí pessoal, próxima parada ? Trilha Java TDC2011 Goiânia! E você, já se inscreveu? Participe, colabore, divulgue esta iniciativa. []s Yara Senger http://twitter.com/yarasenger