Por que migrei meus testes automatizados de Java/C# para Ruby?

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 chique automatizar testes com 100% Hand Coded. De 2009 a 2011 foi a fase de sofrimento com versões alpha e beta do Selenium 2 ou Webdriver.

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.

Em 2013, conheci o SpecFlow e comecei a especificar meus testes automatizados com BDD e C#. Foi muito legal também. O único ponto negativo é a forma na qual o SpecFlow faz parse do BDD para uma Classe medonha em C#, e que era horrível para dar manutenção.

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 massa.

Atom + WebDriverIO + CucumberJS + PhantomJS
Foi nesse momento que comecei a perceber que linguagens dinamicamente tipadas são mais interessantes para automatizar testes.

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 do Ruby são realmente poderosas. Não é atoa que o Thanos arrumou um baita briga com os Vingadores para junta-las.

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.

Like what you read? Give Papito a round of applause.

From a quick cheer to a standing ovation, clap to show how much you enjoyed this story.