Testing: Calidad de producto asegurada

La omisión de la fase de testing puede suponer el fracaso de un proyecto. A pesar de eso, sigue siendo habitual encontrar modelos de desarrollo donde se centra toda la atención en lanzar el producto lo más rapido posible. En Uxland, creemos que se trata de un grave error.

Cuando se inicia el desarrollo de una aplicación web muchas son las casuísticas que se deben tener en cuenta. Es muy habitual encontrar modelos de desarrollo donde focalizan toda su atención en lanzar el producto lo antes posible, pasando por alto fases muy importantes como el testing. Este fallo de enfoque ha conducido a muchos proyectos al fracaso, por lo que es muy importante tener en cuenta esta fase.

Historias de usuario

El primer paso para poder lograr desarrollar una aplicación viable y sostenible es la recolección de las historias de usuario. Se trata de unas descripciones cortas que definen una funcionalidad o un proceso, desde el punto de vista del usuario. Una vez recopiladas, se empieza con el diseño del sistema y se prosigue con las fases de construcción y despliegue. De esta forma, cada vez que se finalice una historia de usuario, ésta podrá acabar en producción de forma rápida y sencilla.

Toda funcionalidad en un proyecto Agile emerge gracias a su formalización como historia de usuario. Para redactar una buena historia de usuario es vital haber definido antes un Definition of Done (DoD). Sin el DoD, no hay una forma clara de comprobar que se han cumplido todas las expectativas una vez finalizada.

Cada DoD se centra en una funcionalidad en concreto donde se definen varios escenarios, que no dejan de ser casuísticas con las que nos vamos a encontrar mientras la estemos desarrollando. Para cada escenario se definen los siguientes elementos:

  • GIVEN: Qué ha pasado?
  • WHEN: Cuándo ha pasado?
  • THEN: Objetivo
  • AND: Objetivo 2

Con estas definiciones conseguimos establecer un DoD que nos va a ser vital para desarrollar tests de una forma clara y concisa. Cuando un DoD se ha redactado teniendo en cuenta todas las posibilidades, podemos dar por finalizado el desarrollo y desplegarlo a productivo cuando la funcionalidad haya sido validada a través de los tests. Una vez definidos nuestros DoD e historias de usuario empezamos a construir los tests: tests unitarios y tests de interfaz de usuario.

Tests unitarios

Estos tests se van a desarrollar con el objetivo de asegurar que cada unidad de código funcione correctamente y eficientemente de forma independiente.
Realizar estos tipos de test proporcionan algunas ventajas:

  • Fomentan el cambio: La refactorización del código se hace más viable gracias a los tests unitarios, ya que cualquier error producido por algún cambio de código puede ser localizado y corregido fácilmente.
  • Documenta el código: Los propios tests son documentación del código dado que ahí se puede ver cómo utilizarlo.

Tests de interfaz de usuario

La función de estos tests es asegurar que la aplicación hace lo que se espera que haga cuando el usuario realiza alguna acción sobre la interfaz. Por ejemplo, presionar un botón o escribir en un campo de texto. También se encarga de comprobar que la página cumple con los estándares de HTML y verifica la usabilidad de la aplicación.
Gracias a los tests de interfaz de usuario nos aseguramos que los usuarios de la aplicación podrán utilizarla de forma cómoda e intuitiva, incrementando así el valor del producto.

Conclusión

En UXLand llevamos años trabajando con esta norma, realizar tests sobre todas las aplicaciones para asegurar a nuestros clientes un producto de calidad. Gracias a esta metodología los usuarios de nuestras aplicaciones siempre tienen una opinión positiva sobre nuestros productos.