Cuando hay cierta presión de por medio en una empresa y pocos días de margen para que un producto se lance, las posibilidades de que no se haya testeado bien un script tienden a infinito. Y de esta manera pasan cosas como la que le ha ocurrido a Shantnu Tiwari, quien debido a un infortunio, ha bloqueado 10.000 dispositivos móviles en Sudamérica.
La historia ha sido contada a través del portal Python For Engineers, donde Tiwari comenta este curioso suceso y medita sobre las acciones que no hay que tomar ante estas circunstancias.
Una app que bloquea teléfonos de operadoras
Tiwari es un empleado de una firma de seguridad en la que se encontraba desarrollando una aplicación que vendían a las operadoras. Esta app consistía en bloquear el teléfono de cualquier persona si éste había sido robado o el cliente dejaba de pagar por el servicio. Esta herramienta se creó como parte del sistema Android, por lo que el usuario no podía eliminarla.
Según describe, esta aplicación se encargaba de bloquear las características de más bajo nivel que permiten en el día a día hacer llamadas, utilizar el Wi-Fi o subir imágenes en redes sociales. La herramienta funcionaba muy bien, pero uno de los fabricantes a quien prestaban sus servicios, descrita en el texto como "la compañía K-Pop fabricante de teléfonos", sugirió usar su propia aplicación.
Para aquellos más despistados, sí, efectivamente se refería a Samsung. Tiwari decidió pues testear la app, aunque no todo salió como esperaba. Y es que debido a la gran carga de trabajo de la que disponía su empresa en ese momento y los pocos efectivos que la componían, el equipo no comprobó en todos los casos la funcionalidad de la app.
Sin tiempo para testear
Según afirma Tiwari, una de las pruebas que tenían que realizar era confirmar que cuando una operadora subía un archivo csv con múltiples teléfonos, éstos estaban bloqueados. Para ello hizo un script en Python que generaba números de teléfono aleatorios, se conectaran al portal web y que acabasen bloqueados. Después se comprobarían los resultados de este proceso iniciando sesión en otro sitio web.
Haciendo esto, según Tiwari el código generó cientos de miles de números aleatorios. Con toda la presión, el trabajador afirmaba que no hubo tiempo para testear el código en condiciones, y según comenta, segundos después de acabarlo ya estaba subido a los servidores.
El resultado acabó en tragedia, aunque se solucionó rápido
Esto se tradujo en un desastre. Y es que esos números aleatorios que se generaban, muchos de ellos fueron teléfonos reales, lo que supuso en el bloqueo de 10.000 dispositivos en América del Sur. Tiwari se enteró poco después a través de un e-mail de uno de sus compañeros diciendo lo siguiente:
¿Te acuerdas de ese script que escribimos ayer? Hemos bloqueado miles de dispositivos en América del Sur, y la gente se está quejando. Es posible que seamos despedidos.
Para solventar este error, tuvieron que escribir varias piezas de código para iniciar sesión en el portal de esa "compañía K-Pop fabricante de teléfonos" y descargar la lista de teléfonos bloqueados. Finalmente lo arreglaron en aproximadamente una hora.
La importancia de testear el código
Tiwari confirma que no le despidieron, lo que le incitó a escribir el texto y profundizar sobre la importancia de testear bien el código. De esta forma asegura que deberíamos "darle tanto cariño y amor al testeo como si fuera código normal". Añade que tampoco sería conveniente probar código de producción crítico en momentos de alta presión "independientemente de lo que los responsables piensen".
Vía | Python For Engineers
Ver todos los comentarios en https://www.genbeta.com
VER 5 Comentarios