SlideShare a Scribd company logo
1 of 27
CURSO DE TESTING OSL
        12 – 16 DE ABRIL 2010



                        Introducción


Alberto Perdomo

Web:       http://albertoperdomo.net
Email:     alberto.perdomo@aentos.es
Twitter:   @albertoperdomo             http://www.aentos.com
SOBRE MÍ: CONTACTO
Email:
alberto.perdomo@aentos.es


Twitter:
@albertoperdomo


WEB:
 http://albertoperdomo.net
 http://www.aentos.com
SOBRE MÍ: TRAYECTORIA
  Uni Karlsruhe, Alemania
  Ing. Electrónica y Tecnología                        FOTON,
  de la Información                                    LAS PALMAS

                                     MEDIA LAB                      AENTOS,
                                     EUROPE, IRLANDA                LAS PALMAS



1996                                2003           2005         2007
                      DEPt.
  DEPt. TEST de       SOFTWARE
  SISTEMA -           VEHICULOS -   PFC
  SIEMENS             MERCEDES,
  AUTOMATIZACION      ALEMANIA




  PASCAL     JAVA                                      PYTHON
        C/C++               C/C++          C/C++          RUBY / RUBY ON RAILS

1996                                2003           2005         2007
EL TÉRMINO “BUG” I
“It has been just so in all of my inventions. The frst
step is an intuition, and comes with a burst, then
difculties arise — this thing gives out and [it is] then
that 'Bugs' — as such little faults and difculties are
called — show themselves and months of intense
watching, study and labor are requisite before
commercial success or failure is certainly reached.”

Thomas Edison, 1878
EL TÉRMINO “BUG” II

→ 9 de Septiembre de 1945
→ Universidad de Harvard
→ Los operadores retiran una
polilla de uno de los relés del
calculador “Mark II Aiken”.
→ “First actual case of bug being
found”.
EL CASO ARIANE 5
→ 4 de Junio de 1996
→ Vuelo 501 del cohete Ariane 5
→ 40 segundos después de entrar en
secuencia de vuelo el Ariane 5 se
autodestruye a una altura de 3700m
→ Motivos: análisis y pruebas
insufcientes del sistema de referencia
inercial y el sistema de control de
vuelo.
→ Causa: conversión de un número
demasiado grande → “overfow”
EL TIEMPO QUE INVERTIMOS EN
      BUSCAR ERRORES

 “If you look at how most programmers spend their time, you'll fnd that writing
 code is actually a small fraction. Some time is spent fguring out what ought to be
 going on, some time is spent designing, but most time is spent debugging. […]
 Fixing the bug is usually pretty quick, but fnding it is a nightmare.”

 Refactoring, Martin Fowler [Ref]
EL COSTE DE LOS ERRORES
                                                                  150x
                                      [AOOP]
COSTE RELATIVO DE ARREGLAR UN ERROR




                                                          10x

                                                 5x
                                         1x

                                        REQ.   DISEÑO   IMPLEM.   OPER.
EL PROCESO DEL DESARROLLO
         CLÁSICO
REQUISITOS



             DISEÑO



                      IMPLEMENTACIÓN



                                  PRUEBAS / VALIDACIÓN



                                                  MANTENIMIENTO
EL MANIFIESTO ÁGIL
4 Principios:
   → Valorar más a los individuos y su interacción que a
   los procesos y las herramientas

   → Valorar más el software que funciona que la
   documentación exhaustiva

   → Valorar más la colaboración con el cliente que la
   negociación contractual

   → Valorar más la respuesta al cambio que el
   seguimiento de un plan
DESARROLLO WEB ÁGIL
 FUNCIONALIDAD n        FUNCIONALIDAD n+1



      DISEÑO                 DISEÑO




  IMPLEMENTACIÓN         IMPLEMENTACIÓN




PRUEBAS / VALIDACIÓN   PRUEBAS / VALIDACIÓN



    DESPLIEGUE             DESPLIEGUE
¿QUÉ ES EL TESTING? I
             Testing = Pruebas de software
Preguntas:

  → ¿El código que acabo de escribir funciona bien?

  → ¿El software hace lo que el cliente desea?

  → ¿El software continúa funcionando bien después del
  último cambio que he introducido?
¿QUÉ ES EL TESTING? II
Objetivos
  → Detectar errores (cuanto antes mejor)

  → Validar que el software hace lo que debe

  → Especifcación

  → Confanza y seguridad

  → Ahorrar tiempo de trabajo
TIPOS DE PRUEBAS

                   de integración
 de sistema    de carga

   unitarias              de validación

de regresión   de aceptación
                           funcionales
TIPOS DE PRUEBAS: UNITARIAS

prueban el correcto funcionamiento de un módulo de código




                           CLASE
 DATOS DE PRUEBA                          RESULTADOS
                                                       ÁREA: 7
                     P. EJ. MÉTODO ÁREA
    LADO A: 2        DE UN RECTÁNGULO

                                                        ≠
    LADO B: 4
                                                =?
                   RESULTADOS ESPERADOS
                                                       ÁREA: 8
TIPOS DE PRUEBAS: DE
          ACEPTACIÓN
prueban el comportamiento desde el punto de vista del
cliente

            Scenario: Login with correct credentials
                When I go to the login page
                And I fill in "Login" with "manfred"
                And I fill in "Password" with "gurke"
                And I press "Login"
                Then I should see "Logged in"
                And I should be on the homepage

              Scenario: Login with incorrect credentials
                When I go to the login page
                And I fill in "Login" with "manfred"
                And I fill in "Password" with "tomate"
                And I press "Login"
                Then I should see "Wrong username/password"
                And I should be on the login page
TIPOS DE PRUEBAS: DE
         REGRESIÓN

Regresión
  → error ya resuelto que vuelve a aparecer


Funcionamiento
  → cuando surge un error escribes una prueba para
  demostrar que falla y arreglas el error. La prueba
  garantizará que el error no vuelva a aparecer
TIPOS DE PRUEBAS: DE CARGA

→ ¿Cómo responderá el sistema cuando entre en producción
con 25.000 usuarios y 50.000 visitas diarias?


→ ¿Cuáles son los cuellos de botella?


→ ¿Que partes de la aplicación hay que optimizar?
PRUEBAS MANUALES

→ Repetir todas las pruebas en cada despliegue
→ Consumen mucho tiempo
→ Aburridas y mecánicas




“Monkey testing”
PRUEBAS AUTOMATIZADAS

¿Por qué?
  → Tiempo = $$$
  → Automatizar = Ahorrar tiempo = Ahorrar $$$


Deben ser
  → Reusables = rentables
  → Robustas para que no se dañen con facilidad al modifcar
  el código
PRUEBAS AUTOMATIZADAS vs
       MANUALES

Automatizadas más rentables con el tiempo → Reusables



 Coste $$$




                                            Tiempo
PRUEBAS AUTOMATIZADAS vs
      MANUALES II
Ejemplo: Probar manualmente un formulario de registro


                    Probar 1 vez         Probar 50 veces



Manual               2-4 minutos         100 a 200 minutos


                   5 – 30 minutos          ~ 5 – 30 minutos
                   (escribir el test)      (escribir el test)
Automatizada           10 seg.                     +
                     (ejecutarlo)             8 minutos
                                        (ejecutarlo 50 veces)
REFACTORIZAR CÓDIGO
Cambiar el diseño SIN cambiar el comportamiento
→ Usualmente motivado por el “mal olor” del código




Objetivos:
   → Aumentar la legibilidad
   → Reducir la complejidad
   → Mejorar la mantenibilidad
PRUEBAS: CONFIANZA Y
         SEGURIDAD
Sentirnos seguros
  → de que lo estamos haciendo bien
  → poder refactorizar


Sentir y dar confanza a los demás
  → funcionamiento correcto demostrable
PRUEBAS: ESPECIFICACIÓN

Las pruebas defnen cómo se debe comportar el código y la
aplicación


  → Las pruebas sirven como especifcación


  → Cuando un nuevo desarrollador se incorpora al equipo o
  toma el relevo tiene las pruebas y conoce el
  comportamiento deseado
¿QUIERES SER UN COWBOY?
LOS PISTOLEROS DISPARAN SIN PESTAÑEAR Y
SIEMPRE SE LA JUEGAN
¿PREGUNTAS?

Video: Waterfall vs. Agile

More Related Content

What's hot (20)

Comandos java
Comandos javaComandos java
Comandos java
 
Comandos de Java
Comandos de JavaComandos de Java
Comandos de Java
 
Comandos Java
Comandos JavaComandos Java
Comandos Java
 
Toi Tdd 20080409
Toi Tdd 20080409Toi Tdd 20080409
Toi Tdd 20080409
 
Clean Code (Presentacion interna en Virtual Software)
Clean Code (Presentacion interna en Virtual Software)Clean Code (Presentacion interna en Virtual Software)
Clean Code (Presentacion interna en Virtual Software)
 
Semana 4 Introduccion Javascript
Semana 4   Introduccion JavascriptSemana 4   Introduccion Javascript
Semana 4 Introduccion Javascript
 
Lenguaje javascript
Lenguaje javascriptLenguaje javascript
Lenguaje javascript
 
Unidad 5: Excepciones Ejercicio 3
Unidad 5: Excepciones Ejercicio 3Unidad 5: Excepciones Ejercicio 3
Unidad 5: Excepciones Ejercicio 3
 
Best Practices
Best PracticesBest Practices
Best Practices
 
Pruebas de aceptación 15 11_2013
Pruebas de aceptación 15 11_2013Pruebas de aceptación 15 11_2013
Pruebas de aceptación 15 11_2013
 
Curso TDD Ruby on Rails #06: Mocks y stubs
Curso TDD Ruby on Rails #06: Mocks y stubsCurso TDD Ruby on Rails #06: Mocks y stubs
Curso TDD Ruby on Rails #06: Mocks y stubs
 
Clase n°1 java
Clase n°1 javaClase n°1 java
Clase n°1 java
 
Mod2ud2 1
Mod2ud2 1Mod2ud2 1
Mod2ud2 1
 
Compendio de clean code (robert c. martin)
Compendio de clean code (robert c. martin)Compendio de clean code (robert c. martin)
Compendio de clean code (robert c. martin)
 
Tdd
TddTdd
Tdd
 
Lenguaje de programacion
Lenguaje de programacionLenguaje de programacion
Lenguaje de programacion
 
SCJP, Clase 8: Inner Classes
SCJP, Clase 8: Inner ClassesSCJP, Clase 8: Inner Classes
SCJP, Clase 8: Inner Classes
 
Semana 1 Estructuras de Datos en Java
Semana 1   Estructuras de Datos en JavaSemana 1   Estructuras de Datos en Java
Semana 1 Estructuras de Datos en Java
 
Operadores
OperadoresOperadores
Operadores
 
Ejercicios resueltos de_pl-sql
Ejercicios resueltos de_pl-sqlEjercicios resueltos de_pl-sql
Ejercicios resueltos de_pl-sql
 

Viewers also liked

Curso de Ruby on Rails
Curso de Ruby on RailsCurso de Ruby on Rails
Curso de Ruby on RailsASPgems
 
Curso de Ruby on Rails para el Master de Deusto. Día 2
Curso de Ruby on Rails para el Master de Deusto. Día 2Curso de Ruby on Rails para el Master de Deusto. Día 2
Curso de Ruby on Rails para el Master de Deusto. Día 2estialvarez
 
05 well testing trisakti 25 nov 2007
05 well testing   trisakti 25 nov 200705 well testing   trisakti 25 nov 2007
05 well testing trisakti 25 nov 2007yudi05
 
Curso de Ruby on Rails para el Master de Deusto
Curso de Ruby on Rails para el Master de DeustoCurso de Ruby on Rails para el Master de Deusto
Curso de Ruby on Rails para el Master de Deustoestialvarez
 
Desarrollo de Aplicaciones con Ruby on Rails y PostgreSQL
Desarrollo de Aplicaciones con Ruby on Rails y PostgreSQLDesarrollo de Aplicaciones con Ruby on Rails y PostgreSQL
Desarrollo de Aplicaciones con Ruby on Rails y PostgreSQLJosé Alfredo Ramírez
 
Ruby Mola (y por qué)
Ruby Mola (y por qué)Ruby Mola (y por qué)
Ruby Mola (y por qué)Sergio Gil
 
Curso de introdução ao ruby
Curso de introdução ao rubyCurso de introdução ao ruby
Curso de introdução ao rubyFrancis Wagner
 
Desarrollo Ágil y Ruby on Rails
Desarrollo Ágil y Ruby on RailsDesarrollo Ágil y Ruby on Rails
Desarrollo Ágil y Ruby on RailsErnesto Jiménez
 
Conviértete en un desarrollador web front-end
Conviértete en un desarrollador web front-endConviértete en un desarrollador web front-end
Conviértete en un desarrollador web front-endvideo2brain_mx
 
Sass: CSS con Superpoderes
Sass: CSS con SuperpoderesSass: CSS con Superpoderes
Sass: CSS con SuperpoderesEdgar Parada
 
Jose Rojas Desarrollo Rapido de Aplicaciones con RoR
Jose Rojas Desarrollo Rapido de Aplicaciones con RoRJose Rojas Desarrollo Rapido de Aplicaciones con RoR
Jose Rojas Desarrollo Rapido de Aplicaciones con RoRJose Rojas
 
Desarrollo Agil con Ruby Y Rails
Desarrollo Agil con Ruby Y RailsDesarrollo Agil con Ruby Y Rails
Desarrollo Agil con Ruby Y RailsFran Diéguez
 
CSS Preprocessors - Sass
CSS Preprocessors - SassCSS Preprocessors - Sass
CSS Preprocessors - SassLourdes Montano
 
Pre-procesadores CSS. SASS
Pre-procesadores CSS. SASSPre-procesadores CSS. SASS
Pre-procesadores CSS. SASSMarionaCruz
 
Uso de las Infraestructuras de Datos Espaciales en Astronomía
Uso de las Infraestructuras de Datos Espaciales en AstronomíaUso de las Infraestructuras de Datos Espaciales en Astronomía
Uso de las Infraestructuras de Datos Espaciales en AstronomíaJose Gomez Castaño
 

Viewers also liked (20)

Curso de Ruby on Rails
Curso de Ruby on RailsCurso de Ruby on Rails
Curso de Ruby on Rails
 
Taller ruby
Taller rubyTaller ruby
Taller ruby
 
Curso de Ruby on Rails para el Master de Deusto. Día 2
Curso de Ruby on Rails para el Master de Deusto. Día 2Curso de Ruby on Rails para el Master de Deusto. Día 2
Curso de Ruby on Rails para el Master de Deusto. Día 2
 
Ruby Facil
Ruby FacilRuby Facil
Ruby Facil
 
05 well testing trisakti 25 nov 2007
05 well testing   trisakti 25 nov 200705 well testing   trisakti 25 nov 2007
05 well testing trisakti 25 nov 2007
 
Curso de Ruby on Rails para el Master de Deusto
Curso de Ruby on Rails para el Master de DeustoCurso de Ruby on Rails para el Master de Deusto
Curso de Ruby on Rails para el Master de Deusto
 
Ruby On Rails (Parte 1. Introducción)
Ruby On Rails (Parte 1. Introducción)Ruby On Rails (Parte 1. Introducción)
Ruby On Rails (Parte 1. Introducción)
 
Desarrollo de Aplicaciones con Ruby on Rails y PostgreSQL
Desarrollo de Aplicaciones con Ruby on Rails y PostgreSQLDesarrollo de Aplicaciones con Ruby on Rails y PostgreSQL
Desarrollo de Aplicaciones con Ruby on Rails y PostgreSQL
 
Ruby Mola (y por qué)
Ruby Mola (y por qué)Ruby Mola (y por qué)
Ruby Mola (y por qué)
 
Ruby On Rails (Parte II))
Ruby On Rails (Parte II))Ruby On Rails (Parte II))
Ruby On Rails (Parte II))
 
Curso de introdução ao ruby
Curso de introdução ao rubyCurso de introdução ao ruby
Curso de introdução ao ruby
 
Desarrollo Ágil y Ruby on Rails
Desarrollo Ágil y Ruby on RailsDesarrollo Ágil y Ruby on Rails
Desarrollo Ágil y Ruby on Rails
 
Conviértete en un desarrollador web front-end
Conviértete en un desarrollador web front-endConviértete en un desarrollador web front-end
Conviértete en un desarrollador web front-end
 
Sass: CSS con Superpoderes
Sass: CSS con SuperpoderesSass: CSS con Superpoderes
Sass: CSS con Superpoderes
 
Jose Rojas Desarrollo Rapido de Aplicaciones con RoR
Jose Rojas Desarrollo Rapido de Aplicaciones con RoRJose Rojas Desarrollo Rapido de Aplicaciones con RoR
Jose Rojas Desarrollo Rapido de Aplicaciones con RoR
 
Desarrollo Agil con Ruby Y Rails
Desarrollo Agil con Ruby Y RailsDesarrollo Agil con Ruby Y Rails
Desarrollo Agil con Ruby Y Rails
 
CSS Preprocessors - Sass
CSS Preprocessors - SassCSS Preprocessors - Sass
CSS Preprocessors - Sass
 
Pre-procesadores CSS. SASS
Pre-procesadores CSS. SASSPre-procesadores CSS. SASS
Pre-procesadores CSS. SASS
 
Uso de las Infraestructuras de Datos Espaciales en Astronomía
Uso de las Infraestructuras de Datos Espaciales en AstronomíaUso de las Infraestructuras de Datos Espaciales en Astronomía
Uso de las Infraestructuras de Datos Espaciales en Astronomía
 
Ruby intro
Ruby introRuby intro
Ruby intro
 

Similar to Curso TDD Ruby on Rails #01: Introducción al testing

Semana xiii.i
 Semana xiii.i Semana xiii.i
Semana xiii.ielssalinas
 
Retos en la Adopción del Refactoring - Junta General del MexALN 28/06/2012
Retos en la Adopción del Refactoring - Junta General del MexALN 28/06/2012Retos en la Adopción del Refactoring - Junta General del MexALN 28/06/2012
Retos en la Adopción del Refactoring - Junta General del MexALN 28/06/2012Alfredo Chavez
 
Testing en aplicaciones móviles iOS, Android
Testing en aplicaciones móviles iOS, AndroidTesting en aplicaciones móviles iOS, Android
Testing en aplicaciones móviles iOS, AndroidSlashMobility.com
 
Analisis de Usabilidad GOMS: Goals, Objectives, Method, Selection of rules.
Analisis de Usabilidad GOMS: Goals, Objectives, Method, Selection of rules.Analisis de Usabilidad GOMS: Goals, Objectives, Method, Selection of rules.
Analisis de Usabilidad GOMS: Goals, Objectives, Method, Selection of rules.Sole Moris
 
Meetup: Sesion #1 Unit Testing & Simian Army
Meetup: Sesion #1 Unit Testing & Simian ArmyMeetup: Sesion #1 Unit Testing & Simian Army
Meetup: Sesion #1 Unit Testing & Simian ArmyOsvaldo Mercado Coss
 
Retos en la Adopción del Refactoring - Junta General del MexALN 28/06/2012
Retos en la Adopción del Refactoring -  Junta General del MexALN 28/06/2012Retos en la Adopción del Refactoring -  Junta General del MexALN 28/06/2012
Retos en la Adopción del Refactoring - Junta General del MexALN 28/06/2012Alfredo Chavez
 
Testing & Pizza by Lito & nitsnets
Testing & Pizza by Lito & nitsnetsTesting & Pizza by Lito & nitsnets
Testing & Pizza by Lito & nitsnetseusonlito
 
Cas 2017 bdd-colaborando_de_verdad_con_negocio
Cas 2017 bdd-colaborando_de_verdad_con_negocioCas 2017 bdd-colaborando_de_verdad_con_negocio
Cas 2017 bdd-colaborando_de_verdad_con_negocioEduardo Riol
 
Charla Tdd Uji 032010
Charla Tdd Uji 032010Charla Tdd Uji 032010
Charla Tdd Uji 032010Carlos Ble
 
Abstracta-CDA - TESTING: Automatización y Performance - Herramientas para opt...
Abstracta-CDA - TESTING: Automatización y Performance - Herramientas para opt...Abstracta-CDA - TESTING: Automatización y Performance - Herramientas para opt...
Abstracta-CDA - TESTING: Automatización y Performance - Herramientas para opt...Abstracta
 
Unidad 1 verificacion y-validacion
Unidad 1 verificacion y-validacionUnidad 1 verificacion y-validacion
Unidad 1 verificacion y-validacionJorge Daza Gómez
 
Code Blast 2012 - Node.js
Code Blast 2012 - Node.jsCode Blast 2012 - Node.js
Code Blast 2012 - Node.jsINSIGNIA4U
 
Curso TDD Ruby on Rails #02: Test Driven Development
Curso TDD  Ruby on Rails #02: Test Driven DevelopmentCurso TDD  Ruby on Rails #02: Test Driven Development
Curso TDD Ruby on Rails #02: Test Driven DevelopmentAlberto Perdomo
 
Tema6 pruebas del software
Tema6 pruebas del softwareTema6 pruebas del software
Tema6 pruebas del softwareSusita Paguay
 

Similar to Curso TDD Ruby on Rails #01: Introducción al testing (20)

Semana xiii.i
 Semana xiii.i Semana xiii.i
Semana xiii.i
 
Retos en la Adopción del Refactoring - Junta General del MexALN 28/06/2012
Retos en la Adopción del Refactoring - Junta General del MexALN 28/06/2012Retos en la Adopción del Refactoring - Junta General del MexALN 28/06/2012
Retos en la Adopción del Refactoring - Junta General del MexALN 28/06/2012
 
Testing, tipos y otros flamewars
Testing, tipos y otros flamewarsTesting, tipos y otros flamewars
Testing, tipos y otros flamewars
 
Workshop Calabash Appium
Workshop Calabash AppiumWorkshop Calabash Appium
Workshop Calabash Appium
 
Testing en aplicaciones móviles iOS, Android
Testing en aplicaciones móviles iOS, AndroidTesting en aplicaciones móviles iOS, Android
Testing en aplicaciones móviles iOS, Android
 
Analisis de Usabilidad GOMS: Goals, Objectives, Method, Selection of rules.
Analisis de Usabilidad GOMS: Goals, Objectives, Method, Selection of rules.Analisis de Usabilidad GOMS: Goals, Objectives, Method, Selection of rules.
Analisis de Usabilidad GOMS: Goals, Objectives, Method, Selection of rules.
 
Meetup: Sesion #1 Unit Testing & Simian Army
Meetup: Sesion #1 Unit Testing & Simian ArmyMeetup: Sesion #1 Unit Testing & Simian Army
Meetup: Sesion #1 Unit Testing & Simian Army
 
Workshop calabash appium
Workshop calabash appiumWorkshop calabash appium
Workshop calabash appium
 
Retos en la Adopción del Refactoring - Junta General del MexALN 28/06/2012
Retos en la Adopción del Refactoring -  Junta General del MexALN 28/06/2012Retos en la Adopción del Refactoring -  Junta General del MexALN 28/06/2012
Retos en la Adopción del Refactoring - Junta General del MexALN 28/06/2012
 
Testing & Pizza by Lito & nitsnets
Testing & Pizza by Lito & nitsnetsTesting & Pizza by Lito & nitsnets
Testing & Pizza by Lito & nitsnets
 
ejemplos.pdf
ejemplos.pdfejemplos.pdf
ejemplos.pdf
 
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
 
Cas 2017 bdd-colaborando_de_verdad_con_negocio
Cas 2017 bdd-colaborando_de_verdad_con_negocioCas 2017 bdd-colaborando_de_verdad_con_negocio
Cas 2017 bdd-colaborando_de_verdad_con_negocio
 
Charla Tdd Uji 032010
Charla Tdd Uji 032010Charla Tdd Uji 032010
Charla Tdd Uji 032010
 
Abstracta-CDA - TESTING: Automatización y Performance - Herramientas para opt...
Abstracta-CDA - TESTING: Automatización y Performance - Herramientas para opt...Abstracta-CDA - TESTING: Automatización y Performance - Herramientas para opt...
Abstracta-CDA - TESTING: Automatización y Performance - Herramientas para opt...
 
Unidad 1 verificacion y-validacion
Unidad 1 verificacion y-validacionUnidad 1 verificacion y-validacion
Unidad 1 verificacion y-validacion
 
Hola
HolaHola
Hola
 
Code Blast 2012 - Node.js
Code Blast 2012 - Node.jsCode Blast 2012 - Node.js
Code Blast 2012 - Node.js
 
Curso TDD Ruby on Rails #02: Test Driven Development
Curso TDD  Ruby on Rails #02: Test Driven DevelopmentCurso TDD  Ruby on Rails #02: Test Driven Development
Curso TDD Ruby on Rails #02: Test Driven Development
 
Tema6 pruebas del software
Tema6 pruebas del softwareTema6 pruebas del software
Tema6 pruebas del software
 

More from Alberto Perdomo

Primeros pasos con la base de datos de grafos Neo4j
Primeros pasos con la base de datos de grafos Neo4jPrimeros pasos con la base de datos de grafos Neo4j
Primeros pasos con la base de datos de grafos Neo4jAlberto Perdomo
 
Leveraging relations at scale with Neo4j
Leveraging relations at scale with Neo4jLeveraging relations at scale with Neo4j
Leveraging relations at scale with Neo4jAlberto Perdomo
 
Squire: A polyglot application combining Neo4j, MongoDB, Ruby and Scala @ FOS...
Squire: A polyglot application combining Neo4j, MongoDB, Ruby and Scala @ FOS...Squire: A polyglot application combining Neo4j, MongoDB, Ruby and Scala @ FOS...
Squire: A polyglot application combining Neo4j, MongoDB, Ruby and Scala @ FOS...Alberto Perdomo
 
Rails for Mobile Devices @ Conferencia Rails 2011
Rails for Mobile Devices @ Conferencia Rails 2011Rails for Mobile Devices @ Conferencia Rails 2011
Rails for Mobile Devices @ Conferencia Rails 2011Alberto Perdomo
 
Boost your productivity!: Productivity tips for rails developers - Lightning ...
Boost your productivity!: Productivity tips for rails developers - Lightning ...Boost your productivity!: Productivity tips for rails developers - Lightning ...
Boost your productivity!: Productivity tips for rails developers - Lightning ...Alberto Perdomo
 
Strangers In The Night: Ruby, Rack y Sinatra - Herramientas potentes para con...
Strangers In The Night: Ruby, Rack y Sinatra - Herramientas potentes para con...Strangers In The Night: Ruby, Rack y Sinatra - Herramientas potentes para con...
Strangers In The Night: Ruby, Rack y Sinatra - Herramientas potentes para con...Alberto Perdomo
 
Curso TDD Ruby on Rails #08: Buenas prácticas
Curso TDD Ruby on Rails #08: Buenas prácticasCurso TDD Ruby on Rails #08: Buenas prácticas
Curso TDD Ruby on Rails #08: Buenas prácticasAlberto Perdomo
 
Curso TDD Ruby on Rails #05: Shoulda
Curso TDD Ruby on Rails #05: ShouldaCurso TDD Ruby on Rails #05: Shoulda
Curso TDD Ruby on Rails #05: ShouldaAlberto Perdomo
 
Plugins de autenticación en Rails - Lightning talk Las Palmas On Rails 09/02/...
Plugins de autenticación en Rails - Lightning talk Las Palmas On Rails 09/02/...Plugins de autenticación en Rails - Lightning talk Las Palmas On Rails 09/02/...
Plugins de autenticación en Rails - Lightning talk Las Palmas On Rails 09/02/...Alberto Perdomo
 

More from Alberto Perdomo (9)

Primeros pasos con la base de datos de grafos Neo4j
Primeros pasos con la base de datos de grafos Neo4jPrimeros pasos con la base de datos de grafos Neo4j
Primeros pasos con la base de datos de grafos Neo4j
 
Leveraging relations at scale with Neo4j
Leveraging relations at scale with Neo4jLeveraging relations at scale with Neo4j
Leveraging relations at scale with Neo4j
 
Squire: A polyglot application combining Neo4j, MongoDB, Ruby and Scala @ FOS...
Squire: A polyglot application combining Neo4j, MongoDB, Ruby and Scala @ FOS...Squire: A polyglot application combining Neo4j, MongoDB, Ruby and Scala @ FOS...
Squire: A polyglot application combining Neo4j, MongoDB, Ruby and Scala @ FOS...
 
Rails for Mobile Devices @ Conferencia Rails 2011
Rails for Mobile Devices @ Conferencia Rails 2011Rails for Mobile Devices @ Conferencia Rails 2011
Rails for Mobile Devices @ Conferencia Rails 2011
 
Boost your productivity!: Productivity tips for rails developers - Lightning ...
Boost your productivity!: Productivity tips for rails developers - Lightning ...Boost your productivity!: Productivity tips for rails developers - Lightning ...
Boost your productivity!: Productivity tips for rails developers - Lightning ...
 
Strangers In The Night: Ruby, Rack y Sinatra - Herramientas potentes para con...
Strangers In The Night: Ruby, Rack y Sinatra - Herramientas potentes para con...Strangers In The Night: Ruby, Rack y Sinatra - Herramientas potentes para con...
Strangers In The Night: Ruby, Rack y Sinatra - Herramientas potentes para con...
 
Curso TDD Ruby on Rails #08: Buenas prácticas
Curso TDD Ruby on Rails #08: Buenas prácticasCurso TDD Ruby on Rails #08: Buenas prácticas
Curso TDD Ruby on Rails #08: Buenas prácticas
 
Curso TDD Ruby on Rails #05: Shoulda
Curso TDD Ruby on Rails #05: ShouldaCurso TDD Ruby on Rails #05: Shoulda
Curso TDD Ruby on Rails #05: Shoulda
 
Plugins de autenticación en Rails - Lightning talk Las Palmas On Rails 09/02/...
Plugins de autenticación en Rails - Lightning talk Las Palmas On Rails 09/02/...Plugins de autenticación en Rails - Lightning talk Las Palmas On Rails 09/02/...
Plugins de autenticación en Rails - Lightning talk Las Palmas On Rails 09/02/...
 

Recently uploaded

trabajotecologiaisabella-240424003133-8f126965.pdf
trabajotecologiaisabella-240424003133-8f126965.pdftrabajotecologiaisabella-240424003133-8f126965.pdf
trabajotecologiaisabella-240424003133-8f126965.pdfIsabellaMontaomurill
 
Presentación guía sencilla en Microsoft Excel.pptx
Presentación guía sencilla en Microsoft Excel.pptxPresentación guía sencilla en Microsoft Excel.pptx
Presentación guía sencilla en Microsoft Excel.pptxLolaBunny11
 
pruebas unitarias unitarias en java con JUNIT
pruebas unitarias unitarias en java con JUNITpruebas unitarias unitarias en java con JUNIT
pruebas unitarias unitarias en java con JUNITMaricarmen Sánchez Ruiz
 
Redes direccionamiento y subredes ipv4 2024 .pdf
Redes direccionamiento y subredes ipv4 2024 .pdfRedes direccionamiento y subredes ipv4 2024 .pdf
Redes direccionamiento y subredes ipv4 2024 .pdfsoporteupcology
 
9egb-lengua y Literatura.pdf_texto del estudiante
9egb-lengua y Literatura.pdf_texto del estudiante9egb-lengua y Literatura.pdf_texto del estudiante
9egb-lengua y Literatura.pdf_texto del estudianteAndreaHuertas24
 
POWER POINT YUCRAElabore una PRESENTACIÓN CORTA sobre el video película: La C...
POWER POINT YUCRAElabore una PRESENTACIÓN CORTA sobre el video película: La C...POWER POINT YUCRAElabore una PRESENTACIÓN CORTA sobre el video película: La C...
POWER POINT YUCRAElabore una PRESENTACIÓN CORTA sobre el video película: La C...silviayucra2
 
KELA Presentacion Costa Rica 2024 - evento Protégeles
KELA Presentacion Costa Rica 2024 - evento ProtégelesKELA Presentacion Costa Rica 2024 - evento Protégeles
KELA Presentacion Costa Rica 2024 - evento ProtégelesFundación YOD YOD
 
guía de registro de slideshare por Brayan Joseph
guía de registro de slideshare por Brayan Josephguía de registro de slideshare por Brayan Joseph
guía de registro de slideshare por Brayan JosephBRAYANJOSEPHPEREZGOM
 
Herramientas de corte de alta velocidad.pptx
Herramientas de corte de alta velocidad.pptxHerramientas de corte de alta velocidad.pptx
Herramientas de corte de alta velocidad.pptxRogerPrieto3
 
International Women's Day Sucre 2024 (IWD)
International Women's Day Sucre 2024 (IWD)International Women's Day Sucre 2024 (IWD)
International Women's Day Sucre 2024 (IWD)GDGSucre
 
CLASE DE TECNOLOGIA E INFORMATICA PRIMARIA
CLASE  DE TECNOLOGIA E INFORMATICA PRIMARIACLASE  DE TECNOLOGIA E INFORMATICA PRIMARIA
CLASE DE TECNOLOGIA E INFORMATICA PRIMARIAWilbisVega
 
Global Azure Lima 2024 - Integración de Datos con Microsoft Fabric
Global Azure Lima 2024 - Integración de Datos con Microsoft FabricGlobal Azure Lima 2024 - Integración de Datos con Microsoft Fabric
Global Azure Lima 2024 - Integración de Datos con Microsoft FabricKeyla Dolores Méndez
 
Proyecto integrador. Las TIC en la sociedad S4.pptx
Proyecto integrador. Las TIC en la sociedad S4.pptxProyecto integrador. Las TIC en la sociedad S4.pptx
Proyecto integrador. Las TIC en la sociedad S4.pptx241521559
 
Trabajo Mas Completo De Excel en clase tecnología
Trabajo Mas Completo De Excel en clase tecnologíaTrabajo Mas Completo De Excel en clase tecnología
Trabajo Mas Completo De Excel en clase tecnologíassuserf18419
 
EPA-pdf resultado da prova presencial Uninove
EPA-pdf resultado da prova presencial UninoveEPA-pdf resultado da prova presencial Uninove
EPA-pdf resultado da prova presencial UninoveFagnerLisboa3
 

Recently uploaded (15)

trabajotecologiaisabella-240424003133-8f126965.pdf
trabajotecologiaisabella-240424003133-8f126965.pdftrabajotecologiaisabella-240424003133-8f126965.pdf
trabajotecologiaisabella-240424003133-8f126965.pdf
 
Presentación guía sencilla en Microsoft Excel.pptx
Presentación guía sencilla en Microsoft Excel.pptxPresentación guía sencilla en Microsoft Excel.pptx
Presentación guía sencilla en Microsoft Excel.pptx
 
pruebas unitarias unitarias en java con JUNIT
pruebas unitarias unitarias en java con JUNITpruebas unitarias unitarias en java con JUNIT
pruebas unitarias unitarias en java con JUNIT
 
Redes direccionamiento y subredes ipv4 2024 .pdf
Redes direccionamiento y subredes ipv4 2024 .pdfRedes direccionamiento y subredes ipv4 2024 .pdf
Redes direccionamiento y subredes ipv4 2024 .pdf
 
9egb-lengua y Literatura.pdf_texto del estudiante
9egb-lengua y Literatura.pdf_texto del estudiante9egb-lengua y Literatura.pdf_texto del estudiante
9egb-lengua y Literatura.pdf_texto del estudiante
 
POWER POINT YUCRAElabore una PRESENTACIÓN CORTA sobre el video película: La C...
POWER POINT YUCRAElabore una PRESENTACIÓN CORTA sobre el video película: La C...POWER POINT YUCRAElabore una PRESENTACIÓN CORTA sobre el video película: La C...
POWER POINT YUCRAElabore una PRESENTACIÓN CORTA sobre el video película: La C...
 
KELA Presentacion Costa Rica 2024 - evento Protégeles
KELA Presentacion Costa Rica 2024 - evento ProtégelesKELA Presentacion Costa Rica 2024 - evento Protégeles
KELA Presentacion Costa Rica 2024 - evento Protégeles
 
guía de registro de slideshare por Brayan Joseph
guía de registro de slideshare por Brayan Josephguía de registro de slideshare por Brayan Joseph
guía de registro de slideshare por Brayan Joseph
 
Herramientas de corte de alta velocidad.pptx
Herramientas de corte de alta velocidad.pptxHerramientas de corte de alta velocidad.pptx
Herramientas de corte de alta velocidad.pptx
 
International Women's Day Sucre 2024 (IWD)
International Women's Day Sucre 2024 (IWD)International Women's Day Sucre 2024 (IWD)
International Women's Day Sucre 2024 (IWD)
 
CLASE DE TECNOLOGIA E INFORMATICA PRIMARIA
CLASE  DE TECNOLOGIA E INFORMATICA PRIMARIACLASE  DE TECNOLOGIA E INFORMATICA PRIMARIA
CLASE DE TECNOLOGIA E INFORMATICA PRIMARIA
 
Global Azure Lima 2024 - Integración de Datos con Microsoft Fabric
Global Azure Lima 2024 - Integración de Datos con Microsoft FabricGlobal Azure Lima 2024 - Integración de Datos con Microsoft Fabric
Global Azure Lima 2024 - Integración de Datos con Microsoft Fabric
 
Proyecto integrador. Las TIC en la sociedad S4.pptx
Proyecto integrador. Las TIC en la sociedad S4.pptxProyecto integrador. Las TIC en la sociedad S4.pptx
Proyecto integrador. Las TIC en la sociedad S4.pptx
 
Trabajo Mas Completo De Excel en clase tecnología
Trabajo Mas Completo De Excel en clase tecnologíaTrabajo Mas Completo De Excel en clase tecnología
Trabajo Mas Completo De Excel en clase tecnología
 
EPA-pdf resultado da prova presencial Uninove
EPA-pdf resultado da prova presencial UninoveEPA-pdf resultado da prova presencial Uninove
EPA-pdf resultado da prova presencial Uninove
 

Curso TDD Ruby on Rails #01: Introducción al testing

  • 1. CURSO DE TESTING OSL 12 – 16 DE ABRIL 2010 Introducción Alberto Perdomo Web: http://albertoperdomo.net Email: alberto.perdomo@aentos.es Twitter: @albertoperdomo http://www.aentos.com
  • 3. SOBRE MÍ: TRAYECTORIA Uni Karlsruhe, Alemania Ing. Electrónica y Tecnología FOTON, de la Información LAS PALMAS MEDIA LAB AENTOS, EUROPE, IRLANDA LAS PALMAS 1996 2003 2005 2007 DEPt. DEPt. TEST de SOFTWARE SISTEMA - VEHICULOS - PFC SIEMENS MERCEDES, AUTOMATIZACION ALEMANIA PASCAL JAVA PYTHON C/C++ C/C++ C/C++ RUBY / RUBY ON RAILS 1996 2003 2005 2007
  • 4. EL TÉRMINO “BUG” I “It has been just so in all of my inventions. The frst step is an intuition, and comes with a burst, then difculties arise — this thing gives out and [it is] then that 'Bugs' — as such little faults and difculties are called — show themselves and months of intense watching, study and labor are requisite before commercial success or failure is certainly reached.” Thomas Edison, 1878
  • 5. EL TÉRMINO “BUG” II → 9 de Septiembre de 1945 → Universidad de Harvard → Los operadores retiran una polilla de uno de los relés del calculador “Mark II Aiken”. → “First actual case of bug being found”.
  • 6. EL CASO ARIANE 5 → 4 de Junio de 1996 → Vuelo 501 del cohete Ariane 5 → 40 segundos después de entrar en secuencia de vuelo el Ariane 5 se autodestruye a una altura de 3700m → Motivos: análisis y pruebas insufcientes del sistema de referencia inercial y el sistema de control de vuelo. → Causa: conversión de un número demasiado grande → “overfow”
  • 7. EL TIEMPO QUE INVERTIMOS EN BUSCAR ERRORES “If you look at how most programmers spend their time, you'll fnd that writing code is actually a small fraction. Some time is spent fguring out what ought to be going on, some time is spent designing, but most time is spent debugging. […] Fixing the bug is usually pretty quick, but fnding it is a nightmare.” Refactoring, Martin Fowler [Ref]
  • 8. EL COSTE DE LOS ERRORES 150x [AOOP] COSTE RELATIVO DE ARREGLAR UN ERROR 10x 5x 1x REQ. DISEÑO IMPLEM. OPER.
  • 9. EL PROCESO DEL DESARROLLO CLÁSICO REQUISITOS DISEÑO IMPLEMENTACIÓN PRUEBAS / VALIDACIÓN MANTENIMIENTO
  • 10. EL MANIFIESTO ÁGIL 4 Principios: → Valorar más a los individuos y su interacción que a los procesos y las herramientas → Valorar más el software que funciona que la documentación exhaustiva → Valorar más la colaboración con el cliente que la negociación contractual → Valorar más la respuesta al cambio que el seguimiento de un plan
  • 11. DESARROLLO WEB ÁGIL FUNCIONALIDAD n FUNCIONALIDAD n+1 DISEÑO DISEÑO IMPLEMENTACIÓN IMPLEMENTACIÓN PRUEBAS / VALIDACIÓN PRUEBAS / VALIDACIÓN DESPLIEGUE DESPLIEGUE
  • 12. ¿QUÉ ES EL TESTING? I Testing = Pruebas de software Preguntas: → ¿El código que acabo de escribir funciona bien? → ¿El software hace lo que el cliente desea? → ¿El software continúa funcionando bien después del último cambio que he introducido?
  • 13. ¿QUÉ ES EL TESTING? II Objetivos → Detectar errores (cuanto antes mejor) → Validar que el software hace lo que debe → Especifcación → Confanza y seguridad → Ahorrar tiempo de trabajo
  • 14. TIPOS DE PRUEBAS de integración de sistema de carga unitarias de validación de regresión de aceptación funcionales
  • 15. TIPOS DE PRUEBAS: UNITARIAS prueban el correcto funcionamiento de un módulo de código CLASE DATOS DE PRUEBA RESULTADOS ÁREA: 7 P. EJ. MÉTODO ÁREA LADO A: 2 DE UN RECTÁNGULO ≠ LADO B: 4 =? RESULTADOS ESPERADOS ÁREA: 8
  • 16. TIPOS DE PRUEBAS: DE ACEPTACIÓN prueban el comportamiento desde el punto de vista del cliente Scenario: Login with correct credentials When I go to the login page And I fill in "Login" with "manfred" And I fill in "Password" with "gurke" And I press "Login" Then I should see "Logged in" And I should be on the homepage Scenario: Login with incorrect credentials When I go to the login page And I fill in "Login" with "manfred" And I fill in "Password" with "tomate" And I press "Login" Then I should see "Wrong username/password" And I should be on the login page
  • 17. TIPOS DE PRUEBAS: DE REGRESIÓN Regresión → error ya resuelto que vuelve a aparecer Funcionamiento → cuando surge un error escribes una prueba para demostrar que falla y arreglas el error. La prueba garantizará que el error no vuelva a aparecer
  • 18. TIPOS DE PRUEBAS: DE CARGA → ¿Cómo responderá el sistema cuando entre en producción con 25.000 usuarios y 50.000 visitas diarias? → ¿Cuáles son los cuellos de botella? → ¿Que partes de la aplicación hay que optimizar?
  • 19. PRUEBAS MANUALES → Repetir todas las pruebas en cada despliegue → Consumen mucho tiempo → Aburridas y mecánicas “Monkey testing”
  • 20. PRUEBAS AUTOMATIZADAS ¿Por qué? → Tiempo = $$$ → Automatizar = Ahorrar tiempo = Ahorrar $$$ Deben ser → Reusables = rentables → Robustas para que no se dañen con facilidad al modifcar el código
  • 21. PRUEBAS AUTOMATIZADAS vs MANUALES Automatizadas más rentables con el tiempo → Reusables Coste $$$ Tiempo
  • 22. PRUEBAS AUTOMATIZADAS vs MANUALES II Ejemplo: Probar manualmente un formulario de registro Probar 1 vez Probar 50 veces Manual 2-4 minutos 100 a 200 minutos 5 – 30 minutos ~ 5 – 30 minutos (escribir el test) (escribir el test) Automatizada 10 seg. + (ejecutarlo) 8 minutos (ejecutarlo 50 veces)
  • 23. REFACTORIZAR CÓDIGO Cambiar el diseño SIN cambiar el comportamiento → Usualmente motivado por el “mal olor” del código Objetivos: → Aumentar la legibilidad → Reducir la complejidad → Mejorar la mantenibilidad
  • 24. PRUEBAS: CONFIANZA Y SEGURIDAD Sentirnos seguros → de que lo estamos haciendo bien → poder refactorizar Sentir y dar confanza a los demás → funcionamiento correcto demostrable
  • 25. PRUEBAS: ESPECIFICACIÓN Las pruebas defnen cómo se debe comportar el código y la aplicación → Las pruebas sirven como especifcación → Cuando un nuevo desarrollador se incorpora al equipo o toma el relevo tiene las pruebas y conoce el comportamiento deseado
  • 26. ¿QUIERES SER UN COWBOY? LOS PISTOLEROS DISPARAN SIN PESTAÑEAR Y SIEMPRE SE LA JUEGAN