Conversemos de DevSecOps

En esta nueva sección de nuestro blog compartiremos la visión y experiencia de nuestro equipo de expertos en el ámbito del desarrollo de software y las tecnologías de información en general, quienes tocarán distintos temas relacionados con las tecnologías y metodologías utilizadas por Sovos para crear e implementar un mejor software, y entregarán tips y datos orientados a aportar valor a quienes deben trabajar en este ámbito, fundamental para las compañías que crean y utilizan soluciones para impulsar el negocio de sus clientes.


 

Pamela Ruiz, Senior QA Engineer

Utilización de Report Portal para monitoreo de pruebas funcionales

En la actualidad, cada vez poseemos más automatización en el área de pruebas funcionales, esto es, tests de API y End to End. Esto acelera el proceso de testing en regresiones y tiempo de user acceptance testing, entre otros, permitiéndonos avanzar en la implementación de CI/CD (continuous integration/continuous delivery).

Mientras mayor sea la automatización, menor será el tiempo de todo el proceso, por lo que se podrán entregar al cliente cambios de forma más rápida y segura.

La automatización genera algunos nuevos desafíos que necesitan un control; por ejemplo, pueden generarse falsos positivos, tests que fallan por inestabilidad, tests de mala calidad, etc. Por esta razón, es sumamente importante mantener un control sobre ellos.

La necesidad de mantener monitoreados los resultados de pruebas funcionales movió al equipo a realizar una investigación de herramientas disponibles.

Se encontró la herramienta de Report Portal y se llevó a cabo una prueba de concepto.
Lo primero que notamos fue su facilidad de instalación, al necesitar correr un único comando para instalar a través de Docker compose.

docker-compose -p reportportal up -d --force-recreate

Una vez ejecutado el comando, se chequean las imágenes de docker con el comando.

docker ps
01-docker-ps

En la imagen se observa la salida del comando docker ps.

 

Al levantar la aplicación de Report Portal por primera vez, y acceder a ella, nos encontramos con una pantalla de login:

02-report-portal

 

Y para acceder, utilizamos las credenciales temporales provistas por Report Portal.
Una vez ingresados al sistema podemos crear dashboards, diferentes proyectos, analizar las ejecuciones, etc.

Los dashboards son completamente configurables. En la siguiente imagen podemos ver un ejemplo:

03-dashboard-configurable

 

En este caso contamos con las estadísticas de todas las ejecuciones, dividiendo los tests en distintas posibles categorías.

Una de las propiedades más interesantes de esta herramienta es la posibilidad de ir aprendiendo en base a los análisis que realizamos (cuáles son fallos de productos, tests skippeados, fallos de ambiente, etc). Este aprendizaje está basado en inteligencia artificial.

Algunos de los problemas con los que nos enfrentamos al utilizar esta herramienta fueron los tipos de reportes soportados.

Report Portal soporta diferentes tipos de reportes, pero el de mejor visibilidad de datos fue JUnit. En nuestros tests automatizados generamos otros tipos de reportes, por lo que se realizaron scripts para adaptarlos al formato de JUnit aceptado por Report Portal:

 

04-report-portal-junit

Hay diferentes opciones de importación de datos hacia Report Portal, incluyendo la instalación de agentes, el envío de datos en tiempo real (durante la ejecución de tests), y otros.

Para evitar un aumento de tiempos en la ejecución de tests y la instalación de agentes, optamos por realizar la carga importando los reportes a través de la API de Report Portal. Desarrollamos un script para este propósito.

Lo primero es importar el archivo del reporte, ya adaptado a Junit, y comprimido en un archivo .zip:

05-junit-zip

Luego necesitábamos agregar información de la ejecución -como el número de build- y linkear al job de Jenkins ejecutado:

06-build-jenkins

Obtenemos el ID del archivo importado y agregamos la información que necesitamos incluir en los atributos y descripción del launch.

Cada nuevo reporte genera en Report Portal algo llamado launch, que es similar a una nueva ejecución. Para que la herramienta tome el historial de ejecuciones de cada test, el launch debe tener un mismo nombre. Si este se modifica, se crean nuevas versiones cada vez.

Por ejemplo, inicialmente importábamos los reportes con el número de build en su nombre,

07-build-nombre

lo que generaba el siguiente gráfico de trend:

08-grafica-trend

 

Luego extrajimos el número de build del nombre y pudimos obtener un gráfico con el historial.

09-build-grafico-histtorial

 

También nos permite ver el historial de cada test case.

010-historial-test-case

 

En conclusión, hasta ahora la herramienta de Report Portal nos sirve para mantener un constante monitoreo sobre todo tipo de pruebas funcionales, incluyendo algunos unit tests.

Pudimos enseñarle a la herramienta a reconocer ciertos tipos de resultados para clasificar futuras ejecuciones, y podemos fácilmente observar los resultados desde los gráficos dispuestos en los dashboards.

En la forma en la que lo trabajamos nos resultó útil poder utilizar diferentes tipos de reportes, adaptarlos a la herramienta mediante un script e importarlos en Report Portal con la información necesaria, tanto de los tests, como el link hacia la herramienta de ejecución, que en este caso es Jenkins.

Gerente técnico de cuentas (TAM)

Un gestor clave para llevar los servicios a otro nivel

La figura del Technical Account Manager o gerente técnico de cuentas (TAM), es un recurso que ofrece una línea de comunicación constante con los clientes, y que mantiene visibilidad completa de sus procesos de negocios para ayudar en la resolución de distintas problemáticas que surjan en el desarrollo de un proyecto.

Proactivo por definición, el TAM -servicio disponible para clientes de mayor tamaño, que tienen estructuras y una operativa más complejas- ofrece valor agregado al actuar como punto único de contacto y facilitador entre el cliente y las distintas áreas de Sovos, colaborando en la búsqueda de soluciones a incidencias que pudieran generar cuellos de botella en algún proceso. El TAM ayuda a detectar oportunamente las problemáticas internas en los procedimientos de la compañía y sugiere soluciones, mejoras y buenas prácticas.

Para ser efectivo, un TAM debe conocer el negocio, cultura, problemáticas, procesos internos y contrapartes de un cliente en profundidad.

Disponible en dos modalidades, el TAM dedicado trabaja con un cliente en específico unas 32 horas semanales en promedio, mientras que el tiempo que dedica un TAM compartido a una cuenta va entre 8 y 24 horas a la semana, dependiendo de lo acordado.

Los TAM establecen reuniones de coordinación y seguimiento semanales con los clientes, en las que se revisa el status de todos los proyectos que estos tengan en marcha. Esta conversación permanente entre ambas partes se traduce en mejores tiempos de respuesta ante requerimientos y en una relación más fluida y eficiente.

En la práctica, durante las reuniones semanales se revisa el estado de la cuenta a nivel operativo, analizando el estado de los proyectos y los casos abiertos pendientes de resolución por ambas partes. El TAM se comunica proactivamente con las distintas áreas y define dónde se necesita su intervención para solucionar incidencias.

Adicionalmente se acuerdan reuniones trimestrales, en las que se revisan las métricas de los meses anteriores y se evalúan aquellos puntos que requieren de modificaciones dentro de una estrategia de mejora continua.

El TAM también está al tanto de los cambios regulatorios en curso y advierte al cliente de sus posibles alcances, para que tome las medidas pertinentes si estos afectan su negocio; además sugiere capacitaciones y trainings, y comparte información sobre nuevos productos o versiones de un producto que puedan ayudar al cliente a mejorar su negocio.

Las empresas -especialmente aquellas de gran tamaño y complejidad- enfrentan cada vez mayores desafíos para mantener sus operaciones saludables, en un escenario en el que las administraciones tributarias imponen vertiginosos y cada vez más demandantes cambios regulatorios para tener mayor control sobre sus transacciones en tiempo real.

Generar la información requerida por las entidades gubernamentales para estar en cumplimiento requiere que las compañías inviertan recursos internos valiosos, que deben dejar de atender el core de su negocio para responder a estas exigencias y evitar el riesgo de multas y detenciones.

Estos datos son fundamentales para el trabajo diario, el cierre de balances y eventuales auditorías, y los reportes derivados de estos análisis deben cumplir con las normas en cada país en que se está presente.

Para controlar de punta a punta todo el flujo de los documentos electrónicos de los clientes con operaciones muy distribuidas -como retailers y otros que generan gran cantidad de documentos- Sovos ofrece los servicios de explotación o extendidos, que, a través de sistemas de reportería, tareas proactivas y monitoreo, velan por el correcto flujo de la información, desde que nace un documento y se envía a la administración tributaria, hasta su recepción final.

Los servicios extendidos hacen más eficiente la operatoria al detectar incidentes o errores de manera temprana, generar los reportes requeridos y las alertas de distintos parámetros fundamentales para la continuidad operacional.

Estos servicios son transversales para todos los países de la región, con las adaptaciones correspondientes dependiendo de las normativas y requerimientos locales, y están disponibles en tres tipos de planes de servicios -tier 1, 2 y 3- que abarcan diferentes entregables dependiendo de las necesidades específicas de cada cliente, incluyendo informes estándar, informes extendidos y alertas.

Adicionalmente, estos servicios garantizan la disponibilidad y los tiempos de recuperación del servicio, aseguran una mejor performance y estabilidad de las soluciones y evitan amenazas por mal uso y pérdidas de información al monitorear continuamente las condiciones de seguridad de los datos críticos.

Para más información, revise el brochure de servicios extendidos aquí.

Subirse al barco de la transformación digital puede ser una experiencia compleja para muchas compañías, especialmente aquellas que aún acostumbran a llevar la mayor parte de sus procesos a través de documentos físicos. El SII ha impulsado la innovación tecnológica al hacer obligatorio el cumplimiento tributario en línea, pero hay una amplia gama de áreas en las empresas que aún están a medio camino hacia la meta de los procesos 0% papel.

Se estima que hoy, en promedio, un 30% de las horas de trabajo se invierte en buscar información necesaria para trabajar, que cerca del 8% de los documentos en papel se pierden en la distribución y que un 3% de los documentos están mal archivados y son difíciles de encontrar.

La gestión de documentos en papel genera costos innecesarios por concepto de insumos, archivado y recuperación, consumiendo recursos vitales para la operación de una empresa. Igualmente, depender de la presencialidad de las personas para validar su identidad y firmar documentos es un gasto de tiempo valioso y puede redundar en procesos de negocios críticos estancados.

El onboarding de las empresas al mundo digital es, en este escenario, el camino más corto hacia la eficiencia, y la búsqueda de proveedores que simplifiquen el tránsito hacia la eliminación del papel, se transforma en un imperativo estratégico.

Un partner para la digitalización de procesos

Para acompañar a las compañías en este camino, Sovos cuenta con un robusto portafolio de soluciones de documentos electrónicos.

Su plataforma de gestión documental digital permite, además de almacenar y llevar la trazabilidad completa, compartir, enviar y firmar documentos de manera digital, validando previamente la identidad de los firmantes a través de distintos métodos de autenticación presenciales o remotos, incluyendo la biometría y la clave única del Estado. Cuenta además con firma digital simple y firma electrónica avanzada, esta última acreditada y auditada por el Ministerio de Economía, que incorpora ciertos protocolos de validación superior como la encriptación, otorgándoles así validez legal a los actos de firma con la misma consistencia de una firma presencial en papel.

Adicionalmente, Sovos cuenta con un equipo experto que acompaña a las empresas en todo el ciclo de vida de un negocio, ayudándoles a responder a las exigencias que demanda la transformación digital.

La Dirección de Impuestos y Aduanas Nacionales (DIAN) anunció mediante la Resolución 000448 de 29 de abril de 2022 que ha decidido posponer la obligatoriedad de la entrada en vigencia del documento soporte o equivalente hasta el 1 de agosto de 2022.

Este documento soporta la compra de un bien o la prestación de un servicio cuando el proveedor es un sujeto no obligado a expedir factura electrónica de venta o documentos equivalentes, y debe ser emitido por los compradores facturadores electrónicos que realizan transacciones con estos proveedores.

El comprador debe emitir dicho documento para soportar aquellas transacciones que dan lugar a costos, deducciones o impuestos descontables, por medio de un documento con numeración autorizada por la DIAN.

Lo mismo sucede con el documento utilizado para corregir facturas, denominado nota de ajuste.

La intención de la entidad tributaria al crear esta figura es dar un nuevo paso en la digitalización de los documentos fiscales, aumentando de este modo el control sobre las transacciones de los contribuyentes.

La implementación de este documento tiene varios beneficios, incluyendo la posibilidad de usar el costo o deducción en la declaración de renta, desmaterializar los comprobantes fiscales, mantener actualizada la información de sus costos, deducciones e impuestos descontables reportados a la DIAN y acceder a nuevos servicios electrónicos, incluyendo devoluciones automáticas y declaraciones sugeridas.

El aplazamiento de la entrada en vigor de esta normativa responde a la dificultad, para las empresas que son facturadoras electrónicas, de realizar las modificaciones pertinentes en sus ERPs para registrar a los proveedores no electrónicos y hacerlos emisores para efectos de sus sistemas. Por ejemplo, una empresa de retail con 500 proveedores, de los cuales no están obligados a ser electrónicos 50 -el 10%- debe crear 50 entidades dentro de su sistema para poder generar documentos en su nombre.

La figura del documento soporte, creada originalmente en Chile, fue muy efectiva en su momento para regular este tipo de transacciones, ya que extendía el uso de la factura electrónica a pequeños contribuyentes que no tienen los medios o no están obligados a crear este documento, transpasando así la responsabilidad a las empresas de mediano y gran tamaño

Manténgase al tanto de los cambios regulatorios en Latinoamérica aquí.

Verificar la identidad de una persona real detrás de un proceso es un paso fundamental para otorgar acceso seguro a usuarios y garantizar la validez de la firma digital de documentos. Los mecanismos de autenticación -presenciales o remotos- son variados, pero los más certeros son, por lejos, aquellos que incluyen tecnologías de verificación biométricas.

Cualquier rasgo físico (e incluso, de comportamiento) susceptible de ser captado y medido puede ser utilizado en un proceso biométrico. Hay muchas alternativas, dependiendo de la disponibilidad de la tecnología – el iris, el ADN, la voz, el patrón vascular y hasta el análisis del comportamiento en ciertas situaciones, como los gestos- pero los más utilizados en la actualidad son la huella dactilar y el análisis del rostro.

La identificación a través de la huella dactilar -única e irrepetible en cada persona- es hoy uno de los métodos más seguros y extendidos, principalmente porque existen tecnologías y dispositivos de alta calidad -huelleros- para registrarlas, y bases de datos masivas, almacenadas por entidades gubernamentales o certificadas, contra las que se contrastan dichas huellas para corroborar la identidad de una persona que requiere demostrar que es quien dice ser. Este método es más utilizado de manera presencial.

En cuanto a la identificación facial, esta funciona por medio de la medición de puntos en el rostro que son, al igual que la huella dactilar, únicas en cada individuo. Estos datos se almacenan y al momento de verificar la identidad, se realizan estas mediciones para corroborar que corresponden a los datos enrolados. Este método se está masificando en virtud del avance de las tecnologías disponibles para captar los rasgos de una persona, y permite realizar verificaciones de identidad a distancia, para lo cual el usuario que requiere ser autenticado puede utilizar, por ejemplo, la cámara de su teléfono celular para tomar su imagen y que esta sea validada.

La verificación facial se realiza aún en muchos casos contra el documento de identidad; es decir, se solicita a la persona una foto de su documento por anverso y reverso, se saca la información de la cédula con OCR o lectura de caracteres; con esa información, se verifica que los datos estén vigentes, y después se contrasta la foto de este documento contra una imagen que es solicitada a la persona -y que puede tomar a través de una foto o video con su celular- para dar por corroborado que es quien dice ser. Perú es, en la región, el país donde este sistema es más utilizado: el usuario se toma una selfie y esta es enviada al registro civil, que toma la imagen y verifica que corresponde al DNI ingresado.

En rigor, cada país determina cuáles métodos son los que exigirá para realizar las verificaciones de identidad y para qué trámites pueden ser utilizados.

Sovos ofrece distintos mecanismos de autenticación presenciales o remotos incluyendo la biometría. En Chile, por ejemplo, está certificado A.E. 3822 del 25 de noviembre de 2016 para su uso. Además, proporciona mecanismos para la verificación dactilar y facial de alta seguridad, que encriptan las muestras para que nadie pueda accederlas o violarlas.

Adicionalmente, siempre utiliza más de un método de verificación de identidad para corroborar que una persona es quien dice ser, y validar que tiene los permisos para realizar determinados trámites o firmar documentos.

La evolución acelerada de los procesos de negocios desde el papel al mundo electrónico, resultado de la transformación digital y de las condiciones derivadas de la pandemia global, ha tenido un impacto significativo en un área fuertemente regulada debido a la criticidad de los datos que administra: la industria financiera.

Para entidades como la banca, administradoras de fondos de pensiones y aseguradoras, entre otras, lo que en un inicio surgió como la necesidad de reducir costos por concepto del uso, traslado, almacenamiento y recuperación de documentos en papel, a la par de optimizar el trabajo de su personal, se convirtió, en el marco de esta rápida evolución hacia lo digital, en la urgencia de encontrar soluciones tecnológicas que simplificaran la operatoria y que permitieran cumplir con las estrictas normativas de las entidades reguladoras.

Adelantándose a estas demandas, Sovos marcó un hito al ser una de las primeras compañías en habilitar el gestor documental digital para esta industria; una solución robusta, que permite administrar y firmar los documentos de manera remota, no presencial, verificando previamente la identidad de los firmantes por medio de distintos métodos de validación – biometría, clave única y otros.

La solución almacena los documentos automáticamente en un repositorio seguro y de fácil acceso, añadiendo un sellado de tiempo -certificado en Chile y Perú- que corrobora la fecha y hora en que fueron firmados o modificados, lo que facilita su trazabilidad y uso como medio probatorio en cualquier juicio o instancia legal.

Otro de los beneficios que simplifica la administración para las entidades financieras, es que al estar los sistemas ERP del cliente integrados con Sovos, la gestión de los documentos queda a su total disposición. Esto le permite generar fácilmente cualquier informe que demanden las regulaciones imperantes, asegurando la continuidad operacional.

Ejemplos de uso

En el caso de las AFPs, por ejemplo, el gestor documental permitió la digitalización de la orden de traspaso de una entidad a otra, lo que se traduce en un cambio radical de los procedimientos internos, desde el proceso en papel y el consecuente flujo de documentos vía valija, almacenamiento y rescate, al acceso a un portal de custodia donde se encuentra el documento -que tiene asignado un número único de identificador- firmado y con sellado de tiempo.

Las compañías de seguros valoran la opción que ofrece el gestor documental de mostrar al cliente los documentos pendientes de firma, que tiene almacenados en su repositorio dentro sus propios portales. El cliente lee el documento, que se levantó desde el gestor y, al momento de firmar, cuando pone la clave del portal del banco, Sovos captura la clave y la envía al banco para que la corrobore, tras lo cual continúa o detiene el proceso de firma.

Latinoamérica es tal vez la región del mundo más activa en la generación de regulaciones relativas a la facturación electrónica y como tal, ha sido tomada como modelo en otros continentes. Sin embargo, el impacto de la pandemia ha retrasado la entrada en vigor de muchas de ellas. En estas líneas revisamos el estado actual y futuro de las tendencias regulatorias más relevantes.

En el mediano plazo es esperable que las administraciones tributarias regionales sigan creando e implementando complementos específicos para la factura electrónica para determinado tipo de operaciones.

En Colombia, tras ser postergada por largo tiempo, la DIAN emitió los proyectos de normas que fundamentan el uso de la factura electrónica para el sector Salud. Recientemente, el Ministerio de Salud publicó la Resolución 510/2022, que actualiza la documentación técnica de la mencionada factura, adecuándola a la versión 1.8 que anteriormente emitía la DIAN. Pese a estar originalmente programada para entrar en vigor el 1 de julio de 2022, se ha establecido el 1 de enero de 2023 como fecha en que comenzará su obligatoriedad.  Otros documentos soporte de la factura electrónica, están igualmente en proceso de implementación.

Otra tendencia en la región es el uso de la factura electrónica como herramienta para potenciar el flujo de caja de los medianos y pequeños contribuyentes que venden a crédito. En esta línea Colombia está consolidando el uso del RADIAN como instrumento de factoring -negociación y financiación. Chile comenzó un sistema similar con la Ley de Pago a 30 Días, mientras que Argentina estableció hace poco mas de dos años la factura de crédito electrónica para PyMES. Este sistema adherido al mandato de facturación electrónica ayuda a quienes venden bienes y servicios a crédito a aumentar su flujo de caja e induce a que las pymes adopten el sistema de facturación electrónica voluntariamente. En Perú se está también evaluando una acción similar.

El tercer hito o tendencia regional es el uso de los “Días sin IVA”, utilizados por el Estado para suspender temporalmente el cobro de este impuesto durante algunos días específicos en el año para determinados bienes y servicios, como una forma de reavivar la economía e inducir a los contribuyentes a un mejor cumplimiento tributario. Esta tendencia, que también busca que los contribuyentes adhieran al régimen de facturación electrónica, fue un éxito en Colombia, lo que ha inducido a otros países a replicar el modelo de manera más acotada. Ecuador lo aplicó solo para los servicios turísticos durante los días de carnaval, mientras que Uruguay hizo lo propio para ciertos productos cárnicos, como una forma de poner un límite a la inflación. Otros países interesados son Costa Rica y Perú, y es probable que otros se sumen a la iniciativa.

Transporte de bienes

Otra de las iniciativas que se han venido expandiendo en la región, son los mandatos que requieren el permiso de la administración para el desplazamiento de bienes dentro de sus jurisdicciones. Estas iniciativas necesitan de un apoyo logístico mayúsculo, pues requieren no solo la participación de los vendedores de bienes, sino además, de los transportistas utilizados para ese desplazamiento y las autoridades de transporte.

Tras varias tentativas, México suspendió nuevamente la validación estricta de la Carta Porte en el país, para permitir a los contribuyentes afectados y a los pequeños y medianos transportistas -la gran mayoría- adquirir la capacidad logística tecnológica para incorporarse a ese régimen. En tal sentido, pese a ser mandatorio el uso de la Carta Porte, se ha flexibilizado su proceso de validación y se han emitido nuevas versiones del mandato para ajustar los requerimientos técnicos a las realidades del país.

Las experiencias y dificultades que ha enfrentado México están siendo observadas cuidadosamente por otras administraciones tributarias como las de Colombia, Perú y Ecuador, que están considerando o están ya en el proceso de implementación de estos mandatos.

Otros países tienen ya sólidos sistemas en este ámbito. Uruguay, cuenta con el e-Remito, requerido para el transporte local de mercancías. Argentina, a nivel federal, ha implementado la Carta Porte para el traslado de granos, y el llamado Remito Electrónico Cárnico para el transporte de carnes.  Este último es más amplio a nivel de varias administraciones tributarias provinciales argentinas que requieren el uso de remitos y Carta Porte para prácticamente todo tipo de bienes transportados dentro de sus jurisdicciones.

Plataformas tecnológicas y servicios de productos digitales a distancia

La tendencia que se prevé tomará mayor fuerza en Latinoamérica es la extensión de obligaciones y responsabilidades tributarias para las plataformas tecnológicas y a los suplidores de servicios y productos digitales cuando los mismos son consumidos localmente. En la mayoría de los casos, estas obligaciones se limitan al IVA, pero en algunos países se extienden además al impuesto sobre la renta.

Por ejemplo, para el caso de los servicios digitales provistos por entidades foráneas, las regulaciones de Argentina, Colombia y Ecuador requieren del sistema financiero, retener y pagar el IVA y otros impuestos nacionales y provinciales a estas transacciones, cuando los usuarios usan esas instituciones para pagar a las plataformas extranjeras por los servicios de entretenimiento y aplicaciones que consumen electrónicamente. Otros países como Chile y México requieren al proveedor registrarse y cumplir directamente con obligaciones de registro, y eventualmente, de facturación electrónica.

En el caso de las plataformas tecnológicas utilizadas para la venta de bienes y servicios, el enfoque ha sido distinto. Las administraciones regionales han visto en ellas no solo a contribuyentes de los impuestos antes indicados, sino además potenciales agentes de retención e información utilizables para inducir el cumplimiento de los proveedores de bienes y servicios que utilizan esas plataformas para hacer sus ventas.  De ahí que la tendencia es que las administraciones tributarias impongan obligaciones adicionales al cobro o retención de los impuestos aplicables, tales como las relativas a facturación electrónica y reportes periódicos de ventas realizadas a través de estas. Debido a su éxito recaudatorio, esta tendencia se consolidará en la región y el mundo.

Conversemos de DevSecOps

En esta nueva sección de nuestro blog compartiremos la visión y experiencia de nuestro equipo de expertos en el ámbito del desarrollo de software y las tecnologías de información en general, quienes tocarán distintos temas relacionados con las tecnologías y metodologías utilizadas por Sovos para crear e implementar un mejor software, y entregarán tips y datos orientados a aportar valor a quienes deben trabajar en este ámbito, fundamental para las compañías que crean y utilizan soluciones para impulsar el negocio de sus clientes.


 

Pamela Ruiz, Senior QA Engineer

Aplicación de pruebas de performance de API en proyectos de Sovos

En estos tiempos, donde el mercado es muy competitivo, la calidad pasó a un primer plano en la evaluación que realizan los clientes para elegir un producto.

La rapidez en los tiempos de respuesta de servicios o eventos ha cobrado mucha relevancia, a tal punto que -y según se ha analizado estadísticamente- es muy probable que un usuario abandone un producto si debe esperar más de 3 segundos.

Para entregar siempre las mejores soluciones a sus clientes, uno de los focos de Sovos en el área de calidad está puesto en las pruebas de performance. En esta línea se armaron equipos dedicados exclusivamente a todas las tareas no funcionales, que trabajan estrechamente con el equipo de CloudOps para contar con la infraestructura necesaria tanto para las etapas de desarrollo, como las finales, incluyendo producción.

Una de las primeras tareas que tuvo el equipo de performance fue el desarrollo, precisamente, de un framework para pruebas de performance. En Sovos se utilizan 2 herramientas open source, K6 y Jmeter, para el desarrollo de scripts para pruebas.

Los resultados de estas pruebas se guardan en InfluxDB, una base de datos especialmente diseñada para almacenar datos de este tipo. Grafana es la herramienta elegida para consumir los datos almacenados y procesarlos para mostrarlos mediante gráficos y tablas.

 

resultados-influxdb-grafana-db

 

La estrategia utilizada para el desarrollo de pruebas se basa, primeramente, en evaluar los endpoints más utilizados por los usuarios, testearlos bajo diferentes cargas y analizar los resultados, no solo en cuanto a tiempos de procesamiento, sino también, en cantidad de errores obtenidos provocados por la concurrencia.

Es recomendable que para el análisis de los resultados se cuente con herramientas de monitoreo como AppDynamics o Jaeger, que muestran en tiempo real lo que sucede con cada componente del sistema, permiten seguir el flujo de algunos requests para observar la distribución de tiempos que ocupa en todo su procesamiento e identifican si alguno de ellos está provocando cuellos de botella.

 

trace-request-jaeger

 

En la imagen se observa el trace de un request desde Jaeger.

También observamos qué sucede a nivel de base de datos; si hay bloqueos, si algún pedido necesita índices para alguna tabla, si el pool de conexiones es suficiente, etc.

 

recursos-db-appdynamics

recursos-db-appdynamics-2

 

En la imagen se observa la utilización de recursos de base de datos desde AppDynamics.

Durante esta primera etapa de análisis se realizan las tareas de forma manual, probando diferentes escenarios. Por ejemplo, aumentando los usuarios concurrentes de forma gradual, partiendo desde 10, hasta llegar a 100 o 150 usuarios sucesivamente en el caso de un ambiente pequeño.

 

A continuación, desarrollaremos un ejemplo implementado en uno de los proyectos de Sovos:

Como primer paso se desarrolla el script implementando un setup -que es común a todos los scripts- por lo que se utiliza el llamado a un script externo para evitar la duplicidad de código.

Luego de realizado el setup, se ejecuta la prueba en donde establecemos el endpoint a utilizar junto con sus headers, y también se le agrega una corroboración de que la respuesta sea la que estamos esperando. Estas comprobaciones de respuesta se aplican en todos aquellos casos en los que tenemos requests dinámicos, para asegurar no solo que devuelve el código http esperado, sino también, que contamos con la información requerida.

Generamos un reporte csv con las métricas de las pruebas, así como también un reporte de errores XML en el se registra qué datos se enviaron, el código de respuesta obtenido y el cuerpo del mensaje de respuesta.

 

test-plan-jmeter

Imagen del test plan desde Jmeter.

 

test-antes-despues-cambios-codigo

Resultados de las pruebas antes y después de los cambios de código.

 

En uno de nuestros endpoints realizamos una primera ejecución en el ambiente de QA con distintos escenarios, variando la cantidad de usuarios concurrentes entre 10 y 100 usuarios. Se encontraron mejoras para realizar a nivel de código y se ejecutaron nuevamente las mismas pruebas para poder comparar el impacto de los cambios realizados.

En este caso tuvimos una mejora notable, observando una disminución en los tiempos promedios de respuesta de 100 segundos a 30 segundos en el escenario de mayor concurrencia (100 usuarios virtuales).

De esta manera, encontramos los endpoints más críticos, para poder trabajar sobre ellos y aplicar mejoras.

Luego de esta primera etapa, procedemos a establecer corridas automáticas de forma semanal durante la noche para evitar bloquear los ambientes bajos. Estas corridas se realizan para mantener el control y detectar los problemas de performance antes de que lleguen a producción, donde principalmente observamos si los cambios realizados durante ese tiempo tuvieron impacto a nivel de performance. Luego de algunas ejecuciones, se establecen umbrales aceptables de variación, para alertar cuando en algún momento se supera alguno de esos umbrales.

Conversemos de DevSecOps

En esta nueva sección de nuestro blog compartiremos la visión y experiencia de nuestro equipo de expertos en el ámbito del desarrollo de software y las tecnologías de información en general, quienes tocarán distintos temas relacionados con las tecnologías y metodologías utilizadas por Sovos para crear e implementar un mejor software, y entregarán tips y datos orientados a aportar valor a quienes deben trabajar en este ámbito, fundamental para las compañías que crean y utilizan soluciones para impulsar el negocio de sus clientes.


 

Pamela Ruiz, Senior QA Engineer

Medición y visualización de performance para procesos batch

Por lo general, al medir performance de nuestras APIs, en Sovos buscamos obtener distintas métricas, como tiempos de respuesta, cantidad de errores, transacciones procesadas por minuto, cuellos de botella en el flujo y recursos utilizados en los servidores, entre otros. La finalidad es realizar un análisis de los datos obtenidos y aplicar mejoras en nuestros productos, para proveer la mejor calidad a nuestros clientes.

Para ello utilizamos herramientas como JMeter y K6, entre otras, para la ejecución de pruebas; AppDynamics para el monitoreo en tiempo real y Grafana e InfluxDB para la recolección y muestra de datos.

En este caso, como base de datos para almacenar las métricas, se seleccionó InfluxDB, la que es utilizada específicamente para almacenar información de métricas y datos para análisis en tiempo real. Esta herramienta de almacenamiento es plenamente compatible con Grafana, utilizada para detallar los resultados mediante gráficos.

A diferencia de las API, al medir la performance de procesos batch -que por lo general corren en modo background como servicios o procesos de Windows/Linux- no es tan relevante el tiempo de respuesta de estos procesos (aunque a veces es útil tener el dato para saber la capacidad de procesamiento de nuestro sistema), ya que el cliente no se encuentra activamente esperando una respuesta, sino que se evalúan principalmente métricas como recursos utilizados durante el procesamiento.

Para este tipo de pruebas se realizan una serie de pedidos para encolar procesos batch, y analizar el comportamiento del sistema durante el procesamiento. En nuestro caso, utilizamos JMeter para simular a usuarios realizando los pedidos.

Para la medición de recursos utilizados en un servidor usamos Telegraf, un agente que se instala en los servidores (en nuestro caso Windows) y se comunica con InfluxDB.

Dentro de los productos de Sovos utilizamos los llamados batch processing. Estos son procesos tipo batch que toman desde unos pocos minutos hasta varias horas en completar su ciclo, dependiendo del volumen de datos a procesar. Por lo general son utilizados para importar, transformar, exportar o transmitir altos volúmenes de datos.

Para su funcionamiento, el cliente envía un pedido para iniciar este proceso y recibe un acknowledgment para saber que su pedido fue tomado con éxito.

Por detrás, comienza el proceso con un orquestador de procesos que maneja los pedidos, encolándolos y derivándolos al primer procesador que se encuentre disponible, asignándoles el estado de claimed.

Los batch processing trabajan como una máquina de estados, pasando por diferentes estados. En la imagen podemos observar un esquema simplificado de los mismos.

 

batch-processing-maquina-estados

 

Para nuestro equipo era esencial contar con métricas relacionadas con estos procesos de larga duración, que incluyen:

Si bien no contábamos con ninguna herramienta para monitorear las métricas que necesitábamos en cuanto a tiempos y cantidades, notamos que durante el procesamiento se utiliza una tabla en la base de datos para registrar los distintos cambios de estado durante todo el proceso.

 

verificacion-jobs-fallas

 

El equipo de trabajo pudo tomar ventaja de ello y utilizar esta tabla como base para obtención de métricas.

Se crearon diferentes consultas a la base de datos para obtener datos tales como:

Se tomaron en cuenta los estados principales, como enqueued, running, failed y completed.

Este trabajo podía llevarse a cabo de forma manual y en el momento, pero no era un proceso eficiente a la hora de realizar un análisis de lo sucedido a lo largo del tiempo. Se requería una herramienta que pudiera procesar los datos y mostrarlos de forma amigable mediante gráficos.

De esta manera, para automatizar el proceso de análisis de los resultados y contar con un historial de información, se creó una aplicación con node.js en la que establece una conexión con la base de datos de Oracle, desde donde se extraen las métricas, y una conexión con InfluxDB, en donde se almacenan los datos una vez procesados.

 

automatizar-procesos-influxdb

 

Este proceso de node se realiza cíclicamente cada 20 segundos para recolectar los datos.

Se armó un dashboard en Grafana para mostrar los resultados, tal como muestra la siguiente imagen:

 

dashboard-grafana-resultados

 

Estos gráficos son totalmente configurables y es posible ajustar a diferentes fechas y horas, de acuerdo con lo que se necesite analizar.

Adicionalmente, esta aplicación se encuentra dockerizada para facilitar el deployment mediante Puppet. Si bien hoy en día está configurada para utilizar en un ambiente específico, en un futuro podríamos aplicar nuevas configuraciones para diferentes ambientes y base de datos según se necesite.

Además pueden agregarse nuevas consultas a la base de datos en caso de que se requieran nuevas métricas, incluyendo números de procesos cancelados por el usuario y número de procesos en algún estado en específico, entre otras.

A continuación se observa un dashboard en Grafana para monitoreo de utilización de recursos:

 

dashboard-grafana-monitoreo-recursos

 

En conclusión, se logró crear un framework de monitoreo para los procesos de larga duración basados en tecnologías open source.

Cada nuevo conocimiento y avance va sumando para tener una mejor base de monitoreo y mejor información al momento de realizar un análisis más profundo al encontrar errores o al realizar pruebas de carga, permitiendo encontrar con mayor facilidad los cuellos de botella, tanto para nuestras APIs como para nuestros procesos de batch.

Conversemos de DevSecOps

En esta nueva sección de nuestro blog compartiremos la visión y experiencia de nuestro equipo de expertos en el ámbito del desarrollo de software y las tecnologías de información en general, quienes tocarán distintos temas relacionados con las tecnologías y metodologías utilizadas por Sovos para crear e implementar un mejor software, y entregarán tips y datos orientados a aportar valor a quienes deben trabajar en este ámbito, fundamental para las compañías que crean y utilizan soluciones para impulsar el negocio de sus clientes.


 

Capability Model de Sovos: Una guía de buenas prácticas para la mejora continua

Las empresas de tecnología enfrentan cada día mayores desafíos, y para mantenerse competitivas, no quedar obsoletas y satisfacer adecuadamente la demanda de los mercados, requieren mejorar de forma permanente sus prácticas. Esto es especialmente relevante para los equipos de desarrollo de software, que tienen que adaptarse constantemente, tanto a nivel de conocimientos técnicos, como de prácticas y metodologías.

En este artículo vamos a mostrar el modelo llamado Capability Model, que desarrollamos en Sovos para guiar a todos aquellos equipos en búsqueda de mejora continua.

 

¿Por qué Capability Model?

En el libro Accelerate (Nicole Forsgren, Jez Humble, Gene Kim), los autores proponen utilizar Capability Models en vez de Maturity Models. La razón principal se centra en el carácter extremadamente dinámico de las tecnologías, las prácticas y, en general, de la industria del software; este dinamismo se traduce en cambio constante y nos obliga a estar en permanente reinvención y reevaluación; algunas capacidades que antes fueron mejores prácticas pueden quedar obsoletas en el futuro, o simplemente, no resultar en grandes mejoras. Por esta razón decidimos trabajar en nuestro departamento de tecnología con un modelo de capacidades, incluyendo prácticas, técnicas y tendencias que mejoren la eficiencia de nuestros equipos de desarrollo a medida que las vayan implementando.

Como herramienta de mejora continua, nuestro Capability Model nos permite mejorar las prácticas de desarrollo, adquirir nuevos conocimientos y cambiar viejos paradigmas, además de:

 

¿Qué es para Sovos el Capability Model y cómo se usa?

Para crear la primera versión de nuestro Capability Model nos basamos en el modelo de DevOps y las conocidas etapas de Plan-Code-Build-Test-Release-Deploy-Operate-Monitor, a las cuales agregamos Feedback para hacer más explícita nuestra relación con los usuarios de los productos. Además tomamos como ventaja las buenas prácticas de nuestro departamento de Customer Success.

 

modelo infinito DevOps

Modelo infinito de DevOps

 

Cada categoría incluye un conjunto de capacidades y prácticas, básicas y avanzadas. Estas últimas permiten desarrollar mayores ventajas competitivas y lograr niveles de eficiencia superiores en los equipos de desarrollo.

Por eso dividimos las capacidades en una matriz con categorías y 4 niveles, siguiendo el modelo de Tuckman Norming-Forming-Storming-Performing:

 

modelo-capacidades-v1

Modelo de capacidades v1

 

Gamification

Cuando hablamos de gamification nos referimos a la posibilidad de motivar, generar concentración y otros valores positivos a través del juego. Y todo equipo de desarrollo en Sovos parte la autoevaluación desde la etapa de forming.

 

El Capability Model evoluciona de la mano del crecimiento tecnológico

Para la segunda versión de nuestro modelo decidimos revisitar las capacidades con un mayor enfoque en DevSecOps, lo que implica integrar mejores prácticas relacionadas a seguridad informática, no solo a nivel de código y testing, sino en todas las etapas del desarrollo.

Algo importante que aprendimos en este proceso es que, indefectiblemente, las tecnologías, metodologías y las formas en que construimos software cambiarán con el tiempo. Esta lógica tiene una relación directa con el Capability Model: este también debe cambiar. Esta es una de las grandes diferencias con los antiguos Maturity Model.

 

practica-seguridad-ciclo-vida-software

 DevSecOps incorpora prácticas de seguridad a todos los niveles del ciclo de vida de software

 

Evaluar y guiar mejoras en equipos de desarrollo

Nuestro Capability Model no es solamente una guía teórica de prácticas a adoptar para mejorar el rendimiento de los equipos de desarrollo. Una parte importante de la implementación es realmente ejecutar este modelo con los equipos, a fin de determinar el estado de sus prácticas y definir cuáles nuevas prácticas adoptar para pasar al siguiente nivel.

La idea es seguir la evolución de los equipos a mediano y largo plazo; ver cómo comparten sus dinámicas y al final, analizar cómo mejoran.

Surge una pregunta: ¿con qué frecuencia ejecutar el modelo con un mismo equipo? Si bien no hay una única respuesta correcta, se pueden considerar factores como los cambios de los integrantes del equipo (turnover), o en el propósito o tecnología usadas; las modificaciones de proyectos o conexión con otros equipos y los cambios de frameworks ágiles. Si nada de lo anterior sucede en un equipo, una frecuencia regular de cada 6 meses resulta un buen balance.

En el siguiente gráfico se pueden observar los cambios entre la primera ejecución (en azul) y la segunda (en verde): Este es un ejemplo de un equipo que decidió enfocar sus mejoras principalmente en prácticas de testing y en su metodología de trabajo.

 

grafico-radar-visualizacion-resultados

Usamos gráficos de radar para visualizar resultados

 

Para colectar los resultados de esta evaluación se pueden utilizar diversas técnicas sencillas. En la primera versión de nuestro modelo usamos preguntas cerradas (Sí/No) siguiendo un checklist, consultando a los equipos sobre la utilización de prácticas particulares. Por ejemplo, ¿estamos realizando pruebas automatizadas de API para nuestros microservicios?

En la segunda versión del modelo estamos utilizando una escala de Likert, lo que permite apreciar el grado de adopción de una práctica, sin cerrarnos en un Sí o No categórico. Utilizando un estilo declarativo como Realizamos pruebas automatizadas de API para todos nuestros microservicios, y respuestas posibles desde Totalmente en Desacuerdo hasta Totalmente de Acuerdo -variando el grado de seguridad en la respuesta- obtenemos una buena idea promedio del uso de cada práctica particular.

Al final de cada evaluación los equipos deciden el próximo paso en términos de mejoras a realizar. Siguiendo el ejemplo de pruebas automatizadas de API, se puede tomar como objetivo a completar -hasta la siguiente evaluación- la implementación de dichas pruebas para optimizar la capacidad de testeo automatizado, disminuyendo tiempos de feedback para el equipo y para mejorar la confianza en sus servicios.

Para ayudar a los equipos en la implementación de mejoras, cada práctica presente en el modelo de capacidades contempla documentación que explica las formas de adoptarlas a través de ejemplos de otros equipos que lo hicieron anteriormente, ya sea en Sovos, o fuera, para las prácticas más nuevas.

En conclusión, el modelo de capacidades de Sovos nos brindó múltiples resultados orientados a diferentes públicos. Para los equipos de desarrollo, permite evaluar y orientar mejoras para lograr mayor eficiencia, mientras que para el team de management, permite entender el estado de los equipos a nivel de eficiencia, ayuda a tomar decisiones a nivel de capacitaciones e inversiones (infraestructura, por ejemplo), y entrega mejor visibilidad para definir dónde ejecutar proyectos.

El ciberdelito se ha convertido en una amenaza continua. Desde archivos maliciosos que instalan virus en los computadores, hasta mensajes con links (phishing) que capturan y roban información desde dispositivos móviles, las diferentes formas de vulnerar la seguridad de la información que se utilizan en los procesos digitales es un desafío que personas naturales y empresas deben enfrentar cada día.

Este riesgo creciente se traduce en que las entidades bancarias, que intercambian información sensible a diario, deban aplicar mayores y mejores métodos para proteger a sus clientes, los datos que ellos comparten y las transacciones que realizan online.

Todas las compañías que cuentan con procesos de negocios digitales deben no solo invertir en hacer más eficientes y sólidos estos canales; también deben acceder a métodos de validación y de protección de la información de sus clientes y consumidores.

Los estándares contemplados por las distintas entidades bancarias y financieras en términos de ciberseguridad se han convertido en un diferenciador crítico.

Por esta razón, a la hora de evaluar el servicio de una entidad financiera, no solo se deben contemplar los costos, eficiencia y cobertura. Hoy, el primer factor a considerar es conocer cuáles son sus métodos de seguridad y protección de clientes, transformándose este en un factor diferenciador de suma importancia para que el usuario decida si le depositará su confianza.

Las entidades financieras se ven obligadas permanentemente a innovar e ir un paso delante de aquellos que buscan realizar fraudes. Si bien la digitalización ayuda, se deben siempre incrementar los controles transaccionales continuos -es decir, en tiempo real o casi real-; mejorar sus plataformas y utilizar varios métodos de comprobación de identidad de los clientes al momento de realizar transacciones en todas las plataformas habilitadas.

Para responder a estos desafíos, Sovos cuenta con métodos de validación y de verificación de personas cuyo objetivo es corroborar, a través de una serie de procedimientos con un alto porcentaje de certeza, a quien firma, realiza una transacción o bien, es quien dice ser. La clave está en interpretar los riesgos transaccionales y a la persona detrás del dispositivo para alcanzar un correcto balance entre la seguridad y la experiencia del usuario, según lo amerite cada transacción.

Sovos considera tres puntos fundamentales al ofrecer métodos para brindar altos niveles de ciberseguridad: en primer lugar, respaldo seguro de la información: contar con soluciones validadas y certificadas, que resguarden, sellen y encripten la información; en segundo lugar, la implementación adecuada, es decir, un correcto diseño de flujos, experiencia y comunicación entre los sistemas, y en tercer lugar la autenticación, lo que se traduce en aplicar mecanismos multifactoriales que consideren información del usuario, conocimiento, dispositivos y/o biometría.

En la búsqueda de alternativas que les proporcionen niveles más altos de seguridad, menores costos y mayor eficiencia, las empresas están prefiriendo cada vez con mayor frecuencia opciones de servicios en la nube que cumplan con estos requisitos y a la vez, les permitan diversificar las cargas de trabajo, tener un mejor rendimiento, agilidad, flexibilidad, seguridad y escalabilidad.

La rapidez con la que se despliega la transformación digital imprime mayor urgencia a la necesidad de adaptar las tecnologías para responder en tiempo y forma a las demandas de las distintas industrias y a las regulaciones tributarias de cada país, invitando a las empresas a definir el modelo de software como servicio que mejor se adapte a sus necesidades.

Para responder a estos requerimientos existen múltiples alternativas, y la elección del proveedor adecuado, que proporcione a las compañías soluciones flexibles, adaptables y basadas en buenas prácticas, es fundamental.

En ese sentido, Sovos puede ofrecer a sus clientes una solución de clase mundial para el cumplimiento tributario y los servicios de documentos electrónicos. Las arquitecturas de los distintos productos  en la región han incorporado en su diseño los requerimientos de continuidad operacional de los principales rubros del mercado. En esa línea, y tras la adquisición de distintas compañías que han ido sumando a las capacidades de la compañía, Sovos cuenta hoy con un portafolio de productos que viven en 3 niveles de infraestructura y que resuelven necesidades diferentes dependiendo de los requerimientos del negocio: las que tienen una alta transaccionalidad, y otras más orientadas a integraciones, como APIs o reportería. Existen dos líneas de negocios fuertemente orientadas a los data centers -infraestructura cloud privada- e infraestructura que es nativamente cloud pública, como AWS o Azure, con sus propiedades.

Esta mirada híbrida permite ofrecer a los clientes el producto o la infraestructura que les permita responder de mejor manera a requerimientos específicos. Adicionalmente, cuando el modelo de negocio lo exige, también dispone de middleware (gateways) orientados a mantener  la continuidad operacional del cliente, especialmente de las áreas de retail, puntos de ventas, centros de distribución y otros, que requieren de ciertos componentes on premise por las necesidades del negocio.

Nuevas integraciones y métodos de acceso

Un valor añadido a la oferta de distintos modelos de operación es la capacidad de entender las necesidades operacionales y los tiempos de cada cliente, para acompañarlos en el proceso de transición a tecnologías más modernas cuando estén preparados.

Sovos se integra con las necesidades y el core de cada cliente, con su continuidad operacional y con sus requerimientos de seguridad. Para esto tiene la capacidad de soportar métodos más antiguos de conexión como SFTPs y webservices, y versiones más modernas; por ejemplo, para una integración por carpetas compartidas con protocolos más seguros como AS2 y por medio de APIs.

El amplio espectro de métodos de integración que ofrece Sovos incluye carpetas compartidas con transformación; ETLs, APIs, y algunas capacidades de integración diferentes y más recientes de observabilidad para las reconciliaciones, basadas en análisis de datos como Snowflake y Quicksight. Además está siempre preparado para incluir en su roadmap, tecnológico y de productos, otras versiones de integración, si así lo requieren los clientes.

La firma de documentos es probablemente una de las tareas más críticas para una organización. La aprobación y consentimiento de las partes interesadas a través de su firma, en cualquier gestión que requiera de esta validación, es fundamental para no interrumpir la cadena en distintos procesos de negocios que necesitan ser resueltos para avanzar apropiadamente. Sin embargo, conseguir dichas firmas de manera presencial puede requerir de una compleja logística para concretarse.

En este escenario, la posibilidad de firmar documentos de manera remota, no presencial, y con la misma validez legal que una firma en papel, resuelve eficientemente esta necesidad, ahorrando a las compañías la inversión de costosos recursos en la tramitación de los procesos administrativos, en el uso de papel y almacenaje.

Previo a la firma, se verifica la identidad de los firmantes mediante distintas metodologías -como biometría facial o dactilar, match on card y otras. A nivel general, la firma electrónica permite identificar al firmante y validar legalmente su aceptación frente a un documento, asegurando la integridad del contenido y confidencialidad de la información en el documento, al mismo tiempo que cumple con los requerimientos legales.

Si bien cada país en Latinoamérica utiliza una nomenclatura propia para designar a los diferentes tipos de firmas de que disponen para validar documentos -dependiendo del uso para el que se requieran- en general existen algunas categorías básicas, que van desde la firma requerida para los documentos tributarios electrónicos, la firma simple para documentos generales, y aquella que cuenta con un proceso de certificación mediante un tercero que dar validez a dicha firma.

CHILE

 

PERÚ

 

COLOMBIA

 

ECUADOR

 

Para satisfacer los requerimientos de las empresas y entidades gubernamentales en la región, Sovos cuenta con soluciones certificadas y validadas por distintas entidades de certificación que permiten firmar distintos tipos de documentos de manera digital, con la validez legal que se requiere, cumpliendo siempre con la normativa local.

La transformación digital de los procesos es una tendencia que toma fuerza en América Latina. Esta digitalización, acelerada por los cambios que están demandando las administraciones tributarias en la región, abarca un amplio espectro de tareas propias de  cada compañía, y uno de los elementos centrales tiene que ver con los procesos de firma de documentos. Perú no está ajeno a esta tendencia, y la firma digital es un mecanismo ampliamente utilizado en el país para simplificar los trámites que requieren ser visados por los participantes de un convenio.

En esa línea, Sovos organizó un conversatorio para abordar el status de la firma en el país, analizar el marco legal que la sustenta y compartir experiencias donde sus soluciones de firma y gestión documental digital han facilitado estos procedimientos.

La norma peruana 27.269, que regula la mecánica de firmas digitales y electrónicas, establece que estas firmas tienen exactamente la misma validez y eficacia jurídica que las tradicionales manuscritas. Esto ha permitido avanzar en la automatización y digitalización del flujo de procesos documentales que antes se manejaban a mano, con la misma validez legal del papel. De hecho, en caso de cuestionamientos de dicha validez, la norma prevé mecanismos para que estos puedan ser auditados, validados y sustentados frente a un eventual litigio.

La norma también exige mecanismos que verifiquen la identidad de las personas que están celebrando un contrato o firmando un documento, y de las empresas que los custodian, requiere que aseguren la integridad de los documentos, es decir, que no puedan ser modificados en el tiempo.

Una plataforma diseñada para simplificar los procesos

En este orden de ideas, Sovos cuenta con una plataforma de gestión documental digital que permite, ya sea a través de la web, de APIs que pueden integrarse a cualquier ERP o sistema del cliente, o desde el móvil, realizar todos los procesos de firma que se requieran. Para esto, previo a un proyecto de implementación e integración, se definen y configuran los flujos de firma y los tipos de documentos que se van a utilizar.

La plataforma permite seleccionar el tipo de documento, notificar vía correo a los firmantes que hay un documento pendiente -al que se puede acceder vía web o celular- y ofrece distintas alternativas de firma, incluyendo el propio pin del gestor y procesos biométricos dactilares o faciales. Una vez firmado, se agrega al documento un time stamp, un ladrillo de firma que contiene la información básica de la persona que firmó, el tipo de firma, la fecha y la hora. Se suma además un código de auditoría único, que permite hacer toda la traza del proceso de firma y de generación de verificación del operador.

Experiencias de implementación

Contar con procesos de verificación de identidad que otorguen un alto nivel de certeza a la firma de documentos asegura mayores eficiencias en los procesos de negocios. Uno de los casos compartidos en el conversatorio trató de una empresa de telecomunicaciones que necesitaba reducir los tiempos en los procesos de venta de planes telefónicos, que podían fácilmente extenderse hasta por 30 días. Para resolver esta problemática se implementó la verificación dactilar como mecanismo de validación, lo que permitía contrastar la huella contra el registro nacional de identidad. Si la respuesta era exitosa, el proceso de venta continuaba hasta la firma digital de los documentos, acortando significativamente los tiempos para el cliente.

Aplicaciones similares se pueden desarrollar para industrias como los servicios financieros, retail, educación, salud, manufactura y construcción, entre otras, para la firma de contratos de distintas índoles, con altos niveles de seguridad, al verificar la identidad de los firmantes contra las bases de datos de las entidades pertinentes en el país, para luego realizar las firmas desde cualquier lugar geográfico.

Para esto, en el Perú Sovos está certificado como emisor de certificados digitales, lo que implica que cuenta con una serie de mecanismos de certificación en integración con las entidades pertinentes del país para dar cumplimiento a las normativas, garantizando la validez legal y ayudando a que estos procesos internos de la compañía se vuelvan digitales, asegurando al mismo tiempo la continuidad operacional de las compañías de la mano de una buena experiencia para el usuario, para lo cual se han desarrollado estándares de implementación bastante robustos que procuran mitigar cualquier riesgo relacionado.

La figura de los Operadores de Servicios Electrónicos (OSE) -entes con delegación legal de SUNAT para validar la correcta emisión de los documentos tributarios electrónicos que sirven de soporte a los comprobantes de pago y a cualquier otro documento que se emita en esta línea- es de uso obligatorio para los principales contribuyentes con el fin de hacer más eficaz la implementación de la facturación digital en el país.

Los 16 operadores hoy certificados -Sovos fue el primero en obtener la certificación en 2019- representan el nexo entre la autoridad tributaria y los contribuyentes y desempeñan un rol fundamental, no solo en el fomento e implementación de los cambios regulatorios; también actúan como validadores y certificadores, estableciendo el compromiso de constante cumplimiento con la SUNAT.

Los beneficios del sistema

Los beneficios derivados de la implementación de este modelo son múltiples para las compañías. En primer lugar, los OSE no solo tienen como obligación responderle al contribuyente sobre el estado de sus documentos en tiempo y forma; también, al realizar un proceso ciento por ciento digital, permiten un significativo ahorro de recursos -tiempo y costos- para las diferentes empresas.

Adicionalmente actúan como intermediarios, mejorando sustantivamente la comunicación entre las partes: en efecto, los contribuyentes ya no deben conectarse con la SUNAT, debido a que los OSE validan según la normativa vigente, mientras que los Proveedores de Servicios Electrónicos (PSE), son los responsables de emitir los documentos tributarios electrónicos.

Asegurar que la emisión de comprobantes electrónicos cumpla con todas las normativas y regulaciones para evitar multas y detenciones es crítico para las compañías. En virtud de esta relevancia, la SUNAT monitorea constantemente la calidad, efectividad y estabilidad del servicio provisto por un OSE, detectando al momento cualquier tipo de irregularidades y garantizando así altos niveles de seguridad.

Otro valor agregado provisto por los OSE tiene que ver con las transacciones internacionales y los beneficios que experimentan los contribuyentes que se dedican a la importación o exportación de productos; esto no solo por la agilidad y el cumplimiento de un documento correctamente emitido, sino también, por la tranquilidad de contar con operaciones enmarcadas dentro de la legalidad impuesta por la normativa tributaria.

Partner por partida doble

Para cumplir con excelencia con los requerimientos de la SUNAT y de los contribuyentes, un proveedor debe ir un paso más allá del cumplimiento de sus obligaciones básicas. En ese sentido, Sovos no solo cuenta con una solución, Sovos OSE, que permite una perfecta integración con múltiples ERP y POS y asegura una alta disponibilidad del servicio, rápida capacidad de respuesta, protección de datos, una infraestructura sólida y los niveles de procesamiento más rápidos del mercado.

Además procura añadir valor a la figura a través, por ejemplo, de un relacionamiento estrecho y de confianza con la autoridad tributaria para compartir opiniones, realizar comprobaciones y comunicar a los contribuyentes los diferentes cambios que se aproximan oportunamente.

Adicionalmente, uno de los elementos diferenciadores más relevantes de Sovos como OSE es su equipo de expertos tributarios, que analizan las normas, y de analistas de negocios, que revisan permanentemente el impacto de las diferentes normativas en los clientes y en cada una de las industrias donde hacen negocios.

Hoy Sovos transacciona más de 700 millones de operaciones de validación, lo que representa más del 50% del mercado en el Perú. A esto le suman además sus  capacidades de  escalabilidad, su capa de seguridad y las buenas prácticas de soporte a clientes finales, lo cual garantiza la calidad que requieren las compañías.

La adquisición de Stupendo trajo un sinnúmero de beneficios a Sovos de la mano de productos innovadores que complementan su portafolio en el ámbito del compliance de facturación electrónica.

Una de estas soluciones es Recaudo y Conciliación, que permite a las empresas controlar todas las recaudaciones de sus clientes o usuarios realizadas mediante pagos electrónicos de manera rápida, fácil y segura, a través de varios puntos y formas de pago. Para esto, habilita un botón de pago que facilita el procedimiento al cliente final.

Para realizar la operación, la herramienta se conecta directamente con las pasarelas de pago disponibles en el Ecuador -principalmente Datafast, que funciona vía plataforma, y PayPhone, vía API- las que requieren de una solución de pago electrónico para operar y llevar a cabo la cancelación de facturas.

Estas pasarelas son responsables de administrar, a su vez, los convenios con las distintas entidades bancarias, de acuerdo a las condiciones establecidas con cada cliente, para coordinar y regular dichos pagos electrónicos.

En términos simples, una vez que se procesan las facturas llega una notificación de pago vía correo electrónico al cliente final con la información del documento procesado, incluyendo desgloses, valores, tipo de pago que desea realizar, y un botón de pago en el que debe ingresar los datos de su tarjeta de preferencia. Una vez cancelado, el cliente recibe una notificación con la confirmación de pago y el código de autorización de la transacción.

Existe también una opción que, vía API de Sovos Stupendo, permite insertar un botón de pago en una página web definida por el cliente, donde pueden ingresar sus propios clientes a cancelar, simplemente presionando dicho botón e ingresando sus datos, o bien insertar un link en otro tipo de comunicación para que el cliente ingrese desde ahí. Las posibilidades que otorga la modalidad API son ilimitadas en este sentido.

Adicionalmente, existe una tercera alternativa de pago rápido vía URL, que permite enviar a un cliente una notificación de correo avisándole de un pago pendiente -puede ser una factura u otro tipo de recaudo- para que cancele rápidamente. En este caso se puede incluso atar un documento tributario a la transacción, ingresando solo la numeración del documento.

Conciliación

Una segunda funcionalidad de la solución es la de conciliación, que tal como indica su nombre, permite conciliar automáticamente la información de los pagos recibidos por un ERP a través de todos los canales dispuestos, versus la información provista por el proveedor de la pasarela de dichos pagos.

Para realizar esta conciliación, Sovos Stupendo cuenta con toda la información de la transacción, excepto la identificación de la entidad bancaria involucrada. Estos datos los entrega el proveedor de la pasarela si es requerido para cuadrar los datos; esto permite además detectar cualquier incoherencia o error en la información.

Recaudo y conciliación son complementarios y parte de un mismo servicio. Existe la posibilidad de que el cliente tenga el servicio de recaudos y conciliación con Sovos Stupendo, pero que tenga emisión (CTC) con la competencia.

La solución de Recaudo y Conciliación de Sovos Stupendo puede ser utilizada tanto por grandes empresas como por pymes, dado que su relación precio/calidad es muy conveniente y otorga beneficios que se traducen en mejoras sustantivas para la operación de las compañías, como la reducción de los tiempos requeridos para llevar a cabo este tipo de tareas y la optimización del control de los recursos económicos, además de mantener la contabilidad de las empresas al día.

Conversemos de DevSecOps

En esta nueva sección de nuestro blog compartiremos la visión y experiencia de nuestro equipo de expertos en el ámbito del desarrollo de software y las tecnologías de información en general, quienes tocarán distintos temas relacionados con las tecnologías y metodologías utilizadas por Sovos para crear e implementar un mejor software, y entregarán tips y datos orientados a aportar valor a quienes deben trabajar en este ámbito, fundamental para las compañías que crean y utilizan soluciones para impulsar el negocio de sus clientes.


 

Sergio Gómez, Principal QA Engineer

Optimizando el testing automatizado de UI con Cypress

A lo largo de los años hemos probado diferentes herramientas para crear test automatizados. Nuestros primeros intentos consistieron en automatizar smoke y regression tests utilizando herramientas que permiten simular acciones de los usuarios. En este tipo de pruebas se testean todos los componentes del sistema: UI, backend, base de datos, infraestructura y otros.

Al comienzo de los proyectos mantuvimos una buena cobertura y estabilidad, pero a medida que crecían los proyectos, los tiempos de ejecución se hacían más largos, el mantenimiento era más frecuente y los tests eran inestables. En muchas ocasiones los tests automatizados fallaban, pero esas fallas no estaban directamente relacionadas con bugs en el producto. Entonces empezamos a investigar herramientas que nos permitieran realmente encontrar problemas en nuestros productos y los reportaran rápidamente.

Una de estas herramientas fue Cypress I.O. En este artículo detallamos nuestra experiencia con la misma y las ventajas que encontramos. Para instalar y comenzar a usarla, pueden entrar al sitio oficial.

Cypress es un framework de test automatizado para UI modernas que permite escribir todo tipo de tests, incluyendo end-to-end, integration y unit tests, y cualquier otro que corra en el navegador. A diferencia de otras herramientas, no depende de aplicaciones de terceros (Webdrivers); Cypress detecta los browsers instalados en el sistema para ejecutarlos, por lo que no es necesario actualizar los webdrivers después de la actualización de dichos browsers.

La funcionalidad que nos pareció más útil fue la posibilidad de controlar el tráfico de red (Network traffic control) fácilmente. Esto permite interceptar todos los requests y retornar las respuestas que necesita el automated test. De esta manera, podemos trabajar en la integración de los componentes de la interfaz de usuario (UI) y no depender del backend. Como resultado, tenemos test más rápidos y estables que pueden ser integrados en el pipeline de desarrollo.

A continuación presentamos un ejemplo de cómo podemos interceptar los request de login de una aplicación para probar la reacción de la interfaz de usuario con diferentes respuestas. Lo primero que debemos hacer es identificar los elementos que usaremos en nuestro automated test. Necesitamos dos inputs para el nombre de usuario y password y un botón LOGIN. El botón se habilitará luego de completar el formulario y podremos hacer click en el mismo. Después, la UI disparará un request para chequear los datos ingresados.

 

sovos-automated-test

img-code-example-cypress-01

img-code-cypress-03

 

Para simplificar el ejemplo, vamos a suponer lo siguiente:

Ahora podemos escribir cómo quedaría el ejemplo usando los comandos de Cypress sin interceptar el request:

 

img-code-cypress-05

img-code-cypress-05

img-gif-cypress-06

 

En la imagen previa se puede observar cómo ejecuta Cypress los diferentes comandos. Utiliza cy.visit para navegar hasta la página deseada y cy.get para identificar a los elementos web usando como identificador sus respectivos IDs. Una vez identificado el elemento, usamos el comando type() para escribir un valor en el elemento y click() para enviar el formulario. Los requests ejecutados por la aplicación son identificados como (xhr) en el test runner. En este caso se ejecutó un request POST con URL igual a /api/v1/login pero no fue interceptado, por lo que fue validado por el backend. Una vez verificado, la respuesta es procesada por la UI, y si fue exitosa, muestra el texto Bienvenidos a la App.

Otra de las ventajas de Cypress es que espera en forma automática a que se cumpla una condición, por lo que no es necesario utilizar funciones de espera.

 

Proceso de login interceptado por Cypress

Para continuar con nuestro ejemplo, podemos utilizar el comando cy.intercept() para interceptar los requests generados por la UI y devolver respuestas deseadas. De esta manera, los requests no serán procesados por el servicio y solo probaremos cómo reacciona la aplicación de acuerdo a diferentes respuestas.

 

Caso positivo: login exitoso usando Stub

 

img-code-cypress-07

img-code-cypress-08

img-gif-cypress-09

 

En este ejemplo se puede observar cómo se utiliza el comando cy.intercept(). Cuando la UI lo ejecute, Cypress interceptará el request y lo comparará con lo que hemos definido. La comparación se realizará por el tipo de método (POST) y por la URL (/api/v1/login). Si coincide, devolverá el valor definido en la constante validLogin. Como la respuesta preestablecida es la cadena ‘true’’, esperamos que la UI muestre un texto de bienvenida.

En este ejemplo se puede comparar la velocidad de ejecución entre los dos casos. El primero demoró unos 5 segundos, porque la UI necesitaba la respuesta del servicio de login para mostrar el mensaje. En el segundo caso fue más rápido, porque fue interceptado por Cypress y devolvió una respuesta inmediatamente.

 

Caso negativo: Login no fue exitoso usando Stub

Para testear un caso negativo podríamos modificar la respuesta del request para simular un login inválido. En este caso es necesario cambiar el valor de status code de la respuesta para que la UI muestre un mensaje de error: Username/Password values are invalid. El automated test queda de la siguiente manera:

 

img-code-cypress-010

img-code-cypress-011

img-gif-cypress-12

 

En síntesis, podemos afirmar que Cypress es una herramienta muy útil para el tipo de test que necesitamos para nuestros productos, porque son más rápidos, estables y confiables. Cuando se rompen los tests, es porque se realizó algún cambio en el código fuente o porque no se realizó el mantenimiento adecuado en el código de los tests. Gracias a esto, los falsos positivos originados por problemas con la base de datos, demoras en el tráfico de red, usuarios inválidos, servicios caídos y otros factores ya no representan un problema.

Links de interés:

Cypress: https://www.cypress.io/

Cypress en Github: https://github.com/cypress-io