DEV Community

LeoJulieta
LeoJulieta

Posted on

Testifly 2.0: IA sin prompts para pruebas automáticas en CI/CD

Testifly 2.0: Pruebas de IA Zero‑Prompt para Python y Node.js en GitHub Actions y GitLab CI


Introducción

¿Cansado de escribir prompts para que la IA genere pruebas y después pasar horas corrigiendo fallos? Con Testifly 2.0 puedes olvidar los prompts y dejar que la IA cree, ejecute y mantenga los test por ti. En menos de 5 min tendrás una suite de pruebas autónoma que se integra directamente en tu pipeline de CI/CD, tanto en GitHub Actions como en GitLab CI.

A continuación encontrarás una guía paso a paso (con ejemplos reales de código y comandos), una comparativa rápida con otras soluciones del mercado y los trucos para controlar la flakiness sin levantar la cabeza.


1. Qué es el testing Zero‑Prompt

El testing Zero‑Prompt es una metodología en la que todo el ciclo de pruebas (generación, ejecución y mantenimiento) se lleva a cabo automáticamente mediante IA. No necesitas escribir ni un solo prompt; la herramienta inspecciona:

Fuente Qué extrae la IA
Código fuente Funciones, tipos y firmas
OpenAPI/Swagger Endpoints y esquemas de petición/respuesta
Diagramas de flujo (mermaid, plantuml) Escenarios de negocio
Comentarios Javadoc/Docstrings Reglas de validación implícitas

Con esa información, Testifly genera tests unitarios, de integración y de contrato listos para ejecutarse en tu pipeline.


2. Comparativa rápida (abril 2024)

Herramienta ¿Zero‑Prompt? Lenguajes soportados Integración CI Precio
Testifly 2.0 Sí Python 3.x, Node ≥ 14, Java, Go GitHub Actions, GitLab CI, Azure Pipelines SaaS $0 / mes (plan free)
Mabl AI No (requiere prompts) JavaScript, Java, .NET GitHub Actions, Jenkins Desde $49 / mes
Diffblue Cover Sí (pero solo Java) Java Maven/Gradle CI Enterprise
Testim.io Parcial (requiere scripts) JS/TS, Python GitHub Actions, CircleCI Desde $79 / mes

Conclusión: Si trabajas con Python o Node.js y buscas una solución que no requiera prompts, Testifly es la única que cubre ambos lenguajes con integración nativa en los principales runners.


3. Instalación y configuración (Python)

3.1. Añade Testifly a tu proyecto

# Instala el CLI de Testifly (Python)
pip install testifly-cli
# O, si usas Poetry
poetry add testifly-cli --dev
Enter fullscreen mode Exit fullscreen mode

3.2. Crea el archivo de configuración

testifly.yml en la raíz del repo:

project:
  name: my-awesome-app
  language: python
  entrypoint: src/main.py
qa:
  endpoints:
    - /api/v1/users
    - /api/v1/orders
  schemas: openapi/openapi.yaml
  flaky_threshold: 0.05   # 5 % de reintentos automáticos
ci:
  github_actions: true
  gitlab_ci: true
Enter fullscreen mode Exit fullscreen mode

3.3. Genera los tests

testifly generate --config testifly.yml
Enter fullscreen mode Exit fullscreen mode

El comando escanea tu código, lee el OpenAPI y crea:

  • tests/test_api_users.py
  • tests/test_api_orders.py

Cada archivo contiene pruebas pytest con fixtures de datos reales y aserciones de contrato.

3.4. Ejecuta localmente

pytest -q
Enter fullscreen mode Exit fullscreen mode

Si todo pasa, estás listo para pasar al CI.


4. Instalación y configuración (Node.js)

4.1. Instala el paquete NPM

npm i -D testifly-cli
# o con Yarn
yarn add -D testifly-cli
Enter fullscreen mode Exit fullscreen mode

4.2. Configuración

testifly.yml (misma estructura, language: node):

project:
  name: api-service
  language: node
  entrypoint: src/index.js
qa:
  endpoints:
    - /users
    - /orders
  schemas: ./docs/openapi.yaml
ci:
  github_actions: true
  gitlab_ci: true
Enter fullscreen mode Exit fullscreen mode

4.3. Genera los tests

npx testifly generate --config testifly.yml
Enter fullscreen mode Exit fullscreen mode

Se crean archivos bajo test/ con Jest y supertest:

  • test/users.test.js
  • test/orders.test.js

4.4. Prueba local

npm test
Enter fullscreen mode Exit fullscreen mode

5. Integración en CI

5.1. GitHub Actions

.github/workflows/ci.yml

name: CI
on: [push, pull_request]

jobs:
  test:
    runs-on: ubuntu-latest
    steps:
      - uses: actions/checkout@v4
      - name: Set up Python
        uses: actions/setup-python@v5
        with:
          python-version: "3.11"
      - name: Install deps
        run: |
          pip install -r requirements.txt
          pip install testifly-cli
      - name: Generate AI tests
        run: testifly generate --config testifly.yml
      - name: Run tests
        run: pytest -q
Enter fullscreen mode Exit fullscreen mode

Para Node.js, cambia el bloque de setup por actions/setup-node@v4 y ejecuta npm ci antes de la generación.

5.2. GitLab CI

.gitlab-ci.yml

stages:
  - test

test:
  image: python:3.11
  stage: test
  script:
    - pip install -r requirements.txt
    - pip install testifly-cli
    - testifly generate --config testifly.yml
    - pytest -q
  only:
    - merge_requests
    - main
Enter fullscreen mode Exit fullscreen mode

En proyectos Node, usa la imagen node:20 y adapta los comandos.


6. Control de flakiness (zero‑prompt)

  1. Umbral de tolerancia – definido en flaky_threshold. Testifly marca una prueba como “flaky” cuando el ratio de fallos supera ese valor en los últimos 20 ejecuciones.
  2. Re‑intentos automáticos – el motor crea un wrapper que vuelve a ejecutar la prueba hasta 3 veces antes de marcarla como fallida.
  3. Reporte de estabilidad – en el dashboard de Testifly tienes una tabla con:
Test % éxito Últimos 10 resultados
test_api_users.py::test_get_user 98 % ✅✅❌✅✅✅✅✅✅✅
orders.test.js::should_create_order 92 % ✅❌✅✅✅❌✅✅✅✅
  1. Acción recomendada – si una prueba supera el 10 % de flakiness, revisa el fixture generado (puedes editarlo directamente) o añade una regla de negocio en testifly.yml bajo qa.rules.

7. Buenas prácticas para un testing Zero‑Prompt eficaz

Acción Por qué Cómo hacerlo
Mantén actualizado el OpenAPI La IA se basa en los esquemas para crear contratos Ejecuta swagger-cli bundle -o openapi.yaml en cada release
Usa tipado estático (mypy, TypeScript) Mejora la precisión de la generación de aserciones Añade --strict a tu CI y deja que Testifly lo lea
Limita el número de endpoints en la configuración Evita que la IA genere pruebas innecesarias En qa.endpoints incluye solo los que cambian frecuentemente
Revisa el código generado al menos una vez al mes Detectas falsos positivos y mejoras la cobertura git diff origin/main -- tests/

8. Conclusión

Testifly 2.0 permite eliminar los prompts de la cadena de pruebas y obtener una suite de test totalmente autónoma en minutos. Con integración nativa en GitHub Actions y GitLab CI, control de flakiness incorporado y soporte para los dos lenguajes más usados en backend (Python y Node.js), es la herramienta que necesitas para acelerar tu pipeline sin sacrificar calidad.

Empieza hoy mismo: instala el CLI, genera los tests y observa cómo tu tiempo de ciclo se reduce al menos un 30 % según los primeros usuarios. ¡La revolución AI QA ya está aquí, y no requiere que escribas un solo prompt!


Herramienta mencionada: GitHub Copilot

Top comments (0)