what is infrastructure testing
Esta guía completa para pruebas de infraestructura cubre sus beneficios, desafíos, herramientas y metodologías de prueba de infraestructura:
La infraestructura se comparte entre muchos proyectos. Las pruebas de infraestructura son las pruebas de las dependencias de hardware y software necesarias para ejecutar productos de software. Ayuda a cubrir los riesgos del producto relacionados con la infraestructura de destino.
Este tutorial lo ayudará a aprender las pruebas de infraestructura desde cero. Cubriremos detalles completos como beneficios y desafíos, quién puede realizar, cuándo realizarlo y técnicas para realizar esta prueba. Las herramientas de prueba de infraestructura también se tratan en este tutorial.
Lo que vas a aprender:
- ¿Qué es la infraestructura?
- ¿Qué son las pruebas de infraestructura?
- Metodologías de prueba de infraestructura
- Herramientas de prueba de infraestructura
- Conclusión
¿Qué es la infraestructura?
El ecosistema de infraestructura de TI incluye plataformas de sistemas operativos (como Windows, UNIX, Linux, macOS), plataformas de hardware informático (como Dell, IBM, Sun, HP, Apple), plataformas de Internet (como Apache, Cisco, Microsoft IIS, .NET ), Gestión y almacenamiento de datos (como IBM DB2, Oracle, SQL Server, MySQL) y aplicaciones de software empresarial (como SAP, Oracle, Microsoft).
¿Qué son las pruebas de infraestructura?
Todo software requiere una infraestructura para realizar sus acciones. La prueba de infraestructura es el proceso de prueba que cubre el hardware, el software y las redes. Implica probar cualquier código que lea valores de configuración de diferentes elementos del marco de TI y los compare con los resultados previstos.
Reduce los riesgos de fallas. Esta prueba incorpora ejercicios de prueba, procedimientos para garantizar que las aplicaciones de TI y la infraestructura fundamental estén sintonizadas para ofrecer ejecución, adaptabilidad, calidad inquebrantable, accesibilidad, rendimiento y escalabilidad. El objetivo es probar la infraestructura entre entornos de prueba, herramientas de prueba y entornos de oficina.
¿Por qué se necesitan pruebas de infraestructura?
Las organizaciones gastan muchos dólares para asegurarse de que sus aplicaciones comerciales se prueben a la perfección. Sin embargo, la base básica, es decir, la infraestructura que aloja y transmite estas aplicaciones, se prueba de vez en cuando y, en general, se subestima.
qué tipo de prueba se usa para verificar que todos los programas en una aplicación funcionan juntos correctamente
Se necesitan pruebas de infraestructura para mitigar el riesgo de falla de cualquier componente de hardware o software. Cuando se prepara un nuevo diseño de infraestructura para el software, es necesario realizar esta prueba. Es necesario para asegurarse de que la nueva funcionalidad de la infraestructura funcione según lo previsto. Es más probable que surjan problemas cuando se integra un nuevo módulo de infraestructura con el proyecto.
Las fallas de infraestructura surgen cuando no se planifican pruebas en una infraestructura escalable. Por lo tanto, para evitar interrupciones y problemas de última hora, es necesario realizar esta prueba.
Esta prueba es necesaria para identificar defectos que no se encontraron de manera eficiente durante diferentes procesos de prueba. Es importante analizar la aplicación de software cada vez que se cambian los recursos de hardware y software. Se realiza para analizar la eficiencia y el rendimiento del sistema.
Se requiere la implementación oportuna de este tipo de prueba porque los proyectos implican un alto costo de infraestructura. Por lo tanto, se requiere un buen conocimiento de estas pruebas para minimizar el costo involucrado en los riesgos del proyecto. Para evitar fallas, esta prueba es necesaria como estándar de la industria.
¿Cuáles son los beneficios de las pruebas de infraestructura?
El enfoque planificado y exhaustivo de las pruebas de infraestructura brinda muchos beneficios tanto a un producto de software como a las organizaciones.
A continuación se enumeran algunos de los beneficios:
- Reducción de fallas de producción.
- Mejora en la identificación de defectos antes de la ejecución de la producción. Actualice la calidad de la infraestructura con cero defectos en la producción.
- Ejecución de pruebas más rápida, lo que permite una puesta en marcha temprana.
- Ayuda a ahorrar costes anuales tanto en las operaciones como en los negocios.
- Confirme que el software funciona en un procedimiento sistemático y controlado.
- Reducción del tiempo de inactividad.
- Mejora de la calidad del servicio.
- Disponibilidad de ambientes estables.
- Reducción del costo involucrado en riesgos.
- Mejor experiencia de usuario.
Desafíos de las pruebas de infraestructura
Veamos algunos desafíos a los que se enfrentan las empresas cuando buscan adoptar las pruebas de infraestructura.
# 1) Entorno remoto
Los entornos o recursos de prueba se ubican en lugares topográficamente remotos, lo que hace que los equipos de prueba dependan de grupos de apoyo en el área para gestionar los desafíos relacionados con el equipo, los componentes de hardware, los componentes de software, las redes, etc. Esto con frecuencia requiere cierta inversión con respecto al tiempo y las causas. retrasos, especialmente cuando los equipos están situados en diferentes zonas horarias.
# 2) Ausencia de un equipo dedicado
La falta de conocimiento entre el equipo es un desafío importante para realizar esta prueba. Se requiere un equipo dedicado para mantener la información relacionada con todas las actividades, incluidos los horarios, planes, cobertura e informes de estado.
# 3) Investigación de problemas del entorno de prueba
Muchas veces, los problemas del entorno de prueba no se pudieron resolver y es necesario investigar. Es necesaria la coordinación con los equipos interesados hasta que se resuelva el problema.
# 4) Mantener los entornos en un solo lugar
Mantener un almacén común de entornos de prueba, su compatibilidad anterior, así como las últimas versiones, representa un desafío importante al realizar estas pruebas. No se mantienen los detalles de conectividad y las configuraciones de todas las versiones.
# 5) Trabajo manual
Pocas actividades involucradas en esta prueba requieren trabajo manual ya que no hay herramientas disponibles. Esto conduce a errores humanos y retrasos en el proceso.
#6) Falta de definición estándar para pruebas de infraestructura
La mayoría de las personas aún no conocen la implementación y los procesos. El conocimiento y la comprensión inadecuados a menudo conducen a dificultades en la implementación. Surgen muchos problemas nuevos que pueden afectar la estabilidad del proceso.
# 7) Equipos aislados
Existe una gran brecha entre las ubicaciones de los equipos. Esto generalmente conduce a una falta de transparencia y un mal trabajo en equipo.
¿Quién puede realizar pruebas de infraestructura?
Varios equipos están involucrados en este tipo de prueba. Estos se explican a continuación:
# 1) Equipo de pruebas de infraestructura
El equipo de pruebas de infraestructura tiene muchos conocimientos relacionados con estas pruebas. También están involucrados con el equipo de Garantía de Calidad. Este equipo sabe cómo probar la infraestructura de TI. Este equipo sabe cómo diseñar casos de prueba para este tipo de pruebas.
# 2) Equipo de administrador del sistema
El equipo de administradores del sistema a menudo prueba la infraestructura a nivel de red. El equipo diseña y documenta casos de prueba basados en su experiencia. Son responsables de garantizar que las aplicaciones no se vean afectadas después de cualquier cambio en la red.
# 3) Equipo de mantenimiento de infraestructura
Este equipo juega un papel muy importante. Están involucrados en una etapa temprana y son responsables de configurar los entornos de prueba según los requisitos. Participan en la planificación de pruebas y el mantenimiento de entornos de infraestructura.
# 4) Equipo de garantía de calidad
El equipo de control de calidad es responsable de ejecutar la prueba de regresión. También participan en las pruebas de integración. Realizan pruebas en diferentes entornos de prueba que se crean según una infraestructura diferente.
# 5) Gerente de proyectos
El director del proyecto es responsable de manejar el proyecto. Están involucrados en la planificación, el diseño y la documentación de los casos de prueba que se requieren para este tipo de prueba. Un Project Manager está sincronizado con todos los equipos.
¿Cuándo realizar pruebas de infraestructura?
Existe una necesidad urgente de realizar estas pruebas cada vez que se introducen cambios relacionados con la infraestructura.
Ejemplos de tales cambios son:
- Se desarrolla cualquier parche nuevo en el sistema.
- Se experimentan nuevas actualizaciones del sistema.
- Cualquier actualización en el sistema operativo.
- Se actualiza la estructura / versión de la base de datos.
- Cuando hay actualización de memoria para servidores.
- Implementación de la nueva herramienta.
- Correcciones de seguridad.
- Actualización de software.
A veces, este tipo de prueba se vuelve más importante cuando se encuentra la migración de la base de datos o del centro de datos. Se necesita más atención cuando hay cambios diversos y rápidos en la aplicación y cuando se trata de migraciones de infraestructura.
También se realiza cuando se introduce el soporte de nuevos dispositivos para software.
Ejemplo:
- Nuevas laptops / computadoras de escritorio
- Nuevos dispositivos móviles
- Nuevas herramientas de terceros
Metodologías de prueba de infraestructura
Tenemos diferentes módulos en esto. Algunos de ellos se enumeran a continuación:
- Infraestructura de servidor / cliente
- Migración de datos
- Pruebas de infraestructura en la nube
- Pruebas a nivel de red
- Instalación / Desinstalación / Implementación
- Infraestructura del entorno de prueba
- Enfoque TDD
# 1) Infraestructura de servidor / cliente
Los servidores incluyen servidores web, servidores de archivos, servidores de correo, servidores proxy, servidores virtuales y servidores físicos en hardware. El cliente incluye sistema operativo, aplicaciones, configuraciones de usuario, etc. Los servidores ejecutan diferentes servicios y estos servicios pueden ser utilizados por los clientes.
El objetivo principal es probar la calidad de servidores, computadoras de escritorio, sistemas operativos y hardware. Los componentes de servidor / cliente se prueban para garantizar que se mejore el rendimiento de la infraestructura en el entorno de producción. También incluye pruebas de instalación o desinstalación de aplicaciones, pruebas de compatibilidad del navegador, pruebas de integración con diferentes versiones del sistema operativo y configuraciones de usuario.
Procedimiento:
- Lo más importante es recopilar los requisitos de las partes interesadas.
- Diseñe un plan de prueba según el conocimiento de la infraestructura requerida.
- Luego, se diseñan casos de prueba que cubren el soporte de sistemas operativos, escenarios de actualización, el alcance de las pruebas de infraestructura de servidor / cliente y también las pruebas de funcionalidad.
- Después de la aprobación de los casos de prueba, QA Team ejecuta cada escenario y los casos de prueba correspondientes.
Todos los cambios relacionados con el servidor / cliente, como la actualización y los cambios de configuración, ya se han probado en las configuraciones de control de calidad, por lo que esto garantiza que habrá menos impacto posible en el entorno de producción. Además, se probarán diferentes versiones del sistema operativo antes de implementarlas en producción. Además, si algo falla en la producción, los procedimientos de respaldo se prueban de antemano para garantizar la copia de seguridad.
# 2) Migración de datos
La migración de datos incluye datos migrados de la versión anterior a la nueva versión, datos migrados de un servidor a otro y también datos migrados a diferentes configuraciones.
El objetivo principal de las pruebas de migración de datos es probar las migraciones de datos en varias versiones, servidores y nuevas versiones. Pruebe la aplicación para certificar que no hay impacto debido a la migración. También se realizan pruebas de migración de datos para verificar el rendimiento y la latencia en la aplicación.
Procedimiento:
- Pruebe la aplicación antes y después de la migración.
- Pruebe los servidores antes y después de la migración de datos para asegurarse de que no se observen cambios.
- Pruebe que no se observen cambios en el rendimiento de la aplicación después de la migración de datos.
- Pruebe la aplicación con diferentes versiones de la base de datos
- Pruebe que la nueva compilación sea compatible con todas las versiones de la base de datos.
- Pruebe diferentes opciones de configuración del servidor con diferentes versiones de base de datos
Con la ayuda de las pruebas de migración de datos, se pueden descubrir configuraciones no coincidentes del servidor. Cualquier problema de compilación del servidor, si existe mientras se realiza la migración de datos, se puede resolver antes de la implementación de producción. Las pruebas de migración de datos mejoran la calidad y la estabilidad del producto. Esta prueba ayuda posteriormente en las pruebas de instalación mientras se implementa la aplicación en el entorno de producción.
# 3) Prueba de infraestructura en la nube
La información y los datos se almacenan principalmente en servidores virtuales y estos servidores son guardados y administrados por proveedores de computación en la nube como AWS.
El objetivo principal es certificar los servicios Cloud para diferentes versiones de aplicaciones. Pruebe la arquitectura de la aplicación en la nube. Se simula una aplicación real en la nube y se prueba el rendimiento y la escalabilidad de las aplicaciones.
Procedimiento:
- Pruebe la carga en la aplicación con diferentes configuraciones.
- Realice pruebas de regresión y asegúrese de que la aplicación no afecte las pruebas de carga.
- Pruebe si una aplicación es compatible con un navegador en un entorno de nube.
- Pruebe la instalación de la aplicación en la nube.
- Pruebe si la aplicación funciona como se esperaba en diferentes entornos de nube.
Las pruebas de infraestructura en la nube garantizan una implementación sin errores de la aplicación en el entorno de producción. Ayuda a conocer el rendimiento, la escalabilidad y la estabilidad de la aplicación. Ayuda a utilizar los recursos que se encuentran en la nube, como cualquier hardware, software e infraestructura.
# 4) Prueba a nivel de red
La red es la parte más importante de la infraestructura de la aplicación. La red ayuda en la comunicación entre servidores, clientes y otras redes. Las redes tienen diferentes módulos como servidores proxy, infraestructura para la conectividad a Internet.
El objetivo principal es controlar y gestionar cualquier problema a nivel de red, como el uso excesivo de recursos, el tiempo de inactividad del servidor, la configuración del sistema, la infraestructura necesaria para las operaciones, los parches del sistema operativo.
Procedimiento:
- Pruebe la capa de red para futuras actualizaciones de la aplicación.
- Pruebe los procedimientos de respaldo en caso de cualquier falla en el entorno de producción.
- Realice pruebas del sistema, pruebas UAT, pruebas de seguridad.
- Diseñe casos de prueba y prepare datos de prueba.
- Asegúrese de que los servicios a nivel de servidor / red no se vean afectados después de una nueva versión.
- Prueba la red aislada.
- Pruebe el impacto en el rendimiento de la aplicación en varias redes como VPN, Wi-Fi, LAN, etc.
Las pruebas de infraestructura a nivel de red mejoran el tiempo de recuperación. Asegura la copia de seguridad y restaura los mecanismos. También ayuda en la seguridad de las aplicaciones.
# 5) Instalación / Desinstalación / Implementación
El principal objetivo de probar la infraestructura mientras se realiza la instalación es garantizar que cada vez que un nuevo cliente esté utilizando la aplicación, no surjan problemas al instalar la aplicación por primera vez. La desinstalación de la aplicación se realiza para probar el proceso de salida de la aplicación.
Procedimiento:
- Pruebe los paquetes de instalación necesarios para instalar la aplicación.
- Pruebe bibliotecas adicionales, compile paquetes.
- Pruebe el tiempo necesario para instalar y desinstalar la aplicación.
- Instale la aplicación en diferentes sistemas operativos.
- Prueba de espacio en disco requerido.
- Pruebe si se eliminan todos los archivos después de la desinstalación de la aplicación.
Probar la infraestructura durante la instalación / desinstalación / implementación garantiza que la aplicación se pueda instalar en la red en un momento determinado. Se asegura de que cualquier parche pueda instalarse posteriormente o no. Ayuda a mejorar el almacenamiento requerido por la aplicación.
# 6) Infraestructura del entorno de prueba
Un entorno de prueba es una colección de hardware, software, herramientas y procesos. Para ejecutar las pruebas de forma precisa y eficiente, el entorno de prueba es necesario. El entorno de prueba también incluye el lugar de trabajo donde se proporciona una buena red, PC y fuente de alimentación a los probadores para que realicen su trabajo.
El objetivo principal es verificar la instalación del software, las configuraciones de la aplicación, elegir las herramientas de prueba adecuadas que respalden la planificación de la prueba y la ejecución de la prueba. También asegura la continuidad de la ejecución de la prueba.
Procedimiento:
- Configure un entorno de prueba para lanzamientos regulares del proyecto.
- Cree un entorno de prueba para las versiones de revisiones.
- Cree soluciones para gestionar los problemas del entorno del servidor y del cliente.
- Finalice las herramientas de prueba para el plan de prueba, el diseño de prueba y la ejecución.
- Decidir herramientas para depurar y reportar errores.
- Cree un documento para configurar el entorno de prueba.
El uso de herramientas y entornos de prueba tiene múltiples ventajas. Se observa una mayor calidad. La productividad aumenta con el uso de herramientas. Las actividades de prueba se llevan a cabo de forma procesada. La documentación del entorno de prueba ayuda a los nuevos miembros del equipo a comprender mejor.
# 7) Enfoque TDD
El desarrollo basado en pruebas o marco TDD es un método para escribir primero casos de prueba basados en los documentos de requisitos y luego implementar la funcionalidad de acuerdo con la prueba.
El objetivo principal es conocer los recursos de infraestructura necesarios para el proyecto. El propósito es definir y organizar la infraestructura de seguridad, operaciones y producción.
Procedimiento:
- Documento de diseño para requisitos de infraestructura.
- Diseño de plan de pruebas que cubra la infraestructura necesaria para la aplicación.
- Diseñar casos de prueba que involucren pruebas de infraestructura.
- Prueba para diferentes configuraciones.
El enfoque TDD ayuda a mejorar la complejidad del proyecto. Cualquier cambio en la infraestructura se prueba antes de pasar a producción. Se pueden implementar diferentes configuraciones posibles ya que las pruebas ya están diseñadas.
Herramientas de prueba de infraestructura
Chef, Marioneta, y Ansible son herramientas diferentes que tienen el mismo propósito. Estas herramientas se utilizan para implementar y configurar diferentes servidores necesarios para una aplicación. Estas herramientas son de gran ayuda cuando hay tareas complejas relacionadas con la infraestructura. Es fácil para el equipo ejecutar tareas en varios servidores juntos utilizando estas herramientas.
El equipo que utiliza estas herramientas implementa rápidamente múltiples aplicaciones, dependencias y bibliotecas. Otras actividades incluyen servidores, binarios, archivos de registro, mecanismos de recuperación, actualización de versiones, administración de bases de datos.
# 1) Chef
Características: Chef admite lenguajes específicos de dominio Ruby. Por lo tanto, a los no desarrolladores les resulta difícil aprender esta herramienta. A pesar de ser difícil para el soporte de idiomas, esta herramienta tiene una alta disponibilidad. Chef sigue la configuración maestro-esclavo. En el mecanismo maestro-esclavo, el servidor primario, es decir, chef-servidor puede ser reemplazado por el servidor de respaldo si en cualquier caso se encuentra una falla.
Podemos implementar aplicaciones, configurar infraestructura y también configurar la red con Chef. No está muy seguro.
Precio: Es menos costoso que Puppet pero más caro que Ansible. Su precio es de aproximadamente $ 13.5k / año hasta 100 nodos.
Sitio web: Jefe
# 2) Marioneta
Características: Puppet está construido con Ruby y es compatible con DSL y Embedded Ruby. Un programador solo puede administrar la configuración si se selecciona el Puppet para su uso. El equipo de administradores del sistema también conoce las configuraciones de esta herramienta. Sigue la arquitectura maestro-maestro. Si un maestro activo experimenta una falla, otro maestro puede reemplazarlo.
Puppet es útil en la escalabilidad de las máquinas, al establecer diferentes configuraciones para cada host. Si se realiza algún cambio en la configuración, esta herramienta ayuda a realizar cambios globalmente. Tampoco es una herramienta tan segura.
Precio: Su precio es el más alto en aproximadamente $ 11k- $ 20k / año para hasta 100 nodos.
Sitio web: Marioneta
mejor convertidor de youtube a mp4 en línea
# 3) Ansible
Características: Ansible está escrito en Python y también es compatible con los scripts de comandos YAML. Python es legible por humanos y, por lo tanto, esta herramienta es ideal para administradores de sistemas. Se ejecuta con un solo nodo activo, pero en caso de fallas, también tiene un nodo secundario.
Ansible es altamente escalable, es decir, podría administrar una gran cantidad de nodos sin ningún problema. En comparación con Puppet, Ansible es más conveniente en términos de escalabilidad. A diferencia de Chef y Puppet, es una herramienta altamente segura con SSH.
Precio: Su precio es mucho más bajo que Puppet y Chef, aproximadamente $ 10k / año para hasta 100 nodos.
Sitio web: Ansible
Conclusión
Las pruebas de infraestructura son necesarias para el ciclo de vida del desarrollo de software, ya que las empresas incurren en altos costos de infraestructura. En este tutorial se tratan varios temas, como beneficios, desafíos, técnicas y personas involucradas en este tipo de prueba. También se cubre un vistazo a las herramientas de prueba de infraestructura.
Lectura recomendada
- Monitoreo del desempeño de la infraestructura de TI y aplicaciones con la herramienta eG Enterprise (revisión práctica)
- Tipos de pruebas de software: diferentes tipos de pruebas con detalles
- Pruebas de aplicaciones: ¡los conceptos básicos de las pruebas de software!
- ¿Qué es la prueba gamma? La etapa de prueba final
- ¿Qué son las pruebas de conformidad (pruebas de conformidad)?
- Pruebas de rendimiento frente a pruebas de carga frente a pruebas de estrés (diferencia)
- Pruebas exploratorias frente a pruebas con guiones: ¿Quién gana?
- ¿Qué son las pruebas de escalabilidad? Cómo probar la escalabilidad de una aplicación