El difícil arte de testear software (imágenes en blobs)

Queria contar una anécdota de un error que nos afectó en las últimas semanas.

Tenemos una aplicación desarrollada en GeneXus 8.0, generando en .NET y una parte en Win y otra WEB, con una base de datos Oracle.

En dicha aplicación desde hace tiempo utilizamos campos BLOB en la base para guardar documentos, los cuales son subidos al servidor, a traves de una aplicación WEB, que pide un archivo y lo guarda en la base de datos.

Necesitamos desarrollar una aplicación de mensajería que recibe varios archivos de imágenes y también las guarda en la base de datos. Para esto elegimos usar campos BLOB, pues era para nosotros una tecnología conocida.

Se hicieron pruebas de la aplicación, recibiendo imágenes y en todas las pruebas funcionó todo bien. Se probó subir una imágen y también con archivos de 1, 2, 10 páginas (se exigen TIFF) y todas funcionaron bien.
También se hizo una prueba de carga, donde se proceso en forma repetitiva la misma imágen muchas veces para ver si la performance era buena.

El lunes se puso en producción la aplicación y a las 2 horas de puesto en producción, se vió que algunas imágnes no podían visualizarse, aunque no daba ningun error al procesarlas ni al almacenarlas.

Despues de un poco de investigación y consultas a soporte de Artech (el WEBSac estaba caido!!!) , encontramos el SAC 19102, que causaba que si se suben 2 imágenes, pero la segunda tiene un tamaño mayor que la primera, la segunda imagen queda truncada al tamaño de la primera.

Por suerte manteníamos copia de las imágenes que se recibían y podíamos comparar el tamaño del archivo con el tamaño guardado en la base de datos y corregir el problema en forma puntual, hasta que Artech nos envio el arreglo. Fueron algunas horas bastante estresantes, pues toda una operativa dependía de poder visualizar dichas imagenes.

Ahora ya tenemos una DLL que soluciona el problema, pero este caso, no hace mas que demostrar lo dificil que es testear. Evidentemente en nuestro caso falló el conjunto de pruebas que realizamos (deberíaamos haber probado con archivos grandes y luego chicos en una misma corrida) pero darse cuenta de antemano no es una tarea trivial, sobre todo cuando todos suponíamos que grabar BLOBs era una cosa probada desde hace tiempo.

Comentarios

Entradas más populares de este blog

La nefasta influencia del golero de Cacho Bochinche en el fútbol uruguayo

Aplicación monolítica o distribuida?

Funcionalidades de GeneXus que vale la pena conocer: DATE Constants.