Muchos bichos, pocas balas

19 Ene

Lanzar una aplicación software a entorno de producción sin ser probada es como poner a vender una torta sin ni siquiera haberla probado al menos una vez.

Ahora bien, a diferencia de este ejemplo culinario, probar una torta es mucho mas sencillo (y rico!) que probar una aplicación. Tenemos probablemente cientos de escenarios posibles para validar. Por ello, el primer gran consejo es priorizar los casos de prueba a ejecutar. Ésto basicamente deberiamos realizarlo por dos motivos:

  1. No sobre eltiempo para poder testear todo.
  2. No conviene testear todo, ya que aqui tambien podemos aplicar la ley de Pareto: el 20% de los casos de prueba representa el 80% de los bugs de importancia que deberemos detectar.

Viendo estos dos puntos, entramos en una disyuntiva importante: ¿cuales son los casos de prueba que caen dentro del 20%? o lo que es lo mismo ¿que nos conviene testear?

Para responder esta pregunta se han definido varios tipos de heuristicas, las cuales buscan resumir en un grupo de palabras aquellas caracteristicas que deberemos fijar para priorizar la funcionalidad a testear.

Así, proponemos un ejercicio que parte de lo siguiente: en cada una de las siguientes categorias, asignar a cada funcionalidad del sistema, una puntuación según el grado de importancia de la misma respecto a la categoria. Las puntuaciones son:

  1. Poco importante que funcione perfectamente.
  2. Importante que funcione perfectamente.
  3. Muy importante que funcione perfectamente.

Como categorias a considerar, proponemos:

Negocio
Que tan importante es para el negocio.

Críticas tecnicamente
Segun que tan criticas son las funciones desde el punto de vista de los aspectos tecnicos que involucra.

Frecuencia de Uso
Que tan importante es, segun la frecuencia de uso.

Intensiva en recursos
Segun que tan demandante de recursos sea la funcionalidad.

Obligatorias
Segun que tan obligatorias son las funcionalidades pedidas por los interesados.

Aspectos legales
Segun si haya requerimiento legales que deba respetar.

La siguiente tabla refleja este análisis para unas funcionalidades tipicas. Se colocan las mismas y por cada una se define la importancia según las categorias anteriores. Obtenido el total de puntos por funcionalidad, nos resta ordenarlas por importancia y concentrarnos en testear aquellas que agrupen el 70-80% de importancia.


Como dato no menor, podemos obviamente agregar mas categorias para hacer este análisis mas exhaustivo.

Por ahora nada mas amigos, me voy con una sonrisa.

Nos vemos, Gastón

Post basado en: http://searchsoftwarequality.techtarget.com/answer/Prioritizing-software-testing-on-little-time

Anuncios

2 comentarios to “Muchos bichos, pocas balas”

  1. juan enero 20, 2011 a 12:28 am #

    Interesante punto de vista. Coincido con que es imposible probar todo y una buena estrategia de pruebas es ineludible para aumentar las posibilidades de éxito del proyecto.
    Un profesor me dijo alguna vez, si el sistema falla estando en producción, hay que echar al tester. Pero también afirmaba que debía ser una persona muy importante dentro del equipo de sistemas, experimentada y muy bien paga.
    Si bien es una declaración un tanto extremista no deja de tener algo de razón y creo que es una tarea difícil la de formar buenos testers.
    Dejo una pregunta picando, y los datos? Siempre estamos circundando las funcionalidades y es un enfoque indispensable, ya que obviamente, son las funciones las que producen las transformaciones de los datos para que los resultados que esperan los consumidores del sistema sean recibidos. Pero como se puede cualificar y cuantificar el impacto que tienen los datos en un sistema, los datos son una parte importante a la hora de modelar la realidad del problema que estamos intentando resolver mediante el sistema.
    En fin hay mucho para debatir y creo que ahí está lo lindo de esta, ingrata pero atrapante, profesión.
    Saludos y gracias por ponerme a reflexionar.

    • Gastón Guillerón enero 20, 2011 a 2:14 am #

      Como va Juan. Comparto que es imposible poder testear todo. Citando también a alguien, una vez me preguntaron sobre un sistema y si estaba seguro que “no fallaría”, como buscando un rotundo “si” y la verdad fue que dudé, aun con el riesgo de verme como que el saco me quedaba grande; dudé porque estoy convencido que no podemos asegurar que un sistema no falla (y con eso no estoy de acuerdo con echar al tester jeje), solo podemos afirmar que para determinados casos de prueba, el sistema reacciona correctamente.

      Como mencionas, la labor de un tester es esencial y no pocas veces me pregunto si se puede formar a alguien en esta disciplina; mas allá de los aspectos teóricos que se puedan inculcar, creo que un buen tester, para mantener una coherencia con lo que busca, deberá ser bastante “bicho” para poder husmear donde otros ni siquiera pensarian en pasar.

      En fin, tenemos mucho para seguir charlando no?. Gracias a vos por devolverme mis saques.

      Saludos.

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

A %d blogueros les gusta esto: