Unit tesing y el mito de los 0 bugs
-
Upload
fernando-escolar -
Category
Technology
-
view
384 -
download
2
description
Transcript of Unit tesing y el mito de los 0 bugs
![Page 1: Unit tesing y el mito de los 0 bugs](https://reader031.fdocuments.co/reader031/viewer/2022020105/559b45061a28ab455e8b48a0/html5/thumbnails/1.jpg)
Unit tesingY el mito de los 0 bugs
![Page 3: Unit tesing y el mito de los 0 bugs](https://reader031.fdocuments.co/reader031/viewer/2022020105/559b45061a28ab455e8b48a0/html5/thumbnails/3.jpg)
![Page 4: Unit tesing y el mito de los 0 bugs](https://reader031.fdocuments.co/reader031/viewer/2022020105/559b45061a28ab455e8b48a0/html5/thumbnails/4.jpg)
Indice
• Definicion de unit test
• Haciendo codigo testeable
• Estructura de un unit test
• Ventajas e inconvenientes
• Frameworks
![Page 5: Unit tesing y el mito de los 0 bugs](https://reader031.fdocuments.co/reader031/viewer/2022020105/559b45061a28ab455e8b48a0/html5/thumbnails/5.jpg)
Que es una prueba de software
Input Process Output
![Page 6: Unit tesing y el mito de los 0 bugs](https://reader031.fdocuments.co/reader031/viewer/2022020105/559b45061a28ab455e8b48a0/html5/thumbnails/6.jpg)
Que es una prueba de software
Input Process Output
![Page 7: Unit tesing y el mito de los 0 bugs](https://reader031.fdocuments.co/reader031/viewer/2022020105/559b45061a28ab455e8b48a0/html5/thumbnails/7.jpg)
Clasificación de las pruebas
White-Box testingBlack-box testingVisual testingGrey-box testing
![Page 8: Unit tesing y el mito de los 0 bugs](https://reader031.fdocuments.co/reader031/viewer/2022020105/559b45061a28ab455e8b48a0/html5/thumbnails/8.jpg)
Clasificación de las pruebas
Unit testingIntegration testingSystem testingAcceptance testing
White-Box testingBlack-box testingVisual testingGrey-box testing
![Page 9: Unit tesing y el mito de los 0 bugs](https://reader031.fdocuments.co/reader031/viewer/2022020105/559b45061a28ab455e8b48a0/html5/thumbnails/9.jpg)
Clasificación de las pruebas
Installation testingCompatibility testingSmoke and sanity testingRegression testingAcceptance testingAlpha testingBeta testingFunctional vs non-functionaltestingDestructive testingSoftware performance testingUsability testingAccessibility testingSecurity testingInternationalization and localizationDevelopment testingA/B testing
Unit testingIntegration testingSystem testingAcceptance testing
White-Box testingBlack-box testingVisual testingGrey-box testing
![Page 10: Unit tesing y el mito de los 0 bugs](https://reader031.fdocuments.co/reader031/viewer/2022020105/559b45061a28ab455e8b48a0/html5/thumbnails/10.jpg)
Prueba unitaria
![Page 11: Unit tesing y el mito de los 0 bugs](https://reader031.fdocuments.co/reader031/viewer/2022020105/559b45061a28ab455e8b48a0/html5/thumbnails/11.jpg)
Pruebas unitariasA unit test is a piece of a code (usually a method) that invokes another piece of code and checks the correctness of some assumptions afterward. If the assumptions turn out to be wrong, the unit test has failed.
A “unit” is a method or function.
Unit test definition – The art of unit testingRoy Osherove – Manning Publications co.
![Page 12: Unit tesing y el mito de los 0 bugs](https://reader031.fdocuments.co/reader031/viewer/2022020105/559b45061a28ab455e8b48a0/html5/thumbnails/12.jpg)
Caracteristicas: FIRST
•Fast
•Repeatable
•Isolated
•Self-validating
•Timely
![Page 13: Unit tesing y el mito de los 0 bugs](https://reader031.fdocuments.co/reader031/viewer/2022020105/559b45061a28ab455e8b48a0/html5/thumbnails/13.jpg)
Caracteristicas: SECOND
•Profesional
•Automatizable
•Unitario
•No usa recursos
![Page 14: Unit tesing y el mito de los 0 bugs](https://reader031.fdocuments.co/reader031/viewer/2022020105/559b45061a28ab455e8b48a0/html5/thumbnails/14.jpg)
Estructura: Triple Cuadruple A
•Assume
•Act
•Arrange
•Assert
![Page 15: Unit tesing y el mito de los 0 bugs](https://reader031.fdocuments.co/reader031/viewer/2022020105/559b45061a28ab455e8b48a0/html5/thumbnails/15.jpg)
Codigo
![Page 16: Unit tesing y el mito de los 0 bugs](https://reader031.fdocuments.co/reader031/viewer/2022020105/559b45061a28ab455e8b48a0/html5/thumbnails/16.jpg)
Si un metodo o funcion es una unidadtengo que desglosarlos al maximo
vs.
![Page 17: Unit tesing y el mito de los 0 bugs](https://reader031.fdocuments.co/reader031/viewer/2022020105/559b45061a28ab455e8b48a0/html5/thumbnails/17.jpg)
![Page 18: Unit tesing y el mito de los 0 bugs](https://reader031.fdocuments.co/reader031/viewer/2022020105/559b45061a28ab455e8b48a0/html5/thumbnails/18.jpg)
¿Puedo escribir mejores unittests?
![Page 19: Unit tesing y el mito de los 0 bugs](https://reader031.fdocuments.co/reader031/viewer/2022020105/559b45061a28ab455e8b48a0/html5/thumbnails/19.jpg)
Puedes escribir mejor codigo
![Page 20: Unit tesing y el mito de los 0 bugs](https://reader031.fdocuments.co/reader031/viewer/2022020105/559b45061a28ab455e8b48a0/html5/thumbnails/20.jpg)
Desacoplar artefactos
![Page 21: Unit tesing y el mito de los 0 bugs](https://reader031.fdocuments.co/reader031/viewer/2022020105/559b45061a28ab455e8b48a0/html5/thumbnails/21.jpg)
![Page 22: Unit tesing y el mito de los 0 bugs](https://reader031.fdocuments.co/reader031/viewer/2022020105/559b45061a28ab455e8b48a0/html5/thumbnails/22.jpg)
Patrones•Inversion of Control
•Abstract Factory
![Page 23: Unit tesing y el mito de los 0 bugs](https://reader031.fdocuments.co/reader031/viewer/2022020105/559b45061a28ab455e8b48a0/html5/thumbnails/23.jpg)
Test doubles
![Page 24: Unit tesing y el mito de los 0 bugs](https://reader031.fdocuments.co/reader031/viewer/2022020105/559b45061a28ab455e8b48a0/html5/thumbnails/24.jpg)
Test doubles
•Dummies
•Stubs
•Fakes
•Spies
•MocksxUnit Test Patterns
Gerrard Meszaros – Hardcover
![Page 25: Unit tesing y el mito de los 0 bugs](https://reader031.fdocuments.co/reader031/viewer/2022020105/559b45061a28ab455e8b48a0/html5/thumbnails/25.jpg)
jMock
![Page 26: Unit tesing y el mito de los 0 bugs](https://reader031.fdocuments.co/reader031/viewer/2022020105/559b45061a28ab455e8b48a0/html5/thumbnails/26.jpg)
JSmockito
![Page 27: Unit tesing y el mito de los 0 bugs](https://reader031.fdocuments.co/reader031/viewer/2022020105/559b45061a28ab455e8b48a0/html5/thumbnails/27.jpg)
Evitar uso de estaticos o singletons
![Page 28: Unit tesing y el mito de los 0 bugs](https://reader031.fdocuments.co/reader031/viewer/2022020105/559b45061a28ab455e8b48a0/html5/thumbnails/28.jpg)
![Page 29: Unit tesing y el mito de los 0 bugs](https://reader031.fdocuments.co/reader031/viewer/2022020105/559b45061a28ab455e8b48a0/html5/thumbnails/29.jpg)
Simplifica los constructores•No uses `new`
•No uses `Initializer`
•No asignes algo que no sean atributos
•No uses condicionales o bucles
![Page 30: Unit tesing y el mito de los 0 bugs](https://reader031.fdocuments.co/reader031/viewer/2022020105/559b45061a28ab455e8b48a0/html5/thumbnails/30.jpg)
Test positivo y negativo
![Page 31: Unit tesing y el mito de los 0 bugs](https://reader031.fdocuments.co/reader031/viewer/2022020105/559b45061a28ab455e8b48a0/html5/thumbnails/31.jpg)
Ventajas de unit testing
•Encontrar bugs pronto
•Documentacion
•Red de seguridad
•Mejor diseno
![Page 32: Unit tesing y el mito de los 0 bugs](https://reader031.fdocuments.co/reader031/viewer/2022020105/559b45061a28ab455e8b48a0/html5/thumbnails/32.jpg)
Limitaciones de unit testing
•No detectan problemas de:
•No todo puede ser testeado con facilidad
Integracion, performance, …
Multi-threading, algoritmos no deterministas
![Page 33: Unit tesing y el mito de los 0 bugs](https://reader031.fdocuments.co/reader031/viewer/2022020105/559b45061a28ab455e8b48a0/html5/thumbnails/33.jpg)
Tecnicas•TDD
•BDD
•ATDD
![Page 34: Unit tesing y el mito de los 0 bugs](https://reader031.fdocuments.co/reader031/viewer/2022020105/559b45061a28ab455e8b48a0/html5/thumbnails/34.jpg)
Metricas de codigo•Code Coverage
•Cyclomatic Complexity
![Page 35: Unit tesing y el mito de los 0 bugs](https://reader031.fdocuments.co/reader031/viewer/2022020105/559b45061a28ab455e8b48a0/html5/thumbnails/35.jpg)
Ruegos y preguntas