Cómo automatizar las pruebas de control de calidad de aplicaciones de código bajo y SaaS

Los ingenieros de automatización de control de calidad prueban aplicaciones desarrolladas internamente, desde aplicaciones monolíticas heredadas hasta aplicaciones nativas de la nube que aprovechan los microservicios. Las aplicaciones típicas de misión crítica requieren pruebas unitarias y revisiones de código a nivel de código, pruebas API, pruebas automatizadas de la experiencia del usuario, pruebas de seguridad y pruebas de rendimiento. La mejor práctica de DevOps es automatizar la ejecución de estas pruebas y luego seleccionar el subconjunto óptimo para las pruebas continuas dentro de una tubería de integración y entrega continuas (CI / CD).
Ⓒ Banco de imágenes de Getty

Pero, ¿cómo nos ocupamos de las aplicaciones, los flujos de trabajo, las integraciones, las visualizaciones de datos y las experiencias del usuario que consisten en plataformas de software como servicio (SaaS) o herramientas de desarrollo de código bajo o plataformas sin código que permiten a los desarrolladores ciudadanos desarrollar? ¿El hecho de que se use poco o ningún código permite que los flujos de trabajo funcionen según sea necesario, el procesamiento de datos según los requisitos comerciales, las configuraciones de seguridad para las políticas de la empresa y el rendimiento para cumplir con las expectativas del usuario?

Esta pregunta me recuerda a mi profesor de cálculo de secundaria. La maestra dijo: “Simplemente hacer suposiciones nos hace reír a mí ya ti”. Si aplica esta palabra al caso de SaaS, código bajo y sin código, si asume vagamente que la aplicación funcionará según lo solicitado sin un plan de prueba, puede provocar los siguientes problemas.

• Las partes interesadas pueden encontrar situaciones embarazosas como resultado de resultados inesperados.
• Cree agujeros de seguridad que expongan los datos al público oa los empleados que no tienen acceso a ellos.
• Problemas de datos que pueden propagarse a otros flujos de trabajo de integración y experiencias del cliente.
• Problemas de rendimiento al escalar aplicaciones a un gran número de usuarios y conjuntos de datos más grandes.
• Insatisfacción del departamento de TI con la reconstrucción de la aplicación y las instrucciones de desarrollo de la solución.

Entonces, ¿qué probar? ¿Cómo puede probar estas aplicaciones sin acceso al código fuente subyacente? ¿Dónde debería TI priorizar las pruebas, especialmente dada la escasez de ingenieros de control de calidad en muchas organizaciones de DevOps?

Algunos expertos han respondido a esta pregunta.

Debe comenzar por definir e implementar pruebas de aceptación ágiles.

El CTO de LaunchDarkly, John Kodumal, enfatizó que las pruebas de aceptación deben aplicarse a todas las aplicaciones compatibles con TI, no solo a aquellas que requieren desarrollo de software. “En un modelo típico de SaaS, el departamento de desarrollo realiza pruebas de aceptación como parte del proceso de prueba de lanzamiento”, dice Kodumel.

La definición de pruebas de aceptación empresarial y de usuarios es un punto de partida importante. Esto se debe a que la mayoría de las aplicaciones SaaS y low-code / sin código requieren configuración y la implementación puede seguir Scrum u otras metodologías ágiles. El enfoque ágil implica escribir requisitos como historias de usuario con criterios de aceptación documentados. Los departamentos ágiles deben gestionar las historias de usuarios ágiles, como los pequeños contratos funcionales y los requisitos no funcionales de la empresa.

La definición de los criterios de aceptación es un primer paso importante. Incluso para las aplicaciones SaaS que no requieren codificación o solo una configuración limitada, debe seguir estos pasos.

Pero supongamos que el departamento de TI no es responsable de definir los criterios de aceptación y automatizar las pruebas. En este caso, la falta de pruebas crea un riesgo o la unidad de negocio se hace cargo de las pruebas. En cualquier caso, la situación no es muy buena. Los departamentos de TI deben ser responsables de impulsar la implementación, incluidas las funciones de prueba.

Low Code / No Code requiere pruebas de lógica empresarial

La plataforma de código bajo / sin código proporciona una capa de abstracción y simplifica el proceso de desarrollo, soporte y mejora de aplicaciones. Pero incluso con una plataforma de este tipo, todavía tiene que codificar la lógica empresarial, configurar los flujos de trabajo, definir las reglas de procesamiento de datos y elegir los roles de acceso. Si bien la plataforma simplifica la tarea, también existe el riesgo de que el desarrollador implemente la lógica de manera incorrecta o no tenga idea de cómo cumplir exactamente los requisitos en una plataforma de código bajo / sin código.

Kodumal agrega que las pruebas imponen dos responsabilidades adicionales. “Probar soluciones de código bajo se centra en probar dos cosas. Uno es probar la lógica empresarial expresada por el usuario de código bajo y el otro es probar el funcionamiento correcto de la estructura que soporta la solución de código bajo. “Estos dos tipos de pruebas garantizan que la aplicación esté funcionando a la altura de las expectativas del usuario final”.

Puede probar su lógica empresarial utilizando herramientas que capturan las interacciones del usuario a través del navegador y automatizan estas pruebas de flujo. La prueba de la infraestructura puede requerir una revisión de modelos de datos, permisos, formularios, informes y automatización para garantizar que cumplan con los estándares y no presenten riesgos.

“Una forma efectiva de probar SaaS y aplicaciones de código bajo es realizar una validación básica de entrada y salida”, dijo Andrew Clark, CTO, Monitaur. “Tiene que crear una matriz de los eventos y acciones clave que el sistema tiene que realizar y configurar casos de prueba para validar que el sistema se está comportando como se esperaba”.

Rosaria Sillipo, directora de evangelismo de ciencia de datos en KNIME, va un paso más allá, argumentando que las aplicaciones sin código / con código bajo deben seguir estándares de prueba similares. “Las aplicaciones de código bajo deben ir acompañadas de su propio conjunto de pruebas que sigan las mismas pautas que las aplicaciones basadas en código, como pruebas unitarias, tablas doradas y cierre elegante”, dice Sillipo. “Crear un servicio web sin código de falla al que responder en caso de un error o una aplicación web sin un cierre ordenado es tan poco profesional como una aplicación basada en código”.

Usando una plataforma de prueba de código bajo y aprendizaje automático

Aunque desarrollar con código bajo / sin código acelera el proceso de desarrollo y facilita las mejoras, el departamento de devops todavía tiene que realizar pruebas y revisiones de configuración.

La buena noticia es que los ingenieros de control de calidad pueden desarrollar sus pruebas con una plataforma de prueba de código bajo. “En las pruebas de código bajo, el proceso de escribir y mantener scripts de prueba usando técnicas avanzadas de AI / ML lo realizan máquinas”, dijo Ram Shanmugam, CEO de AutonomIQ, Sauce Labs. Esto ahorra mucho tiempo y dinero, y también reduce la dependencia de los ingenieros de automatización al permitir que los desarrolladores típicos, incluso los no desarrolladores, creen scripts de automatización de pruebas. En última instancia, los evaluadores ahora pueden centrarse en los requisitos comerciales del software y garantizar que se conserve la intención del usuario “.

Cómo las plataformas SaaS y low-code automatizan las pruebas

¿Pueden la experiencia del usuario y la lógica empresarial, el procesamiento de datos y las pruebas de configuración de SaaS o aplicaciones de código bajo ser suficientes para verificar la calidad, confiabilidad y seguridad?

La calidad general también depende de cómo las plataformas de código bajo o los proveedores de SaaS prueben sus tecnologías y administren la infraestructura y los servicios en la nube subyacentes. La mayoría de los proveedores de plataformas publican certificaciones de seguridad como ISO, SOC, GDPR, PCI y FedRamp, niveles de servicio y prueba de cumplimiento. Los principales proveedores también publican programas de lanzamiento, notas de lanzamiento, defectos conocidos, historial de nivel de servicio y acceso a la página web para verificar el estado del tiempo de actividad. Sin embargo, pocos proveedores proporcionan detalles sobre arquitecturas, estándares de desarrollo y métodos de prueba.

Hablé con Martin Laporte, vicepresidente de investigación y desarrollo de Coveo, sobre probarlo e implementarlo. “En un mundo en el que los componentes de la plataforma SaaS se actualizan varias veces al día, la observabilidad es clave para detectar cambios como tasas de error aumentadas o tiempos de respuesta fluctuantes”, dijo Raport. Siempre que se detecte una anomalía, se debe cancelar la implementación y se debe producir una reversión automática a la versión en buen estado anterior “.

Estos son criterios estrictos sobre con qué frecuencia implementar y cómo realizar pruebas, y qué buscar al buscar SaaS y plataformas de código bajo. Este nivel de prueba, complementado por los esfuerzos de automatización de pruebas del departamento de desarrollo, ayuda a reducir el riesgo de implementación, especialmente para aplicaciones que requieren alta confiabilidad. [email protected]


Source: ITWorld Korea by www.itworld.co.kr.

*The article has been translated based on the content of ITWorld Korea by www.itworld.co.kr. If there is any problem regarding the content, copyright, please leave a report below the article. We will try to process as quickly as possible to protect the rights of the author. Thank you very much!

*We just want readers to access information more quickly and easily with other multilingual content, instead of information only available in a certain language.

*We always respect the copyright of the content of the author and always include the original link of the source article.If the author disagrees, just leave the report below the article, the article will be edited or deleted at the request of the author. Thanks very much! Best regards!