aunque este tema parezca majadero un día revisando mi correo vi una seguidilla de mails de confirmaciones que me había registrado en un sistema e-commerce de un proveedor.
después veo confirmaciones de la creación de una orden de compra por unos 5.000 dólares. aquí ya me puse serio y revise de donde se estaba generando había sido creada por empresa A para empresa B. y a mi me aparecía en mis ordenes. y recibía las notificaciones. tenia dentro de la orden acceso a la información de A y B.
Me comunico con C proveedora del servicio, de unos ping pong de mail, la verdad no tenían idea de lo que ocurría. una vez comunicado el hecho seguí recibiendo las notificaciones de los cambios de estado de la orden.
logre que al final dieran de baja mi cta. del sistema, ya que con lo acontecido la verdad no me daba confianza (Perdida de Confianza).
Un tiempo después recibo un comunicado diciendo que el INCIDENTE se había debido a una falla en el procedimiento de puesta en producción de una mejora en el sistema. ósea que la gente de desarrollo estaba haciendo pruebas con algunas ctas. (QUE?) es extraño el comunicado ya que la orden fue generada por A. pero bueno.
Raya para la suma.
Ahora entiendo porque sistema debe estar separado de Desarrollo, porque sirve de punto de control.
No hay que realizar pruebas en producción.
Efecto Perdida de confianza imprescindible en un sistema e-commerce, y en todo tipo de transacción comercial especialmente en las ON-Line.
15 enero, 2008 a las 11:56
Estoy de acuerdo contigo, con una salvedad: no hacer pruebas en produccion con clientes reales. Si es necesario hacer una prueba, que se haga con un cliente nuevo creado a tal efecto y con datos de prueba.
16 enero, 2008 a las 15:40
Las famosas pruebas, esas que definitivamente en la mayoría de los casos no se hacen, se hacen parcialmente o se ejecutan sólo para mostrar la «funcionalidad estrella» de una aplicación.
Tal como lo comentas, es un Pecado Capital ejecutarlas en Producción, pero hay distintas formas de probar o hacer testing, una forma tiene relación con verificar que los controles funcionan como corresponden, las pruebas de stress, otras para validar que los procedimientos, procesos o funciones «hacen lo que deben hacer» y otra forma de prueba es para verificar que el software ha sido desarrollado con Calidad.
El software debe ser testeado de forma integral y en distintas instancias, ¿Cuáles serían estas instancias?
Tenemos las que se definen para el entorno de desarrollo o el entorno en que el desarrollador «codifica»
También las pruebas unitarias.
Las pruebas integradas.
Además somos responsables de testear el software entregado por terceros y que integramos a nuestra aplicación.
Para mi la más relevante, son las que están fuera del entorno de desarrollo, estas son las pruebas de certificación, en donde, el Cliente ha homologado el entorno de Producción.
Es en la instancia de certificación en donde se ejecutan las pruebas de aceptación del Cliente. Donde se verifica por el «usuario» que el software cumple con los requisitos o requerimientos y que las adaptaciones o correcciones satisfacen o zanjan los problemas no previstos por las contingencias.
El tiempo dedicado a Testing, es un etapa que nos permite entregar Software de Calidad, nos evita los malos ratos con los clientes y con la gente a nuestro cargo.