SlideShare uma empresa Scribd logo
1 de 27
Baixar para ler offline
Testes com xUnit------------------------------------------------------
Letticia Nicoli
Paula Santos
Letticia Nicoli
● Desenvolvedora na Lambda3
● letticia.nicoli@gmail.com
● @LetticiaNicoli
Quem somos
Paula Santos
● Desenvolvedora na Cubo Tecnologia
● paulacs21@hotmail.com
● https://www.linkedin.com/in/pcrissantos/
MAIS SÉRIO
DO QUE PARECE ...
Autodestruição ativada
O primeiro lançamento do foguete Ariane 5 falhou 37
segundos após sair do solo causando sua destruição.
Motivo: mau funcionamento no software de controle.
O valor de ponto flutuante era muito grande para
ser representado por um inteiro de 16 bits.
Fonte:
en.wikipedia.org/wiki/Ariane_5
Pareceu malware, mas não era
Em 2009, foi adicionada uma barra invertida em todas as URLs que eram
direcionadas para o buscador da empresa.
Resultado: o site foi sinalizado como malware no mundo todo por cerca de 1 hora
Gerou prejuízo total de quase US$ 3 milhões
➔ Tempo
➔ Planejamento
➔ Hábito
➔ Trabalhoso
➔ Conflito com a área de negócios
Por que deixamos os testes para depois/nunca ?
➔ Retrabalho
➔ Virar a noite codando
➔ Alterar código antes da review
➔ Encontrar bug minutos antes do deploy
➔ Cobrir apenas o happy path
Impactos
ENTÃO ….
COMECE A TESTAR
Tipos de Testes
➔ Funcional
Tem o objetivo de validar as
funcionalidades descritas na
documentação.
➔ Interface
Testa se objetos de tela e a
navegabilidade funcionam
conforme o especificado.
➔ Regressão
Ocorre quando é feita alguma alteração na aplicação, por
exemplo, uma nova funcionalidade. Neste caso a recomendação
é executar todos os testes novamente.
Existem diversos tipos de testes de software. Os mais comuns são:
UNIDADE
INTEGRAÇÃO
UI
TESTES
MANUAIS
Testes Unitários
➔ Testar a menor unidade de
código possível, podendo ser
uma classe ou um método.
➔ Mostrar que cada unidade
atende corretamente sua
especificação.
Testes Unitários
➔ A implementação é de responsabilidade do
desenvolvedor, por se tratar de um teste com foco
direto no código.
➔ Devem ser formulados para garantir que todos os
pontos do fluxo a ser testado sejam verificados ao
menos uma vez durante o teste.
Frameworks
Existem hoje no mercado vários frameworks de teste para a plataforma .NET.
Podemos citar alguns:
➔ MsTest: É a biblioteca de testes padrão do .NET integrada ao Visual Studio.
➔ NUnit: Projeto open source derivado do JUnit, que é um framework de
testes para Java.
➔ xUnit.net: É biblioteca de testes também open source que surgiu como
uma evolução do NUnit para testar linguagens da plataforma .NET (C#,
VB.NET, F# e outras).
Programação Orientada a Testes
TDD (Test-Driven Development)
➔ Escreva testes antes mesmo de escrever o código de
produção
➔ Assegurar que boa parte do seu sistema tenha um teste
que garanta o seu funcionamento
Como funciona?
➔ Escreva um teste que falha,
faça-o passar da maneira mais
simples possível e, por fim,
refatore o código.
➔ Esse ciclo é conhecido como
Ciclo Vermelho-Verde-Refatora.
O que eu ganho?
➔ Agilidade nos testes automatizados (mais rápido que testes manuais);
➔ Menor quantidade de bugs;
➔ Redução de custos com manutenção;
➔ Segurança ao desenvolvedor na hora de mudanças;
➔ Auxilia na documentação do sistema, pois o teste indica qual deve ser
o comportamento esperado para a unidade a ser testada;
➔ Código de produção de qualidade;
Se está difícil escrever um teste automatizado,
é porque provavelmente o código de produção está complicado !
CODING DOJO
DESENVOLVEDORES
REUNIDOS PARA RESOLVER
UM DESAFIO
NÃO É UMA COMPETIÇÃO !
EXPERIMENTAR e TESTAR
TODOS PARTICIPAM
Piloto e Co-Piloto
Todos podem participar
5 minutos
Randori Kata
PLATÉIA FICA EM SILÊNCIO
ENQUANTO ALGUM DOS TESTES
NÃO ESTIVER PASSANDO
RETROSPECTIVA
AVALIAÇÃO
PONTOS POSITIVOS E NEGATIVOS
Desafio
Ano Bissexto
Um ano é bissexto se ele for divisível por 400
ou se ele for divisível por 4 e não por 100.
Exemplos de anos Bissexto:
1980, 1984, 1988, 1992, 1996 e 2000.
Sugestões
tdd.caelum.com.br
Referências
➔ http://testesdesoftware.com/tipos-de-teste-de-software/
➔ http://bit.ly/TesteUnitarioTesteIntegrado
➔ http://bit.ly/TestesUnitarios-xUnit
➔ http://bit.ly/TestesUnitarios
➔ http://www.codeatest.com/testes-unitarios-porque-escrever/
Obrigada !------------------------------------------------------
Letticia Nicoli
Paula Santos

Mais conteúdo relacionado

Mais procurados

ASP.NET Core com Linux, Docker e Azure
ASP.NET Core com Linux, Docker e AzureASP.NET Core com Linux, Docker e Azure
ASP.NET Core com Linux, Docker e AzureGiovanni Bassi
 
DevPira Festival 21 - .NET6 Uma nova forma de construir apis MinimalAPIs
DevPira Festival 21 - .NET6 Uma nova forma de construir apis MinimalAPIsDevPira Festival 21 - .NET6 Uma nova forma de construir apis MinimalAPIs
DevPira Festival 21 - .NET6 Uma nova forma de construir apis MinimalAPIsJúnior Porfirio
 
9 erros que desenvolvedores Node.js cometem
9 erros que desenvolvedores Node.js cometem9 erros que desenvolvedores Node.js cometem
9 erros que desenvolvedores Node.js cometemFernando Henriques
 
Javascript por debaixo dos panos
Javascript por debaixo dos panosJavascript por debaixo dos panos
Javascript por debaixo dos panosLaís Lima
 
ASP.NET vNext no .NET Architects Days 2014
ASP.NET vNext no .NET Architects Days 2014ASP.NET vNext no .NET Architects Days 2014
ASP.NET vNext no .NET Architects Days 2014Giovanni Bassi
 
Devops CI/CD: Obtendo qualidade de vida para o time de desenvolvimento
Devops CI/CD: Obtendo qualidade de vida para o time de desenvolvimentoDevops CI/CD: Obtendo qualidade de vida para o time de desenvolvimento
Devops CI/CD: Obtendo qualidade de vida para o time de desenvolvimentoThiago Ferreira
 
Integração contínua em PHP com Jenkins
Integração contínua em PHP com JenkinsIntegração contínua em PHP com Jenkins
Integração contínua em PHP com JenkinsGilmar Pupo
 
Jenkins - livre-se da parte chata do Java
Jenkins - livre-se da parte chata do JavaJenkins - livre-se da parte chata do Java
Jenkins - livre-se da parte chata do JavaFernando Boaglio
 
Workshop react + adonis.js
Workshop react + adonis.jsWorkshop react + adonis.js
Workshop react + adonis.jsDenis Velrino
 
Botando o Jenkins para rodar seus testes
Botando o Jenkins para rodar seus testesBotando o Jenkins para rodar seus testes
Botando o Jenkins para rodar seus testeskinow
 
Monitoramento de containers Docker
Monitoramento de containers DockerMonitoramento de containers Docker
Monitoramento de containers DockerJosé Barbosa
 
Docker como super comando
Docker como super comandoDocker como super comando
Docker como super comandoRafael Gomes
 
.NET e ASP.NET Core 2.2, .NET Core 3, Visual Studio 2019: uma visão geral - ....
.NET e ASP.NET Core 2.2, .NET Core 3, Visual Studio 2019: uma visão geral - .....NET e ASP.NET Core 2.2, .NET Core 3, Visual Studio 2019: uma visão geral - ....
.NET e ASP.NET Core 2.2, .NET Core 3, Visual Studio 2019: uma visão geral - ....Renato Groff
 
Docker no Back e no Front - um exemplo com .NET Core e Angular - Campus Party...
Docker no Back e no Front - um exemplo com .NET Core e Angular - Campus Party...Docker no Back e no Front - um exemplo com .NET Core e Angular - Campus Party...
Docker no Back e no Front - um exemplo com .NET Core e Angular - Campus Party...Renato Groff
 
Jenkins, o CI ao seu dispor
Jenkins, o CI ao seu disporJenkins, o CI ao seu dispor
Jenkins, o CI ao seu dispors4nx
 
Docker para Desenvolvedores - Developers-BR - Agosto-2018
Docker para Desenvolvedores - Developers-BR - Agosto-2018Docker para Desenvolvedores - Developers-BR - Agosto-2018
Docker para Desenvolvedores - Developers-BR - Agosto-2018Renato Groff
 
Novidades das Bibliotecas Jetpack do Android (2021)
Novidades das Bibliotecas Jetpack do Android (2021)Novidades das Bibliotecas Jetpack do Android (2021)
Novidades das Bibliotecas Jetpack do Android (2021)Nelson Glauber Leal
 
Developer Experience no Nubank
Developer Experience no NubankDeveloper Experience no Nubank
Developer Experience no NubankLetticia Nicoli
 

Mais procurados (20)

ASP.NET Core com Linux, Docker e Azure
ASP.NET Core com Linux, Docker e AzureASP.NET Core com Linux, Docker e Azure
ASP.NET Core com Linux, Docker e Azure
 
DevPira Festival 21 - .NET6 Uma nova forma de construir apis MinimalAPIs
DevPira Festival 21 - .NET6 Uma nova forma de construir apis MinimalAPIsDevPira Festival 21 - .NET6 Uma nova forma de construir apis MinimalAPIs
DevPira Festival 21 - .NET6 Uma nova forma de construir apis MinimalAPIs
 
9 erros que desenvolvedores Node.js cometem
9 erros que desenvolvedores Node.js cometem9 erros que desenvolvedores Node.js cometem
9 erros que desenvolvedores Node.js cometem
 
Javascript por debaixo dos panos
Javascript por debaixo dos panosJavascript por debaixo dos panos
Javascript por debaixo dos panos
 
ASP.NET vNext no .NET Architects Days 2014
ASP.NET vNext no .NET Architects Days 2014ASP.NET vNext no .NET Architects Days 2014
ASP.NET vNext no .NET Architects Days 2014
 
Devops CI/CD: Obtendo qualidade de vida para o time de desenvolvimento
Devops CI/CD: Obtendo qualidade de vida para o time de desenvolvimentoDevops CI/CD: Obtendo qualidade de vida para o time de desenvolvimento
Devops CI/CD: Obtendo qualidade de vida para o time de desenvolvimento
 
Integração contínua em PHP com Jenkins
Integração contínua em PHP com JenkinsIntegração contínua em PHP com Jenkins
Integração contínua em PHP com Jenkins
 
Jenkins - livre-se da parte chata do Java
Jenkins - livre-se da parte chata do JavaJenkins - livre-se da parte chata do Java
Jenkins - livre-se da parte chata do Java
 
Workshop react + adonis.js
Workshop react + adonis.jsWorkshop react + adonis.js
Workshop react + adonis.js
 
Jenkins
JenkinsJenkins
Jenkins
 
Botando o Jenkins para rodar seus testes
Botando o Jenkins para rodar seus testesBotando o Jenkins para rodar seus testes
Botando o Jenkins para rodar seus testes
 
Seminário: Delphi
Seminário: DelphiSeminário: Delphi
Seminário: Delphi
 
Monitoramento de containers Docker
Monitoramento de containers DockerMonitoramento de containers Docker
Monitoramento de containers Docker
 
Docker como super comando
Docker como super comandoDocker como super comando
Docker como super comando
 
.NET e ASP.NET Core 2.2, .NET Core 3, Visual Studio 2019: uma visão geral - ....
.NET e ASP.NET Core 2.2, .NET Core 3, Visual Studio 2019: uma visão geral - .....NET e ASP.NET Core 2.2, .NET Core 3, Visual Studio 2019: uma visão geral - ....
.NET e ASP.NET Core 2.2, .NET Core 3, Visual Studio 2019: uma visão geral - ....
 
Docker no Back e no Front - um exemplo com .NET Core e Angular - Campus Party...
Docker no Back e no Front - um exemplo com .NET Core e Angular - Campus Party...Docker no Back e no Front - um exemplo com .NET Core e Angular - Campus Party...
Docker no Back e no Front - um exemplo com .NET Core e Angular - Campus Party...
 
Jenkins, o CI ao seu dispor
Jenkins, o CI ao seu disporJenkins, o CI ao seu dispor
Jenkins, o CI ao seu dispor
 
Docker para Desenvolvedores - Developers-BR - Agosto-2018
Docker para Desenvolvedores - Developers-BR - Agosto-2018Docker para Desenvolvedores - Developers-BR - Agosto-2018
Docker para Desenvolvedores - Developers-BR - Agosto-2018
 
Novidades das Bibliotecas Jetpack do Android (2021)
Novidades das Bibliotecas Jetpack do Android (2021)Novidades das Bibliotecas Jetpack do Android (2021)
Novidades das Bibliotecas Jetpack do Android (2021)
 
Developer Experience no Nubank
Developer Experience no NubankDeveloper Experience no Nubank
Developer Experience no Nubank
 

Destaque

Entendendo Xamarin.Forms V2
Entendendo Xamarin.Forms V2Entendendo Xamarin.Forms V2
Entendendo Xamarin.Forms V2Letticia Nicoli
 
Desenvolvimento Cross-Mobile com Xamarin
Desenvolvimento Cross-Mobile com Xamarin Desenvolvimento Cross-Mobile com Xamarin
Desenvolvimento Cross-Mobile com Xamarin Letticia Nicoli
 
Entendendo Xamarin.Forms
Entendendo Xamarin.FormsEntendendo Xamarin.Forms
Entendendo Xamarin.FormsLetticia Nicoli
 
Instrumentação Completa para sua Aplicação Mobile com Visual Studio Mobile Ce...
Instrumentação Completa para sua Aplicação Mobile com Visual Studio Mobile Ce...Instrumentação Completa para sua Aplicação Mobile com Visual Studio Mobile Ce...
Instrumentação Completa para sua Aplicação Mobile com Visual Studio Mobile Ce...Letticia Nicoli
 
Desenvolvimento Mobile: Híbrido x Nativo
Desenvolvimento Mobile: Híbrido x NativoDesenvolvimento Mobile: Híbrido x Nativo
Desenvolvimento Mobile: Híbrido x NativoLetticia Nicoli
 

Destaque (8)

Entendendo Xamarin.Forms V2
Entendendo Xamarin.Forms V2Entendendo Xamarin.Forms V2
Entendendo Xamarin.Forms V2
 
C# 7 em 7 minutos
C# 7 em 7 minutosC# 7 em 7 minutos
C# 7 em 7 minutos
 
Desenvolvimento Cross-Mobile com Xamarin
Desenvolvimento Cross-Mobile com Xamarin Desenvolvimento Cross-Mobile com Xamarin
Desenvolvimento Cross-Mobile com Xamarin
 
Apresentação arquitetura mvc
Apresentação arquitetura mvcApresentação arquitetura mvc
Apresentação arquitetura mvc
 
Entendendo Xamarin.Forms
Entendendo Xamarin.FormsEntendendo Xamarin.Forms
Entendendo Xamarin.Forms
 
Instrumentação Completa para sua Aplicação Mobile com Visual Studio Mobile Ce...
Instrumentação Completa para sua Aplicação Mobile com Visual Studio Mobile Ce...Instrumentação Completa para sua Aplicação Mobile com Visual Studio Mobile Ce...
Instrumentação Completa para sua Aplicação Mobile com Visual Studio Mobile Ce...
 
Desenvolvimento Mobile: Híbrido x Nativo
Desenvolvimento Mobile: Híbrido x NativoDesenvolvimento Mobile: Híbrido x Nativo
Desenvolvimento Mobile: Híbrido x Nativo
 
Apache Cordova
Apache CordovaApache Cordova
Apache Cordova
 

Semelhante a Testes com xUnit: Uma introdução concisa

Automação de Testes: Ferramentas e Aplicação com Integração Contínua
Automação de Testes: Ferramentas e Aplicação com Integração ContínuaAutomação de Testes: Ferramentas e Aplicação com Integração Contínua
Automação de Testes: Ferramentas e Aplicação com Integração ContínuaGabriela Patuci
 
Testes de software(feed_back)
Testes de software(feed_back)Testes de software(feed_back)
Testes de software(feed_back)Ramon Tanoeiro
 
Keynote Visual Studio Summit 2016
Keynote Visual Studio Summit 2016Keynote Visual Studio Summit 2016
Keynote Visual Studio Summit 2016Ramon Durães
 
Criando microsserviços em PHP
Criando microsserviços em PHPCriando microsserviços em PHP
Criando microsserviços em PHPFlávio Lisboa
 
Desenvolvimento de software: Mundo ideal x Mundo real
Desenvolvimento de software: Mundo ideal x Mundo realDesenvolvimento de software: Mundo ideal x Mundo real
Desenvolvimento de software: Mundo ideal x Mundo realHenrique Schmidt
 
Desenvolvimento de software mundo ideal x mundo real
Desenvolvimento de software  mundo ideal x mundo realDesenvolvimento de software  mundo ideal x mundo real
Desenvolvimento de software mundo ideal x mundo realWilly Salazar
 
Integração Contínua
Integração ContínuaIntegração Contínua
Integração ContínuaScrumHalf Tool
 
Ideais Cowabunga - Headless Testing com GhostDriver
Ideais Cowabunga - Headless Testing com GhostDriverIdeais Cowabunga - Headless Testing com GhostDriver
Ideais Cowabunga - Headless Testing com GhostDriverStefan Teixeira
 
Cloud Computing e Integração Contínua com o Windows Azure
Cloud Computing e Integração Contínua com o Windows AzureCloud Computing e Integração Contínua com o Windows Azure
Cloud Computing e Integração Contínua com o Windows AzureGrupo de Testes Carioca
 
Como aumentar a produtividade da sua equipe
Como aumentar a produtividade da sua equipeComo aumentar a produtividade da sua equipe
Como aumentar a produtividade da sua equipeWende Mendes
 
Testes automatizados.pptx
Testes automatizados.pptxTestes automatizados.pptx
Testes automatizados.pptxCarlos Gonzaga
 
RedGate .NET Reflector
RedGate .NET ReflectorRedGate .NET Reflector
RedGate .NET ReflectorNuno Gomes
 
Implantação de Ambiente de Integração contínua para projeto que usa Java e C
Implantação de Ambiente de Integração contínua para  projeto que usa Java e CImplantação de Ambiente de Integração contínua para  projeto que usa Java e C
Implantação de Ambiente de Integração contínua para projeto que usa Java e CEliane Collins
 
DEV-OPS para teste de software
DEV-OPS para teste de softwareDEV-OPS para teste de software
DEV-OPS para teste de softwareQualister
 
Tdd em django sem desculpas versao final
Tdd em django sem desculpas versao finalTdd em django sem desculpas versao final
Tdd em django sem desculpas versao finalAdriano Petrich
 
Integracao Continua em projetos .NET
Integracao Continua em projetos .NETIntegracao Continua em projetos .NET
Integracao Continua em projetos .NETLuthiano Vasconcelos
 
Utilizando ferramentas de análise, testes e verificação de bugs no desenvolvi...
Utilizando ferramentas de análise, testes e verificação de bugs no desenvolvi...Utilizando ferramentas de análise, testes e verificação de bugs no desenvolvi...
Utilizando ferramentas de análise, testes e verificação de bugs no desenvolvi...Douglas Leandro Kleinkauf
 

Semelhante a Testes com xUnit: Uma introdução concisa (20)

Automação de Testes: Ferramentas e Aplicação com Integração Contínua
Automação de Testes: Ferramentas e Aplicação com Integração ContínuaAutomação de Testes: Ferramentas e Aplicação com Integração Contínua
Automação de Testes: Ferramentas e Aplicação com Integração Contínua
 
Testes de software(feed_back)
Testes de software(feed_back)Testes de software(feed_back)
Testes de software(feed_back)
 
Robotium_Sikuli
Robotium_SikuliRobotium_Sikuli
Robotium_Sikuli
 
Keynote Visual Studio Summit 2016
Keynote Visual Studio Summit 2016Keynote Visual Studio Summit 2016
Keynote Visual Studio Summit 2016
 
Criando microsserviços em PHP
Criando microsserviços em PHPCriando microsserviços em PHP
Criando microsserviços em PHP
 
Desenvolvimento de software: Mundo ideal x Mundo real
Desenvolvimento de software: Mundo ideal x Mundo realDesenvolvimento de software: Mundo ideal x Mundo real
Desenvolvimento de software: Mundo ideal x Mundo real
 
Desenvolvimento de software mundo ideal x mundo real
Desenvolvimento de software  mundo ideal x mundo realDesenvolvimento de software  mundo ideal x mundo real
Desenvolvimento de software mundo ideal x mundo real
 
Integração Contínua
Integração ContínuaIntegração Contínua
Integração Contínua
 
Ideais Cowabunga - Headless Testing com GhostDriver
Ideais Cowabunga - Headless Testing com GhostDriverIdeais Cowabunga - Headless Testing com GhostDriver
Ideais Cowabunga - Headless Testing com GhostDriver
 
Lm 71 64_67_04_tut_openaudit
Lm 71 64_67_04_tut_openauditLm 71 64_67_04_tut_openaudit
Lm 71 64_67_04_tut_openaudit
 
Cloud Computing e Integração Contínua com o Windows Azure
Cloud Computing e Integração Contínua com o Windows AzureCloud Computing e Integração Contínua com o Windows Azure
Cloud Computing e Integração Contínua com o Windows Azure
 
Como aumentar a produtividade da sua equipe
Como aumentar a produtividade da sua equipeComo aumentar a produtividade da sua equipe
Como aumentar a produtividade da sua equipe
 
Testes automatizados.pptx
Testes automatizados.pptxTestes automatizados.pptx
Testes automatizados.pptx
 
Cultura de testes em times mobile
Cultura de testes em times mobileCultura de testes em times mobile
Cultura de testes em times mobile
 
RedGate .NET Reflector
RedGate .NET ReflectorRedGate .NET Reflector
RedGate .NET Reflector
 
Implantação de Ambiente de Integração contínua para projeto que usa Java e C
Implantação de Ambiente de Integração contínua para  projeto que usa Java e CImplantação de Ambiente de Integração contínua para  projeto que usa Java e C
Implantação de Ambiente de Integração contínua para projeto que usa Java e C
 
DEV-OPS para teste de software
DEV-OPS para teste de softwareDEV-OPS para teste de software
DEV-OPS para teste de software
 
Tdd em django sem desculpas versao final
Tdd em django sem desculpas versao finalTdd em django sem desculpas versao final
Tdd em django sem desculpas versao final
 
Integracao Continua em projetos .NET
Integracao Continua em projetos .NETIntegracao Continua em projetos .NET
Integracao Continua em projetos .NET
 
Utilizando ferramentas de análise, testes e verificação de bugs no desenvolvi...
Utilizando ferramentas de análise, testes e verificação de bugs no desenvolvi...Utilizando ferramentas de análise, testes e verificação de bugs no desenvolvi...
Utilizando ferramentas de análise, testes e verificação de bugs no desenvolvi...
 

Mais de Letticia Nicoli

Generalização prematura e complexidade acidental, a raiz do mal de todo sof...
Generalização prematura e complexidade acidental, a raiz do mal de todo sof...Generalização prematura e complexidade acidental, a raiz do mal de todo sof...
Generalização prematura e complexidade acidental, a raiz do mal de todo sof...Letticia Nicoli
 
Machine Learning para devs com ML.NET
Machine Learning para devs com ML.NETMachine Learning para devs com ML.NET
Machine Learning para devs com ML.NETLetticia Nicoli
 
Mobile DevOps: O caminho do sucesso para desenvolvimento de aplicativos.
Mobile DevOps: O caminho do sucesso para desenvolvimento de aplicativos.Mobile DevOps: O caminho do sucesso para desenvolvimento de aplicativos.
Mobile DevOps: O caminho do sucesso para desenvolvimento de aplicativos.Letticia Nicoli
 
Machine Learning para devs com ML.NET
Machine Learning para devs com ML.NETMachine Learning para devs com ML.NET
Machine Learning para devs com ML.NETLetticia Nicoli
 
Xamarin + App Center + Azure DevOps = 
Xamarin + App Center + Azure DevOps = Xamarin + App Center + Azure DevOps = 
Xamarin + App Center + Azure DevOps = Letticia Nicoli
 
Desenvolvimento Cross-mobile com Xamarin, por onde começar?
Desenvolvimento Cross-mobile com Xamarin, por onde começar?Desenvolvimento Cross-mobile com Xamarin, por onde começar?
Desenvolvimento Cross-mobile com Xamarin, por onde começar?Letticia Nicoli
 
Mobile DevOps: O caminho do sucesso para desenvolvimento de aplicativos
Mobile DevOps: O caminho do sucesso para desenvolvimento de aplicativos Mobile DevOps: O caminho do sucesso para desenvolvimento de aplicativos
Mobile DevOps: O caminho do sucesso para desenvolvimento de aplicativos Letticia Nicoli
 
Generalização prematura e complexidade acidental, a raiz do mal de todo software
Generalização prematura e complexidade acidental, a raiz do mal de todo softwareGeneralização prematura e complexidade acidental, a raiz do mal de todo software
Generalização prematura e complexidade acidental, a raiz do mal de todo softwareLetticia Nicoli
 
Visual Studio App Center - Continuous Everything
Visual Studio App Center - Continuous Everything Visual Studio App Center - Continuous Everything
Visual Studio App Center - Continuous Everything Letticia Nicoli
 
Write beautiful code, faster
Write beautiful code, fasterWrite beautiful code, faster
Write beautiful code, fasterLetticia Nicoli
 
Como Mobile DevOps me ajudou no sucesso de desenvolvimento de aplicativos.
Como Mobile DevOps me ajudouno sucesso de desenvolvimento de aplicativos.Como Mobile DevOps me ajudouno sucesso de desenvolvimento de aplicativos.
Como Mobile DevOps me ajudou no sucesso de desenvolvimento de aplicativos.Letticia Nicoli
 
Precisamos falar sobre Visual Studio App Center
Precisamos falar sobre Visual Studio App CenterPrecisamos falar sobre Visual Studio App Center
Precisamos falar sobre Visual Studio App CenterLetticia Nicoli
 
Dicas e Truques para aumentar sua produtividade no Visual Studio
Dicas e Truques para aumentar sua produtividade no Visual StudioDicas e Truques para aumentar sua produtividade no Visual Studio
Dicas e Truques para aumentar sua produtividade no Visual StudioLetticia Nicoli
 
DevOps aplicado a Mobile: Challenge Accepted
DevOps aplicado a Mobile: Challenge AcceptedDevOps aplicado a Mobile: Challenge Accepted
DevOps aplicado a Mobile: Challenge AcceptedLetticia Nicoli
 
Desenvolvimento Cross Mobile com Xamarin, por onde começar?
Desenvolvimento Cross Mobile com Xamarin, por onde começar?Desenvolvimento Cross Mobile com Xamarin, por onde começar?
Desenvolvimento Cross Mobile com Xamarin, por onde começar?Letticia Nicoli
 
Mobile DevOps: O caminho do sucesso para desenvolvimento de aplicativos
Mobile DevOps: O caminho do sucesso para desenvolvimento de aplicativosMobile DevOps: O caminho do sucesso para desenvolvimento de aplicativos
Mobile DevOps: O caminho do sucesso para desenvolvimento de aplicativosLetticia Nicoli
 
Últimas atualizações de produtividade no Visual Studio 2017​
Últimas atualizações de produtividade no Visual Studio 2017​Últimas atualizações de produtividade no Visual Studio 2017​
Últimas atualizações de produtividade no Visual Studio 2017​Letticia Nicoli
 
Xamarin.Forms: Você já ouviu falar?
Xamarin.Forms: Você já ouviu falar?Xamarin.Forms: Você já ouviu falar?
Xamarin.Forms: Você já ouviu falar?Letticia Nicoli
 
Conheça Visual Studio IntelliCode e Visual Studio Live Share
Conheça Visual Studio IntelliCode e Visual Studio Live ShareConheça Visual Studio IntelliCode e Visual Studio Live Share
Conheça Visual Studio IntelliCode e Visual Studio Live ShareLetticia Nicoli
 

Mais de Letticia Nicoli (20)

Generalização prematura e complexidade acidental, a raiz do mal de todo sof...
Generalização prematura e complexidade acidental, a raiz do mal de todo sof...Generalização prematura e complexidade acidental, a raiz do mal de todo sof...
Generalização prematura e complexidade acidental, a raiz do mal de todo sof...
 
Machine Learning para devs com ML.NET
Machine Learning para devs com ML.NETMachine Learning para devs com ML.NET
Machine Learning para devs com ML.NET
 
O futuro do .NET
O futuro do .NETO futuro do .NET
O futuro do .NET
 
Mobile DevOps: O caminho do sucesso para desenvolvimento de aplicativos.
Mobile DevOps: O caminho do sucesso para desenvolvimento de aplicativos.Mobile DevOps: O caminho do sucesso para desenvolvimento de aplicativos.
Mobile DevOps: O caminho do sucesso para desenvolvimento de aplicativos.
 
Machine Learning para devs com ML.NET
Machine Learning para devs com ML.NETMachine Learning para devs com ML.NET
Machine Learning para devs com ML.NET
 
Xamarin + App Center + Azure DevOps = 
Xamarin + App Center + Azure DevOps = Xamarin + App Center + Azure DevOps = 
Xamarin + App Center + Azure DevOps = 
 
Desenvolvimento Cross-mobile com Xamarin, por onde começar?
Desenvolvimento Cross-mobile com Xamarin, por onde começar?Desenvolvimento Cross-mobile com Xamarin, por onde começar?
Desenvolvimento Cross-mobile com Xamarin, por onde começar?
 
Mobile DevOps: O caminho do sucesso para desenvolvimento de aplicativos
Mobile DevOps: O caminho do sucesso para desenvolvimento de aplicativos Mobile DevOps: O caminho do sucesso para desenvolvimento de aplicativos
Mobile DevOps: O caminho do sucesso para desenvolvimento de aplicativos
 
Generalização prematura e complexidade acidental, a raiz do mal de todo software
Generalização prematura e complexidade acidental, a raiz do mal de todo softwareGeneralização prematura e complexidade acidental, a raiz do mal de todo software
Generalização prematura e complexidade acidental, a raiz do mal de todo software
 
Visual Studio App Center - Continuous Everything
Visual Studio App Center - Continuous Everything Visual Studio App Center - Continuous Everything
Visual Studio App Center - Continuous Everything
 
Write beautiful code, faster
Write beautiful code, fasterWrite beautiful code, faster
Write beautiful code, faster
 
Como Mobile DevOps me ajudou no sucesso de desenvolvimento de aplicativos.
Como Mobile DevOps me ajudouno sucesso de desenvolvimento de aplicativos.Como Mobile DevOps me ajudouno sucesso de desenvolvimento de aplicativos.
Como Mobile DevOps me ajudou no sucesso de desenvolvimento de aplicativos.
 
Precisamos falar sobre Visual Studio App Center
Precisamos falar sobre Visual Studio App CenterPrecisamos falar sobre Visual Studio App Center
Precisamos falar sobre Visual Studio App Center
 
Dicas e Truques para aumentar sua produtividade no Visual Studio
Dicas e Truques para aumentar sua produtividade no Visual StudioDicas e Truques para aumentar sua produtividade no Visual Studio
Dicas e Truques para aumentar sua produtividade no Visual Studio
 
DevOps aplicado a Mobile: Challenge Accepted
DevOps aplicado a Mobile: Challenge AcceptedDevOps aplicado a Mobile: Challenge Accepted
DevOps aplicado a Mobile: Challenge Accepted
 
Desenvolvimento Cross Mobile com Xamarin, por onde começar?
Desenvolvimento Cross Mobile com Xamarin, por onde começar?Desenvolvimento Cross Mobile com Xamarin, por onde começar?
Desenvolvimento Cross Mobile com Xamarin, por onde começar?
 
Mobile DevOps: O caminho do sucesso para desenvolvimento de aplicativos
Mobile DevOps: O caminho do sucesso para desenvolvimento de aplicativosMobile DevOps: O caminho do sucesso para desenvolvimento de aplicativos
Mobile DevOps: O caminho do sucesso para desenvolvimento de aplicativos
 
Últimas atualizações de produtividade no Visual Studio 2017​
Últimas atualizações de produtividade no Visual Studio 2017​Últimas atualizações de produtividade no Visual Studio 2017​
Últimas atualizações de produtividade no Visual Studio 2017​
 
Xamarin.Forms: Você já ouviu falar?
Xamarin.Forms: Você já ouviu falar?Xamarin.Forms: Você já ouviu falar?
Xamarin.Forms: Você já ouviu falar?
 
Conheça Visual Studio IntelliCode e Visual Studio Live Share
Conheça Visual Studio IntelliCode e Visual Studio Live ShareConheça Visual Studio IntelliCode e Visual Studio Live Share
Conheça Visual Studio IntelliCode e Visual Studio Live Share
 

Testes com xUnit: Uma introdução concisa

  • 2. Letticia Nicoli ● Desenvolvedora na Lambda3 ● letticia.nicoli@gmail.com ● @LetticiaNicoli Quem somos Paula Santos ● Desenvolvedora na Cubo Tecnologia ● paulacs21@hotmail.com ● https://www.linkedin.com/in/pcrissantos/
  • 3. MAIS SÉRIO DO QUE PARECE ...
  • 4. Autodestruição ativada O primeiro lançamento do foguete Ariane 5 falhou 37 segundos após sair do solo causando sua destruição. Motivo: mau funcionamento no software de controle. O valor de ponto flutuante era muito grande para ser representado por um inteiro de 16 bits. Fonte: en.wikipedia.org/wiki/Ariane_5
  • 5. Pareceu malware, mas não era Em 2009, foi adicionada uma barra invertida em todas as URLs que eram direcionadas para o buscador da empresa. Resultado: o site foi sinalizado como malware no mundo todo por cerca de 1 hora Gerou prejuízo total de quase US$ 3 milhões
  • 6. ➔ Tempo ➔ Planejamento ➔ Hábito ➔ Trabalhoso ➔ Conflito com a área de negócios Por que deixamos os testes para depois/nunca ?
  • 7. ➔ Retrabalho ➔ Virar a noite codando ➔ Alterar código antes da review ➔ Encontrar bug minutos antes do deploy ➔ Cobrir apenas o happy path Impactos
  • 9. Tipos de Testes ➔ Funcional Tem o objetivo de validar as funcionalidades descritas na documentação. ➔ Interface Testa se objetos de tela e a navegabilidade funcionam conforme o especificado. ➔ Regressão Ocorre quando é feita alguma alteração na aplicação, por exemplo, uma nova funcionalidade. Neste caso a recomendação é executar todos os testes novamente. Existem diversos tipos de testes de software. Os mais comuns são:
  • 11. Testes Unitários ➔ Testar a menor unidade de código possível, podendo ser uma classe ou um método. ➔ Mostrar que cada unidade atende corretamente sua especificação.
  • 12. Testes Unitários ➔ A implementação é de responsabilidade do desenvolvedor, por se tratar de um teste com foco direto no código. ➔ Devem ser formulados para garantir que todos os pontos do fluxo a ser testado sejam verificados ao menos uma vez durante o teste.
  • 13. Frameworks Existem hoje no mercado vários frameworks de teste para a plataforma .NET. Podemos citar alguns: ➔ MsTest: É a biblioteca de testes padrão do .NET integrada ao Visual Studio. ➔ NUnit: Projeto open source derivado do JUnit, que é um framework de testes para Java. ➔ xUnit.net: É biblioteca de testes também open source que surgiu como uma evolução do NUnit para testar linguagens da plataforma .NET (C#, VB.NET, F# e outras).
  • 14.
  • 15. Programação Orientada a Testes TDD (Test-Driven Development) ➔ Escreva testes antes mesmo de escrever o código de produção ➔ Assegurar que boa parte do seu sistema tenha um teste que garanta o seu funcionamento
  • 16. Como funciona? ➔ Escreva um teste que falha, faça-o passar da maneira mais simples possível e, por fim, refatore o código. ➔ Esse ciclo é conhecido como Ciclo Vermelho-Verde-Refatora.
  • 17. O que eu ganho? ➔ Agilidade nos testes automatizados (mais rápido que testes manuais); ➔ Menor quantidade de bugs; ➔ Redução de custos com manutenção; ➔ Segurança ao desenvolvedor na hora de mudanças; ➔ Auxilia na documentação do sistema, pois o teste indica qual deve ser o comportamento esperado para a unidade a ser testada; ➔ Código de produção de qualidade; Se está difícil escrever um teste automatizado, é porque provavelmente o código de produção está complicado !
  • 20. NÃO É UMA COMPETIÇÃO ! EXPERIMENTAR e TESTAR TODOS PARTICIPAM
  • 21. Piloto e Co-Piloto Todos podem participar 5 minutos Randori Kata
  • 22. PLATÉIA FICA EM SILÊNCIO ENQUANTO ALGUM DOS TESTES NÃO ESTIVER PASSANDO
  • 24. Desafio Ano Bissexto Um ano é bissexto se ele for divisível por 400 ou se ele for divisível por 4 e não por 100. Exemplos de anos Bissexto: 1980, 1984, 1988, 1992, 1996 e 2000.
  • 26. Referências ➔ http://testesdesoftware.com/tipos-de-teste-de-software/ ➔ http://bit.ly/TesteUnitarioTesteIntegrado ➔ http://bit.ly/TestesUnitarios-xUnit ➔ http://bit.ly/TestesUnitarios ➔ http://www.codeatest.com/testes-unitarios-porque-escrever/