Date post: | 07-Jul-2015 |
Category: |
Technology |
Upload: | fernando-escolar |
View: | 381 times |
Download: | 2 times |
Unit tesingY el mito de los 0 bugs
Indice
• Definicion de unit test
• Haciendo codigo testeable
• Estructura de un unit test
• Ventajas e inconvenientes
• Frameworks
Que es una prueba de software
Input Process Output
Que es una prueba de software
Input Process Output
Clasificación de las pruebas
White-Box testingBlack-box testingVisual testingGrey-box testing
Clasificación de las pruebas
Unit testingIntegration testingSystem testingAcceptance testing
White-Box testingBlack-box testingVisual testingGrey-box testing
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
Prueba unitaria
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.
Caracteristicas: FIRST
•Fast
•Repeatable
•Isolated
•Self-validating
•Timely
Caracteristicas: SECOND
•Profesional
•Automatizable
•Unitario
•No usa recursos
Estructura: Triple Cuadruple A
•Assume
•Act
•Arrange
•Assert
Codigo
Si un metodo o funcion es una unidadtengo que desglosarlos al maximo
vs.
¿Puedo escribir mejores unittests?
Puedes escribir mejor codigo
Desacoplar artefactos
Patrones•Inversion of Control
•Abstract Factory
Test doubles
Test doubles
•Dummies
•Stubs
•Fakes
•Spies
•MocksxUnit Test Patterns
Gerrard Meszaros – Hardcover
jMock
JSmockito
Evitar uso de estaticos o singletons
Simplifica los constructores•No uses `new`
•No uses `Initializer`
•No asignes algo que no sean atributos
•No uses condicionales o bucles
Test positivo y negativo
Ventajas de unit testing
•Encontrar bugs pronto
•Documentacion
•Red de seguridad
•Mejor diseno
Limitaciones de unit testing
•No detectan problemas de:
•No todo puede ser testeado con facilidad
Integracion, performance, …
Multi-threading, algoritmos no deterministas
Tecnicas•TDD
•BDD
•ATDD
Metricas de codigo•Code Coverage
•Cyclomatic Complexity
Ruegos y preguntas