Unit Test
Para tus proyectos de software
Juan Vladimir
@juanvladimir13
Agenda
Conocimientos básicos
Testing
Unit Test
❏ Cobertura de codigo
❏ Aserciones
Ciclo de vida del Testing
Estructura de Unit Test
Test Case
Test Suite
Testing
Las pruebas de software (en inglés software testing) son las investigaciones
empíricas y técnicas cuyo objetivo es proporcionar información objetiva e
independiente sobre la calidad del producto a la parte interesada o
stakeholder.
➔ Todos somos humanos. El software inevitablemente tiene muchos
errores.
➔ Bienvenidos sean los fallos.
➔ Por eso mismo debemos hacer pruebas.
● Unitarias
● Integración
● Funcionales
● Otros
➔ Es una actividad más en el proceso de control de calidad.
Unit Test
En programación, una prueba unitaria (Unit Test) es una forma de comprobar
el correcto funcionamiento de una unidad de código.
Por ejemplo en diseño estructurado o en diseño funcional una función o un
procedimiento, en diseño orientado a objetos una clase.
Esto sirve para asegurar que cada unidad funcione correctamente y
eficientemente por separado. Además de verificar que el código hace lo que
tiene que hacer, verificamos que sea correcto el nombre, los nombres y tipos
de los parámetros, el tipo de lo que se devuelve, que si el estado inicial es
válido entonces el estado final es válido
Unit Test
➔ Los hacen los desarrolladores
➔ Prueban la funcionalidad de tu código
➔ Introducidos ya en todos los lenguajes
➔ Junit, Nunit, PhpUnit,Test::Unit, etc.
➔ Prueban partes de código que no interactúen con recursos externos
● No acceden a bases de datos, no acceden a la red, etc
Unit Test
Típico:
➔ Tengo prisa. No tengo tiempo para hacer tests unitarios
➔ Los tests unitarios se hacen para ahorrar tiempo
◆ Software más sólido y probado.
◆ Menos cosas que probar manualmente.
◆ Menos bugs. Los bugs se encuentran antes.
◆ Menos presión.
➔ No hacer tests unitarios es no ser un buen programador
Cobertura de codigo
➔ Es importante saber cuánto código estamos realmente probando.
◆ Ideal 70%-80%
◆ 100% es perder el tiempo. Demasiado caro.
➔ Muy útil para contrastar que nuestros tests están realmente haciendo lo
que queremos.
➔ Muchísimas herramientas :
◆ Lo bueno es que no hay que configurar nada.
◆ Se pueden integrar en el proceso de build.
◆ Cobertura, EclEmma, Sonar, etc.
Aserciones
Assert = Afirmar, Asegurar
assertTrue(condition);
assertFalse(condition);
assertNull(condition);
assertNonNull(condition);
assertEquals(expected ,actual);
assertNull(objeto)
assertEquals(expected , actual , epsilon);
Testing Life Cycle
Estructura de Unit Test
Test Case
Test Suite
Test Case
Un caso de prueba o test case es, en ingeniería del software, un conjunto de
condiciones o variables bajo las cuales un analista determinará si una
aplicación, un sistema software (software system), o una característica de
éstos es parcial o completamente satisfactoria.
Test Case
Los componentes de un Test case son:
● El método que usaremos.
● Configuración de la prueba.
● Resultados y acciones.
● La documentación de la prueba.
● El propósito de la prueba que estamos probando.
Tips para escribir test cases
1. Escribe un caso de prueba para todas las condiciones que tienes.
2. Muchas de las veces nos vemos tentados en testear varias cosas dentro
del mismo test case, recuerda mantener separadas las pruebas de cada
sistema.
3. Haz que los test cases (casos de prueba) describan cómo es que trabaja
el sistema.
4. Organiza tus casos de prueba de manera que sean consistentes.
Test Suite
In software development, a test suite, less commonly known as a 'validation
suite', is a collection of test cases that are intended to be used to test a
software program to show that it has some specified set of behaviours.
A test suite often contains detailed instructions or goals for each collection of
test cases and information on the system configuration to be used during
testing.
A group of test cases may also contain prerequisite states or steps, and
descriptions of the following tests.
Collections of test cases are sometimes incorrectly termed a test plan, a test
script, or even a test scenario
Test Suite
Contactos y sugerencias
https://www.facebook.com/juanvladimir13
https://twitter.com/juanvladimir13
https://www.linkedin.com/in/juanvladimir13
https://www.instagram.com/juanvladimir13
@juanvladimir13
https://www.youtube.com/channel/UCk9R_
mLgbcENR_BPF9M9asQ
juanvladimir13@gmail.com
@juanvladimir13
http://juanvladimir13.wordpress.com
http://juanvladimir13.blogspot.com/
https://github.com/juanvladimir13/
https://bitbucket.org/juanvladimir13
URL’s
https://www.youtube.com/watch?v=KGimSgM4qvE
https://www.slideshare.net/juanvladimir13/conceptos-bsicos-de
-unit-test
https://drive.google.com/drive/folders/0BxFy1LPEvFXaTmtvUz
MwZWJnMDQ?usp=sharing
GRACIAS
Espero que hubieras aprendido un poco…
Apoya con un like y comparte para que tenga más
seguidores y pueda seguir realizando vídeos.

Conceptos básicos de Unit Test

  • 1.
    Unit Test Para tusproyectos de software Juan Vladimir @juanvladimir13
  • 2.
    Agenda Conocimientos básicos Testing Unit Test ❏Cobertura de codigo ❏ Aserciones Ciclo de vida del Testing Estructura de Unit Test Test Case Test Suite
  • 5.
    Testing Las pruebas desoftware (en inglés software testing) son las investigaciones empíricas y técnicas cuyo objetivo es proporcionar información objetiva e independiente sobre la calidad del producto a la parte interesada o stakeholder. ➔ Todos somos humanos. El software inevitablemente tiene muchos errores. ➔ Bienvenidos sean los fallos. ➔ Por eso mismo debemos hacer pruebas. ● Unitarias ● Integración ● Funcionales ● Otros ➔ Es una actividad más en el proceso de control de calidad.
  • 6.
    Unit Test En programación,una prueba unitaria (Unit Test) es una forma de comprobar el correcto funcionamiento de una unidad de código. Por ejemplo en diseño estructurado o en diseño funcional una función o un procedimiento, en diseño orientado a objetos una clase. Esto sirve para asegurar que cada unidad funcione correctamente y eficientemente por separado. Además de verificar que el código hace lo que tiene que hacer, verificamos que sea correcto el nombre, los nombres y tipos de los parámetros, el tipo de lo que se devuelve, que si el estado inicial es válido entonces el estado final es válido
  • 7.
    Unit Test ➔ Loshacen los desarrolladores ➔ Prueban la funcionalidad de tu código ➔ Introducidos ya en todos los lenguajes ➔ Junit, Nunit, PhpUnit,Test::Unit, etc. ➔ Prueban partes de código que no interactúen con recursos externos ● No acceden a bases de datos, no acceden a la red, etc
  • 8.
    Unit Test Típico: ➔ Tengoprisa. No tengo tiempo para hacer tests unitarios ➔ Los tests unitarios se hacen para ahorrar tiempo ◆ Software más sólido y probado. ◆ Menos cosas que probar manualmente. ◆ Menos bugs. Los bugs se encuentran antes. ◆ Menos presión. ➔ No hacer tests unitarios es no ser un buen programador
  • 9.
    Cobertura de codigo ➔Es importante saber cuánto código estamos realmente probando. ◆ Ideal 70%-80% ◆ 100% es perder el tiempo. Demasiado caro. ➔ Muy útil para contrastar que nuestros tests están realmente haciendo lo que queremos. ➔ Muchísimas herramientas : ◆ Lo bueno es que no hay que configurar nada. ◆ Se pueden integrar en el proceso de build. ◆ Cobertura, EclEmma, Sonar, etc.
  • 10.
    Aserciones Assert = Afirmar,Asegurar assertTrue(condition); assertFalse(condition); assertNull(condition); assertNonNull(condition); assertEquals(expected ,actual); assertNull(objeto) assertEquals(expected , actual , epsilon);
  • 11.
  • 12.
    Estructura de UnitTest Test Case Test Suite
  • 13.
    Test Case Un casode prueba o test case es, en ingeniería del software, un conjunto de condiciones o variables bajo las cuales un analista determinará si una aplicación, un sistema software (software system), o una característica de éstos es parcial o completamente satisfactoria.
  • 14.
    Test Case Los componentesde un Test case son: ● El método que usaremos. ● Configuración de la prueba. ● Resultados y acciones. ● La documentación de la prueba. ● El propósito de la prueba que estamos probando. Tips para escribir test cases 1. Escribe un caso de prueba para todas las condiciones que tienes. 2. Muchas de las veces nos vemos tentados en testear varias cosas dentro del mismo test case, recuerda mantener separadas las pruebas de cada sistema. 3. Haz que los test cases (casos de prueba) describan cómo es que trabaja el sistema. 4. Organiza tus casos de prueba de manera que sean consistentes.
  • 15.
    Test Suite In softwaredevelopment, a test suite, less commonly known as a 'validation suite', is a collection of test cases that are intended to be used to test a software program to show that it has some specified set of behaviours. A test suite often contains detailed instructions or goals for each collection of test cases and information on the system configuration to be used during testing. A group of test cases may also contain prerequisite states or steps, and descriptions of the following tests. Collections of test cases are sometimes incorrectly termed a test plan, a test script, or even a test scenario
  • 16.
  • 17.
  • 18.
  • 19.
    GRACIAS Espero que hubierasaprendido un poco… Apoya con un like y comparte para que tenga más seguidores y pueda seguir realizando vídeos.