En este anexo el objetivo es tener una lista de las comprobaciones comunes que debe realizar el equipo de desarrollo de un proyecto cuando se aplican cambios sustanciales o se hace una migración (tecnológica, de servidor, de base de datos, etc.).
Página en construcción
Comprobaciones a nivel de base de datos
Acceso a tablas
Se debe comprobar que el usuario de base de datos que use la aplicación sigue teniendo acceso a todas las tablas que se utilizan, tanto del propio usuario como las de otros esquemas que se usen.
Ejemplo: Nuestro usuario JV_APLICACION usa tablas de los esquemas de recursos humanos, tras una actualización importante una de las vistas que usamos se recrea pero no se le otorgan los permisos que tenía. Con esta situación nos podemos encontrar principalmente dos casos:
- Si tenemos esta vista modelada como una entidad nuestra aplicación no arrancará diciendo que la tabla no existe
- Si accedemos a la vista por de manera nativa la aplicación sí arrancará pero fallará la consulta en cuestión diciendo que la tabla no existe.
Lectura de objetos BLOB y BFILE
Se debe comprobar que la lectura de objetos de tipo BLOB y BFile se sigue realizando de manera correcta por las aplicaciones.
Ejemplo: Tras una actualización del servidor Weblogic el driver jdbc se actualiza causando que algunos de los métodos utilizados para recuperar este tipo de objetos deje de funcionar correctamente. En ese caso la aplicación funcionará con normalidad pero lanzará una excepción cuando se intente recuperar este tipo de objetos.
Paquetes PL/SQL
Se debe comprobar que los paquetes PL/SQL siguen compilando correctamente y que la aplicación sigue pudiendo acceder a ellos con normalidad.
Ejemplo: Tras una actualización de la base de datos, se descompilan algunos paquetes PL/SQL, cuando la aplicación los invoque estos paquetes fallarán provocando una excepción en los servidores
Codificación
Se debe comprobar que no hay problemas de encoding a la hora de guardar o recuperar caracteres en base de datos.
Ejemplo: Tras un cambio en una parte de una aplicación se modifica el encoding por defecto en algunas pantallas. Esto provocará que los datos que se guarden en base de datos tendrán caracteres extraños debido a usar dos codificaciones diferentes. El usuario meterá la información de manera correcta, pero al gestionarla en el servidor se les hará un cambio de codificación que tendrá como consecuencia que esos datos se guarden con el encoding modificado y cuando se recuperen no se verán correctamente.
Sesiones bbdd
Se debe comprobar que la aplicación no deja sesiones abiertas en base de datos.
Ejemplo: Una aplicación creaba sus propias conexiones a base de datos sin usar un pool de conexiones. Tras una migración una parte de la lógica de negocio falla y no se cierran las conexiones a base de datos que se abrían. Esto causará problemas tanto en la aplicación como en la base de datos en general.
Comprobaciones en infraestructura o librerías
Comprobaciones tras cambios sustanciales en proyectos y/o infraestructuras | |
---|---|
Comprobaciones BBDD | |
Acceso a tablas | Se sigue accediendo a todas las tablas y vistas existentes y no hay problemas de permisos. |
Lectura de objetos BLOB y BFILE | Se sigue recuperando de manera correcta los objetos alojados en BLOB y BFILE. |
Paquetes PL/SQL | Los paquetes PL/SQL y sus funciones y procedimientos funcionan correctamente. |
Codificación | No se registran problemas de codificación en los datos y las interacciones con la aplicación. |
Sesiones BBDD | Las sesiones de base de datos se cierran correctamente |
Comprobaciones infraestructura/librerías | |
Carga de librerías | Todas las librerías implicadas en la aplicación cargan correctamente. |
Acceso a servicios ajenos | Los accesos a servicios que no forman parte de la aplicación no están cortados por firewall y se sigue accediendo a ellos con normalidad. |
Logs | Los logs se imprimen correctamente. |
Acceso a ficheros de recursos | Acceso a ficheros estáticos locales a la aplicación o a directorios temporales. |
Comprobaciones sobre el código fuente | |
Pruebas funcionales | Las pruebas de la lógica de la aplicación se realizan de manera satisfactoria. |
Pruebas de servicios | Los servicios expuestos por la aplicación funcionan correctamente. |
Comprobaciones de dependencias externas | |
Interacción con servicios externos | Las interacciones con servicios externos funcionan correctamente. |