Lección 1: Introducción | Curso Testing

Lección 1: Introducción

Testing

Cuando hablamos del testing nos queremos referir a pruebas empíricas para mejorar la calidad de nuestro código. Un conjunto de técnicas que nos evaluarán la resistencia a los fallos de manera fehaciente. Existe una gran cantidad de opciones, Frameworks y guías en la actualidad. Entre los más importantes nos podemos encontrar:

Filosofías

Pruebas dependiendo de la visibilidad

  • Pruebas de caja blanca.
  • Pruebas de caja gris.
  • Pruebas de caja negra.

Pruebas dependiendo de la ejecución de las aplicaciones

  • Pruebas estáticas.
  • Pruebas dinámicas.

Pruebas Funcionales:

Pruebas no Funcionales

  • Pruebas de rendimiento.
  • Pruebas de de seguridad.
  • Pruebas aleatorias (Fuzzing).

Pruebas según el número de pruebas a realizar

  • Pruebas de humo (Smoke test).
  • Pruebas de sanidad (Sanity Check).
  • Pruebas de regresión/sistema (Regression test).

Si es un trabajo corto habrá una inversión de tiempo inicial, pero a medida que crezca el flujo aumentará la productividad al ser más lineal y controlado. Antes de que te digas “no voy a hacer testing porque es demasiado pequeño”, quiero hacerte recordar que todo proyecto empieza siendo pequeño. Después no encontrarás energías ya que será demasiado grande para testear o documentar.

Grafico de porque hay que hacer testing

¿Qué ventajas tiene hacer testing?:

  • Aumenta la calidad del proyecto y código.
  • Reduce los errores al añadir nuevas características.
  • Menor tiempo a la hora de reparar errores.
  • Incrementa el uso de buenas prácticas.

¿Contras?:

  • Incrementa el tiempo de desarrollo.
  • Aumenta la complejidad.
  • Muchos desarrolles no tiene hábito, por lo que existirá cierto rechazo al principio y necesidad de formación.
  • Es dificil hacer testing de código viejo.

Obiamente la calidad de nuestro código no se verá comprometida. Si el cliente trabaja con nuestra aplicación no experimentará problemas tecnicos. Tal vez no le termine de gustar el tamaño de un botón o el color de un texto, pero no nos llamará a la puerta con una lista de errores. Y por consiguiente dormiremos profundamente.

Pruebas de caja blanca

Son pruebas centradas en el código fuente, sabiendo que introducimos y que resultados esperamos. Siempre usando diferentes valores de entrada y sabiendo de antemano los valores de vuelta.

Niveles

  1. Prueba unitaria (Unit Testing): Se testea una función u objeto de forma individual.
  2. Pruebas integrales (Integration Testing): Se testea un conjunto funciones u objetos que interactuan entre ellos.
  3. Pruebas de sistemas (System Integration Testing): Se testea todo el software al completo.

Diferencias entre testings

Material de apoyo

Esquema flujo TDD

En el siguiente tema desarrollaremos las Unit Testing.

Esta obra está bajo una Licencia Creative Commons Atribución-NoComercial-SinDerivadas 4.0 Internacional.

Atribución/Reconocimiento-NoComercial-SinDerivados 4.0 Internacional

¿Me invitas a un café? ☕

Puedes hacerlo usando el terminal.

ssh customer@andros.dev -p 5555

Comentarios

{{ comments.length }} comentarios

Nuevo comentario

Nueva replica  {{ formatEllipsisAuthor(replyComment.author) }}

Acepto la política de Protección de Datos.

Escribe el primer comentario