SlideShare uma empresa Scribd logo
1 de 18
Teste de Mutação
Gerando e eliminando mutantes
RAPHAEL A. F. CARDOSO CAFÉ COM ARQUITETURA
RAPHAEL A. F. CARDOSO
• Tecnólogo em Analise e Desenvolvimento de Sistema
• Cursando Arquitetura de Soluções em Plataforma .NET
• 20 anos como desenvolvedor e 12 anos só com .NET
• Desenvolvedor .NET da Essence IT alocado na Raízen
RAPHAEL A. F. CARDOSO
about.me/ferronicardoso
Testes
unitários
RAPHAEL A. F. CARDOSO
Cobertura de
teste
RAPHAEL A. F. CARDOSO
Quem testes os
testes?
RAPHAEL A. F. CARDOSO
Ferramentas para teste de mutação
MutPy
(python)
RAPHAEL A. F. CARDOSO
(Java)
.NET/Mono
(Java)
VISUAL MUTATOR
(.NET)
STRYKER
(.NET/JavaScript/Scala)
RAPHAEL A. F. CARDOSO
public decimal Dividir(decimal a, decimal b)
{
return a / b;
}
public decimal Dividir(decimal a, decimal b)
{
return a * b;
}
RAPHAEL A. F. CARDOSO
if(a == b && c == 10)
{
return c;
}
if(a == b || c == 10)
{
return c;
}
if(a != b || c != 10)
{
return c;
}
RAPHAEL A. F. CARDOSO
RAPHAEL A. F. CARDOSO
RAPHAEL A. F. CARDOSO
Demo 1
RAPHAEL A. F. CARDOSO
STRIKER .NET
RAPHAEL A. F. CARDOSO
Demo 2
RAPHAEL A. F. CARDOSO
RAPHAEL A. F. CARDOSO
> dotnet tool install -g dotnet-stryker
> dotnet stryker
Demo [1]
RAPHAEL A. F. CARDOSO
Fontes de Referência
 https://stryker-mutator.io
 https://github.com/icsharpcode/ILSpy
 https://github.com/dotnet/roslyn
 https://github.com/jbevain/cecil
 https://medium.com/comparethemarket/who-will-test-the-tests-
bd8c491e5205
 https://medium.com/comparethemarket/mutation-testing-in-net-an-
experiment-afc0d8ef9a44
 https://github.com/stryker-mutator/stryker-
net/blob/master/docs/Mutators.md
RAPHAEL A. F. CARDOSO
Contatos
 Site: www.raphaelcardoso.com.br
 Github: github.com/ferronicardoso
 Linkedin: linkedin.com/in/ferronicardoso
RAPHAEL A. F. CARDOSO
about.me/ferronicardoso

Mais conteúdo relacionado

Mais procurados

The Future of QA at Atlassian
The Future of QA at AtlassianThe Future of QA at Atlassian
The Future of QA at AtlassianAtlassian
 
Software Testing Basic Concepts
Software Testing Basic ConceptsSoftware Testing Basic Concepts
Software Testing Basic Conceptswesovi
 
Automação de testes funcionais com selenium webdriver
Automação de testes funcionais com selenium webdriverAutomação de testes funcionais com selenium webdriver
Automação de testes funcionais com selenium webdriverQualister
 
End-to-End Quality Approach: 14 Levels of Testing
End-to-End Quality Approach: 14 Levels of TestingEnd-to-End Quality Approach: 14 Levels of Testing
End-to-End Quality Approach: 14 Levels of TestingJosiah Renaudin
 
Workshop Agile Testing Mindset
Workshop Agile Testing MindsetWorkshop Agile Testing Mindset
Workshop Agile Testing MindsetElias Nogueira
 
DevCamp - O papel de um testador em uma equipe ágil
DevCamp - O papel de um testador em uma equipe ágilDevCamp - O papel de um testador em uma equipe ágil
DevCamp - O papel de um testador em uma equipe ágilElias Nogueira
 
Викторина для тестировщиков
Викторина для тестировщиковВикторина для тестировщиков
Викторина для тестировщиковUladzimir Kryvenka
 
BDD with SpecFlow and Selenium
BDD with SpecFlow and SeleniumBDD with SpecFlow and Selenium
BDD with SpecFlow and SeleniumLiraz Shay
 
ISTQB / ISEB Foundation Exam Practice - 5
ISTQB / ISEB Foundation Exam Practice - 5ISTQB / ISEB Foundation Exam Practice - 5
ISTQB / ISEB Foundation Exam Practice - 5Yogindernath Gupta
 
Qbq the question behind the question
Qbq   the question behind the questionQbq   the question behind the question
Qbq the question behind the questionDani
 
How To Improve Quality With Static Code Analysis
How To Improve Quality With Static Code Analysis How To Improve Quality With Static Code Analysis
How To Improve Quality With Static Code Analysis Perforce
 
Testes de Software
Testes de SoftwareTestes de Software
Testes de SoftwareCapgemini
 
Creating QA Dashboard
Creating QA DashboardCreating QA Dashboard
Creating QA DashboardPetro Porchuk
 
jacoco를 이용한 매뉴얼 테스트의 서버사이드 코드 커버리지 측정하기
jacoco를 이용한 매뉴얼 테스트의 서버사이드 코드 커버리지 측정하기jacoco를 이용한 매뉴얼 테스트의 서버사이드 코드 커버리지 측정하기
jacoco를 이용한 매뉴얼 테스트의 서버사이드 코드 커버리지 측정하기SangIn Choung
 
Karate - powerful and simple framework for REST API automation testing
Karate - powerful and simple framework for REST API automation testingKarate - powerful and simple framework for REST API automation testing
Karate - powerful and simple framework for REST API automation testingRoman Liubun
 

Mais procurados (20)

Verification & Validation
Verification & ValidationVerification & Validation
Verification & Validation
 
The Future of QA at Atlassian
The Future of QA at AtlassianThe Future of QA at Atlassian
The Future of QA at Atlassian
 
Software Testing Basic Concepts
Software Testing Basic ConceptsSoftware Testing Basic Concepts
Software Testing Basic Concepts
 
Automação de testes funcionais com selenium webdriver
Automação de testes funcionais com selenium webdriverAutomação de testes funcionais com selenium webdriver
Automação de testes funcionais com selenium webdriver
 
End-to-End Quality Approach: 14 Levels of Testing
End-to-End Quality Approach: 14 Levels of TestingEnd-to-End Quality Approach: 14 Levels of Testing
End-to-End Quality Approach: 14 Levels of Testing
 
Workshop Agile Testing Mindset
Workshop Agile Testing MindsetWorkshop Agile Testing Mindset
Workshop Agile Testing Mindset
 
DevCamp - O papel de um testador em uma equipe ágil
DevCamp - O papel de um testador em uma equipe ágilDevCamp - O papel de um testador em uma equipe ágil
DevCamp - O papel de um testador em uma equipe ágil
 
Викторина для тестировщиков
Викторина для тестировщиковВикторина для тестировщиков
Викторина для тестировщиков
 
BDD with SpecFlow and Selenium
BDD with SpecFlow and SeleniumBDD with SpecFlow and Selenium
BDD with SpecFlow and Selenium
 
ISTQB foundation level - day 2
ISTQB foundation level - day 2ISTQB foundation level - day 2
ISTQB foundation level - day 2
 
ISTQB / ISEB Foundation Exam Practice - 5
ISTQB / ISEB Foundation Exam Practice - 5ISTQB / ISEB Foundation Exam Practice - 5
ISTQB / ISEB Foundation Exam Practice - 5
 
Regression testing
Regression testingRegression testing
Regression testing
 
Qbq the question behind the question
Qbq   the question behind the questionQbq   the question behind the question
Qbq the question behind the question
 
Severity and Priority
Severity and PrioritySeverity and Priority
Severity and Priority
 
How To Improve Quality With Static Code Analysis
How To Improve Quality With Static Code Analysis How To Improve Quality With Static Code Analysis
How To Improve Quality With Static Code Analysis
 
Testes de Software
Testes de SoftwareTestes de Software
Testes de Software
 
Creating QA Dashboard
Creating QA DashboardCreating QA Dashboard
Creating QA Dashboard
 
jacoco를 이용한 매뉴얼 테스트의 서버사이드 코드 커버리지 측정하기
jacoco를 이용한 매뉴얼 테스트의 서버사이드 코드 커버리지 측정하기jacoco를 이용한 매뉴얼 테스트의 서버사이드 코드 커버리지 측정하기
jacoco를 이용한 매뉴얼 테스트의 서버사이드 코드 커버리지 측정하기
 
Mutation Testing
Mutation TestingMutation Testing
Mutation Testing
 
Karate - powerful and simple framework for REST API automation testing
Karate - powerful and simple framework for REST API automation testingKarate - powerful and simple framework for REST API automation testing
Karate - powerful and simple framework for REST API automation testing
 

Semelhante a Teste mutação - Gerando e eliminando mutantes

Programação Orientada a Aspectos
Programação Orientada a AspectosProgramação Orientada a Aspectos
Programação Orientada a AspectosRicardo Terra
 
Java No Setor Público: Produtividade, Flexibilidade e Baixo Custo
Java No Setor Público: Produtividade, Flexibilidade e Baixo CustoJava No Setor Público: Produtividade, Flexibilidade e Baixo Custo
Java No Setor Público: Produtividade, Flexibilidade e Baixo CustoÉberli Cabistani Riella
 
Drupal e a Qualidade de Software
Drupal e a Qualidade de SoftwareDrupal e a Qualidade de Software
Drupal e a Qualidade de SoftwareDaniel Carvalhinho
 
O futuro do elephante: as promessas do php para 2019
O futuro do elephante: as promessas do php para 2019O futuro do elephante: as promessas do php para 2019
O futuro do elephante: as promessas do php para 2019Cassio Santos
 
MTC - Automatizando Visual Regression Testing
MTC - Automatizando Visual Regression TestingMTC - Automatizando Visual Regression Testing
MTC - Automatizando Visual Regression TestingSamanta Cicilia
 
10 dicas úteis para simplificar o desenvolvimento em ASP.NET Core - ASP.NET C...
10 dicas úteis para simplificar o desenvolvimento em ASP.NET Core - ASP.NET C...10 dicas úteis para simplificar o desenvolvimento em ASP.NET Core - ASP.NET C...
10 dicas úteis para simplificar o desenvolvimento em ASP.NET Core - ASP.NET C...Renato Groff
 
Da Exploração à Produção - Inteligência Artificial com a plataforma Marvin
Da Exploração à Produção - Inteligência Artificial com a plataforma MarvinDa Exploração à Produção - Inteligência Artificial com a plataforma Marvin
Da Exploração à Produção - Inteligência Artificial com a plataforma MarvinDaniel Takabayashi, MSc
 
Desenvolvimento de APIs REST Multiplataforma com ASP.NET Core - Setembro-2019
Desenvolvimento de APIs REST Multiplataforma com ASP.NET Core - Setembro-2019Desenvolvimento de APIs REST Multiplataforma com ASP.NET Core - Setembro-2019
Desenvolvimento de APIs REST Multiplataforma com ASP.NET Core - Setembro-2019Renato Groff
 
Dicas para simplificar o desenvolvimento de APIs REST em ASP.NET Core - .NET ...
Dicas para simplificar o desenvolvimento de APIs REST em ASP.NET Core - .NET ...Dicas para simplificar o desenvolvimento de APIs REST em ASP.NET Core - .NET ...
Dicas para simplificar o desenvolvimento de APIs REST em ASP.NET Core - .NET ...Renato Groff
 
TDC 2014 SP - Visual Regression Testing com PhantomCSS
TDC 2014 SP - Visual Regression Testing com PhantomCSSTDC 2014 SP - Visual Regression Testing com PhantomCSS
TDC 2014 SP - Visual Regression Testing com PhantomCSSStefan Teixeira
 
Desenvolvimento de APIs REST Multiplataforma com ASP.NET Core - Julho-2019
Desenvolvimento de APIs REST Multiplataforma com ASP.NET Core - Julho-2019Desenvolvimento de APIs REST Multiplataforma com ASP.NET Core - Julho-2019
Desenvolvimento de APIs REST Multiplataforma com ASP.NET Core - Julho-2019Renato Groff
 
WEBINAR DE LANÇAMENTO DELPHI, C++ BUILDER E RAD STUDIO 10.1 BERLIM
WEBINAR DE LANÇAMENTO DELPHI, C++ BUILDER E RAD STUDIO 10.1 BERLIMWEBINAR DE LANÇAMENTO DELPHI, C++ BUILDER E RAD STUDIO 10.1 BERLIM
WEBINAR DE LANÇAMENTO DELPHI, C++ BUILDER E RAD STUDIO 10.1 BERLIMFernando Rizzato
 
.NET Core e ASP.NET Core: Presente e Futuro - .NET Conf Local 2018 - .NET SP ...
.NET Core e ASP.NET Core: Presente e Futuro - .NET Conf Local 2018 - .NET SP ....NET Core e ASP.NET Core: Presente e Futuro - .NET Conf Local 2018 - .NET SP ...
.NET Core e ASP.NET Core: Presente e Futuro - .NET Conf Local 2018 - .NET SP ...Renato Groff
 
.NET Core e ASP.NET Core: Presente e Futuro - .NET Conf Local 2018 - Campinas...
.NET Core e ASP.NET Core: Presente e Futuro - .NET Conf Local 2018 - Campinas....NET Core e ASP.NET Core: Presente e Futuro - .NET Conf Local 2018 - Campinas...
.NET Core e ASP.NET Core: Presente e Futuro - .NET Conf Local 2018 - Campinas...Renato Groff
 
Python Brasil 2020 - Desmitificando pipeline de dados com Python: o que apren...
Python Brasil 2020 - Desmitificando pipeline de dados com Python: o que apren...Python Brasil 2020 - Desmitificando pipeline de dados com Python: o que apren...
Python Brasil 2020 - Desmitificando pipeline de dados com Python: o que apren...Affinitas GmbH
 
TDC SP 2016 - Construindo um microserviço Java 100% funcional em 30 minutos
TDC SP 2016 - Construindo um microserviço Java 100% funcional em 30 minutosTDC SP 2016 - Construindo um microserviço Java 100% funcional em 30 minutos
TDC SP 2016 - Construindo um microserviço Java 100% funcional em 30 minutosRafael Chaves
 
Play Framework - Desenvolvendo Aplicações Web com Java sem Dor
Play Framework - Desenvolvendo Aplicações Web com Java sem DorPlay Framework - Desenvolvendo Aplicações Web com Java sem Dor
Play Framework - Desenvolvendo Aplicações Web com Java sem DorAllyson Barros
 
Programação Orientada a Objetos parte 3
Programação Orientada a Objetos parte 3Programação Orientada a Objetos parte 3
Programação Orientada a Objetos parte 3Elaine Cecília Gatto
 
Renderizando widgets via JSON no Flutter
Renderizando widgets via JSON no FlutterRenderizando widgets via JSON no Flutter
Renderizando widgets via JSON no FlutterDenis Velrino
 

Semelhante a Teste mutação - Gerando e eliminando mutantes (20)

Programação Orientada a Aspectos
Programação Orientada a AspectosProgramação Orientada a Aspectos
Programação Orientada a Aspectos
 
Java No Setor Público: Produtividade, Flexibilidade e Baixo Custo
Java No Setor Público: Produtividade, Flexibilidade e Baixo CustoJava No Setor Público: Produtividade, Flexibilidade e Baixo Custo
Java No Setor Público: Produtividade, Flexibilidade e Baixo Custo
 
1.introducao java
1.introducao java1.introducao java
1.introducao java
 
Drupal e a Qualidade de Software
Drupal e a Qualidade de SoftwareDrupal e a Qualidade de Software
Drupal e a Qualidade de Software
 
O futuro do elephante: as promessas do php para 2019
O futuro do elephante: as promessas do php para 2019O futuro do elephante: as promessas do php para 2019
O futuro do elephante: as promessas do php para 2019
 
MTC - Automatizando Visual Regression Testing
MTC - Automatizando Visual Regression TestingMTC - Automatizando Visual Regression Testing
MTC - Automatizando Visual Regression Testing
 
10 dicas úteis para simplificar o desenvolvimento em ASP.NET Core - ASP.NET C...
10 dicas úteis para simplificar o desenvolvimento em ASP.NET Core - ASP.NET C...10 dicas úteis para simplificar o desenvolvimento em ASP.NET Core - ASP.NET C...
10 dicas úteis para simplificar o desenvolvimento em ASP.NET Core - ASP.NET C...
 
Da Exploração à Produção - Inteligência Artificial com a plataforma Marvin
Da Exploração à Produção - Inteligência Artificial com a plataforma MarvinDa Exploração à Produção - Inteligência Artificial com a plataforma Marvin
Da Exploração à Produção - Inteligência Artificial com a plataforma Marvin
 
Desenvolvimento de APIs REST Multiplataforma com ASP.NET Core - Setembro-2019
Desenvolvimento de APIs REST Multiplataforma com ASP.NET Core - Setembro-2019Desenvolvimento de APIs REST Multiplataforma com ASP.NET Core - Setembro-2019
Desenvolvimento de APIs REST Multiplataforma com ASP.NET Core - Setembro-2019
 
Dicas para simplificar o desenvolvimento de APIs REST em ASP.NET Core - .NET ...
Dicas para simplificar o desenvolvimento de APIs REST em ASP.NET Core - .NET ...Dicas para simplificar o desenvolvimento de APIs REST em ASP.NET Core - .NET ...
Dicas para simplificar o desenvolvimento de APIs REST em ASP.NET Core - .NET ...
 
TDC 2014 SP - Visual Regression Testing com PhantomCSS
TDC 2014 SP - Visual Regression Testing com PhantomCSSTDC 2014 SP - Visual Regression Testing com PhantomCSS
TDC 2014 SP - Visual Regression Testing com PhantomCSS
 
Desenvolvimento de APIs REST Multiplataforma com ASP.NET Core - Julho-2019
Desenvolvimento de APIs REST Multiplataforma com ASP.NET Core - Julho-2019Desenvolvimento de APIs REST Multiplataforma com ASP.NET Core - Julho-2019
Desenvolvimento de APIs REST Multiplataforma com ASP.NET Core - Julho-2019
 
WEBINAR DE LANÇAMENTO DELPHI, C++ BUILDER E RAD STUDIO 10.1 BERLIM
WEBINAR DE LANÇAMENTO DELPHI, C++ BUILDER E RAD STUDIO 10.1 BERLIMWEBINAR DE LANÇAMENTO DELPHI, C++ BUILDER E RAD STUDIO 10.1 BERLIM
WEBINAR DE LANÇAMENTO DELPHI, C++ BUILDER E RAD STUDIO 10.1 BERLIM
 
.NET Core e ASP.NET Core: Presente e Futuro - .NET Conf Local 2018 - .NET SP ...
.NET Core e ASP.NET Core: Presente e Futuro - .NET Conf Local 2018 - .NET SP ....NET Core e ASP.NET Core: Presente e Futuro - .NET Conf Local 2018 - .NET SP ...
.NET Core e ASP.NET Core: Presente e Futuro - .NET Conf Local 2018 - .NET SP ...
 
.NET Core e ASP.NET Core: Presente e Futuro - .NET Conf Local 2018 - Campinas...
.NET Core e ASP.NET Core: Presente e Futuro - .NET Conf Local 2018 - Campinas....NET Core e ASP.NET Core: Presente e Futuro - .NET Conf Local 2018 - Campinas...
.NET Core e ASP.NET Core: Presente e Futuro - .NET Conf Local 2018 - Campinas...
 
Python Brasil 2020 - Desmitificando pipeline de dados com Python: o que apren...
Python Brasil 2020 - Desmitificando pipeline de dados com Python: o que apren...Python Brasil 2020 - Desmitificando pipeline de dados com Python: o que apren...
Python Brasil 2020 - Desmitificando pipeline de dados com Python: o que apren...
 
TDC SP 2016 - Construindo um microserviço Java 100% funcional em 30 minutos
TDC SP 2016 - Construindo um microserviço Java 100% funcional em 30 minutosTDC SP 2016 - Construindo um microserviço Java 100% funcional em 30 minutos
TDC SP 2016 - Construindo um microserviço Java 100% funcional em 30 minutos
 
Play Framework - Desenvolvendo Aplicações Web com Java sem Dor
Play Framework - Desenvolvendo Aplicações Web com Java sem DorPlay Framework - Desenvolvendo Aplicações Web com Java sem Dor
Play Framework - Desenvolvendo Aplicações Web com Java sem Dor
 
Programação Orientada a Objetos parte 3
Programação Orientada a Objetos parte 3Programação Orientada a Objetos parte 3
Programação Orientada a Objetos parte 3
 
Renderizando widgets via JSON no Flutter
Renderizando widgets via JSON no FlutterRenderizando widgets via JSON no Flutter
Renderizando widgets via JSON no Flutter
 

Teste mutação - Gerando e eliminando mutantes