Robot framework Automação versátil e consistente para testes
Thomás Daniel VieiraSobre este livro
Há algum tempo, testar software de forma completamente manual deixou de ser eficiente. A automação de testes é uma estratégia necessária, visto que times ágeis precisam de feedback rápido e constante sobre a qualidade de novas versões de seus sistemas. A obtenção da entrega contínua seria inviável se fosse preciso gastar dias ou semanas realizando os testes para cada nova versão.
Segundo Robert Martin, os testes de aceitação sempre devem ser automatizados, por razões de custo e eficiência. Caso contrário, não será viável que o time faça pequenas entregas frequentes de novas versões.
De forma simplificada, automatizar testes significa desenvolver um "robô" que testará automaticamente as funcionalidades de um sistema, sem necessidade de intervenção humana, com objetivo de garantir a qualidade desse software de forma mais eficiente.
Neste livro você aprenderá a construir passo a passo seus primeiros scripts de testes automatizados utilizando o Robot Framework, uma das ferramentas sugeridas por Markus Gärtner em seu livro "ATDD by Example" para o Desenvolvimento Guiado por Testes de Aceitação.
O Robot Framework é um framework genérico para construção de scripts automatizados baseado em abordagem keyword-driven utilizando sintaxe tabular, que o torna legível e amigável. O framework pode ser utilizado para automação de testes e processos. É uma ferramenta de código aberto, extensível e escrita com linguagem Python. Existem bibliotecas para construção de testes em diferentes níveis e tecnologias, bem como para prover ferramentas auxiliares como geração randômica de massa de dados, conexão com banco de dados e manipulação de arquivos. Tudo isso torna o Robot uma opção completa e capaz de solucionar bem praticamente qualquer desafio em automação.
Esta é uma ferramenta estável e de fácil aprendizagem. Não obstante, novas versões com melhorias e novas funcionalidades seguem sendo desenvolvidas. Utilizaremos neste livro a versão 6.0, a última versão estável em janeiro de 2023. No capítulo de introdução deste livro, mostraremos como preparar e configurar todo o ambiente de desenvolvimento necessário.
A documentação existente é extensa e bem detalhada, não só da ferramenta em si como também de suas bibliotecas, e pode ser encontrada em: robotframework.org/robotframework.
A Robot Framework Foundation, consórcio que suporta a tecnologia, possui 47 empresas, e este número aumentou 10 vezes entre 2015 e 2020, de forma que o investimento na manutenção da ferramenta também cresceu consideravelmente, mantendo-se estável mesmo durante a pandemia de Covid-19.
Este livro destina-se a quem deseja começar a construir seus próprios testes automatizados e já possui conhecimento prévio de lógica de programação e qualidade de software. O objetivo aqui não é esmiuçar todas as funcionalidades da ferramenta, mas aprender o necessário para construir uma solução profissional e consistente.
Sempre haverá indicação de onde encontrar informações mais detalhadas sobre os assuntos abordados ao longo do livro. Por serem padrão de mercado, muitos dos conceitos que serão apresentados sobre projetos de automação se aplicam a qualquer ferramenta com essa finalidade — e relembraremos isso no decorrer da nossa jornada de aprendizado.
Para facilitar a prática e experimentação, os exemplos utilizados neste livro podem ser encontrados nas branches do repositório, onde serão atualizados quando necessário. Pratique o máximo que puder: fazer somente a leitura não é suficiente para o aprendizado efetivo de ferramentas que envolvem programação, e muitas dúvidas só aparecem quando colocamos as mãos na massa.
Bons estudos!
Sobre o autor
Meu nome é Thomás Daniel Vieira, nasci em Charqueadas, no Rio Grande do Sul, onde me formei técnico em Informática pelo Instituto Federal Sul-rio-grandense (IFSul), após meteórica carreira como aprendiz eletromecânico. Sou bacharel em Ciências da Computação pela Pontifícia Universidade Católica do Rio Grande do Sul (PUCRS) e possuo especialização em Engenharia de Software pela Unisinos e especialização em Produção Editorial pela LabPub. Atualmente, estudo Design Editorial no Núcleo de Estratégias e Políticas Editoriais (NESPE).
Desde 2010, já trabalhei como desenvolvedor web, desenvolvedor mobile, desenvolvedor back-end, engenheiro de testes automatizados, dentre outras coisas. Atualmente, trabalho como especialista em testes automatizados para empresas de Portugal e ministro treinamentos na área de programação e de automação em Porto Alegre e arredores.
Devido ao gosto pelos livros, minha formação como engenheiro de software é muito influenciada por clássicos de Robert Martin, Martin Fowler, Kent Beck, Markus Gärtner, GoF e outros livros da própria Casa do Código. Eles serão citados muitas vezes como referência no meu texto.
Como a carreira de tecnologia é dinâmica, trabalhei com diversas ferramentas e linguagens de programação, sem me especializar em nenhuma delas. Optei por estudar os padrões de arquitetura de software e de qualidade de código para estar preparado para qualquer desafio.
Além disso, paralelamente às minhas atividades como engenheiro de software, trabalho como editor na grande pequena Editora Coragem, focada em questões sociais e literatura latino-americana. Por isso, este livro foi escrito, em boa parte, entre os pampas e a Cordilheira dos Andes.
Sinta-se à vontade para me contatar:
LinkedIn: linkedin.com/in/thomasvieira
Medium: medium.com/@thomas.vieira
Sumário
- 1 Introdução
- 1.1 Tipos e níveis de teste
- 1.2 Quando e o que automatizar
- 1.3 Preparando o ambiente de desenvolvimento
- 2 Primeiros passos com Robot Framework
- 2.1 Construindo o primeiro teste no sistema da livraria
- 3 Escalando o projeto: arquitetura de Page Objects
- 3.1 Configurações globais do projeto
- 3.2 Mapeamento de objetos
- 3.3 Abstração das ações do sistema
- 3.4 Parâmetros e argumentos
- 4 Lidando com a massa de dados dos testes
- 4.1 Dataprovider: geração dinâmica de massa de dados
- 4.2 Datapool: conjunto estático de massa de dados
- 4.3 Database: leitura em banco de dados
- 5 Testes de API
- 5.1 Testes de contrato
- 5.2 Testes funcionais ou de ponta a ponta
- 5.3 Testes em fila de mensagens
- 6 Estruturas de controle
- 6.1 Estruturas de repetição
- 6.2 Estruturas de seleção
- 6.3 Estrutura de tratamento de exceções
- 7 Testes para dispositivos móveis
- 7.1 Preparação e configuração
- 7.2 Construção de um cenário de teste
- 8 Bibliotecas do usuário
- 8.1 Libdoc
- 8.2 Listener interface
- 9 Boas práticas e guia de estilos
- 9.1 Guia de estilos
- 9.2 Esperas
- 9.3 Tags
- 10 Para saber mais
- 11 Referências
- 12 Anexo I: Técnicas de mapeamento de elementos HTML
- 13 Anexo II: Camadas de abstração para projetos de automação
Dados do produto
- Número de páginas:
- 194
- ISBN:
- 978-85-5519-345-3
- Data publicação:
- 08/2023