O documento discute as vantagens de utilizar um style guide para testes end-to-end no Protractor, incluindo padronização, facilidade de depuração e manutenção. Ele fornece recomendações sobre estrutura de projeto, localizadores, page objects e independência de testes.
Apresentação realizada em São Paulo-SP sobre a implementação de Mock Objects em .NET Core (Visual Studio 2017), utilizando para isto os frameworks Moq e NSubstitute.
Apresentação realizada em São Paulo-SP sobre a implementação de Mock Objects em .NET Core (Visual Studio 2017), utilizando para isto os frameworks Moq e NSubstitute.
Behavior-Driven Development (BDD) - Abril/2017Renato Groff
Slides de apresentação sobre BDD (Behavior-Driven Development) realizada durante o dia 08/04/2017 em São Paulo-SP. Implementação baseada no uso do framework SpecFlow e do Visual Studio 2017.
Novidades do Visual Studio 2017 - .NET São Paulo - Maio/2017Renato Groff
Apresentação sobre novidades do Visual Studio 2017 realizada em meetup promovido pelo grupo .NET São Paulo em 23/05/2017, no Centro de Treinamento da Editora Novatec (São Paulo-SP).
Behavior-Driven Development (BDD) - QA Ninja Conf 2016Renato Groff
Slides de apresentação realizada no dia 24/10/2016 durante o evento QA Ninja Conf 2016.
Tópicos abordados:
- Testes de software e sua importância
- Behavior-Driven Development
- Exemplo prático utilizando o Visual Studio 2015 e o framework SpecFlow
Mocks, Stubs e Fakes - Developers-SP - Julho-2017Renato Groff
Apresentação sobre o uso de mocks, stubs e objetos fakes na implementação de testes de software. Palestra realizada em 20/07/2017, em meetup promovido pelo grupo Developers-SP na cidade de São Paulo-SP.
Behavior-Driven Development (BDD) - DevOps Summit 2016Renato Groff
Apresentação sobre BDD (Behavior-Driven Development) realizada em 07/05/2016, durante o evento DevOps Summit 2016.
Tópicos abordados:
- Uma visão geral sobre testes de software
- Behavior-Driven Development
- Exemplo prático utilizando o framework SpecFlow
Palestra para a iniciativa LadyTalks.
Uma breve introdução aos tipos de teste e aos testes unitários.
Vídeo da apresentação: https://www.youtube.com/watch?v=xEjnYocvq8o
Slides de apresentação realizada no dia 27/10/2016 durante o evento QA Ninja Conf 2016.
Tópicos abordados:
- Dificuldades técnicas na implementação e execução de testes automatizados
- Mocking Test
- Exemplos no Visual Studio 2015
PHP Expericence 2015 - Testes Unitários - Existe vida antes do TDDDiana Ungaro Arnos
Slides da palestra sobre testes unitários apresentada durante o PHP Experience 2015.
Vídeo: https://www.youtube.com/watch?v=OXqRqR9cxlw&index=3&list=PLASrXUpwQG6f2cj-LlEBLZ8sXFDujO1qf
Nesta palestra são apresentados o pattern de automação conhecido como Pirâmide de Testes e o anti pattern largamente usado chamado de Ice Cream Cone.
Joind.in: https://joind.in/talk/73f8b
Primeiro framework de testes automatizados Lorena Caldas
Passo a passo como Desenvolvedor seu Primeiro Framework de Testes Automatizados
Evento: QANinja Conference 2017
Ferramentas: Selenium WebDriver 3, Java 8, Maven, TestNG
Robot Framework - principais característicasalinebiath
Um pouco do que aprendi sobre essa ferramenta de automação para testes (web, mobile, API, etc).
Aqui não esgotamos o assunto! Tem muito mais. Aconselho a leitura dos links nas referências, principalmente o User guide do Robot Framework.
Revisão de Código - Uma prática que depende da culturaLeandro Parazito
Nesta palestra, Leandro identificará algumas das melhores práticas a serem seguidas. Ele falará sobre o que é realmente importante em uma revisão de código, definirá algumas diretrizes a serem seguidas a fim de maximizar o valor da revisão de código e fornecer feedback construtivo no tempo mais rápido possível.
Behavior-Driven Development (BDD) - Abril/2017Renato Groff
Slides de apresentação sobre BDD (Behavior-Driven Development) realizada durante o dia 08/04/2017 em São Paulo-SP. Implementação baseada no uso do framework SpecFlow e do Visual Studio 2017.
Novidades do Visual Studio 2017 - .NET São Paulo - Maio/2017Renato Groff
Apresentação sobre novidades do Visual Studio 2017 realizada em meetup promovido pelo grupo .NET São Paulo em 23/05/2017, no Centro de Treinamento da Editora Novatec (São Paulo-SP).
Behavior-Driven Development (BDD) - QA Ninja Conf 2016Renato Groff
Slides de apresentação realizada no dia 24/10/2016 durante o evento QA Ninja Conf 2016.
Tópicos abordados:
- Testes de software e sua importância
- Behavior-Driven Development
- Exemplo prático utilizando o Visual Studio 2015 e o framework SpecFlow
Mocks, Stubs e Fakes - Developers-SP - Julho-2017Renato Groff
Apresentação sobre o uso de mocks, stubs e objetos fakes na implementação de testes de software. Palestra realizada em 20/07/2017, em meetup promovido pelo grupo Developers-SP na cidade de São Paulo-SP.
Behavior-Driven Development (BDD) - DevOps Summit 2016Renato Groff
Apresentação sobre BDD (Behavior-Driven Development) realizada em 07/05/2016, durante o evento DevOps Summit 2016.
Tópicos abordados:
- Uma visão geral sobre testes de software
- Behavior-Driven Development
- Exemplo prático utilizando o framework SpecFlow
Palestra para a iniciativa LadyTalks.
Uma breve introdução aos tipos de teste e aos testes unitários.
Vídeo da apresentação: https://www.youtube.com/watch?v=xEjnYocvq8o
Slides de apresentação realizada no dia 27/10/2016 durante o evento QA Ninja Conf 2016.
Tópicos abordados:
- Dificuldades técnicas na implementação e execução de testes automatizados
- Mocking Test
- Exemplos no Visual Studio 2015
PHP Expericence 2015 - Testes Unitários - Existe vida antes do TDDDiana Ungaro Arnos
Slides da palestra sobre testes unitários apresentada durante o PHP Experience 2015.
Vídeo: https://www.youtube.com/watch?v=OXqRqR9cxlw&index=3&list=PLASrXUpwQG6f2cj-LlEBLZ8sXFDujO1qf
Nesta palestra são apresentados o pattern de automação conhecido como Pirâmide de Testes e o anti pattern largamente usado chamado de Ice Cream Cone.
Joind.in: https://joind.in/talk/73f8b
Primeiro framework de testes automatizados Lorena Caldas
Passo a passo como Desenvolvedor seu Primeiro Framework de Testes Automatizados
Evento: QANinja Conference 2017
Ferramentas: Selenium WebDriver 3, Java 8, Maven, TestNG
Robot Framework - principais característicasalinebiath
Um pouco do que aprendi sobre essa ferramenta de automação para testes (web, mobile, API, etc).
Aqui não esgotamos o assunto! Tem muito mais. Aconselho a leitura dos links nas referências, principalmente o User guide do Robot Framework.
Revisão de Código - Uma prática que depende da culturaLeandro Parazito
Nesta palestra, Leandro identificará algumas das melhores práticas a serem seguidas. Ele falará sobre o que é realmente importante em uma revisão de código, definirá algumas diretrizes a serem seguidas a fim de maximizar o valor da revisão de código e fornecer feedback construtivo no tempo mais rápido possível.
Palestra com os primeiros passos para a criação de automação de testes para aplicações AngularJS apresentada no primeiro evento presencial de 2016 do Grupo de Usuários de Teste de Software de Santa Catarina.
Hoje em dia, além de uma grande preocupação com testes automatizados em desenvolvimento de software, testes que facilitem revisões visuais para verificar se o "estilo" da aplicação quebrou são de extrema importância. A ideia desta palestra e demonstrar como integrar testes automatizados escritos com Protractor com uma ferramenta para revisões visuais de forma simplificada, o Visual Review.
Legibilidade de código não é perfumariaAriane Izac
Pensar em legibilidade vai além de ter simplesmente um código "bonitinho", é otimizar uma análise e entendimento e principalmente a evolução dele.
Trabalhando em um piloto de automação de testes de software percebemos na pele a importância de seguir boas práticas de escrita de código e como construções ruins oneravam nosso entendimento na análise\refactoring desses testes.
A ideia é trazer dicas de boas práticas que deixarão seu código mais claro e efetivo, baseado no aprendizado que tivemos com pontos que "dificultavam nossa vida".
Ps: Palestra apresentada na Trilha Design de Código no TDC Florianópolis
5 dicas para melhorar a legibilidade de código dos testes automáticos Ariane Izac
Pensar em legibilidade vai além de ter simplesmente um código bonito, limpo e elegante. É otimizar seu entendimento, refactoring e, por que não, a confiança que tenho nele.
A ideia é trazer 5 dicas que deixarão seu código mais claro e efetivo, baseadas em exemplos de construções ruins, mostrando como isso dificulta a leitura e refactoring\manutenção dos testes automáticos.
Obs: Essa palestra foi apresentada no TDC Florianópolis com a Alessandra Kajihara na Trilha Testes.
Legibilidade de código não é perfumariaAriane Izac
Pensar em legibilidade vai além de ter simplesmente um código "bonitinho", é otimizar uma análise e entendimento e principalmente a evolução dele.
Trabalhando em um piloto de automação de testes de software percebemos na pele a importância de seguir boas práticas de escrita de código e como construções ruins oneravam nosso entendimento na análise\refactoring desses testes.
A ideia é trazer dicas de boas práticas que deixarão seu código mais claro e efetivo, baseado no aprendizado que tivemos e "dificultavam nossa vida".
Essa talk foi apresentada no TDC Porto Alegre 2019, trilha Design de Código.
Uma breve apresentação do método de desenvolvimento guiado ao teste (TDD). Mostrando a definição, diferenças, motivos para sua utilização e o por quê utiliza-lo.
Apresentação do Coderage Brasil 2018 sobre TDD com Código Legado com Delphi usando Spring.Testing e TestInsight.
Dicas de Refactory, como identificar Code Smell e Antipatterns e Hands on do refactory do exemplo GettingStarted do FireDAC.
"Apresentação atualizada, pois o SlideShare não permite re-upload."
Vídeo da primeira parte - Apresentação
https://youtu.be/ZWQO0bLB8gU
Apresentação do Coderage Brasil 2018 sobre TDD com Código Legado com Delphi usando Spring.Testing e TestInsight.
Dicas de Refactory, como identificar Code Smell e Antipatterns e Hands on do refactory do exemplo GettingStarted do FireDAC
Slides de apresentação realizada para o GDG São Paulo no dia 25/07/2016.
Tópicos abordados:
- Testes de software e sua importância
- Behavior-Driven Development
- Exemplo prático utilizando o Visual Studio 2015 e o framework SpecFlow
Testes na plataforma .NET: TDD, Mocks, BDD e Selenium - .NET SP - Abril-2018Renato Groff
Apresentação sobre a implementação de testes na plataforma .NET, empregando técnicas como TDD, Mocks, BDD e o framework Selenium. Palestra realizada em meetup promovido pelo grupo .NET SP em 09/04/2018 na cidade de São Paulo-SP.
1. Vamos falar sobre o
Protractor Style Guide?
Walmyr Lima e Silva Filho
2. Porque utilizar um style guide?
● Boas práticas
● Padronização
● Tornar rápido e fácil escrever testes e2e
● Facilidade na depuração de erros
● Facilidade na manutenção dos testes por
qualquer membro do time
3. ● Pirâmide dos testes: teste e2e o principal
● Vantagens:
○ Demonstram que o todo funciona conforme o
esperado
○ Previne incidentes em produção
○ Teste manual toma muito tempo X CD
(continuous delivery)
Testes end-to-end (e2e)
4. ● Regras gerais
● Estrutura de projeto
● Estratégias de localizadores (locators)
● Page Objects
● Suites de teste
Style guide
5. ● Regras gerais
● Estrutura de projeto
● Estratégias de localizadores (locators)
● Page Objects
● Suites de teste
Style guide
6. ● Porquê?
○ Pois os testes de unidade executam muito
mais rápidos que os testes e2e
○ Evitar duplicidade de testes
Não crie testes e2e para funcinalidades já cobertas por
testes de unidade
7. ● Porquê?
○ Suas ferramentas de build podem
sobrescrever as configurações para você
(grunt, gulp)
○ Evite configurações duplicadas
Utilize somente um arquivo de configuração
9. ● Regras gerais
● Estrutura de projeto
● Estratégias de localizadores (locators)
● Page Objects
● Suites de teste
Style guide
10. ● Porquê?
○ Fácil de localizar
○ Separa testes e2e de testes de unidade
○ Estrutura de diretórios mais limpa
Agrupe seus testes e2e em uma estrutura que faça
sentido para seu projeto (ex.: my-project/tests/e2e/)
11.
12. ● Regras gerais
● Estrutura de projeto
● Estratégias de localizadores (locators)
● Page Objects
● Suites de teste
Style guide
13. ● Porquê?
○ Markup sujeito a alterações
○ xpath tem problemas de desempemho
(performance)
○ Não são legíveis
NUNCA utilize xpath
14.
15. ● Porquê?
○ Acesse elementos facilmente
○ O código é mais difícil de mudar que o
markup
○ São localizadores mais legíveis (ex.:
by.model, by.binding)
Dê preferência à localizadores específicos do Protractor
quando possível
16.
17. ● Porquê?
○ Acesse elementos facilmente
○ Você utiliza markup que é menos sujeito
a alterações
○ Legibilidade de localizadores
Dê preferência à by.id e by.css quando não houver um
localizador específico do protractor disponível
18.
19. Evite localizadores por textos que mudam com
frequência
● Porquê?
○ Textos de botões, links e rótulos tendem
a mudar ao longo do tempo
○ Seus testes não podem quebrar por
simples alterações de textos
○ Sistemas multilanguage (tradução)
21. ● Regras gerais
● Estrutura de projeto
● Estratégias de localizadores (locators)
● Page Objects
● Suites de teste
Style guide
22. ● Porquê?
○ Encapsulamento de informações sobre
elementos da página em teste
○ Reutilização de código
○ Desacopla a lógica dos testes dos
detalhes da implementação
Utilize Page Objects para interagir com a página em
teste
23.
24. ● Porquê?
○ Mantém o código limpo e facilita
encontrar o que se procura
Declare um Page Object por arquivo
25.
26. ● Porquê?
○ Um PageObject por aquivo significa que
só há uma classe à exportar
Utilize somente um module.exports ao final do arquivo
Page Object
27.
28. ● Porquê?
○ As dependências de módulos devem ser claras
e fáceis de encontrar
○ Separação de dependências e código de teste
○ Torna as dependências disponíveis para toda
a suite de teste
Requeira e instancie todos os node modules no topo
29.
30. ● Porquê?
○ O usuário de um Page Object deve ter
acesso rápido aos elementos disponíveis
na página
Declare todos elementos do construtor como públicos
31.
32. ● Porquê?
○ A maioria (ou todos) dos elementos do
Page Object estão expostos e podem ser
utilizados diretamente no teste
○ Fazer de outra forma adiciona
complexidade desnecessária
Declare funções para operações que necessitam de
mais de um passo
33.
34. ● Porquê?
○ A responsabilidade pelos assertions é do
teste
○ As pessoas que vão ler o código de teste
devem ser capazes de compreender o
comportamento esperado da aplicação lendo
somente o teste
Não faça assertions nos Page Objects
35. ● Porquê?
○ Você pode utilizá-los em múltiplos
testes
○ Evita duplicidade de código
○ Quando uma diretiva muda, você só
precisa mudar o wrapper, uma vez
Adicione wrappers para diretivas, diálogos e elementos
comuns
36.
37. ● Regras gerais
● Estrutura de projeto
● Estratégias de localizadores (locators)
● Page Objects
● Suites de teste
Style guide
38. ● Porquê?
○ Utilizar a aplicação real com todos suas
dependências lhe provê alta confiança
○ Use mock quando você realmente não pode
fazer chamadas à aplicação real
Não utilize mock a não ser que seja totalmente
necessário
39. ● Porquê?
○ É bem documentado
○ É também suportado pelo time do Protractor
○ beforeAll e afterAll
Utilize Jasmine2
40.
41. ● Porquê?
○ Execute testes em paralelo com sharding
○ A ordem de execução não é garantida
○ Execução isolada de suites de teste
Faça seus testes independentes ao menos no nível de
arquivo
42.
43. ● Porquê?
○ Execução isolada de testes
○ Você pode depurar seus testes facilmente
(ex.: fdescribe, xdescribe, fit, xit)
Faça seus testes independentes uns dos outros
44. Exceto quando as operações realizadas para
iniciar o estado inicial do testes é muito
custosa
● Porquê?
○ Os testes ficarão executando para sempre
Faça seus testes independentes uns dos outros
46. ● Porquê?
○ Garantia de que a página em teste está em um
estado limpo
Navegue até a página em teste antes de cada teste
47.
48. ● Porquê?
○ Garantia de que as principais partes da
aplicação estão corretamente conectadas
○ Usuários não navegam digitando URLs
○ Provê confiança sobre questões
relacionadas a permissões
Tenha uma suite de testes que navega através das
principais rotas de sua aplicação