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 máquinas podem facilitar suas tarefas do dia-a-dia.
Disponível também nas livrarias:
O que você aprenderá nesse livro
Qualidade de Software
Fatores que determinam um software de qualidade.
Processo de Teste de Software
Detalhes de cada etapa que compõe o processo de teste de software.
Ambiente de Teste de Software
Recursos necessários para criar um ambiente propício aos testes.
Ferramentas de Teste de Software
Principais ferramentas gratuitas para testar o software.
Técnicas de Teste de Software
Diversas formas de como testar os requisitos funcionais e não funcionais do software.
Scripts de Testes Automatizados
Tutorial de como elaborar, executar e exportar os scripts de testes automatizados.
Projeto de Testes Automatizados
Criação de um projeto robusto de testes automatizados utilizando os scripts de testes exportados.
Testes Distribuídos
Execução dos scripts testes em vários dispositivos de forma simultânea.
Booktrailer
Por que automatizar os testes?
Assim, como em qualquer outro segmento, a automatização dos testes tem por finalidade aperfeiçoar a execução dos mesmos, acarretando inúmeras vantagens, tais como:
Execução dos testes com a mesma eficiência, porém em menos tempo.
Redução drástica de falhas humanas oriundas de tarefas repetitivas (Teste de Regressão).
Maior disponibilidade dos testadores, que poderão focar mais em atividades estratégicas.
Depoimentos
Receba uma amostra grátis do livro
Inscreva-se na lista de e-mails para receber uma amostra grátis do livro.
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.>>> Para continuar lendo, baixe a amostra grátis do livro. <<<<
Hugo Peres (Autor)
Graduado em Análise e Desenvolvimento de Sistemas (UniCarioca) e Pós-Graduado em Engenharia de Software (UFRJ). Exerceu a função de Analista de Testes por 3 anos em uma conceituada fábrica de software no RJ e escreveu o primeiro livro sobre Selenium em Português-BR. Atualmente é dono da Inove Teste, um projeto de sua autoria que, através de livros e cursos, visa difundir conhecimentos sobre automação de testes por todo mundo.