Clase 05c niveles de pruebas

595 views
546 views

Published on

Published in: Technology
0 Comments
0 Likes
Statistics
Notes
  • Be the first to comment

  • Be the first to like this

No Downloads
Views
Total views
595
On SlideShare
0
From Embeds
0
Number of Embeds
1
Actions
Shares
0
Downloads
57
Comments
0
Likes
0
Embeds 0
No embeds

No notes for slide

Clase 05c niveles de pruebas

  1. 1. Pruebas de Software Niveles de Pruebas Universidad de los Andes Demián Gutierrez Febrero 2013 1
  2. 2. ¿Cómo Probar? Sumar 2 Números int sumarAyB(int a, int b) { return a + b; } ¿cómo probamos algo como esto? ¿por qué es tan difícil hacer pruebas? 2
  3. 3. ¿Cómo Probar? Otra Aplicación Interfaz de Usuario Envío de Correo ¿cómo probamos algo como esto? 3
  4. 4. Niveles de Pruebas /Pruebas Según su Alcance De Sistema ¿fin a fin? Más Numerosas Grano Más Fino Más Rápidas PRUEBAS De Integración Según su Alcance Unitarias 4
  5. 5. Niveles de Pruebas /Pruebas Unitarias ¿cómo probamos algo como esto? entradas salidas ... Interfaz de Usuario ... 5
  6. 6. Niveles de Pruebas /Pruebas de Integración ¿cómo probamos algo como esto? entradas salidas ... Interfaz de Usuario ... 6
  7. 7. Niveles de Pruebas /Pruebas De Sistema / Subsistema ¿cómo probamos algo como esto? ... Interfaz de Usuario salidas entradas ... 7
  8. 8. bien, pero¿cuál es el problema? 8
  9. 9. Niveles de Pruebas /Pruebas De Sistema / Subsistema esto es fácil de probar ... Interfaz de Usuario salidas entradas ... ponga a correr el sistema y comience a hacer clicks (se puede automatizar) 9
  10. 10. Niveles de Pruebas /Pruebas Según su Alcance en estos dos casos tenemos problemas entradas salidas entradas salidas ¿qué tipo de problemas? 10
  11. 11. Niveles de Pruebas /Pruebas Según su Alcance entradas salidas los componentes que queremos probar tienen dependencias 11
  12. 12. Niveles de Pruebas /Pruebas Según su Alcance que a su vez tienen dependencias entradas salidas lo que hace difícil probarlos por separado 12
  13. 13. ¿cómo se resuelve? B entradas A salidas C 13
  14. 14. B B “C (verdadero) (FALSO) om Ca po mb s (MOCK) te ne iar os en nt los er on es p ad p C rd om C Fa or Ve r C ls os a in (FALSO) ” im (verdadero) El (MOCK) B B (FALSO) (verdadero) (MOCK)entradas A salidas entradas A salidas C C (FALSO) (verdadero) (MOCK) 14
  15. 15. B bajo prueba (verdadero) (en modo prueba) entradas A salidas B C (FALSO) en producción (MOCK)(en funcionamiento) (verdadero) entradas A salidas C (FALSO) (MOCK) Conductor de la Prueba 15
  16. 16. Los Mocks y Stubs se pueden implementar sin la ayuda de ningún framework, pero usualmente esaconsejable apoyarse en alguna librería Dos muy conocidas en el mundo Java JMock http://jmock.org/ Mockito http://code.google.com/p/mockito/ 16
  17. 17. ¿cómo mejorar la “testeabilidad”?¿cómo escribir software “testeable”? 17
  18. 18. ¿Cómo escribir código que sea “testeable”?¡Cuatro consejos clave! Establecer “contratos” entre los distintos componentes por medio de interfaces Evitar usar el operador new para crear instancias concretas de un tipo dado (preferir interfaces) ¿qué? ¿cómo? Usar el principio de “inversión de dependencias” (Dependency Inversion) (La “D” de SOLID) Apoyarse en frameworks de inyección de dependencias, por ejemplo, Spring 18
  19. 19. Gracias ¡Gracias! 19

×