2011-05-11

¿Quién debe hacer el diseño de los casos de prueba?

He notado que de un tiempo a esta parte es cada vez más frecuente que los clientes que contratan servicios de testing de software decidan hacer ellos mismos el diseño de los casos de prueba para luego darle al proveedor solo la tarea de ejecutarlos. Esto es transforman el servicio de diseño y ejecución de pruebas a uno de ejecución solamente.

La pregunta que me hago es cuán buena es esta decisión. ¿Es conveniente para un cliente tomar la responsabilidad del diseño de las pruebas contratando solamente la mano de obra operativa necesaria para la ejecución?

Desde la perspectiva del cliente se escuchan dos argumentos a favor de esta estrategia:

  1. Se conserva el control sobre el alcance pues se decide lo que se prueba y de lo que no. Si el conocimiento del negocio es complejo o el proveedor no tiene experiencia en el dominio, esta puede ser una forma más suave de ir generando conocimiento del lado del cliente.
  2. Se fuerza a conservar el conocimiento del lado del cliente, ya que se ven obligados a tener que "entender" lo que hace la aplicación en cuestión.

Pero el enfoque tiene su contras también. El cliente que elige esto ..

  1. Debe invertir (o gastar) en mantener la capacidad de definir bien esos casos puesto que una mala definición no sólo haría fracasar la prueba, sino que también haría perder el tiempo del proveedor.
  2. No aprovecha la (deseable) experiencia del proveedor. Los buenos proveedores de este tipo de servicios podrán diferenciarse menos y tendrán menos margen para lograr eficiencias producto de esa experiencia.
  3. Corre solo con el riesgo de decidir qué y cómo probar. El proveedor no tiene injerencia el alcance. Lo que es una ventaja, en las manos incorrectas puede ser un problema. El cliente debe preguntarse “¿realmente soy el único que puede diseñar esta prueba?

Por el otro lado, desde la perspectiva del proveedor ¿es mejor que el riesgo sea todo del cliente? En mi opinión no por dos motivos:

  1. Por la pérdida de capacidad de diferenciación (que mencioné anteriormente). La tarea se vuelve tan operativa que cualquiera, en principio, podría hacerla. Se comoditiza el servicio y esto no es bueno para nadie.
  2. Si los casos están mal definidos pueden tener problemas de eficacia y eficiencia en la ejecución. Excesivo trabajo de inducción, de preparación de datos o quejas por no haber prevenido errores (aún sabiendo todos que la responsabilidad era de otro).

En definitiva, la idea de tercerizar la ejecución de las pruebas parece ser una idea más “descansada” tanto para el cliente como para el proveedor pero en mi opinión termina siendo más problemática.

Seguimos pensando..

5 comentarios:

  1. Ernesto, sin dudas el diseño de casos debe estar del lado del proveedor. Creo que en caso contrario se perdería la objetividad del testing. Algo que me parece fundamental.

    ResponderEliminar
  2. Gracias Germán por el comentario pero hay gente que no opina lo mismo :-)

    Saludos,

    ResponderEliminar
  3. Hola Ernesto.

    En mi experiencia el diseño de Casos de Pruebas debe realizarse por un experto en Pruebas (técnicas de análisis y diseño de pruebas) con un buen (completo)imput del "cambio" o funcionalidad a probar. En una relación Cliente/Proveedor la mejor relación de costo/beneficio se obtiene cuando este experto está en el Proveedor. De esta manera se independiza el alcance de la prueba de los intereses propios asociados a una liberación de SW y se potencia una "mejora continua" real al, sumar experiencia sobre el equipo que le interesa y "vive" del negocio de pruebas.

    Se me ocurren otras relaciones asociados a la disyuntiva, como son: QA/ Desarrollo/ Release/ Diseñador/ Ejecutor/ Cliente, pero quizás so tema de un futuro pensamiento.

    Slds

    ResponderEliminar
  4. Hola que tal, yo creo que los casos de pruebas tienen que estar realizados por los Analistas Funcionales , eso si, para los casos de pruebas funcionales.

    Los casos de pruebas específicos deben ser acordados con el cliente pero realizados por el proveedor. (para lo que es Stress,ethical hacking, test de capas y performance)

    ResponderEliminar
  5. Reproduzco el post de ALEJANDRO que por alguna razón Blogger borró ayer durante la caída que tuvo.

    AleSfrede ha dejado un nuevo comentario en su entrada "¿Quién debe hacer el diseño de los casos de prueba...":

    Hola que tal, yo creo que los casos de pruebas tienen que estar realizados por los Analistas Funcionales , eso si, para los casos de pruebas funcionales.

    Los casos de pruebas específicos deben ser acordados con el cliente pero realizados por el proveedor. (para lo que es Stress,ethical hacking, test de capas y performance)

    ResponderEliminar

Muchas gracias por comentar. Por favor deja tu nombre y/o email, los comentarios son mucho más valiosos cuando se sabe quien los hace.