Entrega Continua
1. ¿Qué es un build en entrega continua?
Consiste en la compilación, prueba, inspección y despliegue de software.
2. Pasos en un escenario de CI:
Un desarrollador hace un commit de su código en el repositorio de control de versiones.
Mientras tanto en servidor CI está revisando el repositorio en busca de cambios.
El servidor CI recupera la última copia del código cuando detecta que ha habido un cambio en el repositorio de control de versiones, luego ejecuta un script de compilación que integra el software.
El servidor CI envía mensajes a los demás miembros del equipo para comunicar los cambios.
El servidor CI continúa sondeando cambios.
3. ¿Qué es una compilación privada? Es el proceso mediante el cual un desarrollador ha realizado todas las modificaciones relacionadas con la tarea asignada ejecuta una compilación privada, y luego confirma los cambios en el control de versiones. 4. Listar tres preguntas que surgen por medio de la compilación:
¿Todos los componentes del software funcionan juntos? ¿Cuál es la complejidad de mi código? ¿Cuánto código está cubierto por las pruebas automatizadas.
5. Pasos de un script en Ant: Running a Private Build Using Ant > ant integrate Buildfile: build.xml clean: svn-update: all: compile-src: compile-tests: integrate-database: run-tests: run-inspections: package: deploy: BUILD SUCCESSFUL Total time: 3 minutes 13 seconds
6. Comandos para realizar un commit en subversión: LISTING 1-2 Committing Changes
to a Subversion Repository > svn commit –m "Added CRUD capabilities to DAO" Sending src\BeerDaoImpl.jaca Transmitting file data . Committed revision 52.
7. ¿Cuál es el propósito de un repositorio de control de versiones?
Administrar los cambios en el código fuente y otros activos de software (como la documentación) mediante un repositorio de acceso controlado, proporcionando un punto de origen único para que todo el código fuente esté disponible desde una ubicación central.
8. ¿Cuál es la función que realiza el servidor de CI?
Ejecutar una compilación de integración cada vez que se confirma un cambio en el repositorio de control de versiones cada pocos minutos.
9. ¿Cuál es la función del Script de compilación?
Sirve para compilar, probar e inspeccionar software
10. en ant para realizar una compilación privada:
Escript de compilación
11. ¿Cuál es la función de un mecanismo de retroalimentación?
Generar comentarios de compilación de integración lo más pronto posible a fin de retroalimentar la información a todo el equipo.
12. ¿Cuál es la función de la máquina de compilación de integración?
Integrar software.
13. ¿Cuáles son los cuatro requisitos con los que debe de contar un Entorno de Integración?
14.
¿Cómo se define la compilación?
15.
Creación de código ejecutable a partir de una fuente legible para los humanos. Listar los procesos que se realizan en una integración:
16.
Una conexión a un repositorio de control de versiones. Un Script de construcción. Un Mecanismo de Retroalimentación Un proceso para integrar los cambios en un código fuente.
Compilar el código fuente Integrar la base de datos Correr pruebas Correr inspecciones Implementar software. ¿Qué función tiene el proceso de inspección? Permitir el monitoreo continuo de estándares de codificación y métricas de calidad
17.
¿Cuál es la función del proceso de Deployment?
18.
La entrega de software de trabajo e implementable en cualquier momento.
Listar tres herramientas para generar documentación:
Maven Javadoc NDoc
Un Día en CI:
Comenzando su día, Tim refactora un subsistema del que se informó que tenía demasiado código duplicado basado en los últimos informes del servidor de CI. Antes de enviar sus cambios a Subversion, ejecuta una compilación privada, que compila y ejecuta las pruebas unitarias con el código fuente más nuevo. Después de ejecutar esta compilación en su máquina, él confirma sus cambios a Subversion. Mientras tanto,
el servidor CruiseControl CI está sondeando el repositorio de Subversion. Unos minutos más tarde, el servidor de CI descubre los cambios que Tim cometió y ejecuta una compilación de integración. Esta compilación de integración ejecuta herramientas de inspección automatizadas para verificar que todo el código cumpla con el estándar de codificación. Tim recibe un correo electrónico sobre una infracción estándar de codificación, realiza los cambios rápidamente y verifica el código fuente nuevamente en Subversion. El servidor de CI ejecuta otra compilación y tiene éxito. Al revisar los informes web generados por el servidor de CI, Tim descubre que su reciente refactorización de código redujo con éxito la cantidad de código duplicado en su subsistema.
Más adelante en el día, otra desarrolladora del proyecto, Lisa, se encuentra con la oficina de Tim. Lisa: ¡Creo que los cambios que hiciste hoy rompieron la última versión! Tim: Hmm ... pero, hice las pruebas. Lisa: Oh, no tuve tiempo de escribir exámenes. Tim: ¿Está siguiendo la métrica de cobertura de código que hemos establecido? ¿Para el proyecto? Debido a esta discusión, decidieron fallar la compilación de integración si la cobertura de su código estaba por debajo del 85%. Además, Lisa escribió una prueba para detectar el defecto y solucionó el problema que descubrió debido a su conversación con Tim. La integración de la estructura siguió estando "en el verde".
19. ¿A qué se refiere el término A “hands-off” process integración continua?
En
Cuando empieza un proceso totalmente automatizado. Es un proceso para generar, probar, inspeccionar e implementar software.
20. ¿A qué se refiere el término continuo en integración continua?
21.
Un proceso se ejecuta continuamente, sondeando los cambios en el repositorio de control de versiones. Si el servidor de CI descubre cambios, ejecuta un script de compilación. ¿Qué es la integración continua? o Es una práctica de desarrollo de software donde los miembros de un equipo integran su trabajo con frecuencia, cada integración se verifica mediante una compilación automatizada para detectar errores de integración lo más pronto posible.
22.
¿Qué elementos constituyen un entorno de desarrollo?
El IDE, los scripts de compilación, las herramientas, las bibliotecas de terceros, los servidores y los archivos de configuración. ¿Qué actividades se realizan en la inspección?
23.
Análisis Estático
Análisis de Tiempo de Ejecución
Listar tres cuestiones que se tienen que atender en la administración
24.
de la configuración:
Que se pueda reproducir exactamente en cualquiera de los entornos: o La configuración de red o La pila de software o Las aplicaciones implementadas
Poder realizar cambios incrementales en cualquiera de los entornos y elementos individuales. Que se cumpla con todas las regulaciones establecidas.
25.
¿Qué es un sistema de control de versiones?
Son un mecanismo para mantener múltiples versiones de archivos que frente a los cambios aún puede accederse a las versiones anteriores.
26. ¿Cuáles son las dos funciones principales de un sistema de control de versiones?
Proporcionar acceso a todas las versiones de un archivo
Permitir que los equipos sean distribuidos en el tiempo y en el espacio para colaborar.
27. ¿Qué implica la buena práctica de que todo debe de mantenerse dentro del control de versiones?
Todos los artefactos relacionados con la creación del software deben estar bajo control de versión.
Listar los elementos que deberán ser almacenados en el sistema de
28.
control de versiones:
El código fuente
Las pruebas
Los Scripts de base de datos, compilación y despliegue
La Documentación
Las bibliotecas
El compilador
¿Qué información se considera necesaria para crear los entornos de
29.
prueba y producción en los que se ejecuta la aplicación?
Información para configuración para la pila de software.
Los sistemas operativos
Archivos de zona DNS
Configuración del Firewall
Para cada miembro de equipo de desarrollo listar los elementos que
30.
deben de guardar para el control de versiones:
Analistas: Documentos de requisitos
Evaluadores: Los scripts y procedimientos de prueba de control de versiones.
Gerentes: planes de lanzamiento, tablas de progreso y registros de riesgo.
31.
Listar dos ejemplos de dependencias externas:
Bibliotecas de terceros Módulos en desarrollo por otros equipos dentro de la organización.
32. ¿Cuál es descriptivos? 33.
la
razón
de
los
mensajes
de
confirmación
Saber quién y cuándo se rompió la compilación. Depurar un problema complejo en un plazo corto. ¿Cuál es la función de Maven?
Permite especificar los archivos jar de la aplicación y la descarga de los repositorios en internet.
34. Una ventaja de mantener las bibliotecas externas en el repositorio de control de versiones:
35.
Es más fácil correlacionar las versiones del software con las versiones de las bibliotecas que se utilizaron para compilarlas. Sin embargo, hace que los repositorios de control de versiones sean más grandes y las salidas más largas. ¿Cuál es la función del gestionado de componentes?
o Dividir las aplicaciones en componentes limita el alcance de los cambios en la aplicación reduciendo los errores de regresión. o En este caso es importante tener dependencias binarias entre las tuberías, en lugar de dependencias de origen. 36.