5 Principios para incorporar Testing a su Empresa

Recibimos frecuentemente la consulta de cómo “empezar a hacer Testing” en empresas que no tienen esta área formada, ni cuentan con Testers en sus equipos.

Es una realidad en el mercado de las empresas que desarrollan software, que llega un punto donde han crecido lo suficiente, y sienten esta necesidad. A menudo, surge como un desafío, de manera a veces traumática, porque se encuentran con que son capaces de entregar los desarrollos en tiempo y forma, pero el feedback que reciben de sus clientes es que el nivel de calidad percibida de los productos es muy bajo. O les sucede que tienen la oportunidad de trabajar con clientes más grandes, y estos directamente les demandan que realicen Testing de los desarrollos.

En todos los casos el problema es el mismo: descubren que necesitan incorporar prácticas de Testing, y se preguntan por dónde empezar. Vamos a ver entonces los principios básicos que se deben tener en cuenta a la hora de sumar el Testing a los desarrollos de software.

  1. Insertar el Testing en el proceso: lo primero que tenemos que ver es cómo vamos a incorporar el Testing a nuestro proceso. El primer paso es identificar con qué tipo de proceso estamos trabajando o necesitamos trabajar. Esto va a depender en gran medida del tipo de desarrollo que estemos realizando. Si tenemos la posibilidad de trabajar con metodologías ágiles, debemos tratar de incorporar el Testing desde las etapas más tempranas del proceso, sumando a los Testers desde el comienzo, para que participen de la especificación de los requerimientos, y puedan comenzar con el diseño de las pruebas lo antes posible. Si, por el contrario, el tipo de proyecto o el cliente nos exige utilizar una metodología más estructurada, deberemos tener en claro en qué momento vamos a hacer entrar el Testing, y bajo qué condiciones. En todos los casos, aplica la regla de que cuanto antes se comience con las tareas de Testing, mejor será y resultará más beneficioso para el proyecto. Un error común de quienes comienzan a leer e informarse sobre las prácticas de Testing es entender que necesitan cambiar todo el proceso. Esto produce la sensación de que incorporar Testing es algo complicado y hasta puede generar que se abandone la idea. Es importante tener en cuenta que si nuestro proceso es caótico o no está bien definido, de todas maneras podemos incorporar las prácticas de Testing, como un primer paso hacia lograr el ordenamiento. Con el tiempo, serán estas mismas prácticas las que nos ayudarán a ir delineando un proceso más disciplinado que nos permita generar resultados más previsibles.
  2. Generar condiciones de Testeabilidad: la testeabilidad se define como la factibilidad que tiene una aplicación para ponerla a prueba. Una aplicación es más testeable cuantas más pruebas podemos ejecutar sobre ella. Para ello, debemos generar condiciones de testeabilidad, cumpliendo con determinados requisitos, como: documentación del producto, tiempo suficiente para diseñar y ejecutar las pruebas, ambiente de pruebas a disposición y la aplicación instalada y funcionando en el mismo. No es indispensable contar simultáneamente con todas estas condiciones, pero al menos, deberíamos asegurarnos de cumplir con alguna de ellas. Por ejemplo, es importante contar con algún tipo de documentación que nos indique cuáles son los requerimientos funcionales y no funcionales. Es también clave contar con un ambiente adecuado y especial para las pruebas, ya que las mismas no pueden ejecutarse en el ambiente de desarrollo, porque éste no es estable, y por lo tanto los resultados obtenidos no serán confiables. Es deseable implementar al menos un versionado básico, que nos permita una correcta administración de la configuración, y de esa manera tener control sobre las versiones que se van generando, ya que esta es una de las bases sobre las que se cimenta la labor de Testing. Y por último, es indispensable asignar el tiempo necesario para las pruebas. El mismo debe ser adecuadamente planificado y respetado, para poder garantizar que ejecutamos las pruebas necesarias para asegurar un nivel de calidad aceptable en el producto final.
  3. Definir un proceso de Testing: a la hora de poner en marcha las tareas de Testing, necesitamos definir un proceso. Y con ello, no sólo las tareas que se van a llevar a cabo, sino también las herramientas que se van a utilizar, los entregables que se van a generar, etc. El proceso de Testing va a ser la guía básica para trabajar en todos los proyectos. No necesita ser un proceso complejo, puede ser algo tan simple como diseñar, ejecutar y reportar, pero sí es importante que se encuentre definido y esté claro para todo el equipo. Asimismo, las herramientas a utilizar pueden ser aquellas con las que la empresa ya cuenta (hojas de cálculo, procesadores de texto), o pueden seleccionarse herramientas específicas. Esto puede variar también de acuerdo a las exigencias de los clientes, y está relacionado con los entregables que el proceso de Testing debe generar. Normalmente, como mínimo, se generan reportes de defectos, pero también podemos necesitar listados de casos de prueba, reportes de resultados de ejecución y otros informes similares. Dentro del proceso deben definirse también los workflow para los casos de prueba y para los defectos, a fin de asegurar su correcto seguimiento.
  4. Brindar apoyo al nuevo equipo: en la práctica, no basta con armar un equipo (o contratar un Tester) e indicar que deben comenzar a realizarse tareas de Testing en el proyecto. Sobre todo, si ya contamos con un equipo de proyecto acostumbrado a trabajar sin Testing, vamos casi inevitablemente a toparnos con cierta resistencia. Esto implica que desde el management, deberemos empujar para que los Testers puedan ganarse su lugar dentro del equipo, y su labor sea valorada y respetada. De otra manera, se corre el riesgo de que sean pasados por alto o dejados de lado y todo siga funcionando como antes. Es por eso que hay que tener bien claro que los Testers van a necesitar de apoyo desde el management, al menos hasta que hayan podido insertarse en el equipo y sea claro para todos que están aportando valor. Habrá que combatir la típica visión Desarrolladores versus Testers, que sólo genera demoras y tensiones que atentan contra la productividad y la calidad. A menudo, también es necesario capacitar a todo el equipo en temas de Calidad y Testing, para que tomen conciencia de su valor y asuman que la calidad es responsabilidad de todos y no simplemente una serie de tareas asignadas a un grupo especial de personas. La capacitación bien realizada puede acelerar los tiempos de integración y hacer que ésta sea menos traumática.
  5. Formar el equipo de Testing: esto puede parecer obvio, pero está lejos de serlo. Para comenzar a hacer Testing, es necesario formar un equipo (que en principio puede ser de una sola persona) de Testers. Esto significa que debemos seleccionar profesionales idóneos para la tarea. Un Desarrollador no puede hacer Testing. Un Analista Funcional no puede hacer Testing. Un Líder de Proyecto no puede hacer Testing. Sólo un Tester puede hacer Testing de manera eficiente y generando verdadero valor para el equipo. Esto quiere decir que debemos elegir a una persona que se dedique pura y exclusivamente a testear. Debe ser una persona idónea, que idealmente cuente con experiencia y fundamentalmente que reúna determinadas características, que hemos detallado en posts anteriores. Sólo así vamos a garantizar los mejores resultados. Asimismo, si decidimos que necesitamos armar un equipo de más de una persona, deberemos considerar qué perfiles técnicos debería tener cada uno de ellos, cuál va a ser su rol y sus tareas. Siempre que se pueda, es aconsejable comenzar por una persona o dos y a partir de ahí ir creciendo, de acuerdo a las necesidades que vayan surgiendo. Armar un equipo completo de una vez es más complejo e implica mayores riesgos.

Estos son los principios básicos para comenzar a hacer Testing en nuestros proyectos. El camino para armar un área de Testing e implementar buenas prácticas es largo, pero estos principios nos van a permitir ponernos en marcha y dar los primeros pasos. A partir de ahí, las oportunidades de mejora se van a ir abriendo a medida que nos vayamos adentrando en este nuevo universo. Lo más positivo, no obstante, es que implementar estos principios básicos nos va a generar resultados que vamos a poder ver desde un comienzo. Será el puntapié inicial de un crecimiento que no tiene techo.

 

Anuncios

Responder

Introduce tus datos o haz clic en un icono para iniciar sesión:

Logo de WordPress.com

Estás comentando usando tu cuenta de WordPress.com. Cerrar sesión / Cambiar )

Imagen de Twitter

Estás comentando usando tu cuenta de Twitter. Cerrar sesión / Cambiar )

Foto de Facebook

Estás comentando usando tu cuenta de Facebook. Cerrar sesión / Cambiar )

Google+ photo

Estás comentando usando tu cuenta de Google+. Cerrar sesión / Cambiar )

Conectando a %s