0. Prefacio

Nuestra vida gira en torno a los sistemas de información. Prácticamente todo ámbito de la vida humana depende de la continuidad de servicio y de la operación correcta de dichos sistemas. El suministro eléctrico, el sistema de salud con el que atendemos a nuestros hijos, el control del tránsito, nuestro dinero, todo es reducible a datos en un archivo y nuestro acceso a ellos dependerá de lo bien -o mal- que un sistema funcione. Esta realidad es incontrarrestable. Los sistemas de información están aquí y no dejaremos de usarlos nunca más (salvo que se produzca una hecatombe y la humanidad retroceda a una era pre-industrial, cosa posible al menos en la imaginación de Hollywood).

Esta nueva realidad conlleva una serie de nuevas dificultades. ¿Cuántas veces nos hemos enfrentado a la temida frase "es que se cayó el sistema" justo cuando estamos a punto de ser atendidos, tras haber estado treinta minutos en una fila? ¿Cuántas veces hemos tenido que cambiar de panorama porque el cajero automático insiste en que no tenemos dinero (pese a que sabemos que nuestra cuenta dispone aún de cierto efectivo)? Y ni hablar de la mala operación de los sistemas por parte de los responsables de su uso en las organizaciones: estamos a merced de quienes nos venden los tickets en algún medio de transporte, quienes ingresan nuestros depósitos al banco, quienes nos venden entradas para un espectáculo que tendrá lugar en un mes más...

La única defensa de que disponemos los simples mortales ante esta realidad es el Control de Calidad de los Sistemas de Información. Alguien -desconocido para nosotros, encerrado en alguna oficina lúgubre o subterráneo olvidado- deberá revisar, validar y contravalidar que los estos sistemas hagan lo que "se supone" deben hacer. Y esta no es una tarea fácil. La infinidad de variables y situaciones posibles implica que se debe enfrentar esta labor en forma altamente estructurada y organizada y no -como muchos suponen- como un simple trámite.

Por supuesto, hay distintos tipos de sistemas que requerirán distintos tipos de Testing. Un sistema de control de aviones en tiempo real requerirá revisiones más completas y exhaustivas que, digamos, un sistema de compra de clavos por internet. Esta última supra red ha aumentado considerablemente la complejidad del Control de Calidad, y -asimismo- la definición de "Sistema".

¿Cómo? En el pasado, los Sistemas estaban disponibles solo para unos pocos elegidos, quienes trabajaban en una determinada empresa, y no en forma directa para el público en general. Con el advenimiento de Internet, prácticamente todo el mundo tiene acceso a los Sistemas. Ejemplo clásico: la banca. Décadas atrás, la única manera de saber el saldo de la cuenta era ir al mesón de la oficina del Banco en el que uno tenía cuenta y solicitarlo. La persona del mesón lo consultaba y, previa revisión visual, lo entregaba (supongamos que uno es un millonario conocido. Evidentemente si el saldo que da el sistema es "0" habrá un error y se le dirá al cliente: "esteeee... ¿sabe? el sistema está lento... ¿le ofrezco un café mientras tanto?"). Hoy puedo revisar mi saldo, últimos movimientos, cheques, tarjeta de crédito y un largo etcétera a través de la red, desde la comodidad de mi casa.

Esto significa que las empresas deben estar doblemente aeguradas de que la información que están entregando es la correcta. Asimismo, las páginas web de organismos e instituciones "supervisadas" por la autoridad (Bancos, AFPs, etc.) deben estar seguras de no correr riesgos con la información que están desplegando a través de sus páginas web, puesto que cualquier cliente puede encontrar una página con un error, imprimirla, y luego ir a exigir ante la autoridad que se cumpla lo señalado en la página en cuestión.

En adición a todo lo anterior, uno de los principales problemas -a nivel de comprensión- es que para la gran mayoría de las personas, el Testing de los Sistemas y el Aseguramiento de la Calidad de los sistemas son una misma cosa. Nada más alejado de la realidad. El Testing dice relación con las pruebas que se realizan sobre los sistemas, mientras que el Aseguramiento de la Calidad apunta a revisar y validar que todas las etapas del ciclo de vida del software se cumplan a cabalidad, de acuerdo a los estándares definidos y según la metodología vigente, por rústica que esta sea.

Este libro apunta a apoyar la tarea de los equipos de Testing, proveyendo guías para esta labor. Asimismo. busca permitir que los Jefes de Proyecto tengan más claridad acerca de la cobertura y rol del equipo de pruebas. Finalmente, permite que los Programadores tomen conciencia de los tópicos que serán revisados durante las pruebas (y el por qué de estas revisiones)..

Al finalizar una lectura dedicada de este libro, el lector sabrá (entre otras cosas):

  Cómo crear un plan de pruebas
  Cómo encontrar errores importantes
  Cómo diseñar (y usar) un sistema de seguimiento de errores
  En qué etapa del ciclo de vida de desarrollo realizar las pruebas
  Cómo personalizar las pruebas según la tecnología involucrada
  A quienes involucrar en los procesos de prueba
  Y algunos conceptos de SQA