SlideShare ist ein Scribd-Unternehmen logo
1 von 33
Cobertura de pruebas unitarias: que tan bien
escribimos nuestras pruebas?
@Mteheran
TDD
Miguel Teheran
Colombiano
Consultor y desarrollador de software
@Mteheran
TDD
Test Driven Development
Flujo de trabajo en TDD
● Escribir requisito
● Escribir la prueba
● Verificar que la prueba falla
● Escribir implementación
● Ejecutar pruebas automatizadas
● Refactoring
TDD - Code First
Primero el código luego las pruebas
Sabemos que tan efectivas son
nuestras pruebas?
Cómo medimos el alcance de
nuestras pruebas?
Cobertura de pruebas unitarias
85% 15%
Herramientas
Existen muchas herramientas que nos ayudan a medir la cobertura
Visual studio enterprise
Herramientas - Antiguas
● NCover
● OpenCover
dotCover
https://www.jetbrains.com/dotcover/
Coverlet
Cross platform code coverage for .NET
https://github.com/coverlet-coverage/coverlet
Características
● Open source
● Multiplataforma
● Soporta .NET Framework y .NET Core
● Funciona con VSTest, NUnit, XUnit y otros
● Permite generar reportes
● Tiene diferentes parámetros de configuración
dotnet add package coverlet.msbuild
dotnet add package coverlet.collector
dotnet test /p:CollectCoverage=true
Demo 1
dotnet test /p:CollectCoverage=true
Demo 2
dotnet test --no-build
/p:CollectCoverage=true
Demo 3
dotnet test /p:CollectCoverage=true
/p:Include="[*]CoverletDemo.Calculati
on.*"
Demo 4
dotnet test /p:CollectCoverage=true
/p:ExcludeByAttribute="ExcludeFromC
odeCoverage"
Demo 5
dotnet test /p:CollectCoverage=true
/p:CoverletOutputFormat=cobertura
Unit Test + Devops
Mejora continua gracias a los resultados de las pruebas unitarias
Ventajas de la integración
● Análisis continuo de resultados
● Detección temprana de errores
● Análisis de impacto de cambios o nuevo código implementado
● Generación de alertas
Demo - Azure Devops
Azure devops
Demo - Codecov
Easily upload coverage reports to Codecov from GitHub Actions
https://github.com/marketplace/actions/codecov
Codecov
- uses: codecov/codecov-action@v1
with:
token: ${{ secrets.CODECOV_TOKEN }} # not required for public
repos
file: /coverage.cobertura.xml # optional
flags: unittests # optional
name: codecov-umbrella # optional
fail_ci_if_error: true # optional (def
Coveralls.io
Test Coverage History & Statistics
https://coveralls.io/
Cúal es el porcentaje ideal de
cobertura?
Tiempo
Pruebas Cobertura
60% 70% 80%
Intensidad de uso en ciertos
módulos en una aplicación
30% 50%20%
Cobertura de pruebas unitarias - NetBaires
Cobertura de pruebas unitarias - NetBaires

Weitere ähnliche Inhalte

Was ist angesagt?

Manual de-gestión-de-un-proyecto-de-software-en-una-herramienta-informática-l...
Manual de-gestión-de-un-proyecto-de-software-en-una-herramienta-informática-l...Manual de-gestión-de-un-proyecto-de-software-en-una-herramienta-informática-l...
Manual de-gestión-de-un-proyecto-de-software-en-una-herramienta-informática-l...
Erick Mireles Merchant
 

Was ist angesagt? (20)

Actividad 07 zsar
Actividad 07 zsarActividad 07 zsar
Actividad 07 zsar
 
Mejorando la productividad en proyectos java EE con CI y CD - OTN 2015
Mejorando la productividad en proyectos java EE con  CI y CD - OTN 2015 Mejorando la productividad en proyectos java EE con  CI y CD - OTN 2015
Mejorando la productividad en proyectos java EE con CI y CD - OTN 2015
 
Informes en Odoo 8
Informes en Odoo 8Informes en Odoo 8
Informes en Odoo 8
 
Integración contínua con Jenkins
Integración contínua con JenkinsIntegración contínua con Jenkins
Integración contínua con Jenkins
 
Análisis estático de código en Java
Análisis estático de código en JavaAnálisis estático de código en Java
Análisis estático de código en Java
 
Manual de-gestión-de-un-proyecto-de-software-en-una-herramienta-informática-l...
Manual de-gestión-de-un-proyecto-de-software-en-una-herramienta-informática-l...Manual de-gestión-de-un-proyecto-de-software-en-una-herramienta-informática-l...
Manual de-gestión-de-un-proyecto-de-software-en-una-herramienta-informática-l...
 
Introducción a Unit Testing y TDD
Introducción a Unit Testing y TDDIntroducción a Unit Testing y TDD
Introducción a Unit Testing y TDD
 
Quita, que tú no sabes; ya lo hago yo. Generación e inyección de código en ti...
Quita, que tú no sabes; ya lo hago yo. Generación e inyección de código en ti...Quita, que tú no sabes; ya lo hago yo. Generación e inyección de código en ti...
Quita, que tú no sabes; ya lo hago yo. Generación e inyección de código en ti...
 
El coste de no usar integración continua
El coste de no usar integración continuaEl coste de no usar integración continua
El coste de no usar integración continua
 
Integracion Continua
Integracion ContinuaIntegracion Continua
Integracion Continua
 
Dealing with fear in legacy projects #PHPDS15
Dealing with fear in legacy projects #PHPDS15Dealing with fear in legacy projects #PHPDS15
Dealing with fear in legacy projects #PHPDS15
 
Swift migration. the true history
Swift migration. the true historySwift migration. the true history
Swift migration. the true history
 
Test driven development
Test driven developmentTest driven development
Test driven development
 
Unit Testing en iOS
Unit Testing en iOSUnit Testing en iOS
Unit Testing en iOS
 
TDD
TDDTDD
TDD
 
Pcc
PccPcc
Pcc
 
Tdd
TddTdd
Tdd
 
S1-PD1-1.1 Componentes
S1-PD1-1.1 Componentes S1-PD1-1.1 Componentes
S1-PD1-1.1 Componentes
 
Dotnet CLI
Dotnet CLIDotnet CLI
Dotnet CLI
 
Agile university day - Un día en un equipo ágil de desarrollo móvil
Agile university day - Un día en un equipo ágil de desarrollo móvilAgile university day - Un día en un equipo ágil de desarrollo móvil
Agile university day - Un día en un equipo ágil de desarrollo móvil
 

Ähnlich wie Cobertura de pruebas unitarias - NetBaires

Behavior1
Behavior1Behavior1
Behavior1
arajar
 
pruebasunitarias-110921232512-phpapp02.pptx
pruebasunitarias-110921232512-phpapp02.pptxpruebasunitarias-110921232512-phpapp02.pptx
pruebasunitarias-110921232512-phpapp02.pptx
CompusoftnetCiaLtda
 

Ähnlich wie Cobertura de pruebas unitarias - NetBaires (20)

Desarrollo con Java y metodologías agiles
Desarrollo con Java y metodologías agilesDesarrollo con Java y metodologías agiles
Desarrollo con Java y metodologías agiles
 
Software Quality Assurance
Software Quality AssuranceSoftware Quality Assurance
Software Quality Assurance
 
Desarrollo de Software Guiado por Pruebas
Desarrollo de Software Guiado por PruebasDesarrollo de Software Guiado por Pruebas
Desarrollo de Software Guiado por Pruebas
 
Behavior1
Behavior1Behavior1
Behavior1
 
Testing & Pizza by Lito & nitsnets
Testing & Pizza by Lito & nitsnetsTesting & Pizza by Lito & nitsnets
Testing & Pizza by Lito & nitsnets
 
pruebasunitarias-110921232512-phpapp02.pptx
pruebasunitarias-110921232512-phpapp02.pptxpruebasunitarias-110921232512-phpapp02.pptx
pruebasunitarias-110921232512-phpapp02.pptx
 
Vision práctica del BDD (Behaviour Driven Design) para agilizar el proceso de...
Vision práctica del BDD (Behaviour Driven Design) para agilizar el proceso de...Vision práctica del BDD (Behaviour Driven Design) para agilizar el proceso de...
Vision práctica del BDD (Behaviour Driven Design) para agilizar el proceso de...
 
Automatización de pruebas con Selenium, Typescript, Protractor & Cucumber
Automatización de pruebas con Selenium, Typescript, Protractor & CucumberAutomatización de pruebas con Selenium, Typescript, Protractor & Cucumber
Automatización de pruebas con Selenium, Typescript, Protractor & Cucumber
 
#HablemosDeTestingDay - José Castillo: Estrategia de QA en un contexto de DevOps
#HablemosDeTestingDay - José Castillo: Estrategia de QA en un contexto de DevOps#HablemosDeTestingDay - José Castillo: Estrategia de QA en un contexto de DevOps
#HablemosDeTestingDay - José Castillo: Estrategia de QA en un contexto de DevOps
 
Taller de TDD con .NET y xUnit
Taller de TDD con .NET y xUnitTaller de TDD con .NET y xUnit
Taller de TDD con .NET y xUnit
 
Faces y Sub Faces de la Metodologia XP
Faces y Sub Faces de la Metodologia XPFaces y Sub Faces de la Metodologia XP
Faces y Sub Faces de la Metodologia XP
 
Modulo 1
Modulo 1Modulo 1
Modulo 1
 
Pruebas de software
Pruebas de softwarePruebas de software
Pruebas de software
 
Apuntes #XPweek
Apuntes #XPweekApuntes #XPweek
Apuntes #XPweek
 
Modelos De Calidad para proyectos de Software Y Software Libre
Modelos De Calidad para proyectos de Software Y Software LibreModelos De Calidad para proyectos de Software Y Software Libre
Modelos De Calidad para proyectos de Software Y Software Libre
 
ReConnect 2015 - ASP.NET 5: MVC 6 y EF 7
ReConnect 2015  - ASP.NET 5: MVC 6 y EF 7ReConnect 2015  - ASP.NET 5: MVC 6 y EF 7
ReConnect 2015 - ASP.NET 5: MVC 6 y EF 7
 
¿Cómo poner software de calidad en manos del usuario de forma rápida?
¿Cómo poner software de calidad en manos del usuario de forma rápida?¿Cómo poner software de calidad en manos del usuario de forma rápida?
¿Cómo poner software de calidad en manos del usuario de forma rápida?
 
DevOps: una breve introducción
DevOps: una breve introducciónDevOps: una breve introducción
DevOps: una breve introducción
 
Meetup Oracle Technology MAD_BCN: 6.2 DevOps y DataOps
Meetup Oracle Technology MAD_BCN: 6.2 DevOps y DataOpsMeetup Oracle Technology MAD_BCN: 6.2 DevOps y DataOps
Meetup Oracle Technology MAD_BCN: 6.2 DevOps y DataOps
 
Unidad ii. tdd
Unidad ii. tddUnidad ii. tdd
Unidad ii. tdd
 

Mehr von Miguel Angel Teheran Garcia

Mehr von Miguel Angel Teheran Garcia (20)

Pruebas Automatizadas con PlayWright sobre nuestras Google Cloud Functions
Pruebas Automatizadas con PlayWright sobre nuestras Google Cloud FunctionsPruebas Automatizadas con PlayWright sobre nuestras Google Cloud Functions
Pruebas Automatizadas con PlayWright sobre nuestras Google Cloud Functions
 
PlayWright, Cypress, Selenium Cual es la mejor opción para desarrolladores Ja...
PlayWright, Cypress, Selenium Cual es la mejor opción para desarrolladores Ja...PlayWright, Cypress, Selenium Cual es la mejor opción para desarrolladores Ja...
PlayWright, Cypress, Selenium Cual es la mejor opción para desarrolladores Ja...
 
Introduction to Blazor Hybrid
Introduction to Blazor HybridIntroduction to Blazor Hybrid
Introduction to Blazor Hybrid
 
La historia de api-colombia
La historia de api-colombiaLa historia de api-colombia
La historia de api-colombia
 
DevFest 2022 - El Arte de escribir sobre programacion.pptx
DevFest 2022 - El Arte de escribir sobre programacion.pptxDevFest 2022 - El Arte de escribir sobre programacion.pptx
DevFest 2022 - El Arte de escribir sobre programacion.pptx
 
RoadMap y herramientas de Azure DevOps que debes conocer
RoadMap y herramientas de Azure DevOps que debes conocerRoadMap y herramientas de Azure DevOps que debes conocer
RoadMap y herramientas de Azure DevOps que debes conocer
 
Introduction to OpenTelemetry in .NET
Introduction to OpenTelemetry in .NETIntroduction to OpenTelemetry in .NET
Introduction to OpenTelemetry in .NET
 
PRISM con MAUI
PRISM con MAUIPRISM con MAUI
PRISM con MAUI
 
.NET MAUI Offline first
.NET MAUI Offline first .NET MAUI Offline first
.NET MAUI Offline first
 
MAUIConf - Adios Net Maui Essentials Bienvenida Integración de Plataforma
MAUIConf - Adios Net Maui Essentials Bienvenida Integración de PlataformaMAUIConf - Adios Net Maui Essentials Bienvenida Integración de Plataforma
MAUIConf - Adios Net Maui Essentials Bienvenida Integración de Plataforma
 
Servicios Nativos MAUI
Servicios Nativos MAUIServicios Nativos MAUI
Servicios Nativos MAUI
 
Aplicaciones para MacOS con .NET MAUI
Aplicaciones para MacOS con .NET MAUIAplicaciones para MacOS con .NET MAUI
Aplicaciones para MacOS con .NET MAUI
 
Primero pasos con Visual Studio for MAC
Primero pasos con Visual Studio for MACPrimero pasos con Visual Studio for MAC
Primero pasos con Visual Studio for MAC
 
Aplicaciones con web con Blazor + MudBlazor
Aplicaciones con web con Blazor + MudBlazorAplicaciones con web con Blazor + MudBlazor
Aplicaciones con web con Blazor + MudBlazor
 
Building Web Applications with Blazor and MudBlazor
Building Web Applications with Blazor and MudBlazorBuilding Web Applications with Blazor and MudBlazor
Building Web Applications with Blazor and MudBlazor
 
Tips para una entrevista Tech Exitosa
Tips para una entrevista Tech ExitosaTips para una entrevista Tech Exitosa
Tips para una entrevista Tech Exitosa
 
Metaverso y Microsoft Mesh
Metaverso y Microsoft MeshMetaverso y Microsoft Mesh
Metaverso y Microsoft Mesh
 
Mejoras en Blazor con .NET 6
Mejoras en Blazor con .NET 6Mejoras en Blazor con .NET 6
Mejoras en Blazor con .NET 6
 
Apis with dotnet postgreSQL and Apsaradb
Apis with dotnet postgreSQL and ApsaradbApis with dotnet postgreSQL and Apsaradb
Apis with dotnet postgreSQL and Apsaradb
 
Microservices with Minimal APi and .NET 6
Microservices with Minimal APi and .NET 6Microservices with Minimal APi and .NET 6
Microservices with Minimal APi and .NET 6
 

Kürzlich hochgeladen

2da. Clase Mecanografía e introducción a Excel (2).pptx
2da. Clase Mecanografía e introducción a Excel (2).pptx2da. Clase Mecanografía e introducción a Excel (2).pptx
2da. Clase Mecanografía e introducción a Excel (2).pptx
EncomiendasElSherpa
 
Evaluación del riesgo tecnologías informáticas.pdf
Evaluación del riesgo tecnologías informáticas.pdfEvaluación del riesgo tecnologías informáticas.pdf
Evaluación del riesgo tecnologías informáticas.pdf
GuillermoBarquero7
 

Kürzlich hochgeladen (6)

Trabajo de Powerpoint - Unsaac - Ofimática
Trabajo de Powerpoint - Unsaac - OfimáticaTrabajo de Powerpoint - Unsaac - Ofimática
Trabajo de Powerpoint - Unsaac - Ofimática
 
2da. Clase Mecanografía e introducción a Excel (2).pptx
2da. Clase Mecanografía e introducción a Excel (2).pptx2da. Clase Mecanografía e introducción a Excel (2).pptx
2da. Clase Mecanografía e introducción a Excel (2).pptx
 
Evaluación del riesgo tecnologías informáticas.pdf
Evaluación del riesgo tecnologías informáticas.pdfEvaluación del riesgo tecnologías informáticas.pdf
Evaluación del riesgo tecnologías informáticas.pdf
 
ESCRITORIO DE WINDOWS 11 Y SUS ELEMENTOS
ESCRITORIO DE WINDOWS 11 Y SUS ELEMENTOSESCRITORIO DE WINDOWS 11 Y SUS ELEMENTOS
ESCRITORIO DE WINDOWS 11 Y SUS ELEMENTOS
 
Caso de Exito LPL Projects Logistics Spain y Business Central
Caso de Exito LPL Projects Logistics Spain y Business CentralCaso de Exito LPL Projects Logistics Spain y Business Central
Caso de Exito LPL Projects Logistics Spain y Business Central
 
Caso de éxito de Hervian con el ERP Sage 200
Caso de éxito de Hervian con el ERP Sage 200Caso de éxito de Hervian con el ERP Sage 200
Caso de éxito de Hervian con el ERP Sage 200
 

Cobertura de pruebas unitarias - NetBaires