¿En quién o en qué confías? Piensa en tu relación con personas o productos y dime: ¿confías en alguien o algo con lo que no has tenido experiencias? Hablando más específicamente de productos: ¿confías antes de realizar pruebas básicas?
Dicho de otra forma: ¿comprarías un auto si, al girar la llave o presionar el botón, no encendiera?
Por más obvias que parezcan las preguntas anteriores, nos llevan a una conclusión evidente: confiamos en un producto, servicio o incluso en una marca después de haberlos probado mínimamente.
Ahí radica la importancia de las pruebas en la industria, incluso en la de software: ellas nos dicen si podemos o no confiar en el sistema que utilizamos.
En general, la confianza está directamente relacionada con el cumplimiento de nuestras expectativas. Ya hemos hablado en este blog de lo valiosa que es la automatización. Gracias a ella, hacemos realidad en el futuro una acción que antes solo imaginábamos.
Si imaginamos algo similar sobre un producto o servicio —si suponemos que funcionará como esperamos—, nuestras expectativas se cumplen. Y, en consecuencia, creemos que tiene calidad.
Precisamente por eso, las pruebas son la principal herramienta de la Ingeniería de Calidad en la industria del software. Gracias a ellas, confiamos en un sistema y, por tanto, nos sentimos seguros al usarlo.
Pruebas en todas las etapas del desarrollo
Desde la prueba de concepto hasta las pruebas de homologación, todas las etapas del desarrollo de un sistema pasan por numerosas rondas de pruebas. Y a medida que las aplicaciones se vuelven más complejas, con la adopción de nuevas arquitecturas y tecnologías, la cantidad de pruebas aumenta exponencialmente.
Para facilitar la comprensión de cómo se realizan las pruebas en un proyecto de desarrollo de aplicaciones, podemos dividirlas en dos grandes grupos. En el primero, “quién” realiza las pruebas. En el segundo, “qué” se prueba.
Las pruebas son realizadas por dos tipos de “actores”: humanos o robots. Las pruebas manuales las ejecutan personas, normalmente un analista de QA (sigla del inglés Quality Assurance, que significa “garantía de calidad”).
Cuando las pruebas están automatizadas, los robots hacen el trabajo. Son un tipo de sistema cuya función es ejecutar pasos que prueban repetidamente la lógica y las reglas de la aplicación en desarrollo. Obviamente, hoy en día ya existen agentes de inteligencia artificial diseñados para realizar pruebas automatizadas.
El grupo del “qué” se está probando también puede dividirse en dos: las partes y la relación entre ellas. En las pruebas unitarias, se verifica el funcionamiento de fragmentos del sistema, muchas veces partes muy pequeñas: una o pocas funciones, un flujo lógico.
El objetivo es aislar bloques de la aplicación para ver si funcionan, por separado, según lo esperado.
Una vez comprobadas las partes, se realizan las pruebas de integración: combinamos varios bloques de la aplicación y los probamos en conjunto.
Para ilustrarlo, imagina una matrioska: primero pruebas las dimensiones y el funcionamiento de cada muñeca, y luego verificas si encajan perfectamente entre sí hasta formar una sola. Para que funcione según lo esperado, cada muñeca debe encajar exactamente con la otra.
Metodologías y técnicas
Como ya dijimos, las pruebas están presentes en todas las etapas de la creación de un sistema. Son procedimientos tan fundamentales que existen métodos de desarrollo orientados a ellas, como el tradicional TDD (Test-Driven Development, o desarrollo guiado por pruebas) y su “evolución”, el BDD (Behavior-Driven Development, o desarrollo guiado por comportamiento).
Asimismo, con el aumento de la complejidad de las aplicaciones, han surgido nuevas metodologías y técnicas de prueba. Una muy utilizada son las pruebas de contrato, fundamentales para los microservicios. En este tipo de verificación, se prueba la interacción entre los diversos microservicios que hacen funcionar toda la aplicación.
No solo se prueban las reglas y funcionalidades de la aplicación; otras dimensiones también deben funcionar según lo esperado para garantizar su calidad. Una de las más importantes es la disponibilidad, es decir, la garantía de que la aplicación funcionará en todos los momentos necesarios.
Una de las formas de probar la disponibilidad de una aplicación es la ingeniería del caos. Fue concebida para realizar la migración de un sistema extremadamente complejo: el de Netflix. En 2010, la empresa decidió trasladar su servicio de streaming a la infraestructura de AWS, una operación que podría haber afectado gravemente la experiencia de sus clientes.
Para realizar una migración fluida y garantizar la calidad del servicio, el equipo de Netflix creó el “Chaos Monkey”, un programa que apagaba deliberada y aleatoriamente partes de su infraestructura, “forzando el caos” y, por tanto, poniendo a prueba la resiliencia y disponibilidad de su sistema.
Estas y otras metodologías contemporáneas de prueba están entre las principales especialidades de Inmetrics: mediante prácticas de QAOps, eliminamos los límites entre pruebas, desarrollo y operaciones para aumentar la velocidad de implementación, fortalecer su negocio, reducir el tiempo de lanzamiento al mercado y asegurar el mayor ROI posible. No es casualidad que seamos una empresa líder en Continuous Testing según el ISG Provider Lens™ Next-Gen ADM Services Brazil 2022.
Si las operaciones de su empresa están creciendo en volumen y complejidad, y desea garantizar el control de calidad de sus aplicaciones de manera integrada, ¡haz clic aquí y hable con nosotros!
Nuestro equipo está listo para acelerar su transformación, garantizando la calidad en cada etapa de su recorrido.



