SimplíssimoAutomatizando Testes de Software Com Selenium

Automatizando Testes de Software Com Selenium


Por Hugo Peres

R$ 29.90 - Livro digital, formato ePub 2 (7.7 MB)

Bônus incluso
Dados Dinâmicos no Selenium IDE
 

Resumo

Automatizando Testes de Software com Selenium é um manual prático voltado para todos profissionais e empresas da área de sistemas e que almejam melhorar a qualidade dos seus serviços e/ou produtos de forma simples, eficiente e com baixo custo. Neste livro, você encontrará todos os recursos que a ferramenta Selenium disponibiliza para implementar um ambiente robusto de testes automatizados, como por exemplo: gravação/execução de scripts de teste, exportação/importação de scripts de teste em um projeto de teste, execução simultânea de testes em diferentes plataformas e navegadores. Inove sua forma de testar software, embarcando nesse incrível mundo da automação e veja através dos resultados como as maquinas podem facilitar suas tarefas do dia-a-dia.
Publique seu ebook

Dados do Livro

  • Publicado em 18/11/2016
  • ISBN: 9788582453889
  • Língua: PT
  • Páginas: 86
  • Formato: ePub 2
  • Tamanho: 7.7 MB

Como ler um ebook

Para ler no computador, instale um dos programas abaixo:
  • Adobe Digital Editions (Windows e Mac). Gratuito, é o programa mais usado para a leitura no computador.
  • Blue Fire Reader (Windows). Gratuito, tem os mesmos recursos do Adobe Digital Editions.
  • Calibre (Windows, Mac, Linux). Gratuito. Também converte arquivos, de Word para ePub, de ePub para Mobi, PDF, entre outros formatos.
Para tablets e smartphones, existe uma grande variedade de apps para leitura de ebooks. Quais nós recomendamos: Todos estes aplicativos reúnem certas características básicas: permitem aumentar o tamanho da fonte, trocar a cor de fundo da tela (modo noturno), marcar páginas. O iBooks permite consultar o significado de palavras, pois você pode instalar dicionários.
Para tablets e smartphones, existe uma grande variedade de apps para leitura de ebooks. Quais nós recomendamos: Todos estes aplicativos reúnem certas características básicas: permitem aumentar o tamanho da fonte, trocar a cor de fundo da tela (modo noturno), marcar páginas. O iBooks permite consultar o significado de palavras, pois você pode instalar dicionários.
Os ereaders têm telas em tons de cinza (sem cores) e não refletem a luminosidade ambiente, o que para muitas pessoas é bastante importante, para o conforto do leitura, ou para ler em ambientes muito iluminados (praia, piscina, etc). Existem várias opções disponíveis no Brasil, todas muito boas do ponto de vista técnico e bastante semelhantes. Sempre há opções com ou sem internet (para baixar os livros com mais facilidade), com ou sem luz embutida (para leitura noturna). Recomendamos que você faça uma pesquisa nas várias lojas, para encontrar o aparelho que combina melhor com você. Quem tem um Kindle, o mais famoso desses aparelhos, poderá ler nos formatos AZW (livro com proteção da Amazon), mobi, PDF e até em outros, desde que seja feita a conversão do arquivo. Quem adquirir um dos outros aparelhos, poderá ler no formato ePub, e também poderá converter de outros formatos para ePub - usando para isto o programa Calibre. Por expereriência, podemos afirmar com segurança que o ereader mais completo, e mais fácil de usar, certamente é o Kindle. Lembre-se, porém, que você sempre terá de ler seus ebooks usando o aparelho da Amazon, ou seus aplicativos. A Amazon tem apps para todas as plataformas e sistemas imagináveis, o que é vantajoso; porém, não poderá comprar ebooks em outras lojas e colocar no Kindle (você até consegue, mas terá bastante trabalho para fazer isso, o que prende a maior parte dos usuários à Amazon).
  • Kindle, da Amazon - há várias opções, começando geralmente em R$ 299.
  • Lev, da Saraiva - Aparelho muito bom, vale a pena conferir.
  • Kobo, na Livraria Cultura - Os aparelhos também são bons, há diversos modelos.

Comece a ler aqui!


INTRODUÇÃO

A preocupação com a qualidade de software cresceu à medida que a imagem das empresas passou a ficar cada vez mais exposta ao público mediante ao surgimento dos sistemas web.

Por volta de 1990, grandes empresas desse ramo reconheciam que bilhões de dólares estavam sendo desperdiçados em softwares que não apresentavam características e funcionalidades prometidas. Viviam aquele dilema de querer produzir o software “perfeito”, mas sem ter tempo e esforço necessários para a tal façanha. Isso as levaram a procurar novos meios de aperfeiçoar a qualidade. E um desses caminhos foi o aprimoramento das atividades relacionadas a teste de software por meio da automação.

Diferente da filosofia que muitas organizações seguem, ter um ambiente de testes automatizados não é algo tão custoso e complexo como parece ser. Com o conhecimento bem difundido, hoje temos a disposição diversas ferramentas de automação open sources, que com apenas uns cliques, já é possível criar scripts de testes eficientes que validam as funcionalidades do sistema quantas vezes for preciso de forma automática. Um bom exemplo disso é o uso da ferramenta Selenium, a qual será a proposta desse trabalho.

 

INOVAÇÃO EM TESTE DE SOFTWARE 

O termo inovar vem do latim in + novare, que significa “fazer algo novo, alterar ou renovar”. Para o autor Sarkar (2007), refere-se a tudo aquilo que transforma ou renova algo, seja um produto ou processo, produzindo resultado para a empresa.

A “Guerra da Inovação” entre Google e Microsoft tem sido um grande exemplo da importância da inovação na área de TI. Nos últimos anos, Google inovou seu site de pesquisa (buscador), o qual detém cerca de 60% desse mercado. Isso lhe rendeu um ótimo retorno financeiro mediante a venda de publicidade no seu buscador. Enquanto a Microsoft resolveu desenvolver seu próprio site de buscas, O Bing, o qual tem sido bem aceito pelos usuários.

Em suas palestras, Molinari (2010) costuma fazer a seguinte citação: “Ou você muda ou você se muda”. Isto é, se mudar, tem que ser para melhor. Quem almeja ir além, no sentido de fazer algo que faça a diferença e que traga resultados positivos para a empresa, deve-se pensar em inovação. Do contrário, o concorrente fará algo diferente e melhor para o público alvo. É a lei da sobrevivência.

Segundo Molinari (2010), a inovação em teste de software pode ocorrer a qualquer momento dentro de uma empresa, seja por meio de uma mudança radical ou incremental. E um bom caminho para isso é optando pela automação dos testes.

 

AUTOMAÇÃO DE TESTES

De acordo com os autores Graham e Fewter (1999), a automação de teste consiste no uso de uma ferramenta que imita a interação do testador para com a aplicação. Essa prática, segundo Molinari (2010), visa reduzir o tempo de execução e prazo dos testes.

Embora a intenção da automação seja diminuir ao máximo os procedimentos manuais, Molinari (2010), garante que o teste manual e algo insubstituível. Mesmo que a empresa automatize 99% dos testes, sempre haverá uma necessidade de uma análise ou um pequeno teste a ser feito. O rumor de que o “robô” irá substituir o testador cai por terra.

 

TESTES MANUAIS X TESTES AUTOMATIZADOS 

Como foi mencionando anteriormente, o teste manual não pode ser eliminado, mas sim reduzido ao máximo e focado em casos específicos onde seja muito caro automatizar. Por outro lado, o teste automatizado torna-se indispensável para um aumento de produtividade e redução de tempo naquilo que em geral e rotineiro no teste. Vejamos o caso clássico da automação de um login:

Você digita o usuário e senha da aplicação e confirma seu login, clicando no botão entrar. Imagine agora você executar um teste que realize o login de 50 usuários diferentes? E se além desse fluxo principal, tivesse que testar fluxos de exceções como dados inválidos ou nulos? Seria algo bem trabalhoso, não é verdade?

Com a automação, poderíamos gravar a ação de um login, parametrizando o usuário e senha com dados lidos diretamente de um arquivo .csv através de um loop de 50 execuções. Pronto, teríamos um caso de teste automatizado. Toda vez que fosse testar o login da aplicação, bastaria rodar o script e verificar se a mesma se comporta como esperado pela gravação.

Para testes de regressão e desempenho, não há dúvida que o teste automatizado seja o mais adequado. Entretanto, se o mesmo levar muito tempo para ser gravado e não tiver nenhuma expectativa de reutilização no futuro, o teste manual já basta.

 

SELENIUM

 Em 2004, o testador Jason Higging estava testando uma aplicação interna da ThoughtWorks (empresa que tem como foco desenvolvimento ágil de software), quando percebeu que poderia gerenciar melhor seu tempo nas atividades de teste manuais. Para isso, ele criou uma biblioteca Javascript que interagia com o browser, que logo em breve, passaria a interagir com demais browsers. A esse projeto foi lhe concedido o nome de Selenium, que na verdade, trata-se de uma analogia sobre uma ferramenta teste alternativa (open source) para testadores que não suportavam mais ficar dependentes da ferramenta Quick Test, da empresa Mercury, que por sinal era paga e bem cara. Na química, o antídoto do Mercúrio é o Selênio. Está aí, o porquê do nome.

Ao chegar ao ano de 2006, o engenheiro da Google chamado Simon Stewart resolveu explorar mais ainda a biblioteca Selenium, criando assim o projeto WebDriver, onde acabou sendo mesclado com a antiga biblioteca (Selenium RC), dando origem a segunda versão do Selenium em 2008.

Hoje, o Selenium é uma suíte composta pelas ferramentas: Selenium IDE, Selenium Remote Control, Selenium WebDriver e Selenium Grid. Cada um com uma finalidade, mas com objetivos em comum, que é garantir a automação dos testes funcionais de forma prática e eficiente.

 

POR QUE USAR SELENIUM?

 Embora já existam diversas ferramentas de automação de teste, o Selenium se destaca por ser um conjunto de ferramentas, permitindo ao usuário testar as aplicações web nas mais diversas formas de automação, como por exemplo:

  • Criar e executar scripts de testes independente do browser ou sistema operacional.
  • Realizar Testes de Carga/Estresse através da execução de teste em diversos browsers, provenientes de um ou mais computadores.
  • Adicionar plug-ins que permitem elaborar scripts de testes robustos e que atendem as necessidades dos negócios.
  • Integrar os scripts de teste a um projeto de teste, seja em Java, C#, PHP, Python ou Ruby.