Por que migrei meus testes automatizados com Java e CSharp para Ruby?

Papito
Papito in qaninja
Sep 6, 2017 · 4 min read

Não é benchmark***

O início (2007)

Comecei atuar com automação de testes em meados de 2007 com o finado Winrunner da Mercury. A linguagem era VBScript (vida sofrida).

WinRunner 7

Anos dourados (2008–2011)

No final de 2008, migrei para Selenium RC (Beta2) + JUnit + Java. Isso foi a ápice da automação. Era muito legal automatizar testes 100% Hand Coded com Java, aprendendo como funciona a biblioteca do Selenium copiando e colando ações do Selenium IDE (quem nunca?)

Mas de 2009 a 2011 foi a fase de sofrimento com versões alpha e beta do Selenium 2 ou Webdriver. Bugs e mais bugs e incompatibilidades.

Eclipse com Junit e Selenium

Anos Esmeralda e Experimentos (2011–2013)

No final de 2011, comecei a estudar C# e obviamente migrei para Selenium WebDriver + NUnit + C# + Visual Studio. Automatizando testes em projetos ASP.Net WebForms e ASP.Net MVC.

Até o tal do CodedUI da Microsoft entrou na jogada. Um puta framework de testes (master completo) que foi deixado no mar do esquecimento. Provavelmente por conta da chegada do .NET Core que época era Beta baseado em mono.

Em 2013, conheci o SpecFlow e comecei a especificar features e automatizar com BDD e C#. Mas comparado ao Cucumber e Ruby a diferença de produtividade era absurdamente notável para automação web (caixa preta).

Visual Studio com Selenium

Desafios (2013–2014)

Nesse período quando Nodejs começou bombar, passamos por mudanças nos sistemas da empresa. Desligamos softwares legados e criamos novos softwares em Angular 1.5, foi o momento propicio para Começar com Cucumber.js + WebdriverIO. Fazer testes em Javascript sempre foi desafiador. Tempos depois fizemos POCs com Protractor e foi sensacional.

Atom + WebDriverIO + CucumberJS + PhantomJS

Foi nesse momento que comecei a perceber que linguagens dinamicamente tipadas são mais interessantes para automatizar testes para web e integração de serviços.

Anos Rubi (2014 — até agora)

Migrando para Cucumber para Ruby + Capybara, comecei a ver o quão simples é estruturar um projeto Ruby em Relação ao Java e C#. Ruby é uma linguagem muito boa para fins de automação de testes, de fácil compreensão e muito produtiva.

VSCode + Cucumber + Ruby

Mas e Java e C# são ruins para automação de testes?

Com certeza não. Mas "no meu ponto de vista", cada linguagem tem uma especialidade. Se falarmos de performance é C ou C++. Porque escrever sistemas é realmente coisa pra C.

Porem escrever aplicações funcionais e até mesmo para um nicho de WebApps, é mais produtivo com Java Spring MVC , Asp.NET MVC, PHP, Python com Django ou Ruby on Rails. E por ai vai.

Para fins de scripts de testes, é bem mais produtivo usar Ruby ou Javascript.

Veja esse exemplo Java e Selenium com Page Object:

Agora veja esse mesmo exemplo, porem com Ruby, Capybara e Page Object:

Com Java eu sou obrigado a tipar as variáveis, classes e métodos (burocrático).

Com Ruby, tenho uma sintaxe mais simples e a curva de aprendizado é menor. (para iniciantes isso é um diferencial)

E as GEMAS (gems)?

Temos muitas facilidades com as Gems: bibliotecas do Ruby. Elas estão todas ali (RubyGems.org), em um único local, tudo muito fácil e rápido.

É muito chique poder, com uma única linha de comando, ativar uma biblioteca inteira que minutos antes não estava nem instalada no computador.

Acesse o RubyGems.org e descubra ainda mais sobre o mundo incrível das GEMAS.

As GEMs (Joias) do Ruby são tão poderosas como as joias do Infinito. Se o Thanos fosse programador, certamente escolheria Ruby hahahahaha.

Comunidade amigável com os iniciantes \o/

Sim, isso também é um porto forte, pois a vida de um iniciante não é fácil.

Por alguma razão, a linguagem e os desenvolvedores Ruby estão entre os mais amigáveis mundo a fora. A união faz a força (ou açucar kkkk)

Conclusão:

Ruby, por ser uma linguagem dinamicamente tipada, temos flexibilidades. No geral, você escreve bem menos para alcançar o mesmo resultado, sem perder a “legilibilidade” no código.

Agora se você leitor, ficou bravo porque é fã boy de Java ou C#. Fique calmo e lembre-se que nunca foi uma tarefa fácil, introduzir automação de testes para testadores que sempre fugiram da programação. Com Ruby é menos complicado.

Quer saber mais sobre automação de testes com Ruby? Acesse http://qaninja.io

E você o que acha? Deixe aqui sua opinião.

qaninja

QA Ninja Blog

Papito

Written by

Papito

QA Lead, DevOps, Developer & Joker

qaninja

qaninja

QA Ninja Blog