SlideShare uma empresa Scribd logo
1 de 47
w w w. l a m b d a 3 . c o m . b r
Testes de A a Z
Wennder dos Santos
Software developer | ALM Consultant
http://wenndersantos.net
“There is no place like production”
Corrigindo bug em produção
É possível automatizar testes para tudo
• Aplicação
• Banco de dados
• Infraestrutura
• etc.
O que programadores fazem?
Automatizam o trabalho das pessoas e
empresas.
Por que não automatizar nosso próprio
trabalho?
Você testa o software que está
produzindo?
Você testa o software que está
entregando?
Você testa o software que foi entregue?
Se você respondeu não para alguma
das perguntas – por que não?
Algumas respostam costumam ser:
• Tempo
• Custo
• Conhecimento
• Dificuldade
• Vontade
Por quais razões testamos (ou
deveríamos)?
Qualidade
Por quais razões testamos (ou
deveríamos)?
Segurança / Confiança
Por quais razões testamos (ou
deveríamos)?
Competitividade
Por quais razões testamos (ou
deveríamos)?
Feedback
Quais os próximos passos para dominar
a arte de testar?
Primeiro
Escrever o primeiro teste
Segundo
Escrever o segundo teste
Terceiro
Não pare, continue escrevendo testes.
Pesquise por todos os tipos de testes que você possa
automatizar.
Alguns tipos de testes
• Unidade
• Integração
• Aceitação
• Smoke
• Regressão
Testes de unidade
Testam unidades individuais de código
Testes de integração
Testam integração de várias partes de um (ou mais)
sistemas
Testes de aceitação
Testam a implementação de casos de uso
Teste de fumaça (smoke tests)
Testam de maneira simples se seu sistema está funcionando
após um deploy
Testes de (não) regressão
Testam se um comportamento não esperado vai voltar a
acontecer
Agora que já conheço e escrevo testes,
nunca mais teremos bugs
Testes não encontram bugs.
Calma, não desanime
Seus bugs impeditivos sumirão.
Ou, pelo menos, diminuirão drasticamente.
Vamos lá, para aquelas pessoas que
desanimaram
O que acontece quando a gente não escreve testes?
Bugs impeditivos aparecem em produção.
Vamos lá, para aquelas pessoas que
desanimaram
E o que acontece quando bugs impeditivos aparecem em
produção?
Cada vez que acontece, uma nova ”parede” entre
desenvolvimento de produção aparece.
Vamos lá, para aquelas pessoas que
desanimaram
O que isso causa?
Deploy em produção demora para acontecer.
Vamos lá, para aquelas pessoas que
desanimaram
O que isso causa?
Devido a ”distância” entre a última alteração em produção e última em
desenvolvimento, possívelmente problemas com versionamento do
código.
Vamos lá, para aquelas pessoas que
desanimaram
O que isso causa?
Bugs impeditivos em produção.
Perceberam que virou uma bola de
neve?ESCREVAM TESTES
Vou testar só a parte que foi alterada
MAS, FOI SÓ UM IF NA PÁGINA DE
CADASTRO, PORQUE RAIOS O LOGIN
NÃO ESTÁ FUNCIONANDO?
Alguns exemplos, de projetos passados,
em imagens
Alguns exemplos em um pequeno
live code
Links úteis
• Teste e Design no Mundo Real com .NET
• Test Driven Development: By Example
• Growing Object-Oriented Software, Guided by
Tests
• The Art of Unit Testing: With Examples in C#
w w w. l a m b d a 3 . c o m . b r
Av. Angélica, 2318, Cj. 11 | Consolação - São Paulo - SP
11 2386.1886 | contato@lambda3.com.br

Mais conteúdo relacionado

Mais procurados

Testes de software
Testes de softwareTestes de software
Testes de softwareVitor Castro
 
Palestra eu testo voce testa ninguem testa- TDC2012 - Goiânia
Palestra   eu testo voce testa ninguem testa- TDC2012 - GoiâniaPalestra   eu testo voce testa ninguem testa- TDC2012 - Goiânia
Palestra eu testo voce testa ninguem testa- TDC2012 - GoiâniaAlan Jose
 
O mínimo de Integração Contínua que todo projeto deveria ter
O mínimo de Integração Contínua que todo projeto deveria terO mínimo de Integração Contínua que todo projeto deveria ter
O mínimo de Integração Contínua que todo projeto deveria terÁtilla Silva Barros
 
TDD com LEGO #PHPExperience2016
TDD com LEGO #PHPExperience2016TDD com LEGO #PHPExperience2016
TDD com LEGO #PHPExperience2016Simone Pittner
 
Testes Unitários: Começando a escrever testes no seu dia-a-dia
Testes Unitários: Começando a escrever testes no seu dia-a-diaTestes Unitários: Começando a escrever testes no seu dia-a-dia
Testes Unitários: Começando a escrever testes no seu dia-a-diaAlex Tercete
 
Testando na Gringa - Se preparando para uma entrevista técnica para uma vaga ...
Testando na Gringa - Se preparando para uma entrevista técnica para uma vaga ...Testando na Gringa - Se preparando para uma entrevista técnica para uma vaga ...
Testando na Gringa - Se preparando para uma entrevista técnica para uma vaga ...Walmyr Lima e Silva Filho
 
Testes de software automatizados
Testes de software automatizadosTestes de software automatizados
Testes de software automatizadosMarcelo Andrade
 
Agile Testing - entregando valor do início a fim
Agile Testing - entregando valor do início a fimAgile Testing - entregando valor do início a fim
Agile Testing - entregando valor do início a fimElias Nogueira
 
Verdades e mitos sobre testes que eu gostaria
Verdades e mitos sobre testes que eu gostariaVerdades e mitos sobre testes que eu gostaria
Verdades e mitos sobre testes que eu gostariaLivia Gabos
 
Os Benefícios dos testes no desenvolvimento de software
Os Benefícios dos testes no desenvolvimento de softwareOs Benefícios dos testes no desenvolvimento de software
Os Benefícios dos testes no desenvolvimento de softwareDextra Sistemas / Etec Itu
 
Test Driven Development (TDD) para seres humanos.
Test Driven Development (TDD) para seres humanos.Test Driven Development (TDD) para seres humanos.
Test Driven Development (TDD) para seres humanos.Rômulo Augusto Santos
 
Meetup SP - O QA & a Especificação Por Exemplo
Meetup SP - O QA & a Especificação Por ExemploMeetup SP - O QA & a Especificação Por Exemplo
Meetup SP - O QA & a Especificação Por ExemploSamanta Cicilia
 
Medindo a performance de aplicações web com JMeter
Medindo a performance de aplicações web com JMeterMedindo a performance de aplicações web com JMeter
Medindo a performance de aplicações web com JMeterJúlio de Lima
 
TOTVS - Agile Testing e a Importância de se ter Estratégia de Testes
TOTVS - Agile Testing e a Importância de se ter Estratégia de TestesTOTVS - Agile Testing e a Importância de se ter Estratégia de Testes
TOTVS - Agile Testing e a Importância de se ter Estratégia de TestesSamanta Cicilia
 

Mais procurados (20)

Testes de software
Testes de softwareTestes de software
Testes de software
 
Palestra eu testo voce testa ninguem testa- TDC2012 - Goiânia
Palestra   eu testo voce testa ninguem testa- TDC2012 - GoiâniaPalestra   eu testo voce testa ninguem testa- TDC2012 - Goiânia
Palestra eu testo voce testa ninguem testa- TDC2012 - Goiânia
 
Introdução ao XP
Introdução ao XPIntrodução ao XP
Introdução ao XP
 
O mínimo de Integração Contínua que todo projeto deveria ter
O mínimo de Integração Contínua que todo projeto deveria terO mínimo de Integração Contínua que todo projeto deveria ter
O mínimo de Integração Contínua que todo projeto deveria ter
 
TDD
TDDTDD
TDD
 
Testes unitários e Mocks
Testes unitários e MocksTestes unitários e Mocks
Testes unitários e Mocks
 
TDD com LEGO #PHPExperience2016
TDD com LEGO #PHPExperience2016TDD com LEGO #PHPExperience2016
TDD com LEGO #PHPExperience2016
 
Testes Unitários: Começando a escrever testes no seu dia-a-dia
Testes Unitários: Começando a escrever testes no seu dia-a-diaTestes Unitários: Começando a escrever testes no seu dia-a-dia
Testes Unitários: Começando a escrever testes no seu dia-a-dia
 
Testando na Gringa - Se preparando para uma entrevista técnica para uma vaga ...
Testando na Gringa - Se preparando para uma entrevista técnica para uma vaga ...Testando na Gringa - Se preparando para uma entrevista técnica para uma vaga ...
Testando na Gringa - Se preparando para uma entrevista técnica para uma vaga ...
 
Testes de software automatizados
Testes de software automatizadosTestes de software automatizados
Testes de software automatizados
 
Teste de Software
Teste de SoftwareTeste de Software
Teste de Software
 
BDD em Ação
BDD em AçãoBDD em Ação
BDD em Ação
 
Agile Testing - entregando valor do início a fim
Agile Testing - entregando valor do início a fimAgile Testing - entregando valor do início a fim
Agile Testing - entregando valor do início a fim
 
Verdades e mitos sobre testes que eu gostaria
Verdades e mitos sobre testes que eu gostariaVerdades e mitos sobre testes que eu gostaria
Verdades e mitos sobre testes que eu gostaria
 
Os Benefícios dos testes no desenvolvimento de software
Os Benefícios dos testes no desenvolvimento de softwareOs Benefícios dos testes no desenvolvimento de software
Os Benefícios dos testes no desenvolvimento de software
 
Test Driven Development (TDD) para seres humanos.
Test Driven Development (TDD) para seres humanos.Test Driven Development (TDD) para seres humanos.
Test Driven Development (TDD) para seres humanos.
 
Meetup SP - O QA & a Especificação Por Exemplo
Meetup SP - O QA & a Especificação Por ExemploMeetup SP - O QA & a Especificação Por Exemplo
Meetup SP - O QA & a Especificação Por Exemplo
 
Medindo a performance de aplicações web com JMeter
Medindo a performance de aplicações web com JMeterMedindo a performance de aplicações web com JMeter
Medindo a performance de aplicações web com JMeter
 
TOTVS - Agile Testing e a Importância de se ter Estratégia de Testes
TOTVS - Agile Testing e a Importância de se ter Estratégia de TestesTOTVS - Agile Testing e a Importância de se ter Estratégia de Testes
TOTVS - Agile Testing e a Importância de se ter Estratégia de Testes
 
O teste atualmente
O teste atualmenteO teste atualmente
O teste atualmente
 

Semelhante a Automatizar testes para garantir qualidade e segurança do software

Falando sobre testes automatizados
Falando sobre testes automatizadosFalando sobre testes automatizados
Falando sobre testes automatizadosBreno Oliveira
 
Ágil na Prática
Ágil na PráticaÁgil na Prática
Ágil na PráticaIgo Coelho
 
Qualidade de software com Visual Studio ALM
Qualidade de software com Visual Studio ALMQualidade de software com Visual Studio ALM
Qualidade de software com Visual Studio ALMAdriano Bertucci
 
XP - Extreme Programming
XP - Extreme ProgrammingXP - Extreme Programming
XP - Extreme ProgrammingRodrigo Branas
 
Lightning talk Test-Driven Development - TDD
Lightning talk Test-Driven Development - TDDLightning talk Test-Driven Development - TDD
Lightning talk Test-Driven Development - TDDWillians De Paula Pereira
 
Trabalho qualidade de software sistemas de informação
Trabalho qualidade de software   sistemas de informaçãoTrabalho qualidade de software   sistemas de informação
Trabalho qualidade de software sistemas de informaçãoFernando Gomes Chaves
 
Test-Driven Development with PHP
Test-Driven Development with PHPTest-Driven Development with PHP
Test-Driven Development with PHPCezar Souza
 
TDD para "meros mortais"
TDD para "meros mortais"TDD para "meros mortais"
TDD para "meros mortais"thiagobapt
 

Semelhante a Automatizar testes para garantir qualidade e segurança do software (20)

Palestra Testes De Unidade Com JUnit
Palestra Testes De Unidade Com JUnitPalestra Testes De Unidade Com JUnit
Palestra Testes De Unidade Com JUnit
 
Falando sobre testes automatizados
Falando sobre testes automatizadosFalando sobre testes automatizados
Falando sobre testes automatizados
 
Testes de unidade - Conhecendo e aplicando
Testes de unidade - Conhecendo e aplicandoTestes de unidade - Conhecendo e aplicando
Testes de unidade - Conhecendo e aplicando
 
Ágil na Prática
Ágil na PráticaÁgil na Prática
Ágil na Prática
 
Introdução ao Teste de Software
Introdução ao Teste de SoftwareIntrodução ao Teste de Software
Introdução ao Teste de Software
 
Qualidade de software com Visual Studio ALM
Qualidade de software com Visual Studio ALMQualidade de software com Visual Studio ALM
Qualidade de software com Visual Studio ALM
 
XP - Extreme Programming
XP - Extreme ProgrammingXP - Extreme Programming
XP - Extreme Programming
 
Lightning talk Test-Driven Development - TDD
Lightning talk Test-Driven Development - TDDLightning talk Test-Driven Development - TDD
Lightning talk Test-Driven Development - TDD
 
Qualidade e Testes de Software
Qualidade e Testes de SoftwareQualidade e Testes de Software
Qualidade e Testes de Software
 
Introdução a TDD
Introdução a TDDIntrodução a TDD
Introdução a TDD
 
Trabalho qualidade de software sistemas de informação
Trabalho qualidade de software   sistemas de informaçãoTrabalho qualidade de software   sistemas de informação
Trabalho qualidade de software sistemas de informação
 
Teste automatizados e tdd
Teste automatizados e tddTeste automatizados e tdd
Teste automatizados e tdd
 
Test-Driven Development with PHP
Test-Driven Development with PHPTest-Driven Development with PHP
Test-Driven Development with PHP
 
Clean Code
Clean CodeClean Code
Clean Code
 
TDD
TDDTDD
TDD
 
TDD para "meros mortais"
TDD para "meros mortais"TDD para "meros mortais"
TDD para "meros mortais"
 
Testes - Para que?
Testes - Para que?Testes - Para que?
Testes - Para que?
 
TesteDeSoftware_WorkshopSINFO2014.pdf
TesteDeSoftware_WorkshopSINFO2014.pdfTesteDeSoftware_WorkshopSINFO2014.pdf
TesteDeSoftware_WorkshopSINFO2014.pdf
 
Testes
TestesTestes
Testes
 
TDC 2011 Trilha de Teste
TDC 2011 Trilha de TesteTDC 2011 Trilha de Teste
TDC 2011 Trilha de Teste
 

Mais de Wennder Santos

Do desenvolvimento à store com React Native e VSTS
Do desenvolvimento à store com React Native e VSTSDo desenvolvimento à store com React Native e VSTS
Do desenvolvimento à store com React Native e VSTSWennder Santos
 
Curso: Desenvolvimento de aplicativos híbridos (dia 2)
Curso: Desenvolvimento de aplicativos híbridos (dia 2)Curso: Desenvolvimento de aplicativos híbridos (dia 2)
Curso: Desenvolvimento de aplicativos híbridos (dia 2)Wennder Santos
 
Curso: Desenvolvimento de aplicativos híbridos (dia 1)
Curso: Desenvolvimento de aplicativos híbridos (dia 1)Curso: Desenvolvimento de aplicativos híbridos (dia 1)
Curso: Desenvolvimento de aplicativos híbridos (dia 1)Wennder Santos
 
Aplicativos híbridos e Xamarin Test Cloud
Aplicativos híbridos e Xamarin Test CloudAplicativos híbridos e Xamarin Test Cloud
Aplicativos híbridos e Xamarin Test CloudWennder Santos
 
Azure Mobile Engagement
Azure Mobile EngagementAzure Mobile Engagement
Azure Mobile EngagementWennder Santos
 
Aplicativos híbridos e o Apache Cordova
Aplicativos híbridos e o Apache CordovaAplicativos híbridos e o Apache Cordova
Aplicativos híbridos e o Apache CordovaWennder Santos
 
HockeyApp: A Plataforma para seus apps
HockeyApp: A Plataforma para seus appsHockeyApp: A Plataforma para seus apps
HockeyApp: A Plataforma para seus appsWennder Santos
 
HockeyApp: A plataforma para seus apps
HockeyApp: A plataforma para seus appsHockeyApp: A plataforma para seus apps
HockeyApp: A plataforma para seus appsWennder Santos
 
Contruindo Aplicações móveis com o Cordova e o Visual Studio
Contruindo Aplicações móveis com o Cordova e o Visual StudioContruindo Aplicações móveis com o Cordova e o Visual Studio
Contruindo Aplicações móveis com o Cordova e o Visual StudioWennder Santos
 

Mais de Wennder Santos (12)

Por que Xamarin?
Por que Xamarin?Por que Xamarin?
Por que Xamarin?
 
Meetup build 2017
Meetup build 2017Meetup build 2017
Meetup build 2017
 
Do desenvolvimento à store com React Native e VSTS
Do desenvolvimento à store com React Native e VSTSDo desenvolvimento à store com React Native e VSTS
Do desenvolvimento à store com React Native e VSTS
 
Azure WebJobs
Azure WebJobsAzure WebJobs
Azure WebJobs
 
Curso: Desenvolvimento de aplicativos híbridos (dia 2)
Curso: Desenvolvimento de aplicativos híbridos (dia 2)Curso: Desenvolvimento de aplicativos híbridos (dia 2)
Curso: Desenvolvimento de aplicativos híbridos (dia 2)
 
Curso: Desenvolvimento de aplicativos híbridos (dia 1)
Curso: Desenvolvimento de aplicativos híbridos (dia 1)Curso: Desenvolvimento de aplicativos híbridos (dia 1)
Curso: Desenvolvimento de aplicativos híbridos (dia 1)
 
Aplicativos híbridos e Xamarin Test Cloud
Aplicativos híbridos e Xamarin Test CloudAplicativos híbridos e Xamarin Test Cloud
Aplicativos híbridos e Xamarin Test Cloud
 
Azure Mobile Engagement
Azure Mobile EngagementAzure Mobile Engagement
Azure Mobile Engagement
 
Aplicativos híbridos e o Apache Cordova
Aplicativos híbridos e o Apache CordovaAplicativos híbridos e o Apache Cordova
Aplicativos híbridos e o Apache Cordova
 
HockeyApp: A Plataforma para seus apps
HockeyApp: A Plataforma para seus appsHockeyApp: A Plataforma para seus apps
HockeyApp: A Plataforma para seus apps
 
HockeyApp: A plataforma para seus apps
HockeyApp: A plataforma para seus appsHockeyApp: A plataforma para seus apps
HockeyApp: A plataforma para seus apps
 
Contruindo Aplicações móveis com o Cordova e o Visual Studio
Contruindo Aplicações móveis com o Cordova e o Visual StudioContruindo Aplicações móveis com o Cordova e o Visual Studio
Contruindo Aplicações móveis com o Cordova e o Visual Studio
 

Automatizar testes para garantir qualidade e segurança do software

Notas do Editor

  1. Ok, os primeiros 5, 10, 20 testes e o setup vão sem um pouco lentos, mas como qlq coisa que estamos fazendo pela primeira. Vai chegar um momento que a pergunta q vc vai se fazer é “será que não estou escrevendo testes demais? Quando rodar o teste e aparecer um teste quebrado por causa de uma alteração e vc ver que se aquele teste não existisse algo iria para produção quebrado.. nossa  Como você mede produtividade? Quantidade de código escrito ou quantidade de features entregue sem retorno? Quantas vozes uma feature é testada manualmente em tempo de desenvolvimento? Isso sim é improdutivo
  2.   Nós estamos cansados de saber que para validar que nosso código está funcionando, é necessário testá-lo. Então, porque não testar?
  3. Todo código escrito sem teste, é um codigo legado Todo código escrito sem teste, é um possível bug
  4. Pergunte ao seu amigo não-técnico se ele já ficou irritado porque algum programa do seu dia a dia simplesmente parou de funcionar.
  5. Um colega uma vez me perguntou o que era um software bom? Eu não sabia muito o que responder e ele mesmo respondeu: um software que funciona, só isso.
  6. Vai ter bug com teste? Lógico que vai
  7. bugs não impeditivos. Bugs que te permitem corrigi-los e publicar a correção sem que o cliente ou todos os clientes sejam afetados, ao invés de fazer um rollback
  8. Gemuds, benção, time de deploy, aprovadores
  9. As pessoas ficam medo e o cliente com mais medo ainda 1 vez por ano 2 vezes por ano 1 vez por mês?
  10. merge
  11. Merges que falharam Features apagadas Bugs corrigidos que voltaram
  12. Coloquei um if na tela de cadastro Vou fazer o cadastro, se funcionar, show, estou indo embora