Leonardo Ribeiro Oliveira
unread,Apr 19, 2011, 11:37:17 PM4/19/11Sign in to reply to author
Sign in to forward
You do not have permission to delete messages in this group
Either email addresses are anonymous for this group or you need the view member email addresses permission to view the original message
to guts-rs...@googlegroups.com, Clarissa Rodrigues
Quando tu te refere a Selenium, seria o Selenium IDE ou Selenium 2/WebDriver?
Eu não concordo com o ponto de que as duas ferramentas tem o mesmo propósito e que é possível atingir os mesmos objetivos com elas. O fato de já possuir uma licença do QTP também não simplifica a escolha.
As principais diferenças que eu vejo entre o Selenium e o QTP são:
- No QTP tu depende do número de licenças disponíveis, ou seja, caso possua uma licença, apenas uma instância do QTP pode ser executada. Que diferença isso faz? Tu só poderá ter uma máquina rodando os testes, no caso do Selenium é possível executar os testes em várias instâncias em máquinas diferentes.
- Caso tu trabalhe com integração contínua os testes do Selenium podem ser executados automaticamente a cada deploy utilizando qualquer ferramenta de CI (Hudson, Go, CruiseControl,...), no caso do QTP isso não é possível sem algumas gambiarras, e mesmo assim os testes do QTP em geral levam muito mais tempos para executar e vão acabar afetando muito o tempo de deploy.
- Selenium te permite trabalhar com BDD, dando a possibilidade de pessoas do business entenderem os testes e não somente os técnicos. Isso é possível no QTP com o auxílio de outras ferramentas vendidas pela HP, porém a licença de apenas uma dessas ferramentas custa mais que a licença do QTP e o resultado é bem inferior. No caso do Selenium é possível obter melhores resultados e de graça utilizando Cucumber e Capybara.
- Com o QTP tu é obrigado a trabalhar no ambiente nativo da aplicação, que é uma IDE muito simples, com Selenium é possível utilizar a IDE que mais te agradar.
- A execução dos testes no QTP é muito lenta, mesmo quando comparada com o Selenium IDE. Quando se utiliza programação descritiva a diferença é monstruosa.
- É possível testar aplicações desktop com o QTP (VB, .net...)
- QTP roda apenas em Windows, Selenium roda em Windows, MacOS, Linux e outros.
- QTP oferece suporte ao Internet Explorer que ainda é o browser mais utilizado, porém são necessárias algumas gambiarras pra se utilizar Firefox. Já o Selenium oferece suporte a diversos browsers, porém apenas o suporte ao Firefox é completo.
- Utilizando o QTP em conjunto com o Quality Center é fácil se ter uma rastreabilidade dos requisitos aos testes, no Selenium nunca tentei fazer isso, mas acredito que seja mais complicado.
- A dupla QTP/QC consegue ter os resultados dos testes manuais e automatizados em um lugar centralizado facilmente, pra fazer isso com o Selenium acredito que a dificuldade seja maior, porém nunca tentei.
- O QTP possui um controle de versão quando utilizado com o Quality Center, porém os resultados são ligados ao script e não a versão do script/código. Isso é possível no caso do Selenium utilizando Git/SVN.
- No QTP só é possível abrir um script de teste por vez, caso o script seja carregado do Quality Center o mesmo fica trancado para edição para outros usuários, ou seja, não é possível que duas pessoas trabalhem no código ao mesmo tempo e depois façam um merge, algo muito fácil de se realizar utilizando Selenium.
- Pode se trabalhar com Selenium utilizando diversas linguagens de programação, QTP trabalha apenas com VBScript. Com Selenium é possível trabalhar com linguagens já conhecidas dos desenvolvedores (possibilitanto a troca de conhecimentos entre DEVs e QAs) ou melhor ainda, utilizar a mesma linguagem em que o software está sendo desenvolvido. Além disso VBScript é uma linguagem limitada: apesar de suportar objetos não suporta herança, polimorfismo e nem mesmo sobrescrever métodos.
Dizer que o QTP é mais fácil depende do que se quer fazer. É fácil treinar um time em gravar e executar testes utilizando o QTP, porém a maioria das funcionalidades prontas do QTP se tornam ineficazes pra um uso mais avançado da ferramenta.
Por exemplo, os DB Checkpoints que tornam muito fácil a verificação de bases de dados tem vários bugs, se corrompem facilmente e são muito chatos pra atualizar (mesmo com o uso do update mode disponível a partir da versão 10.0+). É preciso marcar uma a uma as células, linhas ou colunas que se quer verificar e no caso de resultados mutáveis, apontar os resultados esperados para posições na datatable. Com o tempo é obvio que o time vai preferir criar "manualmente" as verificações no banco.
Outro exemplo comum são os resultados do QTP, muito simplórios, pra um uso mais avançado da ferramenta é necessário sobrescrever os métodos que geram os relatórios de erro e melhorar os reports com a coleta de screenshots e mais informações.
Aplicações como SAP, Siebel, Flex, Flash e etc a princípio são mais fáceis de testar no QTP, pois tem plugins disponíveis pra todas, e esses plugins passaram a ser parte da licença do QTP desde a versão 10.0, ou seja, não tem custo extra. Porém procurando é possível encontrar ferramentas opensource que fazem o mesmo, já utilizei o FlexMonkey para testar aplicações em Flex e o resultado foi muito bom.
Com certeza devem existir milhares de outras diferenças, mas no momento só lembro dessas. Vale a pena seguir o conselho dado pelo Elias e criar uma planilha com os pontos mais importantes pra ti e pro teu time e avaliar bem as ferramentas, ainda incluiria nessa tua pesquisa Watir, Sahi e Twist.
Abraço,
Leonardo Ribeiro Oliveira