Apresentação sobre testes na plataforma .NET, focando em técnicas como TDD (Test-Driven Development), BDD (Behavior-Driven Development), Mocks e testes de UI com Selenium. Palestra realizada em 09/01/2018 para funcionários da Hertz em São Paulo-SP.
Testes na plataforma .NET: TDD, Mocks, BDD e Selenium - Grupo Bandeirantes - ...Renato Groff
Renato Groffe apresenta uma palestra sobre testes de software abordando TDD, mocks, BDD e Selenium. A palestra discute técnicas para melhorar a qualidade de software através de testes automatizados, como test-driven development, behavior-driven development e testes de interface do usuário com Selenium.
Testes na plataforma .NET: TDD, Mocks, BDD e Selenium - .NET SP - Abril-2018Renato Groff
Este documento resume uma palestra sobre testes na plataforma .NET que abordará Test-Driven Development, Mock Objects, Behavior-Driven Development e testes de interfaces web com Selenium. A agenda inclui desenvolvimento ágil, tipos de testes e frameworks como MS Test, xUnit e SpecFlow.
Testes na plataforma .NET: TDD, Mocks, BDD e Selenium - Developers-SP - Janei...Renato Groffe
O documento resume as principais técnicas e ferramentas para testes de software, como TDD, mocks, BDD e Selenium. Apresenta os conceitos e benefícios de cada abordagem, além de exemplos práticos de implementação com .NET.
TDD e BDD - Developers-SP - Abril/2017Renato Groff
O documento discute Test-Driven Development (TDD) e Behavior-Driven Development (BDD) como abordagens para garantir a qualidade de aplicativos. Ele apresenta exemplos práticos de como implementar TDD e BDD usando .NET, NUnit, SpecFlow e MS Test para escrever testes automatizados.
Slides de apresentação realizada para o GDG São Paulo no dia 26/09/2016.
Tópicos abordados:
- Cenários comuns dentro do desenvolvimento de software
- Testes automatizados: uma visão geral
- Dificuldades técnicas na implementação e execução de testes automatizados
- Mocking Test
- Exemplos no Visual Studio 2015
Behavior-Driven Development (BDD) - Abril/2017Renato Groff
O documento apresenta o Behavior-Driven Development (BDD), uma metodologia de desenvolvimento baseada em descrever o comportamento de funcionalidades através de histórias de usuário. O BDD utiliza um framework como o SpecFlow para executar as histórias como testes, melhorando a comunicação entre a equipe. É apresentado um exemplo prático utilizando o SpecFlow para converter alturas em pés para metros.
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.
Testes na plataforma .NET: TDD, Mocks, BDD e Selenium - Grupo Bandeirantes - ...Renato Groff
Renato Groffe apresenta uma palestra sobre testes de software abordando TDD, mocks, BDD e Selenium. A palestra discute técnicas para melhorar a qualidade de software através de testes automatizados, como test-driven development, behavior-driven development e testes de interface do usuário com Selenium.
Testes na plataforma .NET: TDD, Mocks, BDD e Selenium - .NET SP - Abril-2018Renato Groff
Este documento resume uma palestra sobre testes na plataforma .NET que abordará Test-Driven Development, Mock Objects, Behavior-Driven Development e testes de interfaces web com Selenium. A agenda inclui desenvolvimento ágil, tipos de testes e frameworks como MS Test, xUnit e SpecFlow.
Testes na plataforma .NET: TDD, Mocks, BDD e Selenium - Developers-SP - Janei...Renato Groffe
O documento resume as principais técnicas e ferramentas para testes de software, como TDD, mocks, BDD e Selenium. Apresenta os conceitos e benefícios de cada abordagem, além de exemplos práticos de implementação com .NET.
TDD e BDD - Developers-SP - Abril/2017Renato Groff
O documento discute Test-Driven Development (TDD) e Behavior-Driven Development (BDD) como abordagens para garantir a qualidade de aplicativos. Ele apresenta exemplos práticos de como implementar TDD e BDD usando .NET, NUnit, SpecFlow e MS Test para escrever testes automatizados.
Slides de apresentação realizada para o GDG São Paulo no dia 26/09/2016.
Tópicos abordados:
- Cenários comuns dentro do desenvolvimento de software
- Testes automatizados: uma visão geral
- Dificuldades técnicas na implementação e execução de testes automatizados
- Mocking Test
- Exemplos no Visual Studio 2015
Behavior-Driven Development (BDD) - Abril/2017Renato Groff
O documento apresenta o Behavior-Driven Development (BDD), uma metodologia de desenvolvimento baseada em descrever o comportamento de funcionalidades através de histórias de usuário. O BDD utiliza um framework como o SpecFlow para executar as histórias como testes, melhorando a comunicação entre a equipe. É apresentado um exemplo prático utilizando o SpecFlow para converter alturas em pés para metros.
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.
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
Automatizando Testes de Integração com Azure DevOps | DevOps Experience - Fev...Renato Groffe
Apresentação realizada durante a edição de Fevereiro do DevOps Experience no dia 24/02/2022 (quinta-feira), com foco na automação de testes de integração com o Azure DevOps. Ao longo desta palestra demonstrei a implementação de testes de integração e sua execução a partir do Azure Pipelines no Azure DevOps, fazendo uso ainda para isto de tecnologias como .NET 6, C# 10, Visual Studio 2022, Azure Repos, Git, Linux, Redis, Apache Kafka, containers Docker, Kubernetes e Azure Kubernetes Service.
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
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
Apresentação sobre BDD (Behavior-Driven Development) realizada em 06/09/2015.
Tópicos abordados:
- Cenários comuns dentro do desenvolvimento de software
- Test-Driven Development (TDD): uma visão geral
- Testes Unitários no Visual Studio: um exemplo simples
- Behavior-Driven Development (BDD)
- BDD na plataforma .NET
- Exemplo prático no Visual Studio 2015
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.
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).
Apresentação sobre BDD (Behavior-Driven Development) realizada em 20/05/2015.
Tópicos abordados:
- Cenários comuns dentro do desenvolvimento de software
- Test-Driven Development (TDD): uma visão geral
- Testes Unitários no Visual Studio: um exemplo simples
- Behavior-Driven Development (BDD)
- BDD na plataforma .NET
Este documento apresenta Selenium, uma ferramenta para testes automatizados de interfaces web. Discute a importância dos testes de software e como Selenium pode ser utilizado com .NET, incluindo padrões como Page Object. Fornece exemplos práticos de projetos de teste com Selenium, MS Test e SpecFlow.
O documento discute o desenvolvimento baseado em testes (TDD) em 3 frases:
1) TDD envolve escrever testes unitários antes de escrever o código para guiar o desenvolvimento e garantir a qualidade do código.
2) O ciclo básico do TDD é escrever um teste que falha, escrever o código mínimo para fazer o teste passar, e refatorar o código.
3) Os benefícios do TDD incluem esclarecer os requisitos, desenvolver código de alta qualidade com
Apesar de muitas empresas ainda não utilizarem técnicas de teste de software para o desenvolvimento dos seus produtos, alegando o atraso, o tempo ou o custo para esta tarefa, as pesquisas indicam que os testes ajudam na garantia de qualidade do software.
O documento discute Test-Driven Development (TDD), incluindo o que é TDD, os princípios e ciclo de TDD, as vantagens de TDD, como aplicar TDD em diferentes contextos como APIs, sistemas legados e correção de bugs, ferramentas para testes, um caso de uso exemplificando TDD, e referências bibliográficas recomendadas sobre o tópico.
O documento discute a técnica de desenvolvimento orientado a comportamento (BDD) usando a ferramenta JBehave em Java. Ele explica como o JBehave funciona através de arquivos de texto que descrevem histórias de usuário e cenários de teste e como mapear essas histórias para métodos Java usando anotações. Também lista algumas vantagens do JBehave como integração com IDEs, execução via Maven e geração de relatórios.
Behavior-Driven Development (BDD) - DevOps Summit 2016Renato Groff
O documento apresenta Behavior-Driven Development (BDD) como uma abordagem para codificar testes de software de forma mais amigável. Discute os desafios da adoção de Test-Driven Development (TDD) e como BDD pode superá-los através do uso de histórias de usuário e linguagem ubíqua. Também fornece um exemplo prático utilizando o framework SpecFlow no .NET.
TDC2017 | Florianopolis - Trilha DevOps How we figured out we had a SRE team ...tdc-globalcode
O documento discute Test Driven Development (TDD) e fornece exemplos de ferramentas e técnicas para implementar TDD, incluindo Mocha.js, Chai.js, Sinon.js e SuperAgent. Explica os passos básicos do TDD e fornece um exemplo "Hello World". Também discute Behavior Driven Development (BDD) e como ele simplifica e documenta o TDD.
O documento descreve os conceitos de BDD (Behavior Driven Development), TDD (Test Driven Development) e DDD (Domain Driven Design). BDD tem foco no comportamento do software e é uma mistura de TDD e DDD. TDD envolve escrever testes antes do código e DDD enfatiza boas práticas de programação e baixo acoplamento entre classes. O BDD integra negócios e TI através da definição de features, cenários e passos pelo negócio e implementação e testes pela TI.
O documento discute Test Driven Development (TDD) e como ele pode ajudar a atender melhor os requisitos, combater a síndrome de Nostradamus, manter o código organizado e promover o design evolutivo. O TDD envolve escrever testes automatizados antes de escrever o código funcional e seguir um ciclo de desenvolvimento baseado em testes. Ferramentas como JUnit podem ser usadas para implementar TDD em Java.
O documento discute o padrão Model-View-Controller (MVC) apoiado pelo framework PHP Zend. Ele explica que o MVC divide uma aplicação em três camadas - Model, View e Controller - e como o Zend Framework implementa cada uma delas. O documento também destaca os principais benefícios do uso do Zend Framework, como modularidade, extensibilidade e desempenho.
Tópicos abordados:
- Cenários comuns dentro do desenvolvimento de software
- Testes unitários, TDD, BDD: uma visão geral
- Dificuldades técnicas na implementação e execução de testes unitários
- Dummy objects, fake, stubs e mocks
- Implementação de um exemplo prático em .NET
Indo além dos testes de classes com BDD (Behavior-Driven Development) - Inter...Renato Groff
O documento discute testes de software e Behavior-Driven Development (BDD), apresentando BDD como uma abordagem para superar as dificuldades de Test-Driven Development (TDD). Também mostra como frameworks baseados em Cucumber podem ser usados para testes de classes e interfaces, e integrados a soluções como Selenium e Continuous Integration.
Test-Driven Development (TDD) utilizando o framework xUnit.netRenato Groff
Tópicos abordados:
- Motivos que contribuem para a falta de testes
- Quais os impactos da falta de testes?
- Visão geral dos diferentes tipos de testes na área de software
- Testes unitários e a plataforma .NET
- TDD: conceitos gerais
- Implementação de um exemplo prático
- Data-Driven Unit Testing
- Testes unitários e o Visual Studio 2015
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
Automatizando Testes de Integração com Azure DevOps | DevOps Experience - Fev...Renato Groffe
Apresentação realizada durante a edição de Fevereiro do DevOps Experience no dia 24/02/2022 (quinta-feira), com foco na automação de testes de integração com o Azure DevOps. Ao longo desta palestra demonstrei a implementação de testes de integração e sua execução a partir do Azure Pipelines no Azure DevOps, fazendo uso ainda para isto de tecnologias como .NET 6, C# 10, Visual Studio 2022, Azure Repos, Git, Linux, Redis, Apache Kafka, containers Docker, Kubernetes e Azure Kubernetes Service.
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
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
Apresentação sobre BDD (Behavior-Driven Development) realizada em 06/09/2015.
Tópicos abordados:
- Cenários comuns dentro do desenvolvimento de software
- Test-Driven Development (TDD): uma visão geral
- Testes Unitários no Visual Studio: um exemplo simples
- Behavior-Driven Development (BDD)
- BDD na plataforma .NET
- Exemplo prático no Visual Studio 2015
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.
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).
Apresentação sobre BDD (Behavior-Driven Development) realizada em 20/05/2015.
Tópicos abordados:
- Cenários comuns dentro do desenvolvimento de software
- Test-Driven Development (TDD): uma visão geral
- Testes Unitários no Visual Studio: um exemplo simples
- Behavior-Driven Development (BDD)
- BDD na plataforma .NET
Este documento apresenta Selenium, uma ferramenta para testes automatizados de interfaces web. Discute a importância dos testes de software e como Selenium pode ser utilizado com .NET, incluindo padrões como Page Object. Fornece exemplos práticos de projetos de teste com Selenium, MS Test e SpecFlow.
O documento discute o desenvolvimento baseado em testes (TDD) em 3 frases:
1) TDD envolve escrever testes unitários antes de escrever o código para guiar o desenvolvimento e garantir a qualidade do código.
2) O ciclo básico do TDD é escrever um teste que falha, escrever o código mínimo para fazer o teste passar, e refatorar o código.
3) Os benefícios do TDD incluem esclarecer os requisitos, desenvolver código de alta qualidade com
Apesar de muitas empresas ainda não utilizarem técnicas de teste de software para o desenvolvimento dos seus produtos, alegando o atraso, o tempo ou o custo para esta tarefa, as pesquisas indicam que os testes ajudam na garantia de qualidade do software.
O documento discute Test-Driven Development (TDD), incluindo o que é TDD, os princípios e ciclo de TDD, as vantagens de TDD, como aplicar TDD em diferentes contextos como APIs, sistemas legados e correção de bugs, ferramentas para testes, um caso de uso exemplificando TDD, e referências bibliográficas recomendadas sobre o tópico.
O documento discute a técnica de desenvolvimento orientado a comportamento (BDD) usando a ferramenta JBehave em Java. Ele explica como o JBehave funciona através de arquivos de texto que descrevem histórias de usuário e cenários de teste e como mapear essas histórias para métodos Java usando anotações. Também lista algumas vantagens do JBehave como integração com IDEs, execução via Maven e geração de relatórios.
Behavior-Driven Development (BDD) - DevOps Summit 2016Renato Groff
O documento apresenta Behavior-Driven Development (BDD) como uma abordagem para codificar testes de software de forma mais amigável. Discute os desafios da adoção de Test-Driven Development (TDD) e como BDD pode superá-los através do uso de histórias de usuário e linguagem ubíqua. Também fornece um exemplo prático utilizando o framework SpecFlow no .NET.
TDC2017 | Florianopolis - Trilha DevOps How we figured out we had a SRE team ...tdc-globalcode
O documento discute Test Driven Development (TDD) e fornece exemplos de ferramentas e técnicas para implementar TDD, incluindo Mocha.js, Chai.js, Sinon.js e SuperAgent. Explica os passos básicos do TDD e fornece um exemplo "Hello World". Também discute Behavior Driven Development (BDD) e como ele simplifica e documenta o TDD.
O documento descreve os conceitos de BDD (Behavior Driven Development), TDD (Test Driven Development) e DDD (Domain Driven Design). BDD tem foco no comportamento do software e é uma mistura de TDD e DDD. TDD envolve escrever testes antes do código e DDD enfatiza boas práticas de programação e baixo acoplamento entre classes. O BDD integra negócios e TI através da definição de features, cenários e passos pelo negócio e implementação e testes pela TI.
O documento discute Test Driven Development (TDD) e como ele pode ajudar a atender melhor os requisitos, combater a síndrome de Nostradamus, manter o código organizado e promover o design evolutivo. O TDD envolve escrever testes automatizados antes de escrever o código funcional e seguir um ciclo de desenvolvimento baseado em testes. Ferramentas como JUnit podem ser usadas para implementar TDD em Java.
O documento discute o padrão Model-View-Controller (MVC) apoiado pelo framework PHP Zend. Ele explica que o MVC divide uma aplicação em três camadas - Model, View e Controller - e como o Zend Framework implementa cada uma delas. O documento também destaca os principais benefícios do uso do Zend Framework, como modularidade, extensibilidade e desempenho.
Tópicos abordados:
- Cenários comuns dentro do desenvolvimento de software
- Testes unitários, TDD, BDD: uma visão geral
- Dificuldades técnicas na implementação e execução de testes unitários
- Dummy objects, fake, stubs e mocks
- Implementação de um exemplo prático em .NET
Indo além dos testes de classes com BDD (Behavior-Driven Development) - Inter...Renato Groff
O documento discute testes de software e Behavior-Driven Development (BDD), apresentando BDD como uma abordagem para superar as dificuldades de Test-Driven Development (TDD). Também mostra como frameworks baseados em Cucumber podem ser usados para testes de classes e interfaces, e integrados a soluções como Selenium e Continuous Integration.
Test-Driven Development (TDD) utilizando o framework xUnit.netRenato Groff
Tópicos abordados:
- Motivos que contribuem para a falta de testes
- Quais os impactos da falta de testes?
- Visão geral dos diferentes tipos de testes na área de software
- Testes unitários e a plataforma .NET
- TDD: conceitos gerais
- Implementação de um exemplo prático
- Data-Driven Unit Testing
- Testes unitários e o Visual Studio 2015
Renato Groffe tem mais de 15 anos de experiência em tecnologia e possui diversas certificações. Ele fornece treinamentos sobre testes unitários automatizados, TDD, BDD e mocking tests utilizando ferramentas como Moq e NSubstitute no .NET. Seus links profissionais incluem páginas no Facebook, LinkedIn e um canal sobre .NET.
Renato Groffe tem mais de 15 anos de experiência em tecnologia e possui diversas certificações. Ele oferece serviços de consultoria em testes de software, com foco em testes unitários, e ministra treinamentos sobre o assunto. Seu portfólio inclui experiência acadêmica e projetos profissionais na área de engenharia de software e business intelligence.
InterCon 2017 - Indo além dos testes de classes com BDD (Behavior-Driven Deve...iMasters
Renato Groffe discute testes de software e Behavior-Driven Development (BDD). Ele explica como BDD supera as limitações dos testes de unidade ao envolver especialistas de negócios e técnicos para descrever o comportamento desejado das funcionalidades em linguagem natural. Ele também mostra como frameworks baseados em Cucumber podem ser usados para testes de interface e aplicativos móveis quando combinados com outras ferramentas de teste.
Este documento discute abordagens de teste de caixa branca ou teste baseado em código, com foco em técnicas como cobertura de código, fluxo de controle e fluxo de dados. Resume os principais objetivos, características e técnicas deste tipo de teste, incluindo TDD, BDD, ATDD e frameworks como JUnit e TestNG.
Indo além dos testes de classes com BDD (Behavior-Driven Development) - DevOp...Renato Groff
Apresentação realizada em 03/05/2018, durante um meetup promovido pelo grupo DevOps Professionals na cidade de São Paulo-SP.
Tópicos da apresentação:
- Testes de software: uma visão geral
- Um pouco sobre BDD (Behavior-Driven Development)
- Indo além com BDD...
Test-Driven Development (TDD) - MSP Coding DayRenato Groff
Slides de apresentação realizada durante o MSP Coding Day, evento realizado em Santos-SP no dia 23/07/2016.
Tópicos abordados:
- Motivos que contribuem para a falta de testes
- Quais os impactos da falta de testes?
- Visão geral dos diferentes tipos de testes na área de software
- Testes unitários e a plataforma .NET
- TDD: conceitos gerais
- Implementação de um exemplo prático
Tópicos abordados:
O documento descreve o desenvolvimento guiado por testes (Test-Driven Development - TDD), incluindo suas regras fundamentais, etapas, tipos de testes, demonstração de um exemplo e conclusões sobre os benefícios do TDD.
O documento discute a ferramenta SpecFlow para testes de aceitação baseados em comportamento (BDD). Ele explica como instalar o plug-in e framework SpecFlow no Visual Studio, criar arquivos de funcionalidade e definições de passos, e executar cenários de teste.
O documento discute a ferramenta SpecFlow para testes de aceitação baseados em comportamento (BDD). Ele explica como instalar o plug-in e framework SpecFlow no Visual Studio, criar arquivos de funcionalidade e definições de passos, e executar cenários de teste. TAGs podem ser usadas para preparar dados para execução de cenários através de ganchos.
Testando Aplicações Web com Selenium WebDriver - .NET SP - Novembro-2018Renato Groff
Apresentação realizada em evento promovido pelo grupo .NET SP na cidade de São Paulo-SP em 05/11/2018. Esta palestra focou no uso do Selenium WebDriver para o teste automatizado de interfaces Web, utilizando para isto o .NET Core 2.1, o ASP.NET Core 2.1 e o .NET Standard 2.0.
O documento resume conceitos e práticas de metodologias ágeis como Scrum, XP e Ruby on Rails. Apresenta características de desenvolvimento ágil, papéis em Scrum, ciclo de vida do XP e práticas como programação em par e teste.
O documento apresenta uma palestra sobre Desenvolvimento Dirigido por Testes (TDD). A palestra discute o que é TDD, como funciona, frameworks de teste de unidade, mitos sobre TDD e exemplos práticos em .NET e Java. O palestrante tem mais de cinco anos de experiência em engenharia de software e é instrutor de teste de software.
1) O documento apresenta os papéis e técnicas de automação de testes para equipes ágeis, discutindo como a automação pode ajudar a resolver problemas como falta de tempo para testar e garantir a qualidade ao longo dos sprints. 2) É destacado que nem todos os casos de teste devem ser automatizados e que é importante separar os ambientes de desenvolvimento e teste. 3) A apresentação discute diferentes níveis de automação, desde scripts lineares até abordagens data-driven e keyword-driven, concluindo que a combinação das últimas é a melhor opção
1) O documento discute estratégias para migrar um grande sistema monolítico legado para micro serviços em Delphi de forma gradual e evolutiva.
2) É apresentada uma estratégia de extrair funcionalidades do monolito e transformá-las em serviços independentes de forma incremental, começando pelas dependências comuns.
3) O documento também discute a importância de automação de testes, principalmente testes funcionais entre serviços (End2End), no contexto da migração e adoção de micro serviços.
Desconstruindo monolitos - Construindo microservicos em DelphiFelipe Caputo
O documento discute estratégias para migrar um grande sistema monolítico legado para micro serviços em Delphi de forma ágil e com qualidade. Primeiro, explica os benefícios e desafios de micro serviços e abordagens de evolução e migração de legados. Em seguida, detalha estratégias como extrair dependências, transformar funcionalidades em serviços e usar Docker. Por fim, discute a importância da automação de testes funcionais e não funcionais para garantir a qualidade durante e após a migração.
O documento descreve o TDD (Test Driven Development), seu ciclo e conceitos fundamentais, como escrever testes com JUnit e aplicar BDD (Behavior Driven Development). O TDD tem como objetivo código limpo e funcional através de testes automatizados, enquanto o BDD integra as regras de negócio no desenvolvimento guiado por testes.
O documento discute técnicas para evoluir sistemas legados, incluindo redocumentação, refatoração, engenharia reversa e reengenharia. A rejuvenescimento de software é apresentada como uma estratégia para melhorar a qualidade do software e reduzir custos de manutenção ao longo do tempo.
Semelhante a Testes na plataforma .NET: TDD, Mocks, BDD e Selenium - Hertz - Janeiro-2018 (20)
Microsoft Azure role-based certifications valem a pena? | Interop Day Edição ...Renato Groff
O documento discute as certificações Microsoft Azure Role-Based, incluindo os exames Fundamentals, Developer Associate e DevOps Expert. Os autores, ambos MVPs da Microsoft, argumentam que as certificações agregam valor profissional ao demonstrar habilidades técnicas e diferenciar candidatos em um mercado competitivo.
Kubernetes: dicas e truques para o dia a dia | Azure Experts - Novembro-2020Renato Groff
Renato Groffe tem 20 anos de experiência na área de tecnologia, é um Microsoft MVP e contribuidor técnico. Ele é líder comunitário, autor técnico e palestrante, e fornece resumos sobre Kubernetes e dicas para utilização de containers Docker.
Como o Microsoft Azure pode melhorar o desenvolvimento de seu Back-End? | Dev...Renato Groff
Renato Groffe é um especialista em tecnologia com 20 anos de experiência, Microsoft MVP e MTAC. Ele fornece conteúdos técnicos sobre diversos serviços do Azure, incluindo hospedagem, banco de dados, mensageria e containers.
Como avançar na Power Platform com Azure Functions e Logic Apps | MVPConf Lat...Renato Groff
O documento apresenta Renato Groffe, um Microsoft MVP e engenheiro de software, e discute brevemente suas qualificações e experiência. Também lista as entidades beneficiadas por doações recebidas no evento MVPConf LATAM 2020 e fornece um resumo de ferramentas da Microsoft como Power Platform, Azure Functions e Logic Apps.
GitHub Actions: descomplicando o build/deployment automatizados | MVPConf Lat...Renato Groff
Slides de apresentação cobrindo o build e o deployment automatizado de aplicações utilizando GitHub Actions. Palestra realizada em 12/12/2020 (sábado) durante o MVPConf Latam 2020.
A evolução da plataforma .NET: passado, presente e futuro | Baixada NERD - No...Renato Groff
Renato Groffe tem mais de 15 anos de experiência em tecnologia, é um Microsoft MVP e MTAC, autor técnico e palestrante. Ele lidera comunidades .NET em São Paulo e oferece lives e eventos gratuitos sobre .NET, C# e Azure.
Polly: aplicações .NET resilientes e um melhor tratamento de falhas | MVPConf...Renato Groff
Slides de apresentação cobrindo a utilização da biblioteca Polly na implementação de aplicações .NET mais resilientes e contando com um melhor tratamento de falhas. Palestra realizada em 11/12/2020 (sexta) durante o MVPConf Latam 2020.
Containers no Azure: Docker, Kubernetes e suas diferentes possibilidades | MV...Renato Groff
Slides de apresentação cobrindo o suporte do Microsoft Azure a Docker e Kubernetes. Palestra realizada em 10/12/2020 (quinta) durante o MVPConf Latam 2020.
Docker: dicas e truques para o dia a dia | MVPConf Latam 2020Renato Groff
Slides de apresentação com dicas e truques envolvendo a utilização de containers Docker. Palestra realizada em 10/12/2020 (quinta) durante o MVPConf Latam 2020.
Simplificando a montagem de ambientes de Dev+Testes com Docker | DEVDAY 2020Renato Groff
Slides de apresentação sobre o uso de containers Docker na montagem de ambientes de Dev/Testes realizada no dia 03/12/2020 (quinta) durante o DEVDAY 2020, evento que aconteceu de forma online com transmissão via YouTube.
.NET Core + Serverless: Desenvolvimento Multiplataforma com Azure Functions |...Renato Groff
Slides sobre a implementação de soluções serverless multiplataforma com Azure Functions e .NET Core. Palestra realizada durante o dia 29/10/2020 na trilha .NET do TDC Recife Online.
Aplicações Distribuídas com .NET | TDC Recife Online 2020Renato Groff
O documento apresenta uma agenda sobre sistemas distribuídos com .NET, incluindo microsserviços, Apache Kafka e exemplos práticos. Discute conceitos como sistemas distribuídos, mensageria com filas e tópicos, e como o Apache Kafka pode ser usado para integrar aplicações .NET de forma assíncrona e escalável.
Novidades do .NET 5 e ASP.NET 5 | Visual Studio Summit 2020Renato Groff
O documento apresenta as principais novidades do .NET 5 e ASP.NET 5, incluindo a unificação da plataforma .NET, melhorias na serialização JSON e suporte a Docker, além de novos recursos como a publicação de aplicações em um único arquivo e o auto refresh no browser ao alterar o código.
Serverless + Integrações com BDs: Azure Functions e Logic Apps - SQLSaturday ...Renato Groff
O documento apresenta uma visão geral sobre serverless computing utilizando Azure Functions e Logic Apps. Ele discute conceitos como escalabilidade, responsabilidade única e orientação a eventos. Também apresenta exemplos práticos de integração entre Azure Functions, Logic Apps e bancos de dados como Cosmos DB e SQL Server.
Boas práticas de segurança no acesso a dados em Web Apps - SQLSaturday #972 -...Renato Groff
Apresentação sobre boas práticas de segurança no acesso a dados em Web Apps. Palestra realizada durante o SQLSaturday #972 - Belo Horizonte, evento que aconteceu online no dia 24/10/2020 (sábado).
.NET: passado, presente e futuro | Semana FCI 2020 - MackenzieRenato Groff
Apresentação o passado, o presente e o futuro da plataforma .NET (incluindo tecnologias como C#, Visual Studio, Visual Studio Code, Microsoft Azure). Palestra realizada em 16/10/2020 durante a Semana da Faculdade de Computação e Informática da Universidade Mackenzie em São Paulo-SP.
Docker: visão geral e primeiros passos | Fatec Praia Grande - Semana Tecnológ...Renato Groff
Apresentação sobre primeiros passos no uso de containers Docker. Palestra realizada em 06/10/2020 durante a Semana Tecnológica da Fatec de Praia Grande-SP.
Kubernetes de ponta a ponta: do Pod ao Deployment Automatizado | Setembro-2020Renato Groff
Slides de apresentação realizada no dia 03/09/2020 e focando na implementação e deployment de soluções escaláveis com Kubernetes, além de trazer diversas dicas, truques e exemplos práticos na orquestração de containers.
Sobrevoando os serviços do Azure | TDC São Paulo Online 2020Renato Groff
Slides de palestra detalhando diversos serviços do Microsoft Azure e sua aplicabilidade na implementação de soluções na nuvem. Apresentação realizada na Sala Microsoft em 25/08/2020, durante o TDC São Paulo Online.
2. Renato Groffe
◦ Microsoft Most Valuable Professional (MVP)
◦ Multi-Plataform Technical Audience Contributor (MTAC)
◦ Mais de 15 anos de experiência na área de Tecnologia
◦ Autor Técnico e Palestrante
4. Agenda
◦ Desenvolvimento de software – Cenários Comuns
◦ Test-Driven Development
◦ Mock Objects
◦ Behavior-Driven Development
◦ Testando interfaces Web com Selenium
12. Como contornar estes problemas?
Metodologias ágeis
◦ XP (Extreme Programming) e Scrum
são os exemplos mais famosos
Testando um software
◦ Diferentes abordagens
13. Por que testar um software?
◦ Garantir que o projeto atende às especificações
◦ Detectar falhas e defeitos antes da subida para produção
14. Alguns tipos de testes
◦ Teste de unidade
◦ Teste de integração
◦ Teste de sistema
◦ Teste de aceitação
◦ Teste de regressão
◦ Teste de UI
15. Testes de unidade
◦ Automatizados
◦ Repetíveis
◦ Facilidade de implementação
◦ Reuso futuro
◦ Facilidade e rapidez de execução
17. Test-Driven Development (TDD)
◦ Desenvolvimento cíclico baseado na
codificação e execução de testes de unidade
◦ Testes são escritos antes mesmo da
codificação de classes ou métodos
◦ Validação de objetos e métodos (unidades)
◦ Abordagem comumente associada às
metodologias ágeis
21. Exemplo de uso do xUnit
◦ Conversão de temperatura – Escala Fahrenheit para Celsius:
◦ Casos de teste (considerar 2 casas decimais para arredondamento):
C = (F – 32) / 1,8
24. Dificuldades técnicas comuns
◦ Dependências entre diferentes partes de um
software
◦ Inexistência de ambientes com configurações
específicas para testes
◦ Integrações com parceiros que não disponibilizam
condições adequadas para testes
◦ O teste de determinados recursos precisa esperar
pela conclusão de uma ou mais funcionalidades
específicas
28. Algumas soluções para testes automatizados
Implementações fake
◦ Estruturas normalmente descartadas em produção
◦ Implementações contendo dados fixos e nenhuma
lógica
◦ Exemplo: utilização de um banco de dados “em
memória”
29. Algumas soluções para testes automatizados
Mock Objects
◦ Estruturas que simulam objetos reais
◦ Baseados em expectativas
◦ Enfatizam a interação entre objetos (comportamento),
prevendo inclusive possíveis falhas de execução
◦ Frameworks simplificam a utilização destas construções
30. Algumas soluções para testes automatizados
Stubs
◦ Estruturas com comportamento pré-determinado
◦ Podem fazer uso de implementações fake ou até
mesmo um framework para mock
◦ Não há a configuração de expectativas
31. Algumas considerações adicionais
◦ O termo dublê pode se referir a implementações fakes, mocks e stubs
◦ Temos também o conceito de objetos “dummy” (criados apenas para passagem de
parâmetros, sem uso posterior)
32. Um pouco de teoria
Mocks Aren't Stubs – Martin Fowler
https://martinfowler.com/articles/mocksArentStubs.html
34. Moq
◦ Framework open source
◦ Simplifica a utilização de Mocks na validação de soluções
construídas em .NET
◦ Permite definir o retorno de métodos, propriedades e até a
geração de exceções em tempo de execução
◦ Dispensa a criação de Fakes e outras estruturas que seriam
descartadas posteriormente
35. NSubstitute
◦ Framework também open source
◦ Alternativa ao uso do Moq, com um
funcionamento bastante semelhante ao deste
último
36. E como utilizar isso em .NET?
Combinando o uso do Moq ou Nsubstitute a frameworks como MS Test, NUnit, xUnit.net,
SpecFlow, Selenium, Fluent Assertions...
MS Test
38. Caso de Estudo
◦ Consulta a um serviço de crédito (via CPF) – status possíveis:
◦ Parâmetro de envio inválido (retorno de pendências = null)
◦ Erro de comunicação (exceção retornada ao se invocar o serviço)
◦ Pessoa física sem Pendências (zero itens no retorno de pendências)
◦ Pessoa física inadimplente (ao menos uma pendência encontrada)
◦ A ideia por trás do uso de Mock Objects nesta situação é evitar consultas a um
tipo de serviço que é pago → as empresas que fornecem os dados não
costumam disponibilizar ambientes para testes
40. Recursos a serem utilizados
◦ Microsoft Visual Studio 2017
◦ .NET Core 2.0
◦ MS Test
◦ xUnit
◦ Moq
◦ NSubstitute
◦ Fluent Assertions
41. Dificuldades na adoção de TDD
◦ Verificar pontos isolados (métodos, classes) nem sempre é uma solução
eficiente ou garantia de sucesso
◦ Problemas costumam surgir durante a integração de partes relacionadas
◦ Testes de unidade são compreendidos apenas por pessoas com um perfil
mais técnico
42. E como superar tais dificuldades?
A abordagem conhecida como Behavior-Driven Development pode
ser uma resposta a esta pergunta
43. Behavior-Driven Development (BDD)
◦ Metodologia de desenvolvimento proposta por Dan North em 2006
◦ User stories (histórias) descrevem o comportamento de features
(funcionalidades)
47. Behavior-Driven Development (BDD)
◦ Frameworks permitem que as user stories sejam executadas como testes de
aceitação ou regressão a partir de uma IDE
◦ Cucumber → primeira ferramenta a suportar BDD e base utilizada pelos principais
frameworks
◦ Gherkin → mecanismo utilizado pelo Cucumber para interpretar uma história;
suporte à internacionalização
48. BDD - Benefícios
◦ Melhor comunicação entre os profissionais envolvidos em um projeto
◦ Documentação simples e gerada de forma dinâmica
◦ Facilita o compartilhamento de conhecimentos a respeito de um projeto
◦ User stories apresentam objetivos mais claros e bem definidos
◦ Instrumento de grande valia em equipes que seguem metodologias ágeis
49. BDD e a plataforma .NET
◦ A opção mais utilizada na atualidade é o framework gratuito SpecFlow
http://www.specflow.org/
◦ O SpecFlow trabalha com especificações de funcionalidades, baseando-se para isto
em user stories
◦ Cenários correspondem a diferentes casos de teste no SpecFlow
◦ A utilização do SpecFlow costuma acontecer em conjunto com outros frameworks
50. SpecFlow e outros frameworks
◦ MS Test, Nunit, xUnit.net, Selenium, Moq, NSubstitute e Fluent Assertions
são algumas das opções possíveis...
MS Test
53. Exemplo de uso do SpecFlow
◦ Funcionalidade para conversão de temperaturas na escala Fahrenheit para o
equivalente nas escalas Celsius e Kelvin
◦ Classe a ser implementada:
54. Exemplo de uso do SpecFlow
◦ Casos de teste:
◦ Considerar 2 casas decimais para arredondamento das temperaturas
55. Exemplo de uso do SpecFlow
◦ Regras para a implementação da classe ConversorTemperatura:
C = (F – 32) / 1,8
K = C + 273,15
56. Selenium
◦ Testes automatizados de interfaces Web
◦ Suporta linguagens como C#, Java, Ruby, Python e Node.js
◦ Compatibilidade com browsers como Firefox, Chrome, Internet Explorer,
Opera
◦ Site: http://www.seleniumhq.org/
57. E como utilizar o Selenium em .NET?
Combinando o uso do Selenium a frameworks como MS Test, NUnit, xUnit.net, SpecFlow, Moq,
Nsubstitute, Fluent Assertions ....
MS Test
58. Selenium e boas práticas
◦ Uso do padrão Page Object, proposto por Martin Fowler
◦ Encapsulamento das chamadas envolvendo a manipulação de elementos
HTML, de forma a simplificar a escrita de testes
◦ Referência:
http://martinfowler.com/bliki/PageObject.html