Mi machete de testing

Enzo Díaz
3 min readJul 27, 2021

Machete basado principalmente en el libro Testing — Introduccion a las pruebas de sistemas de información, de Federico Toledo.

Calidad:

La calidad es una característica que nos permite comparar distintas cosas del mismo tipo. Se calcula asignándole un valor en base a un conjunto de propiedades (seguridad, performance, usabilidad, etc.), que podrán ser ponderadas de distinta forma.

Hay que considerar que el concepto de calidad no será igual para todas las personas, y dependerá de la situación definir qué propiedad es más importante que otra.

Debemos asumir que el software no es perfecto y generalmente los atributos de calidad con los requerimientos suelen entrar en conflicto, siendo más ideal aquel software que mejor balance haga de los atributos.

La calidad no es algo que se agrega al final “como quien le pone azúcar al café”. En cada etapa del proceso de desarrollo tendremos actividades de testing para realizar, que afectan en la calidad final del software.

Testing:

El testing es una investigación técnica realizada para proveer información sobre la calidad del producto o servicio bajo pruebas. Es un proceso diseñado para asegurar que el software hace lo que se supone que debe hacer. Se busca aportar calidad verificando y detectando posibles incidencias de diverso tipo que puedan ocurrir cuando esté en uso.

Objetivos del testing:

El Testing busca encontrar la mayor cantidad de fallos que más calidad le aporten al producto, los que al cliente más incidencias le va a causar. El objetivo de testing no tiene por qué ser el mismo a lo largo del tiempo, pero sí es importante que se tenga claro en cada momento cuál es.

Casos de prueba:

Los casos de prueba son un conjunto de entradas de pruebas, condiciones de ejecución y resultados esperados desarrollados con un objetivo particular. La intención de ejecutar un caso de prueba es obtener información respecto al comportamiento de un software.

Los casos de prueba deben incluir:

  • Flujo (secuencia de pasos a ejecutar).
  • Datos de entrada.
  • Estado inicial.
  • Valor de respuesta esperado.
  • Estado final esperado.

Oráculo:

Es el mecanismo, ya sea manual o automático, de verificar si el comportamiento del sistema es el esperado o no. El oráculo deberá comparar el valor esperado contra el valor obtenido, el estado final esperado con el estado final alcanzado, el tiempo de respuesta aceptable con el tiempo de respuesta obtenido, etc.

Cobertura de pruebas:

El coverage es el porcentaje de código que abarcan las pruebas. No se trata de un indicador que garantice calidad, simplemente provee información adicional de cuánto o qué tan profundo ha sido probado un software.

White box:

Se trata de una técnica donde utilizamos información interna del sistema (código, bases de datos, entidades, etc). También se la llama “caja transparente”, haciendo referencia a que es posible ver por dentro de “la caja” (el sistema) y los componentes que podemos probar.

Black box:

Se trata de la técnica donde “la caja” (el sistema) es opaco para el tester. Se utilizan datos de entrada externos al sistema y se evalúa el dato de salida o de respuesta, independientemente de lo que ocurra dentro del sistema.

Enmascaramiento de errores:

El enmascaramiento de errores ocurre cuando un caso de prueba utiliza más de un valor inválido, esto dificulta la posibilidad de identificar cuál valor inválido produce el error. Es ideal evitar esta situación. Solo un valor inválido por caso de prueba garantiza identificar cada excepción necesaria.

--

--

Enzo Díaz

Programador y desarrollador. Convirtiéndome en arquitecto de software.