De ser una opción, DevOps se está convirtiendo rápidamente en una necesidad para la mayoría de las empresas en los últimos tiempos. DevOps permite a las empresas colaborar sin problemas entre varios equipos multifuncionales, ofrecer funciones más rápido y reducir release fallas mientras optimiza los recursos hasta el núcleo. Para aprovechar al máximo la DevOps Los equipos de revolución, TI, negocios, desarrollo y calidad deben trabajar en la misma página. El desarrollo de código bajo es un nuevo enfoque que permite a los miembros técnicos y no técnicos trabajar juntos en proyectos de desarrollo de software para satisfacer las cambiantes demandas de TI.
Una descripción general del desarrollo de código bajo
El desarrollo de código bajo es un nuevo enfoque de desarrollo de software que permite a los desarrolladores crear software rápidamente utilizando interfaces de usuario visuales que se complementan con lógica basada en modelos y eliminan la necesidad de codificar manualmente las aplicaciones. Los usuarios pueden simplemente arrastrar y soltar el código utilizando plantillas y fragmentos de código prediseñados. Este enfoque no solo agiliza el proceso de desarrollo, sino que también permite que las personas con diferentes habilidades de programación colaboren y contribuyan sin problemas al desarrollo del código.
La evolución del desarrollo low-code
Desde el ensamblaje, los lenguajes que manejaban ceros y unos hasta los lenguajes de codificación actuales fáciles de leer, el desarrollo de software ha recorrido un largo camino. Al principio, los lenguajes ensambladores se usaban para escribir programas de computadora. Estos programas eran fáciles de entender para las computadoras, pero eran muy complejos para los desarrolladores, ya que tenían que lidiar con sistemas de codificación binaria, que involucraban ceros y unos.
En la década de 1950, los lenguajes ensambladores como COBOL y FORTRAN dominaban el mundo del software. Estos lenguajes trabajaron en estrecha colaboración con la arquitectura y el hardware del sistema. La década de 1960 vio la introducción de SNOBOL, que era una extensión de COBOL. Más tarde, en la década de 1970, se introdujo el lenguaje C, que se hizo muy popular. A fines de esa década, se agregó el Sistema de programación orientado a objetos (OOPS) a C. SQL también surgió en este período, lo que permitió a los usuarios administrar datos.
En la década de 1980, FoxPro y MATLAB se hicieron populares. Mientras que FoxPro se ocupó de DBMS, MATLAB se utilizó para algoritmos y visualizaciones. El período entre 1990 y 2000 vio la introducción de lenguajes populares como Java, Python, PHP y Ruby. JavaScript extendió Java para administrar los aspectos de la interfaz de usuario. La nueva década vio a C# aumentar su popularidad para el desarrollo de aplicaciones web y de escritorio. Le siguieron lenguajes como Go y Rush. Con la proliferación de dispositivos móviles en la década actual, Kotlin se hizo popular para el sistema operativo Android, mientras que Swift dominó el segmento de iOS.
El motivo de esta transición de los lenguajes ensambladores asociados al hardware a los lenguajes de programación centrados en el usuario es reducir la complejidad en la codificación, hacer que el código sea limpio y mejorar el rendimiento y la productividad.
Los programas escritos en lenguajes ensambladores implicaban un código complejo y eran difíciles de entender para los desarrolladores. Por ejemplo, mire un programa de suma simple escrito en un lenguaje ensamblador:
El mismo código se simplifica en Java:
Influencia de los lenguajes de programación
Los lenguajes de programación actuales están influenciados por los anteriores. Por ejemplo, el lenguaje más popular, Java, se inspiró en C++ y Smalltalk. Curiosamente, tanto Smalltalk como C++ fueron influenciados por Simula. Sin embargo, C++ es una extensión del lenguaje C. C y Pascal fueron influenciados por Algol 68, que en realidad fue influenciado por Algol 60. Pascal influyó en Modula y ML y ML influyeron en Haskell.
¿Qué hace que los lenguajes de programación tengan éxito?
Para que un lenguaje de programación tenga éxito, el requisito principal es que resuelva un problema. Por ejemplo, C viene con una programación de sistema eficiente, mientras que JavaScript puede residir dentro de un navegador. Además, la productividad y el rendimiento son requisitos clave. Debe venir con un buen entorno con un intérprete y compilador, diseñadores influyentes y seguro. Obviamente, la portabilidad lo hace popular.
visualización de código
Para simplificar la codificación, los desarrolladores probaron métodos de desarrollo sin código, como visualizar el código mediante diagramas de flujo.
En 2000, Mercury introdujo el modelo de vista de teclado que simplificó la visualización del código.
¿Por qué fallaron los métodos sin código 'antiguos'?
Si bien los antiguos métodos sin código facilitaban la comprensión del código, no reducían la complejidad. Cuando la lógica del código se volvió compleja, las presentaciones visuales también se volvieron complejas. Escalar y refactorizar el código también fue un desafío. La ausencia de buenos sistemas de control de versiones y otras herramientas de colaboración se sumaron al fracaso.
Desarrollo impulsado por el comportamiento
El desarrollo basado en el comportamiento (BDD) es otro enfoque alternativo que combina métodos de código y sin código para simplificar el proceso de desarrollo. Cucumber es una herramienta BDD popular.
En este método, las historias de usuario se crean para cada escenario y se escriben fragmentos de código para ese escenario, y luego cada historia de usuario se asigna al fragmento de código específico.
Hay tres componentes principales en este método:
- La característica habla de una funcionalidad específica usando una descripción de alto nivel
- Guión convierte la especificación de comportamiento en ejemplos y pasos formales
- Especificaciones ejecutables hablar sobre la sintaxis ágil dada, cuándo y luego
Por ejemplo, cuando estás probando el rendimiento de una función de inicio de sesión en una aplicación de demostración: aplicación Eribank
Los no desarrolladores escribirán un escenario para la función de la siguiente manera:
- @AñadirEscenario
- Escenario: Iniciar sesión en la aplicación Eribank
- Dado: Credenciales de entrada
- Cuando haga clic en el botón Iniciar sesión
- Luego verifique el inicio de sesión
Ahora, los ingenieros de automatización de pruebas crearán el código para cada acción usando un lenguaje de programación y mapearán cada acción con el fragmento de código correspondiente.
Pruebas basadas en modelos.
Para incorporar la mejor cobertura para sus proyectos de automatización de pruebas, comprender y analizar los requisitos es la clave. Sin un sistema automatizado para la recopilación de requisitos, su fase inicial de automatización de pruebas se vuelve ineficiente. Las pruebas basadas en modelos resuelven estos desafíos y le permiten aprovechar al máximo la automatización de pruebas con casos de prueba mínimos.
Las pruebas basadas en modelos son una parte importante de su ciclo de vida de desarrollo de software. En este enfoque, se crean modelos que capturan el comportamiento de un sistema. Describen estrategias de prueba, entornos, generan casos de prueba y evalúan la calidad de las pruebas.
En primer lugar, se crea un modelo que captura el comportamiento del sistema bajo prueba. Luego, la herramienta basada en modelos analizará e interpretará este comportamiento para crear scripts de prueba manuales y automatizados.
El desafío con el enfoque MBT radica en crear y mantener el modelo. También debe crear una asignación del modelo. Por ejemplo, cuando crea un modelo para la función de inicio de sesión, necesita crear la lógica que lo lleve a la siguiente pantalla. Del mismo modo, es necesario identificar los cambios.
Digital.ai Continuous Testing integración con plataformas de desarrollo low-code
Digital.ai Continuous Testing es una plataforma integral de automatización de pruebas en la nube que le permite ejecutar una variedad de casos de prueba en una variedad de dispositivos y navegadores ubicados en diferentes regiones. Ahora, Digital.ai Continuous Testing le permite integrar plataformas de desarrollo de código bajo para ejecutar pruebas basadas en modelos
Digital.ai Continuous Testing La plataforma en la nube de automatización de pruebas ofrece un bot de inteligencia artificial (IA) que resuelve los desafíos de las pruebas basadas en modelos al combinar el poder de la IA con los aportes humanos.
Aquí hay una demostración
Cuando inicia sesión en Digital.ai Continuous Testing cuenta y haga clic en Dispositivos, puede ver una lista de dispositivos disponibles para la prueba.
Ahora, haga clic en un dispositivo:
Vaya a Aplicaciones e instale una aplicación bancaria de demostración, ERIBANK
Después de instalar la aplicación, inicie la aplicación.
Cuando hace clic en el botón de inicio de sesión, aparece un mensaje de error que solicita el nombre de usuario y la contraseña.
Si proporciona el nombre de usuario y la contraseña, lo llevará a la siguiente pantalla.
Entonces, sin el nombre de usuario y la contraseña, no tiene mucho que probar aquí. por lo tanto, debe encontrar formas de realizar más pruebas.
Digital.ai Continuous Testing La aplicación AI bot lo ayudará a hacerlo.
Entonces, abra la página de la aplicación AI y haga clic en crear un nuevo proyecto.
Introduzca un nombre de proyecto y haga clic en siguiente.
En la siguiente pantalla, debe seleccionar la aplicación.
Puede cargar la aplicación o elegir desde el repositorio en la nube y luego hacer clic en Crear proyecto.
Ahora, haga clic en Iniciar exploración. El bot de IA comenzará a explorar la aplicación.
En la siguiente pantalla, proporcione un nombre para la exploración y luego seleccione los dispositivos para la exploración. Para esta demostración, se seleccionan 4 dispositivos.
Ahora, la exploración ha comenzado.
Cuando vaya a la Digital.ai Continuous Testing tablero y haga clic en dispositivos, puede ver que 4 dispositivos están ejecutando la prueba.
Ahora, vaya a la página del bot de IA y haga clic en Gates. Puede ver que el bot ya ha identificado una puerta.
Cuando hace clic en desbloquear, puede verificar los detalles de la puerta. Aquí, muestra la pantalla de inicio de sesión y necesita su ayuda para desbloquear la pantalla de inicio de sesión.
Hay dos formas de proporcionar esta información. Puede escribir un fragmento de código utilizando el código de Appium/Selenium o simplemente completar este pequeño formulario con las credenciales de usuario de la siguiente manera:
- Nombre de usuario=>empresa
- Contraseña=>empresa
- Iniciar sesión=>
Ahora, haga clic en guardar.
Ahora, puede ver que la puerta está desbloqueada.
Ahora, vaya a la pestaña Exploraciones y haga clic en el nombre de la exploración. Puede ver la actividad de exploración en un formato gráfico.
Ahora, el bot tomará la información y continuará con la exploración. Cuando se proporcionen las credenciales de usuario, pasará por la pantalla de inicio de sesión e ingresará a la siguiente pantalla. Los demás trabajadores tomarán esta información y realizarán diversas actividades de prueba en las aplicaciones, distribuyendo el tiempo de prueba entre ellos.
Aquí, puede ver que cada dispositivo está ejecutando una prueba diferente verificando una pantalla y funcionalidad diferentes.
Si revisa la vista gráfica de la exploración ahora, puede ver un gráfico más grande con múltiples actividades.
Si revisa la pestaña de puertas ahora, puede ver que ha identificado más puertas. (por ejemplo: MakePaymentActivity, MortageRequestOneActivity)
Por ejemplo, haga clic en Desbloquear y proporcione información para realizar un pago.
Teléfono=>111
Nombre=>chico
Cantidad=>100
Seleccionar=>india=>
Enviar =>
Y haga clic en guardar. Ahora, el bot tomará esta información para desbloquear la puerta de pago y realizar más exploraciones.
Ahora, haga clic en guardar.
Puedes ver que la nueva puerta está desbloqueada. Si ahora revisa la vista gráfica de la exploración, puede ver que el gráfico se está extendiendo.
Puede ver todas las conexiones entre las pantallas y la lógica detrás de la funcionalidad de la aplicación en una vista GUI. El análisis de ejecución también se recopila para diferentes casos de uso.
Probar casos de uso de bots de IA
Este enfoque de automatización de pruebas de IA basado en modelos resuelve varios desafíos. Aquí están los importantes:
Ayudante manual y de automatización
La función de ayuda para la navegación de aplicaciones le permite iniciar su aplicación en el estado deseado. Significa que comienzas con cualquier pantalla de la aplicación. De manera similar, el asistente de automatización le permite encontrar la vista de árbol de la interfaz de usuario (volcado) de cualquier pantalla de la aplicación. Por ejemplo, si es un desarrollador de Appium, puede encontrar fácilmente los elementos Xpath ya que el modelo completo se guarda aquí.
Identificación de fallas de la aplicación
Esta aplicación de IA viene con una prueba de identificación de fallas de la aplicación. Cuando escalas el modelo y ejecutas la prueba en miles de dispositivos con diferentes versiones, fabricantes, tamaños de pantalla y resoluciones. Identificará bloqueos de aplicaciones y anomalías de su aplicación. También puede realizar una prueba de humo.
Conocimiento de la aplicación
Después de realizar una exploración, la herramienta también proporcionará el análisis de prueba.
Aquí puedes ver algunos datos de prueba. Por ejemplo, proporcionará un resumen de la puntuación general de UX. Además, proporcionará anomalías de rendimiento.
En esta demostración, se muestra que el
- El inicio de sesión es más lento en la versión 2.14.
- iOS 14.1 se comporta de manera diferente en la pantalla de transferencia de dinero.
Otra idea es que se identifica una nueva actividad en la versión 2.34. por lo tanto, identifica automáticamente los cambios de pantalla en la aplicación bajo prueba.
Ayudante de automatización
Si está utilizando Appium, la herramienta le permitirá navegar al lugar deseado en el modelo y ejecutar el código desde esa área. Significa que puede reducir significativamente el código de navegación de Appium, reducir la cantidad de código y, a su vez, reducir también la complejidad del código. Además, le permite manejar de manera eficiente las ventanas emergentes y los eventos inesperados mediante la función XPath Listener.
Resumen
Para aprovechar al máximo el enfoque de prueba basado en modelos y eliminar sus desafíos, Digital.ai Continuous Testing viene integrado con una herramienta de prueba basada en modelos impulsada por IA. Este enfoque combina el bot de IA con un ser humano para que trabajen juntos para construir un modelo para proyectos de automatización de pruebas. Con la exploración autónoma de aplicaciones junto con la creación rápida de gráficos de aplicaciones, permite a los ingenieros de pruebas generar y ejecutar rápidamente pruebas automatizadas en un modelo y analizar los resultados de las pruebas. Si bien el bot de IA realiza la mayoría de las exploraciones, requiere asistencia humana para desbloquear ciertas puertas, como las pantallas de inicio de sesión.
¡Ahora construya mejores aplicaciones más rápido con este enfoque de desarrollo de bajo código!
Para ver más ver el completo webcast de desarrollo de código bajo aquí.
¿Estás listo para escalar tu empresa?
Explorar
¿Qué hay de nuevo en el mundo de Digital.ai
Amenazas a la seguridad de las aplicaciones que funcionan fuera del firewall: perspectivas del 2024 Application Security Informe de amenazas
Navegue por los crecientes riesgos de ciberseguridad para las aplicaciones que se ejecutan en estado salvaje: descubra más información de Digital.aiInforme de amenazas de aplicaciones de 2024.
Cómo Continuous Testing Fomenta la colaboración entre desarrollo y seguridad: el enfoque de moda para un desarrollo seguro
Descubre cómo continuous testing y la seguridad de aplicaciones fomentan un SDLC colaborativo, creando un complejo laberinto para los atacantes al tiempo que empodera a los equipos y reduce los costos.
Nativo de la nube: aprenda sobre arquitectura y desarrollo de aplicaciones
Conozca los fundamentos de la nube nativa y su impacto en la arquitectura y el desarrollo de aplicaciones.