6 pasos para la integración continua para pruebas de desarrollo

Por Jason Schadewald

Domingo, 30 de mayo de 2013

3  min leer

En las empresas más creativas y avanzadas, la integración continua se extiende mucho más allá de la automatización de la construcción, lo que permite a los equipos lograr una mayor escalabilidad, productividad y calidad en todo el SDLC.

Aquí hay 6 pasos para llevar a cabo su Pruebas de desarrollo actividades (y más) desde la integración manual hasta la integración continua, todo en menos de un día.

1. Identificar procesos manuales

Comience haciendo un inventario de sus esfuerzos habituales que consumen mucho tiempo. Su objetivo es identificar las tediosas tareas "obligatorias" que usted o su equipo realizan una y otra vez. Los procesos que identifica pueden incluir:

  • Transferencia de archivos entre máquinas
  • Ingresando comandos en una consola
  • Copiar datos entre diferentes sistemas o en otro formato
  • Verificación visual de información, datos o resultados de pruebas
  • Redacción de documentación
  • Obtener aprobación verbal o escrita
  • Programación y participación en reuniones
  • Hacer clic en un botón / icono para ejecutar un script o programa
  • Crear y enviar informes

En esta etapa, no necesita preocuparse por la automatización; centrarse en determinar los procesos manuales rutinarios y tediosos. Si la creación de esta lista toma más de 15 minutos, deténgase donde está y continúe con el paso dos.

2. Estimación de frecuencia y duración

Ahora que ha creado una breve lista de estos procesos, su siguiente paso es determinar las ganancias relativas de la automatización. La forma más sencilla de hacerlo es estimando la frecuencia y la duración. Al estimar la frecuencia de un proceso, no se limite a las condiciones actuales. En su lugar, concéntrese en el valor del proceso considerando la frecuencia con la que usaría los resultados o cuánto tiempo pasaría antes de que los resultados se vuelvan obsoletos:

  • Varias veces al día
  • Un par de veces por semana
  • Cada sprint
  • Dos veces por ciclo de lanzamiento

A continuación, revise la lista y calcule cuánto tiempo lleva completar cada proceso en las condiciones actuales. Las duraciones pueden variar de minutos a días para un proceso común. Es una tendencia humana natural subestimar las duraciones, así que siéntete libre de redondear o agregar factores falsos.

3. Seleccione (sub) procesos para la automatización

Revise su lista y elija un elemento que, si se automatiza, mejoraría notablemente la productividad de su equipo de desarrollo de software. Los métodos de selección comunes incluyen:

  • Elija el proceso con la mayor duración
  • Elija el proceso con la mayor frecuencia
  • Elija el proceso con la (frecuencia) * (duración) más alta

En este punto, muchas personas cometen el error de adoptar una visión de “todo o nada”. En cambio, concéntrese en las partes del proceso que se pueden automatizar y proceda con el entendimiento de que mejorará a medida que avanza.

Realice el ejercicio de realizar la tarea, ya sea mental o físicamente, y tome notas de cada paso. Anote la información recopilada, los comandos ingresados, los permisos necesarios, las personas involucradas, etc., lo suficiente para refrescar su memoria más tarde.

El resultado final será un mini manual de instrucciones para un proceso humano repetible. Revise sus instrucciones e identifique los pasos que puede realizar una computadora. Los comandos que ingresó en una consola o cuadro de texto y cualquier información extraída de un sitio web o base de datos son buenos candidatos. Para procesos de múltiples personas y etapas, también preste atención a los métodos para notificar a las personas su turno y rol en el proceso.

4. Cree scripts de automatización

Mire su manual de instrucciones desde el último paso, luego:

  • Copie los comandos de su consola en un editor y guárdelos como scripts .bat (Windows) o .sh (Unix / Linux)
  • Utilice una herramienta de prueba de desarrollo con una interfaz de línea de comandos para
    • Analizar estáticamente el código para seguridad, protección y defectos.
    • Genere y ejecute pruebas unitarias automáticamente
    • Asignar y realizar un seguimiento automático de las tareas de revisión por pares
    • Pruebe funcionalmente las API
    • Extraiga sitios web, servicios y bases de datos para obtener datos intermedios
  • Utilice herramientas de creación y generación de informes para informar las etapas posteriores de la infraestructura de automatización.
  • Capture procesos de varias etapas en forma de BPEL u otro motor de proceso de alto nivel

El objetivo es mantenerlo simple y apuntar a los frutos más fáciles; puede preocuparse por la optimización, generalización y parametrización más adelante.

5. Programe y / o active los artefactos

La definición formalmente aceptada de integración continua especifica que su script debe activarse mediante un compromiso con su SCM. La mayoría de las personas, sin embargo, solo se preocupan por hacer el trabajo. Que sus procesos coincidan con una definición u otra no viene al caso. Siéntase libre de crear su propia interpretación de CI que le ahorrará la molestia de las tediosas tareas.

Ahora que tiene un script u otro artefacto automatizable, necesita una herramienta para administrar la programación / activación de esos artefactos. Una estrategia sencilla para encontrar herramientas de automatización es buscar el término integración continua; los resultados proporcionarán consejos sobre la automatización no solo de la compilación, sino también de otras actividades de desarrollo, control de calidad y TI. Las herramientas de CI proporcionan el marco simple y necesario para programar las ejecuciones regulares de algunos artefactos y unir las ejecuciones activadas de otros.

6. Iterar, mejorar, repetir

Con el tiempo que ahorró automatizando sus procesos de pruebas de desarrollo, ahora puede concentrarse en mejorar su implementación básica de integración continua. Vuelva al paso uno y agregue algunas tareas manuales nuevas a su lista. Por ejemplo, tal vez modifique manualmente ciertos scripts o los copie con fines ligeramente similares. Su próximo proyecto de automatización podría ser consolidar y parametrizar sus artefactos de automatización

Acaba de saltar 2-3 niveles CMMI (para aquellos que llevan la puntuación). ¡Felicitaciones!

 

 

Por Jason Schadewald

Jason Schadewald es director de producto de Parasoft.

Reciba las últimas noticias y recursos sobre pruebas de software en su bandeja de entrada.