Arquitetura hexagonal é um padrão de projeto que tem como objetivo criar aplicações com baixo acoplamento, possuindo componentes que podem ser facilmente substituídos quando necessário.
Como testar a lógica de negócio? E os adaptadores? Como garantir que a integração entre os componentes funciona?
Esta palestra tem como objetivo mostrar na prática, usando Spring Boot, como testar uma aplicação que utiliza a arquitetura hexagonal.
Todas as abordagens de testes dentro do ágilElias Nogueira
Palestra apresentada dia 10/11/2012 no Rio Agile Talks (@rioagile) mostrando a importância do Agile Testing e das visões que mudam sobre modelos, como o quadrande de Brian Merick que pode ser mudado/atualizado pelo novo uadrante proposto por Elisabeth Hendrickson, mas onde uma coida não muda: a pirâmide de automação de teste
DevCamp - O papel de um testador em uma equipe ágilElias Nogueira
Nesta apresentação são colocados alguns pontos/papéis do testador em uma equipe ágil e as principais dúvidas de uma equipe quando alguém "veste o chapéu" de teste ou teremos um testador na equipe.
Thi presentation was given at Selenium Camp on 21/02/2020 and show how we can divide better our API tests following the Test Pyramid concept and break it down on the service layer, using a pipeline to clarify and execute the tests in the order of importance.
Palestra ministrada na SeniorTec experience em 21/09/2018 em Blumenau/SC.
A palestra mostra anti-patters sobre testes comumente utilizados e quais são os tópicos recomendados como foco em um transformação no papel do QA
Agile Testing Framework - The Art of Automated TestingDimitri Ponomareff
Once your organization has successfully implemented Agile methodologies, there are two major areas that will require improvements: Continuous Integration and Automated Testing.
This presentation illustrates why it's important to invest in an Automated Testing Framework (ATF) to reduce technical debt, increase quality and accelerate time to market.
Learn more at www.agiletestingframework.com.
Todas as abordagens de testes dentro do ágilElias Nogueira
Palestra apresentada dia 10/11/2012 no Rio Agile Talks (@rioagile) mostrando a importância do Agile Testing e das visões que mudam sobre modelos, como o quadrande de Brian Merick que pode ser mudado/atualizado pelo novo uadrante proposto por Elisabeth Hendrickson, mas onde uma coida não muda: a pirâmide de automação de teste
DevCamp - O papel de um testador em uma equipe ágilElias Nogueira
Nesta apresentação são colocados alguns pontos/papéis do testador em uma equipe ágil e as principais dúvidas de uma equipe quando alguém "veste o chapéu" de teste ou teremos um testador na equipe.
Thi presentation was given at Selenium Camp on 21/02/2020 and show how we can divide better our API tests following the Test Pyramid concept and break it down on the service layer, using a pipeline to clarify and execute the tests in the order of importance.
Palestra ministrada na SeniorTec experience em 21/09/2018 em Blumenau/SC.
A palestra mostra anti-patters sobre testes comumente utilizados e quais são os tópicos recomendados como foco em um transformação no papel do QA
Agile Testing Framework - The Art of Automated TestingDimitri Ponomareff
Once your organization has successfully implemented Agile methodologies, there are two major areas that will require improvements: Continuous Integration and Automated Testing.
This presentation illustrates why it's important to invest in an Automated Testing Framework (ATF) to reduce technical debt, increase quality and accelerate time to market.
Learn more at www.agiletestingframework.com.
Arquitetura básica de testes para seu projeto JavaElias Nogueira
Palestra ministrada no The Developers Conference São Paulo 2017 dia 21/07 na Trilha Arquitetura Java.
Nesta apresentação falo da importância de planejar testes em diversos níveis dentro de um processo de desenvolvimento, bem como uma build pipeline ideal pensando em testes e dicas do que devemos ter na nossa arquitetura de teste para uma aplicação em Java.
As more and more companies are moving to the Cloud, they want their latest, greatest software features to be available to their users as quickly as they are built. However there are several issues blocking them from moving ahead.
One key issue is the massive amount of time it takes for someone to certify that the new feature is indeed working as expected and also to assure that the rest of the features will continuing to work. In spite of this long waiting cycle, we still cannot assure that our software will not have any issues. In fact, many times our assumptions about the user's needs or behavior might itself be wrong. But this long testing cycle only helps us validate that our assumptions works as assumed.
How can we break out of this rut & get thin slices of our features in front of our users to validate our assumptions early?
Most software organizations today suffer from what I call, the "Inverted Testing Pyramid" problem. They spend maximum time and effort manually checking software. Some invest in automation, but mostly building slow, complex, fragile end-to-end GUI test. Very little effort is spent on building a solid foundation of unit & acceptance tests.
This over-investment in end-to-end tests is a slippery slope. Once you start on this path, you end up investing even more time & effort on testing which gives you diminishing returns.
In this session Naresh Jain will explain the key misconceptions that has lead to the inverted testing pyramid approach being massively adopted, main drawbacks of this approach and how to turn your organization around to get the right testing pyramid.
De a máxima cobertura nos seus testes de APIElias Nogueira
Palestra ministrada no Reginonal Scrum Gathering Rio 2019 no dia 27/06/2019 sobre como dar uma cobertura de testes para uma API além do teste unitário e de integração, com um foco totalmente prático e com execução em pipeline.
Clean architecture - Protecting the DomainVictor Rentea
The goal of architecture is to simplify the most complex parts of your logic. Any other goal should be secondary to this. The problem is that you can’t always anticipate where the complexity of your application will accumulate, especially when confronted with ever-changing requirements. The only way to keep your code simple is to gradually evolve the architecture without adding useless complexity up front, but always looking out for opportunities to break-down and refactor towards the most simple design that solves the problem. Drawing concepts from the Domain-Driven Development mindset, this talk summarizes the most important lessons learned designing and consulting many real-world projects. Along the way, you’ll hear about Value Objects and Entities, DTOs, Dependency Inversion Principle, Facades, the Onion Architecture and many pragmatic tips and tricks immediately applicable to your day-to-day work.
[WSO2 API Manager Community Call] Mastering JWTs with WSO2 API ManagerWSO2
In this community call, we discuss mastering JWTs with WSO2 API Manager including
- Backend user authentication with JWT
- Backend JWT generation
- Best practices to validate JWT
- User-related claims in JWT
- JWT grant
Apresentação sobre Arquitetura de Automação para Testes Funcionais no TestDay em 20/09/2012 na PUC - SP
Esta apresentação quer mostrar todos os pontos importantes que são necessários para uma arquitetura de testes pensanod "fora da caixa", não somente em criar um script mas em todo o processo durante a automação como gerencimento de erros e logs, relatórios e estratégia para execução da automação.
@test_day
http://testday.com.br
Building Cloud-Native App Series - Part 11 of 11
Microservices Architecture Series
Service Mesh - Observability
- Zipkin
- Prometheus
- Grafana
- Kiali
In this session, we would discuss what "Agile Testing" is, what are the well known methods and models of Agile Testing and what to expect on the future of Agile Testing.
Talk given at Typeform for the Barcelona Bug busters meetup.
How to Automate API Testing guides you through a possible API Testing workflow for API Functional Testing exploring different tools and approaches.
Mocking APIs Collaboratively with PostmanNordic APIs
Postman’s Mock Servers are an excellent tool to design APIs by setting expected responses based on your API endpoints and parameters. They allow teams to be more agile by removing the need to wait for an API producer to deliver a MVP of the service. Consumers of the API can thus set their expectations on what they need from the API producer. This demo will show how you can generate mock servers in Postman from scratch, through Postman Collections and return conditional responses.
Para otimizar nosso tempo e diminuir incidentes causados por erro humano, adotamos o conceito de CI/CD no nosso dia a dia. Acontece que, muitas vezes, por limitações técnicas e dificuldade de integração entre plataformas, deixamos a automatização de deploy de lado e ficamos, no melhor das hipóteses, só com os testes automatizados.
Não seria ótimo se os desenvolvedores pudessem se preocupar só com o versionamento de código, e todo o resto acontecesse magicamente por debaixo dos panos?
Nessa talk aprenderemos como automatizar o seu deploy de maneira fácil com o ArgoCD, uma ferramenta de automatização de deploy para Kubernetes, e porque é importante separar o CI do CD.
Arquitetura básica de testes para seu projeto JavaElias Nogueira
Palestra ministrada no The Developers Conference São Paulo 2017 dia 21/07 na Trilha Arquitetura Java.
Nesta apresentação falo da importância de planejar testes em diversos níveis dentro de um processo de desenvolvimento, bem como uma build pipeline ideal pensando em testes e dicas do que devemos ter na nossa arquitetura de teste para uma aplicação em Java.
As more and more companies are moving to the Cloud, they want their latest, greatest software features to be available to their users as quickly as they are built. However there are several issues blocking them from moving ahead.
One key issue is the massive amount of time it takes for someone to certify that the new feature is indeed working as expected and also to assure that the rest of the features will continuing to work. In spite of this long waiting cycle, we still cannot assure that our software will not have any issues. In fact, many times our assumptions about the user's needs or behavior might itself be wrong. But this long testing cycle only helps us validate that our assumptions works as assumed.
How can we break out of this rut & get thin slices of our features in front of our users to validate our assumptions early?
Most software organizations today suffer from what I call, the "Inverted Testing Pyramid" problem. They spend maximum time and effort manually checking software. Some invest in automation, but mostly building slow, complex, fragile end-to-end GUI test. Very little effort is spent on building a solid foundation of unit & acceptance tests.
This over-investment in end-to-end tests is a slippery slope. Once you start on this path, you end up investing even more time & effort on testing which gives you diminishing returns.
In this session Naresh Jain will explain the key misconceptions that has lead to the inverted testing pyramid approach being massively adopted, main drawbacks of this approach and how to turn your organization around to get the right testing pyramid.
De a máxima cobertura nos seus testes de APIElias Nogueira
Palestra ministrada no Reginonal Scrum Gathering Rio 2019 no dia 27/06/2019 sobre como dar uma cobertura de testes para uma API além do teste unitário e de integração, com um foco totalmente prático e com execução em pipeline.
Clean architecture - Protecting the DomainVictor Rentea
The goal of architecture is to simplify the most complex parts of your logic. Any other goal should be secondary to this. The problem is that you can’t always anticipate where the complexity of your application will accumulate, especially when confronted with ever-changing requirements. The only way to keep your code simple is to gradually evolve the architecture without adding useless complexity up front, but always looking out for opportunities to break-down and refactor towards the most simple design that solves the problem. Drawing concepts from the Domain-Driven Development mindset, this talk summarizes the most important lessons learned designing and consulting many real-world projects. Along the way, you’ll hear about Value Objects and Entities, DTOs, Dependency Inversion Principle, Facades, the Onion Architecture and many pragmatic tips and tricks immediately applicable to your day-to-day work.
[WSO2 API Manager Community Call] Mastering JWTs with WSO2 API ManagerWSO2
In this community call, we discuss mastering JWTs with WSO2 API Manager including
- Backend user authentication with JWT
- Backend JWT generation
- Best practices to validate JWT
- User-related claims in JWT
- JWT grant
Apresentação sobre Arquitetura de Automação para Testes Funcionais no TestDay em 20/09/2012 na PUC - SP
Esta apresentação quer mostrar todos os pontos importantes que são necessários para uma arquitetura de testes pensanod "fora da caixa", não somente em criar um script mas em todo o processo durante a automação como gerencimento de erros e logs, relatórios e estratégia para execução da automação.
@test_day
http://testday.com.br
Building Cloud-Native App Series - Part 11 of 11
Microservices Architecture Series
Service Mesh - Observability
- Zipkin
- Prometheus
- Grafana
- Kiali
In this session, we would discuss what "Agile Testing" is, what are the well known methods and models of Agile Testing and what to expect on the future of Agile Testing.
Talk given at Typeform for the Barcelona Bug busters meetup.
How to Automate API Testing guides you through a possible API Testing workflow for API Functional Testing exploring different tools and approaches.
Mocking APIs Collaboratively with PostmanNordic APIs
Postman’s Mock Servers are an excellent tool to design APIs by setting expected responses based on your API endpoints and parameters. They allow teams to be more agile by removing the need to wait for an API producer to deliver a MVP of the service. Consumers of the API can thus set their expectations on what they need from the API producer. This demo will show how you can generate mock servers in Postman from scratch, through Postman Collections and return conditional responses.
Para otimizar nosso tempo e diminuir incidentes causados por erro humano, adotamos o conceito de CI/CD no nosso dia a dia. Acontece que, muitas vezes, por limitações técnicas e dificuldade de integração entre plataformas, deixamos a automatização de deploy de lado e ficamos, no melhor das hipóteses, só com os testes automatizados.
Não seria ótimo se os desenvolvedores pudessem se preocupar só com o versionamento de código, e todo o resto acontecesse magicamente por debaixo dos panos?
Nessa talk aprenderemos como automatizar o seu deploy de maneira fácil com o ArgoCD, uma ferramenta de automatização de deploy para Kubernetes, e porque é importante separar o CI do CD.
Nesta palestra você verá de como testar suas APIs de forma simples e fácil fazendo uso de um REST client, trazendo contextos reais do dia a dia vivenciados por desenvolvedores, testers, consultores, analistas de requisitos, suporte e while true! A proposta é focar na prática!
Link evento: http://www.thedevelopersconference.com.br/tdc/2016/saopaulo/trilha-testes
Angular5, vue js ou react redux (Trilha de Javascript - TDC 2018 )Getúlio Strapazzon
TDC 2018 - Trilha de Javascript.
Qual a melhor alternativa? Creio que essa é uma indagação que ronda a cabeça de todo desenvolvedor Front-End quando se depara com uma migração de AngularJS. Performance? Produtividade? Custos? Como devemos ver essa escolha de um ponto de vista muito mais amplo e objetivo. Com base no case de migração que temos na SocialBase vou apresentar os pontos que mais pesam nessa decisão, e porque optamos por uma dessas tecnologias para migração de um projeto em AngularJS.
Desenvolvimento de APIs REST Multiplataforma com ASP.NET Core - Setembro-2019Renato Groff
Slides utilizados durante workshop sobre o desenvolvimento de APIs REST Multiplataforma com ASP.NET Core (com exemplos nas versões 2.2 e 3.0). Apresentação realizada durante evento promovido pela comunidade .NET SP em São Paulo Capital no dia 10/09/2019.
Boas práticas na implementação de APIs REST com ASP.NET Core - Outubro-2019Renato Groff
Apresentação sobre boas práticas na implementação de APIs REST com ASP.NET Core. Palestra realizada para profissionais da Sistran na cidade de São Paulo-SP no dia 16/10/2019.
Monitorando serviços REST com o Application InsightsRenato Groff
Apresentação sobre o uso do Application Insights em serviços REST realizada em 17/07/2016, durante o evento DevOps & Tests Hack Nights.
Link com a gravação da palestra (a partir de 01:00:00):
https://youtu.be/_41riBJvH34?t=3639
TechEd Brasil 2010 - Novidades e razões para migrar para o microsoft .net fra...JP Clementi
Para quem já utiliza alguma versão do Microsoft .Net Framework
1 – Mostrar os principais recursos do .Net Framework 4;
2 – Mostrar pontos do .Net Framework em que se pode obter fácil retorno do investimento;
3 – Oferecer pontos de partida para resultados imediatos em projetos.
Azure Bootcamp 2018 - DevOps para profissionais de Infra - Infomach / GoiâniaRodrigo Marques Teixeira
Apresentação no Azure Bootcamp 2018, edição Goiânia. Evento realizado no espaço físico da empresa Infomach. Tema: DevOps para profissionais de TI. Introdução sobre a cultura DevOps e sua importância na atualidade.
Apresentação sobre automação de teste com Appium usando Selenium Grid no The Developers Conference / TDC 2015 Florianópolis na Trilha Android dia 15/05/2015
Semelhante a Testando uma aplicação com Arquitetura Hexagonal e Spring Boot (20)
8. A V E
NUE
8
Objetivo #1
Arquitetura Hexagonal
Permitir que uma aplicação seja
igualmente guiada por usuários,
programas, testes automatizados ou
scripts.
1
9. A V E
NUE
9
Objetivo #2
Arquitetura Hexagonal
Permitir que uma aplicação seja desenvolvida
de forma isolada dos banco de dados e
dispositivos necessários na hora da execução.
1
31. A V E
NUE
32
O propósito do
Spring Boot é tornar
fácil a criação de
aplicações Spring.
Testando os adaptadores4
https://spring.io/blog/2013/08/06/spring-boot-simplifying-spring-for-everyone/
32. A V E
NUE
33
4
● Banco de dados relacional;
● MongoDB;
● Kafka;
● Chamada para API externa.
Testando os adaptadores
Provê a infraestrutura para diversos tipos de
teste, entre eles:
33. A V E
NUE
34
Objetivo é garantir que
nosso código integra de
forma correta com o mundo
externo
Testando os adaptadores4
34. Não crie mocks para tipos
que você não é o dono
How to write good tests - Documentação do mockito
https://github.com/mockito/mockito/wiki/How-to-write-good-tests
39. A V E
NUE
41
Testando os adaptadores4
https://github.com/henriquels25/fantasy-sport-api/blob/main/src/test/java/io/henriquels25/fanta
sysport/player/infra/controller/PlayerControllerTest.java
40. A V E
NUE
42
Testando os adaptadores4
https://github.com/henriquels25/fantasy-sport-api/blob/main/src/test/java/io/henriquels25/fanta
sysport/player/infra/controller/PlayerControllerTest.java
41. A V E
NUE
43
Testando os adaptadores4
https://github.com/henriquels25/fantasy-sport-api/blob/main/src/test/java/io/henriquels25/fanta
sysport/player/infra/controller/PlayerControllerTest.java
43. A V E
NUE
45
Testando os adaptadores4
Classes
Interfaces
Dependência
Implementação
Classe sobre teste
44. A V E
NUE
46
4
@DataMongoTest
1. A aplicação se conectará a um banco de dados MongoDB embarcado, por
padrão.
2. Todos documentos e repositórios estarão disponíveis para teste.
Testando os adaptadores
45. A V E
NUE
47
4 Testando os adaptadores
https://github.com/henriquels25/fantasy-sport-api/blob/main/src/test/java/io/henriquels25/fanta
sysport/player/infra/mongo/MongoPlayerRepositoryTest.java
46. A V E
NUE
48
4 Testando os adaptadores
https://github.com/henriquels25/fantasy-sport-api/blob/main/src/test/java/io/henriquels25/fanta
sysport/player/infra/mongo/MongoPlayerRepositoryTest.java
48. A V E
NUE
50
Testando os adaptadores4
Classes
Interfaces
Dependência
Implementação
Classe sobre teste
49. A V E
NUE
51
4
@AutoConfigureWireMock
1. Esta anotação subirá um servidor WireMock onde a aplicação fará
chamadas como se fosse um servidor real.
Testando os adaptadores
50. A V E
NUE
52
4 Testando os adaptadores
https://github.com/henriquels25/fantasy-sport-api/blob/main/src/test/java/io/henriquels25/fanta
sysport/player/infra/client/RestTeamRepositoryTest.java
51. A V E
NUE
53
4 Testando os adaptadores
https://github.com/henriquels25/fantasy-sport-api/blob/main/src/test/java/io/henriquels25/fanta
sysport/player/infra/client/RestTeamRepositoryTest.java
53. A V E
NUE
55
Testando os adaptadores4
Classes
Interfaces
Dependência
Implementação
Classe sobre teste
54. A V E
NUE
57
4
@EmbeddedKafka
1. Esta anotação fornece um servidor Kafka em memória para ser usado nos
testes de integração
Testando os adaptadores
55. A V E
NUE
58
4 Testando os adaptadores
https://github.com/henriquels25/fantasy-sport-api/blob/main/src/test/java/io/henriquels25/fanta
sysport/player/infra/kafka/KafkaPlayerNotificationTest.java
56. A V E
NUE
59
4 Testando os adaptadores
https://github.com/henriquels25/fantasy-sport-api/blob/main/src/test/java/io/henriquels25/fanta
sysport/player/infra/kafka/KafkaPlayerNotificationTest.java
58. A V E
NUE
61
5 Testes end-to-end
Unitários
Integração
E2E
59. A V E
NUE
62
5 Testes end-to-end
Dependência
Implementação
Classe sobre teste
60. A V E
NUE
63
5
@SpringBootTest
1. Essa anotação permite fazer um teste levantando todo o contexto de uma
aplicação Spring Boot.
2. Com isso, é possível validar que a implementação dos adaptadores
funcionam corretamente quando integrados com a camada de negócio.
Testes end-to-end
61. A V E
NUE
64
5 Testes end-to-end
https://github.com/henriquels25/fantasy-sport-api/blob/main/src/test/java/io/henriquels25/fanta
sysport/player/PlayerAcceptanceTest.java
62. A V E
NUE
65
5 Testes end-to-end
https://github.com/henriquels25/fantasy-sport-api/blob/main/src/test/java/io/henriquels25/fanta
sysport/player/PlayerAcceptanceTest.java
63. A V E
NUE
66
5 Testes end-to-end
https://github.com/henriquels25/fantasy-sport-api/blob/main/src/test/java/io/henriquels25/fanta
sysport/player/PlayerAcceptanceTest.java
64. A V E
NUE
67
5 Testes end-to-end
https://github.com/henriquels25/fantasy-sport-api/blob/main/src/test/java/io/henriquels25/fanta
sysport/player/PlayerAcceptanceTest.java
65. A V E
NUE
68
5 Testes end-to-end
https://github.com/henriquels25/fantasy-sport-api/blob/main/src/test/java/io/henriquels25/fanta
sysport/player/PlayerAcceptanceTest.java