1 |
¿Qué es la Integración Continua (CI)? |
Es una práctica de desarrollo en la que el código se integra frecuentemente en un repositorio compartido, con la finalidad de detectar errores rápidamente y mejorar la calidad del software. |
2 |
¿Qué es la Entrega Continua (CD)? |
Es una práctica que extiende la CI al automatizar el despliegue del código a entornos de staging o producción, asegurando que las aplicaciones puedan ser liberadas en cualquier momento. |
3 |
¿Qué es la Gestión de Requisitos (RM)? |
Es el proceso de identificar, documentar, analizar, y gestionar los requisitos del sistema para asegurar que el software cumple con las necesidades del cliente. |
4 |
¿Cómo se realiza la integración continua en Java con Maven? |
Usando el comando `mvn clean install` para compilar y ejecutar pruebas automáticamente durante cada integración. Ejemplo:
mvn clean install
|
5 |
¿Cómo se realiza la integración continua en Python con Travis CI? |
Configurando un archivo `.travis.yml` que define los pasos para instalar dependencias, ejecutar pruebas, y construir el proyecto. Ejemplo:
language: python
python:
- "3.8"
install:
- pip install -r requirements.txt
script:
- pytest
|
6 |
¿Cómo se realiza la integración continua en C# con Azure DevOps? |
Configurando un pipeline en Azure DevOps que define los pasos para compilar el código y ejecutar pruebas. Ejemplo:
pool:
vmImage: 'ubuntu-latest'
steps:
- task: UseDotNet@2
inputs:
packageType: 'sdk'
version: '6.x'
- task: DotNetCoreCLI@2
inputs:
command: 'restore'
- task: DotNetCoreCLI@2
inputs:
command: 'build'
- task: DotNetCoreCLI@2
inputs:
command: 'test'
|
7 |
¿Cómo se realiza la integración continua en TypeScript con GitHub Actions? |
Configurando un archivo `.github/workflows/ci.yml` para definir los pasos del flujo de trabajo. Ejemplo:
name: CI
on: [push]
jobs:
build:
runs-on: ubuntu-latest
steps:
- uses: actions/checkout@v2
- name: Setup Node.js
uses: actions/setup-node@v2
with:
node-version: '14'
- run: npm install
- run: npm test
|
8 |
¿Cómo se gestiona la configuración en un entorno de integración continua? |
Utilizando herramientas de gestión de configuraciones como Ansible o Chef para automatizar la configuración de los entornos de integración y despliegue. |
9 |
¿Qué es un pipeline en el contexto de CI/CD? |
Es una serie de pasos automatizados que se ejecutan en un orden específico para construir, probar y desplegar una aplicación. |
10 |
¿Cuál es la diferencia entre CI y CD? |
CI se enfoca en la integración y pruebas del código de manera continua, mientras que CD se enfoca en la entrega automática del código a entornos de staging o producción. |
11 |
¿Cómo se realiza la gestión de requisitos en una metodología ágil? |
Mediante la creación y mantenimiento de historias de usuario en un backlog, priorizando los requisitos basados en el valor y la retroalimentación del cliente. |
12 |
¿Qué herramienta se puede usar para la gestión de requisitos en Java? |
Jira, con plugins específicos para la gestión de requisitos. |
13 |
¿Qué herramienta se puede usar para la gestión de requisitos en Python? |
Redmine, con soporte para la gestión de proyectos y requisitos. |
14 |
¿Qué herramienta se puede usar para la gestión de requisitos en C#? |
Azure DevOps Boards, que permite gestionar requisitos y tareas relacionadas con el proyecto. |
15 |
¿Qué herramienta se puede usar para la gestión de requisitos en TypeScript? |
Jira, que también es útil para la gestión de requisitos en proyectos de TypeScript. |
16 |
¿Cómo se puede asegurar la calidad del código en CI/CD? |
Implementando análisis de código estático y herramientas de linters en el pipeline de CI/CD para detectar problemas y mantener estándares de calidad. |
17 |
¿Qué es un "build artifact" en el contexto de CI/CD? |
Es un archivo o conjunto de archivos generados como resultado de un proceso de construcción, que se puede usar para el despliegue o distribución del software. |
18 |
¿Cómo se pueden realizar pruebas automatizadas en el pipeline de CI/CD? |
Incorporando pasos en el pipeline que ejecuten pruebas unitarias, de integración y end-to-end usando herramientas como JUnit, pytest, NUnit, o Jest. |
19 |
¿Qué es un "deployment pipeline"? |
Es un conjunto de pasos automatizados que gestionan el proceso de despliegue del código desde el repositorio hasta el entorno de producción. |
20 |
¿Cómo se pueden manejar las versiones en CI/CD? |
Utilizando etiquetado (tags) y ramas (branches) en el sistema de control de versiones para gestionar versiones específicas del código. |
21 |
¿Qué es una "pull request" y cómo se utiliza en CI/CD? |
Una "pull request" es una solicitud para fusionar cambios en el repositorio principal. Se utiliza en CI/CD para iniciar el proceso de revisión y prueba de código antes del despliegue. |
22 |
¿Cómo se puede realizar la automatización de pruebas en Java? |
Usando JUnit para escribir y ejecutar pruebas unitarias. Ejemplo:
import org.junit.jupiter.api.Test;
import static org.junit.jupiter.api.Assertions.assertEquals;
public class CalculatorTest {
@Test
public void testAdd() {
Calculator calc = new Calculator();
assertEquals(5, calc.add(2, 3));
}
}
|
23 |
¿Cómo se puede realizar la automatización de pruebas en Python? |
Usando pytest para escribir y ejecutar pruebas. Ejemplo:
def test_add():
assert add(2, 3) == 5
|
24 |
¿Cómo se puede realizar la automatización de pruebas en C#? |
Usando NUnit para escribir y ejecutar pruebas. Ejemplo:
using NUnit.Framework;
[TestFixture]
public class CalculatorTests {
[Test]
public void TestAdd() {
Calculator calc = new Calculator();
Assert.AreEqual(5, calc.Add(2, 3));
}
}
|
25 |
¿Cómo se puede realizar la automatización de pruebas en TypeScript? |
Usando Jest para escribir y ejecutar pruebas. Ejemplo:
import { add } from './calculator';
test('adds 2 + 3 to equal 5', () => {
expect(add(2, 3)).toBe(5);
});
|
26 |
¿Qué es un "merge conflict" y cómo se resuelve? |
Un "merge conflict" ocurre cuando hay discrepancias entre dos ramas que se están fusionando. Se resuelve revisando y editando los archivos en conflicto para decidir qué cambios conservar. |
27 |
¿Qué herramientas se pueden utilizar para la gestión de versiones? |
Git, SVN, y Mercurial son herramientas comunes para la gestión de versiones. |
28 |
¿Qué es un "commit" en el contexto de CI/CD? |
Un "commit" es una acción que guarda cambios en el sistema de control de versiones. Los commits suelen desencadenar procesos en el pipeline de CI/CD. |
29 |
¿Cómo se puede configurar un entorno de despliegue en CI/CD? |
Mediante la definición de ambientes en el pipeline, especificando configuraciones y recursos necesarios para cada entorno (desarrollo, staging, producción). |
30 |
¿Qué es una "build definition" en CI/CD? |
Es una configuración que define los pasos necesarios para construir, probar y desplegar el software. |
31 |
¿Qué es una "blue-green deployment"? |
Es una estrategia de despliegue que utiliza dos entornos idénticos (blue y green) para minimizar el tiempo de inactividad durante el despliegue. |
32 |
¿Cómo se puede asegurar que un despliegue sea exitoso en CD? |
Implementando pruebas automatizadas y validaciones en el pipeline de CD para verificar que el despliegue cumple con los requisitos. |
33 |
¿Qué es un "rollback" en el contexto de CD? |
Es el proceso de revertir el despliegue a una versión anterior en caso de que el nuevo despliegue falle o tenga problemas. |
34 |
¿Qué es una "feature flag" y cómo se usa? |
Una "feature flag" es una técnica que permite habilitar o deshabilitar características del software sin necesidad de modificar el código. Se utiliza para realizar despliegues graduales o probar nuevas funcionalidades. |
35 |
¿Qué es el "Infrastructure as Code" (IaC)? |
Es una práctica que utiliza código para definir y gestionar la infraestructura de TI, permitiendo una configuración y despliegue más automatizados y reproducibles. |
36 |
¿Qué herramienta se puede usar para IaC en AWS? |
AWS CloudFormation y Terraform son herramientas comunes para IaC en AWS. |
37 |
¿Cómo se puede garantizar la seguridad en CI/CD? |
Implementando escaneos de seguridad en el pipeline, gestionando secretos de manera segura y realizando auditorías regulares del código y del entorno. |
38 |
¿Qué es un "build trigger" en CI/CD? |
Es un evento que inicia el proceso de construcción en el pipeline, como un commit en el repositorio o una solicitud de pull request. |
39 |
¿Qué es un "artifact repository" y por qué es importante? |
Es un repositorio que almacena artefactos construidos, como binarios y paquetes. Es importante para gestionar versiones y facilitar el despliegue. |
40 |
¿Qué es una "pipeline as code"? |
Es una práctica que define el pipeline de CI/CD mediante código, permitiendo versionar y gestionar la configuración del pipeline de manera más eficiente. |
41 |
¿Cómo se puede realizar la gestión de requisitos en CI/CD? |
Integrando herramientas de gestión de requisitos con el pipeline para asegurar que los requisitos se cumplen y validan durante el proceso de construcción y despliegue. |
42 |
¿Qué es una "continuous deployment"? |
Es una práctica en la que cada cambio que pasa las pruebas automatizadas se despliega automáticamente en producción. |
43 |
¿Qué es una "continuous delivery"? |
Es una práctica que asegura que el código siempre está en un estado que puede ser desplegado en producción en cualquier momento, pero el despliegue no es automático. |
44 |
¿Cómo se puede mejorar la eficiencia en CI/CD? |
Optimización de las etapas del pipeline, paralelización de tareas, y uso de cachés para reducir el tiempo de construcción y pruebas. |
45 |
¿Qué es un "pipeline step"? |
Es una fase individual en el pipeline de CI/CD que realiza una acción específica, como compilación, pruebas o despliegue. |
46 |
¿Qué es un "deployment environment"? |
Es un entorno específico donde se despliega el software, como desarrollo, staging o producción. |
47 |
¿Cómo se maneja el versionado de API en CI/CD? |
Implementando estrategias de versionado de API, como el uso de versiones en las URLs o encabezados, y asegurando que el pipeline realice pruebas de compatibilidad con versiones anteriores. |
48 |
¿Qué es un "build artifact"? |
Es un resultado de la construcción del software, como un archivo binario o un paquete, que puede ser almacenado y utilizado para despliegues. |
49 |
¿Cómo se maneja la integración de terceros en CI/CD? |
Mediante la configuración de integraciones y plugins en el pipeline para interactuar con servicios externos, como sistemas de gestión de errores o repositorios de artefactos. |
50 |
¿Qué es una "build pipeline"? |
Es una secuencia de etapas y pasos en CI/CD que toma el código fuente y lo convierte en un artefacto listo para ser desplegado. |