Testing en cada fase del desarrollo

Clase 8 de 29Curso de Fundamentos de Pruebas de Software

Resumen

Construir software de calidad exige claridad en requerimientos y pruebas continuas desde el inicio. Aquí se explica, con ejemplos prácticos, cómo aplicar pruebas en análisis, diseño, código y aceptación para evitar sobrecostos, retrasos y pérdida de confianza del cliente. El enfoque se centra en presupuesto, recursos y tiempo, y cómo la planeación y el testing moderno reducen defectos antes de la entrega.

¿Por qué el presupuesto, recursos y tiempo definen el proyecto?

El alcance real no se decide por el ideal, sino por lo que se puede ejecutar con dinero, equipo y calendario disponibles. Una mala planeación dispara costos, alarga entregas y provoca que el cliente abandone el proyecto. Por eso, las actividades clave deben alinearse para no salirnos de tiempos ni de estimaciones, asegurando que la capacidad del equipo soporte el plan.

  • Definir alcance viable con presupuesto.
  • Asegurar recursos humanos y especialización.
  • Planear para evitar re-trabajo y cierres anticipados.

¿Cómo probar en cada etapa del ciclo de desarrollo de software?

La calidad se construye de forma incremental. Siguiendo principios de testing moderno, es posible y deseable probar en cada fase: análisis, diseño, código y durante la propia fase de pruebas, con cierre en pruebas de aceptación.

¿Qué probar en análisis de requerimientos?

En esta etapa se revisan los requerimientos funcionales y de diseño para detectar ambigüedades y reglas implícitas. El objetivo es convertir textos generales en criterios verificables.

  • Identificar ambigüedad en frases como: “el usuario puede iniciar sesión”.
  • Preguntar por casuísticas: ¿uno o varios usuarios?, ¿qué ocurre si no inicia sesión?
  • Definir comportamientos esperados: éxito, error, mensajes de confirmación o de acceso denegado.
  • Evitar supuestos implícitos con grupos de pruebas que cubran cumplimiento y no cumplimiento.

Habilidades y conceptos: análisis de requerimientos, criterios de aceptación, verificación temprana, prevención de defectos.

¿Qué evaluar en diseño y mockups?

El diseño alinea expectativas visuales con requerimientos. Aun con mockups, se pueden definir y probar reglas de validación y mensajes.

  • Campos y límites: por ejemplo, longitud máxima del nombre.
  • Definir “incorrecto”: ¿se aceptan símbolos o números?, ¿campos vacíos?
  • Comportamientos ante entrada inválida: rechazo y mensaje claro.
  • Control de intentos: ¿cuántas veces se permite fallar antes de bloquear o impedir acceso?
  • Evaluaciones contra un diccionario posible para detectar entradas no válidas.

Habilidades y conceptos: validación de datos, diseño centrado en el usuario, mensajería de error, alineación requerimientos-diseño.

¿Qué revisar en código, backend y fase de pruebas y aceptación?

Cuando hay componentes técnicos, se prueba lo construido y lo que los sustenta. No hace falta esperar al frontend terminado: se pueden ejercer pruebas directamente sobre el backend.

  • Datos y base de datos: altas, bajas, consultas y asignaciones coherentes.
  • APIs: interacción y transmisión de datos según requerimientos.
  • Pruebas estáticas: mejores prácticas en la escritura del código.
  • Arquitectura: módulos, funciones y estructura de datos.
  • Dispositivos e interfaces: interacción en laptop, computadora o dispositivo móvil.
  • Fase de pruebas: confirmar comportamiento funcional y transmisión de datos vs. requerimientos.
  • Pruebas de aceptación: con usuario final y cliente, sin reemplazar pruebas previas del equipo.

Notas clave: los mockups permiten pruebas tempranas; un MVP o demo no sustituye validar reglas desde diseño; probar en cada fase mejora la verificación y la validación.

¿Qué buenas prácticas aseguran calidad antes de la entrega?

La mala práctica es probar solo al final. Lo recomendable es probar en cada fase antes de llegar al cliente. Con este enfoque, se puede reducir 70 u 80 % de los defectos que, de otra forma, llegarían a producción.

  • Integrar pruebas en análisis, diseño, código y aceptación.
  • Trabajar codo a codo con el equipo para anticipar escenarios de uso.
  • Confirmar mensajes, límites y reglas en cuanto surgen.
  • Priorizar flujos críticos y casos de no cumplimiento.

¿Te gustaría compartir qué tipos de pruebas aplicas y qué elementos adicionales consideras valiosos? Deja tus ideas y experiencias en los comentarios.