Tag Archives: requerimientos

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