SlideShare una empresa de Scribd logo
Javier Castañeda
@jdandini
Unit Testing
¿Te ha pasado que...?
● Al reescribir código quieres asegurarte de que todo funciona
● No estas seguro si tu arquitectura es correcta
● Quieres que tu código sea bug free
¿Te ha pasado que...?
● Heredas código y al hacerle cambios ruegas a todos los dioses
paganos para que algo no se rompa
¿Para qué hacemos pruebas automáticas?
● Probar que el código funcione
● Prevenir bugs y errores de regresión
● Ayuda a pensar sobre interacciones en tu código
● Escribir documentación viviente
Creas código mantenible
¿Qué debo probar?
1. Lo nuevo
2. La funcionalidad central
3. Flujos de UI más comunes
4. Límites
¿Cómo es una buena prueba?
● Rápida
● Aislada
● Repetible
● Auto validada
¿Qué herramienta uso para hacer pruebas?
El proceso
Verifica tu arquitectura
● ¿Las responsabilidades de las clases y métodos en tu aplicación
están bien definidas?
● Elimina acoplamiento de código
“Si no puedes probar algo fácilmente, tienes un
error en tu arquitectura”
Uncle Bob
Red, green & refactor
● Escribe una prueba
● Provoca un fallo a la prueba (inputs)
● Provoca que la prueba pase (inputs)
● Refactoriza tu prueba
Ventajas y desventajas
● Seguridad de que todo funciona
● Identificación de errores de regresión
● Seguridad al ejecutar cambios
● Mejor calidad de código
● Sólo se escriben una vez
Desventajas
● Mayor tiempo al desarrollar algo
● En caso de no tener es muy largo escribir pruebas
● Proceso “tedioso y aburrido”
¿Cómo creo una?
Demo
“QA no debe encontrar nada, ellos no son tu
detector de errores”
Uncle Bob
Fin
¿Preguntas?

Más contenido relacionado

La actualidad más candente

Si no testeo no me lo creo
Si no testeo no me lo creoSi no testeo no me lo creo
Si no testeo no me lo creo
Ricardo García Fernández
 
Herramientas para revisar traducciones
Herramientas para revisar traduccionesHerramientas para revisar traducciones
Herramientas para revisar traducciones
David Calero Córdoba
 
BDD y tests automatizados
BDD y tests automatizadosBDD y tests automatizados
BDD y tests automatizados
Sofia Swidarowicz
 
Introducción a TDD
Introducción a TDDIntroducción a TDD
Introducción a TDD
Adrian Marino
 
Cobertura de pruebas unitarias - NetBaires
Cobertura de pruebas unitarias - NetBairesCobertura de pruebas unitarias - NetBaires
Cobertura de pruebas unitarias - NetBaires
Miguel Angel Teheran Garcia
 
Argentesting 2019 - Cómo convertirse en un tester ágil
Argentesting 2019 - Cómo convertirse en un tester ágilArgentesting 2019 - Cómo convertirse en un tester ágil
Argentesting 2019 - Cómo convertirse en un tester ágil
Argentesting
 
Argentesting 2019 - Cambiando el paradigma de la automatización
Argentesting 2019 - Cambiando el paradigma de la automatizaciónArgentesting 2019 - Cambiando el paradigma de la automatización
Argentesting 2019 - Cambiando el paradigma de la automatización
Argentesting
 
BDD & Cucumber
BDD & CucumberBDD & Cucumber
BDD & Cucumber
Enrique Sánchez-Bayuela
 
Introducción al Test-Driven Development (TDD) por Eric Mignot
Introducción al Test-Driven Development (TDD) por Eric MignotIntroducción al Test-Driven Development (TDD) por Eric Mignot
Introducción al Test-Driven Development (TDD) por Eric Mignot
Pablo Lischinsky
 
BDD - Desarrollo dirigido por comportamiento
BDD - Desarrollo dirigido por comportamientoBDD - Desarrollo dirigido por comportamiento
BDD - Desarrollo dirigido por comportamientoAgustin Ramos
 
Charla evento TestingUY 2017 - El mokeo como herramienta para pruebas de Soft...
Charla evento TestingUY 2017 - El mokeo como herramienta para pruebas de Soft...Charla evento TestingUY 2017 - El mokeo como herramienta para pruebas de Soft...
Charla evento TestingUY 2017 - El mokeo como herramienta para pruebas de Soft...
TestingUy
 
Charla evento TestingUY 2017 - Automatización en gran escala
Charla evento TestingUY 2017 - Automatización en gran escalaCharla evento TestingUY 2017 - Automatización en gran escala
Charla evento TestingUY 2017 - Automatización en gran escala
TestingUy
 
Test Driven Development
Test Driven DevelopmentTest Driven Development
Test Driven Development
Carlos Delgado Estremera
 
Desarrollo Dirigido por Comportamiento (con Cucumber y Groovy)
Desarrollo Dirigido por Comportamiento (con Cucumber y Groovy)Desarrollo Dirigido por Comportamiento (con Cucumber y Groovy)
Desarrollo Dirigido por Comportamiento (con Cucumber y Groovy)
Agustin Ramos
 
Cómo trabajamos en Plastic SCM
Cómo trabajamos en Plastic SCMCómo trabajamos en Plastic SCM
Cómo trabajamos en Plastic SCM
233 Grados de TI
 
Introducción a Behaviour Driven Development
Introducción a Behaviour Driven DevelopmentIntroducción a Behaviour Driven Development
Introducción a Behaviour Driven Development
Ricardo Markiewicz
 
The path to automation heaven
The path to automation heavenThe path to automation heaven
The path to automation heaven
Francisco Moreno Sanz
 

La actualidad más candente (19)

Si no testeo no me lo creo
Si no testeo no me lo creoSi no testeo no me lo creo
Si no testeo no me lo creo
 
Creando rascacielos con tdd
Creando rascacielos con tddCreando rascacielos con tdd
Creando rascacielos con tdd
 
Herramientas para revisar traducciones
Herramientas para revisar traduccionesHerramientas para revisar traducciones
Herramientas para revisar traducciones
 
BDD y tests automatizados
BDD y tests automatizadosBDD y tests automatizados
BDD y tests automatizados
 
Introducción a TDD
Introducción a TDDIntroducción a TDD
Introducción a TDD
 
Cobertura de pruebas unitarias - NetBaires
Cobertura de pruebas unitarias - NetBairesCobertura de pruebas unitarias - NetBaires
Cobertura de pruebas unitarias - NetBaires
 
Argentesting 2019 - Cómo convertirse en un tester ágil
Argentesting 2019 - Cómo convertirse en un tester ágilArgentesting 2019 - Cómo convertirse en un tester ágil
Argentesting 2019 - Cómo convertirse en un tester ágil
 
Argentesting 2019 - Cambiando el paradigma de la automatización
Argentesting 2019 - Cambiando el paradigma de la automatizaciónArgentesting 2019 - Cambiando el paradigma de la automatización
Argentesting 2019 - Cambiando el paradigma de la automatización
 
BDD & Cucumber
BDD & CucumberBDD & Cucumber
BDD & Cucumber
 
Introducción al Test-Driven Development (TDD) por Eric Mignot
Introducción al Test-Driven Development (TDD) por Eric MignotIntroducción al Test-Driven Development (TDD) por Eric Mignot
Introducción al Test-Driven Development (TDD) por Eric Mignot
 
BDD - Desarrollo dirigido por comportamiento
BDD - Desarrollo dirigido por comportamientoBDD - Desarrollo dirigido por comportamiento
BDD - Desarrollo dirigido por comportamiento
 
TDD Code Retreat
TDD Code RetreatTDD Code Retreat
TDD Code Retreat
 
Charla evento TestingUY 2017 - El mokeo como herramienta para pruebas de Soft...
Charla evento TestingUY 2017 - El mokeo como herramienta para pruebas de Soft...Charla evento TestingUY 2017 - El mokeo como herramienta para pruebas de Soft...
Charla evento TestingUY 2017 - El mokeo como herramienta para pruebas de Soft...
 
Charla evento TestingUY 2017 - Automatización en gran escala
Charla evento TestingUY 2017 - Automatización en gran escalaCharla evento TestingUY 2017 - Automatización en gran escala
Charla evento TestingUY 2017 - Automatización en gran escala
 
Test Driven Development
Test Driven DevelopmentTest Driven Development
Test Driven Development
 
Desarrollo Dirigido por Comportamiento (con Cucumber y Groovy)
Desarrollo Dirigido por Comportamiento (con Cucumber y Groovy)Desarrollo Dirigido por Comportamiento (con Cucumber y Groovy)
Desarrollo Dirigido por Comportamiento (con Cucumber y Groovy)
 
Cómo trabajamos en Plastic SCM
Cómo trabajamos en Plastic SCMCómo trabajamos en Plastic SCM
Cómo trabajamos en Plastic SCM
 
Introducción a Behaviour Driven Development
Introducción a Behaviour Driven DevelopmentIntroducción a Behaviour Driven Development
Introducción a Behaviour Driven Development
 
The path to automation heaven
The path to automation heavenThe path to automation heaven
The path to automation heaven
 

Similar a Unit Testing en iOS

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
Jobsket
 
¿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?
Micael Gallego
 
Improving as a developer through code reviews
Improving as a developer through code reviewsImproving as a developer through code reviews
Improving as a developer through code reviews
Anallely Olivares
 
Conceptos básicos de Unit Test
Conceptos básicos de Unit Test Conceptos básicos de Unit Test
Conceptos básicos de Unit Test
Juan Vladimir
 
Integración Continua
Integración ContinuaIntegración Continua
Integración Continua
Jose Patricio Bovet Derpich
 
Software Quality Assurance
Software Quality AssuranceSoftware Quality Assurance
Software Quality Assurance
will2294
 
Testing & Pizza by Lito & nitsnets
Testing & Pizza by Lito & nitsnetsTesting & Pizza by Lito & nitsnets
Testing & Pizza by Lito & nitsnets
eusonlito
 
Practicas tecnicas
Practicas tecnicasPracticas tecnicas
Introducción a las Pruebas Software
Introducción a las Pruebas SoftwareIntroducción a las Pruebas Software
Introducción a las Pruebas Software
Micael Gallego
 
Pruebas unitarias 7mo -b
Pruebas unitarias   7mo -bPruebas unitarias   7mo -b
Pruebas unitarias 7mo -b
JairoSimbaa
 
Módulo 4. Desarrollador ágil
Módulo 4. Desarrollador ágilMódulo 4. Desarrollador ágil
Módulo 4. Desarrollador ágil
Johnny Ordóñez
 
Construccion y Pruebas de Software
Construccion y Pruebas de SoftwareConstruccion y Pruebas de Software
Construccion y Pruebas de SoftwareGustavo Bazan Maal
 
Introducción a testing en php
Introducción a testing en phpIntroducción a testing en php
Introducción a testing en phpIsmael Ambrosi
 
Probando aplicaciones basadas en LLMs.pdf
Probando aplicaciones basadas en LLMs.pdfProbando aplicaciones basadas en LLMs.pdf
Probando aplicaciones basadas en LLMs.pdf
Federico Toledo
 
Prueba unitaria
Prueba unitariaPrueba unitaria
Prueba unitaria
JefferRosendo
 
Practicas técnicas
Practicas técnicasPracticas técnicas
Practicas técnicas
Joan Sebastián Ramírez Pérez
 
Pruebas automaticas
Pruebas automaticasPruebas automaticas
Pruebas automaticas
Joan Sebastián Ramírez Pérez
 
Nuestra Experiencia Con El Proyecto Gxunit Vf
Nuestra Experiencia Con El Proyecto Gxunit VfNuestra Experiencia Con El Proyecto Gxunit Vf
Nuestra Experiencia Con El Proyecto Gxunit Vf
Enrique Almeida
 
Integracion Continua
Integracion ContinuaIntegracion Continua
Integracion Continua
Lenin Lozano
 

Similar a Unit Testing en iOS (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
 
¿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?
 
Improving as a developer through code reviews
Improving as a developer through code reviewsImproving as a developer through code reviews
Improving as a developer through code reviews
 
Conceptos básicos de Unit Test
Conceptos básicos de Unit Test Conceptos básicos de Unit Test
Conceptos básicos de Unit Test
 
Integración Continua
Integración ContinuaIntegración Continua
Integración Continua
 
Software Quality Assurance
Software Quality AssuranceSoftware Quality Assurance
Software Quality Assurance
 
Testing & Pizza by Lito & nitsnets
Testing & Pizza by Lito & nitsnetsTesting & Pizza by Lito & nitsnets
Testing & Pizza by Lito & nitsnets
 
Practicas tecnicas
Practicas tecnicasPracticas tecnicas
Practicas tecnicas
 
Introducción a las Pruebas Software
Introducción a las Pruebas SoftwareIntroducción a las Pruebas Software
Introducción a las Pruebas Software
 
Pruebas unitarias 7mo -b
Pruebas unitarias   7mo -bPruebas unitarias   7mo -b
Pruebas unitarias 7mo -b
 
Módulo 4. Desarrollador ágil
Módulo 4. Desarrollador ágilMódulo 4. Desarrollador ágil
Módulo 4. Desarrollador ágil
 
Construccion y Pruebas de Software
Construccion y Pruebas de SoftwareConstruccion y Pruebas de Software
Construccion y Pruebas de Software
 
Introducción a testing en php
Introducción a testing en phpIntroducción a testing en php
Introducción a testing en php
 
Probando aplicaciones basadas en LLMs.pdf
Probando aplicaciones basadas en LLMs.pdfProbando aplicaciones basadas en LLMs.pdf
Probando aplicaciones basadas en LLMs.pdf
 
Prueba unitaria
Prueba unitariaPrueba unitaria
Prueba unitaria
 
Practicas técnicas
Practicas técnicasPracticas técnicas
Practicas técnicas
 
Pruebas automaticas
Pruebas automaticasPruebas automaticas
Pruebas automaticas
 
Integracion continua
Integracion continuaIntegracion continua
Integracion continua
 
Nuestra Experiencia Con El Proyecto Gxunit Vf
Nuestra Experiencia Con El Proyecto Gxunit VfNuestra Experiencia Con El Proyecto Gxunit Vf
Nuestra Experiencia Con El Proyecto Gxunit Vf
 
Integracion Continua
Integracion ContinuaIntegracion Continua
Integracion Continua
 

Más de NSCoder Mexico

Aprendizaje reforzado con swift
Aprendizaje reforzado con swiftAprendizaje reforzado con swift
Aprendizaje reforzado con swift
NSCoder Mexico
 
In app purchase
In app purchaseIn app purchase
In app purchase
NSCoder Mexico
 
Ib designables
Ib designablesIb designables
Ib designables
NSCoder Mexico
 
Programación Orientada a Protocolos
Programación Orientada a ProtocolosProgramación Orientada a Protocolos
Programación Orientada a Protocolos
NSCoder Mexico
 
Interfaces en interface builder y por codigo
Interfaces en interface builder y por codigoInterfaces en interface builder y por codigo
Interfaces en interface builder y por codigo
NSCoder Mexico
 
Introduction Swift
Introduction SwiftIntroduction Swift
Introduction Swift
NSCoder Mexico
 
Dependency Managers
Dependency ManagersDependency Managers
Dependency Managers
NSCoder Mexico
 
Taller PaintCode
Taller PaintCodeTaller PaintCode
Taller PaintCode
NSCoder Mexico
 
VIPER
VIPERVIPER
Core ML and Computer Vision
Core ML and Computer VisionCore ML and Computer Vision
Core ML and Computer Vision
NSCoder Mexico
 
Intro programacion funcional
Intro programacion funcionalIntro programacion funcional
Intro programacion funcional
NSCoder Mexico
 
DIY Instagram
DIY InstagramDIY Instagram
DIY Instagram
NSCoder Mexico
 
Mathematics en la programación
Mathematics en la programaciónMathematics en la programación
Mathematics en la programación
NSCoder Mexico
 
Video juegos con SpriteKit y Swift
Video juegos con SpriteKit y SwiftVideo juegos con SpriteKit y Swift
Video juegos con SpriteKit y Swift
NSCoder Mexico
 
Bridgefy SDK
Bridgefy SDKBridgefy SDK
Bridgefy SDK
NSCoder Mexico
 
Introduction a ARToolkit
Introduction a ARToolkitIntroduction a ARToolkit
Introduction a ARToolkit
NSCoder Mexico
 
Diseño Agil para Desarrolladores
Diseño Agil para DesarrolladoresDiseño Agil para Desarrolladores
Diseño Agil para Desarrolladores
NSCoder Mexico
 
Clean Architecture
Clean ArchitectureClean Architecture
Clean Architecture
NSCoder Mexico
 
Simplify your Life with Message Extensions in iOS 10
Simplify your Life with Message Extensions in iOS 10Simplify your Life with Message Extensions in iOS 10
Simplify your Life with Message Extensions in iOS 10
NSCoder Mexico
 
Taming the Massive View Controllers
Taming the Massive View ControllersTaming the Massive View Controllers
Taming the Massive View Controllers
NSCoder Mexico
 

Más de NSCoder Mexico (20)

Aprendizaje reforzado con swift
Aprendizaje reforzado con swiftAprendizaje reforzado con swift
Aprendizaje reforzado con swift
 
In app purchase
In app purchaseIn app purchase
In app purchase
 
Ib designables
Ib designablesIb designables
Ib designables
 
Programación Orientada a Protocolos
Programación Orientada a ProtocolosProgramación Orientada a Protocolos
Programación Orientada a Protocolos
 
Interfaces en interface builder y por codigo
Interfaces en interface builder y por codigoInterfaces en interface builder y por codigo
Interfaces en interface builder y por codigo
 
Introduction Swift
Introduction SwiftIntroduction Swift
Introduction Swift
 
Dependency Managers
Dependency ManagersDependency Managers
Dependency Managers
 
Taller PaintCode
Taller PaintCodeTaller PaintCode
Taller PaintCode
 
VIPER
VIPERVIPER
VIPER
 
Core ML and Computer Vision
Core ML and Computer VisionCore ML and Computer Vision
Core ML and Computer Vision
 
Intro programacion funcional
Intro programacion funcionalIntro programacion funcional
Intro programacion funcional
 
DIY Instagram
DIY InstagramDIY Instagram
DIY Instagram
 
Mathematics en la programación
Mathematics en la programaciónMathematics en la programación
Mathematics en la programación
 
Video juegos con SpriteKit y Swift
Video juegos con SpriteKit y SwiftVideo juegos con SpriteKit y Swift
Video juegos con SpriteKit y Swift
 
Bridgefy SDK
Bridgefy SDKBridgefy SDK
Bridgefy SDK
 
Introduction a ARToolkit
Introduction a ARToolkitIntroduction a ARToolkit
Introduction a ARToolkit
 
Diseño Agil para Desarrolladores
Diseño Agil para DesarrolladoresDiseño Agil para Desarrolladores
Diseño Agil para Desarrolladores
 
Clean Architecture
Clean ArchitectureClean Architecture
Clean Architecture
 
Simplify your Life with Message Extensions in iOS 10
Simplify your Life with Message Extensions in iOS 10Simplify your Life with Message Extensions in iOS 10
Simplify your Life with Message Extensions in iOS 10
 
Taming the Massive View Controllers
Taming the Massive View ControllersTaming the Massive View Controllers
Taming the Massive View Controllers
 

Último

Caso de exito Cirrus - Hospital La Salle
Caso de exito Cirrus - Hospital La SalleCaso de exito Cirrus - Hospital La Salle
Caso de exito Cirrus - Hospital La Salle
Ecaresoft Inc.
 
PitchCollabART uniendo talentos, creando maravillas digitales
PitchCollabART uniendo talentos, creando maravillas digitalesPitchCollabART uniendo talentos, creando maravillas digitales
PitchCollabART uniendo talentos, creando maravillas digitales
juanorejuela499
 
Introducción_a_las_APIs_y_Desarrollo_Back-end-Abbie Dominguez Girondo.pdf
Introducción_a_las_APIs_y_Desarrollo_Back-end-Abbie Dominguez Girondo.pdfIntroducción_a_las_APIs_y_Desarrollo_Back-end-Abbie Dominguez Girondo.pdf
Introducción_a_las_APIs_y_Desarrollo_Back-end-Abbie Dominguez Girondo.pdf
AbbieDominguezGirond
 
Escaneo y eliminación de malware en el equipo
Escaneo y eliminación de malware en el equipoEscaneo y eliminación de malware en el equipo
Escaneo y eliminación de malware en el equipo
nicromante2000
 
CONCEPTOS DE PROGRAMACION CUALQUIER LENGUAJE
CONCEPTOS DE PROGRAMACION CUALQUIER LENGUAJECONCEPTOS DE PROGRAMACION CUALQUIER LENGUAJE
CONCEPTOS DE PROGRAMACION CUALQUIER LENGUAJE
SamuelGampley
 
Maquina de Dibujo y Escritura Automática.pdf
Maquina de Dibujo y Escritura Automática.pdfMaquina de Dibujo y Escritura Automática.pdf
Maquina de Dibujo y Escritura Automática.pdf
juanjosebarreiro704
 

Último (6)

Caso de exito Cirrus - Hospital La Salle
Caso de exito Cirrus - Hospital La SalleCaso de exito Cirrus - Hospital La Salle
Caso de exito Cirrus - Hospital La Salle
 
PitchCollabART uniendo talentos, creando maravillas digitales
PitchCollabART uniendo talentos, creando maravillas digitalesPitchCollabART uniendo talentos, creando maravillas digitales
PitchCollabART uniendo talentos, creando maravillas digitales
 
Introducción_a_las_APIs_y_Desarrollo_Back-end-Abbie Dominguez Girondo.pdf
Introducción_a_las_APIs_y_Desarrollo_Back-end-Abbie Dominguez Girondo.pdfIntroducción_a_las_APIs_y_Desarrollo_Back-end-Abbie Dominguez Girondo.pdf
Introducción_a_las_APIs_y_Desarrollo_Back-end-Abbie Dominguez Girondo.pdf
 
Escaneo y eliminación de malware en el equipo
Escaneo y eliminación de malware en el equipoEscaneo y eliminación de malware en el equipo
Escaneo y eliminación de malware en el equipo
 
CONCEPTOS DE PROGRAMACION CUALQUIER LENGUAJE
CONCEPTOS DE PROGRAMACION CUALQUIER LENGUAJECONCEPTOS DE PROGRAMACION CUALQUIER LENGUAJE
CONCEPTOS DE PROGRAMACION CUALQUIER LENGUAJE
 
Maquina de Dibujo y Escritura Automática.pdf
Maquina de Dibujo y Escritura Automática.pdfMaquina de Dibujo y Escritura Automática.pdf
Maquina de Dibujo y Escritura Automática.pdf
 

Unit Testing en iOS

  • 2. ¿Te ha pasado que...? ● Al reescribir código quieres asegurarte de que todo funciona ● No estas seguro si tu arquitectura es correcta ● Quieres que tu código sea bug free
  • 3. ¿Te ha pasado que...? ● Heredas código y al hacerle cambios ruegas a todos los dioses paganos para que algo no se rompa
  • 4. ¿Para qué hacemos pruebas automáticas? ● Probar que el código funcione ● Prevenir bugs y errores de regresión ● Ayuda a pensar sobre interacciones en tu código ● Escribir documentación viviente Creas código mantenible
  • 5. ¿Qué debo probar? 1. Lo nuevo 2. La funcionalidad central 3. Flujos de UI más comunes 4. Límites
  • 6. ¿Cómo es una buena prueba? ● Rápida ● Aislada ● Repetible ● Auto validada
  • 7. ¿Qué herramienta uso para hacer pruebas?
  • 9. Verifica tu arquitectura ● ¿Las responsabilidades de las clases y métodos en tu aplicación están bien definidas? ● Elimina acoplamiento de código
  • 10. “Si no puedes probar algo fácilmente, tienes un error en tu arquitectura” Uncle Bob
  • 11. Red, green & refactor ● Escribe una prueba ● Provoca un fallo a la prueba (inputs) ● Provoca que la prueba pase (inputs) ● Refactoriza tu prueba
  • 12. Ventajas y desventajas ● Seguridad de que todo funciona ● Identificación de errores de regresión ● Seguridad al ejecutar cambios ● Mejor calidad de código ● Sólo se escriben una vez
  • 13. Desventajas ● Mayor tiempo al desarrollar algo ● En caso de no tener es muy largo escribir pruebas ● Proceso “tedioso y aburrido”
  • 15. “QA no debe encontrar nada, ellos no son tu detector de errores” Uncle Bob