Compartir a través de


Creación de pruebas asistidas por IA con GitHub Copilot (en desuso)

Nota

El motor de prueba está obsoleto y se quitará en una versión futura. Use ejemplos de Power Platform Playwright para las funcionalidades de automatización de pruebas en Power Platform y los servicios de Dynamics 365.

La creación de planes de pruebas completos para aplicaciones Power Platform puede llevar mucho tiempo, especialmente para escenarios complejos. Las herramientas de creación asistidas por IA, como GitHub Copilot, pueden acelerar significativamente este proceso mediante la generación de plantillas de prueba, la sugerencia de casos de prueba y la automatización de la creación de código reutilizable.

En esta guía se explica cómo usar GitHub Copilot con soluciones de control de código fuente de Power Platform para crear de forma eficaz planes de prueba del motor de pruebas.

Requisitos previos

Antes de empezar, asegúrese de que tiene:

Configurar su entorno de creación de pruebas

Para maximizar la efectividad de la creación de pruebas asistidas por IA, combine estas herramientas en un flujo de trabajo estructurado:

  1. Obtener sus archivos de origen
  2. Inicializar un repositorio git para el control de versiones (si aún no lo ha hecho)
  3. Crear una carpeta de pruebas dedicada en su repositorio de soluciones
  4. Abra la carpeta de la solución en Visual Studio Code

Uso de GitHub Copilot para la creación de pruebas

GitHub Copilot puede ayudarle a generar varios componentes de prueba basados en la solución controlada por el origen. A continuación se explica cómo utilizar sus capacidades de manera efectiva:

Usar la documentación de muestra como contexto

El catálogo de ejemplos de Test Engine proporciona una fuente enriquecida de material de referencia para GitHub Copilot. Puede ayudar a Copilot generar pruebas de mayor calidad mediante:

  • Incluir el archivo samples.md en su espacio de trabajo
  • Hacer referencia a ejemplos específicos en sus indicaciones
  • Proporcionar vínculos a repositorios de GitHub de ejemplo

Por ejemplo, podría:

  • Abra el código de su aplicación y el archivo samples.md en VS Code
  • Pide a Copilot que cree pruebas "similares al ejemplo ButtonClicker" o "utilizando patrones del ejemplo de Dataverse"
  • Haga referencia a capacidades específicas de muestras que coincidan con sus necesidades de prueba

Este enfoque ayuda a Copilot comprender los patrones del motor de pruebas de Power Platform y a generar pruebas más precisas.

Trabajar con GitHub Copilot en modo agente

el Copilot Chat de GitHub de Visual Studio Code ofrece un modo Agent que puede ayudar a generar pruebas basadas en los archivos de la solución. Este modo permite que Copilot acceda y comprenda más profundamente el contexto de su proyecto.

Para utilizar el modo de agente para la generación de pruebas:

  1. En VS Code, abra GitHub Copilot Chat (Ctrl+Shift+I)
  2. Seleccione Agent en el selector de Modo Copilot
  3. Redacte un mensaje detallado sobre la prueba que desea crear

Ejemplos de mensajes para la generación de pruebas

Intente utilizar mensajes como estos para generar pruebas:

Objetivo:
Genere un conjunto de pruebas completo para una aplicación de lienzo mediante el motor de pruebas de Power Apps, modelado después del ejemplo ButtonClicker.

Solicitud:
Genere una prueba para ./SolutionPackage/src/CanvasApps/src/MyApp/Src/App.fx.yaml usando el ejemplo en https://github.com/microsoft/PowerApps-TestEngine/tree/main/samples/buttonclicker como referencia. Cree casos esperados, casos extremos y casos perimetrales. La prueba debe crear un archivo YAML de prueba y pasos de prueba de Power Fx, config.json y RunTest.ps1 basados en la muestra para permitirme ejecutar la prueba.

Objetivo:
Cree un plan de pruebas detallado para que una aplicación basada en modelos garantice que la funcionalidad principal y la lógica de negocios funcionen como se espera.

Solicitud:
Cree un plan de prueba integral para mi aplicación basada en modelos ubicada en ./SolutionPackage/src/Other/Solution.xml. La prueba debe validar la carga del formulario, la creación de registros y la ejecución de reglas de negocio. Genere el YAML de prueba, los pasos de Power Fx y un script de PowerShell para ejecutar la prueba.

Objetivo:
Construya un plan de pruebas para que las entidades comprueben las operaciones CRUD a través de acciones Power Fx .

Solicitud:
Cree un plan de pruebas integral para mis entidades de Dataverse. La prueba debe realizar acciones de creación, actualización y eliminación de Power Fx. Genere el YAML de prueba, los pasos de Power Fx y un script de PowerShell para ejecutar la prueba.

Comprender los componentes de prueba generados

Cuando GitHub Copilot genera una prueba, normalmente crea los siguientes componentes:

  • Plan de pruebas YAML: define la estructura de la prueba, la URL de la aplicación y los pasos de la prueba
  • Pasos de prueba de: contiene la lógica de prueba usando expresiones Power Fx
  • config.json: configuración de los parámetros de ejecución de pruebas
  • RunTest.ps1: script de PowerShell para ejecutar la prueba

Ejemplo: estructura de prueba generada

MyAppTests/
├── MyAppTest.fx.yaml     # Power Fx test steps
├── MyAppTest.yml         # Test plan definition
├── config.json           # Test configuration
└── RunTest.ps1           # Test execution script

Procedimientos recomendados para la creación de pruebas asistidas por IA

Tenga en cuenta las secciones siguientes para sacar el máximo partido de GitHub Copilot para la creación de pruebas del motor de pruebas.

Proporcione un contexto claro en sus indicaciones

Sea específico sobre lo que desea probar e incluya referencias a:

  • Los archivos exactos para probar
  • Pruebas de muestra para usar como plantillas
  • Escenarios de prueba específicos que desea abarcar
  • Cualquier requisito de autenticación o entorno

Usar ejemplos de Test Engine para contexto

La documentación samples.md cataloga todos los ejemplos disponibles del repositorio de motor de pruebas, que puede ser una referencia excelente al elaborar solicitudes de GitHub Copilot. Por ejemplo, al probar una aplicación de lienzo con botones, puede hacer referencia a la muestra de Button Clicker

Solicitud:
Genere una prueba para mi aplicación de lienzo en ./SolutionPackage/src/CanvasApps/src/MyApp/Src/App.fx.yaml usando el ejemplo ButtonClicker de https://github.com/microsoft/PowerApps-TestEngine/tree/main/samples/buttonclicker. La prueba debe:
1. Compruebe que mi botón de contador incremente un valor en la pantalla
2. Pruebe las condiciones de contorno (por ejemplo, valor máximo)
3. Incluya los enlaces de ciclo de vida OnTestCaseStart y OnTestCaseComplete
4. Genere el archivo config.json con las variables de entorno adecuadas

Este enfoque ayuda a Copilot comprender la estructura de pruebas y genera pruebas más precisas y relevantes contextualmente basadas en ejemplos probados.

Utilice soluciones controladas por código fuente como contexto

Copilot funciona mejor cuando puede analizar la estructura de la solución. Utilice el control de código fuente para soluciones Power Platform para proporcionar este contexto. Este contexto permite Copilot:

  • Comprender la estructura de su aplicación
  • Identificar propiedades y nombres de controles
  • Generar pasos de prueba más precisos
  • Hacer referencia a las rutas de archivo correctas

Revisar y refinar las pruebas generadas

Si bien las pruebas generadas por IA proporcionan un excelente punto de partida, siempre:

  • Compruebe que las referencias de control coincidan con su aplicación
  • Agregue afirmaciones para funcionalidades críticas para la empresa
  • Asegúrese de que los casos perimetrales se gestionen adecuadamente
  • Valide la configuración de autenticación

Combine con la experiencia manual

Para escenarios de prueba complejos, use GitHub Copilot para:

  • Generar el marco y la estructura de pruebas
  • Crear patrones de validación estándar
  • Sugerir casos perimetrales para considerar

Luego, aumente su experiencia en el dominio para:

  • Reglas de validación específicas de la empresa
  • Consideraciones del entorno
  • Datos de pruebas especializados

Patrones comunes de generación de pruebas

Esta sección contiene algunos patrones comunes de generación de pruebas:

Probar aplicaciones de lienzo

Para las aplicaciones de lienzo, utilice indicaciones que hagan referencia al archivo App.fx.yaml en su solución controlada por código fuente:

Solicitud:
Genere una prueba para mi aplicación de lienzo en ./SolutionPackage/src/CanvasApps/src/MyExpenseApp/Src/App.fx.yaml que valide el proceso de envío de gastos. La prueba debe completar los campos de gastos, enviar el formulario y comprobar que aparezca el mensaje de confirmación.

Probar aplicaciones basadas en modelos

Para las aplicaciones basadas en modelos, céntrese en la navegación de entidades, las interacciones de formularios y las reglas de negocio:

Solicitud:
Cree una prueba para que mi aplicación basada en modelo pruebe el formulario de entidad Cuenta. La prueba debe crear un nuevo registro de cuenta, validar los campos obligatorios y comprobar que las reglas de negocio para el cálculo del límite de crédito funcionen correctamente.

Probar extensiones de Dataverse

Para las pruebas de Dataverse, enfatice las operaciones de datos y la validación de la lógica de negocios:

Solicitud:
Genere una prueba de Dataverse que valide los complementos personalizados en mi solución. La prueba debe crear registros de prueba, desencadenar la ejecución del complemento y comprobar que se produjeron las transformaciones de datos previstas.

Mensajes de prueba específicas de la muestra

Para obtener la generación de pruebas más precisa, consulte muestras específicas del catálogo de muestras de Test Engine que coincidan con sus necesidades de pruebas. A continuación se presentan mensajes adaptados a escenarios de prueba habituales:

Ejemplos de indicaciones de ButtonClicker

El ejemplo de ButtonClicker demuestra la prueba de la funcionalidad básica del contador. Use estas solicitudes:

Solicitud:
Genere una prueba para mi aplicación de contador con una estructura similar al ejemplo de ButtonClicker. Mi aplicación tiene botones llamados "IncrementBtn" y "ResetBtn" con un "CounterLabel" que muestra el recuento actual. Cree una prueba que compruebe que ambos botones funcionan correctamente y que el recuento máximo es 10.

Solicitud:
Cree una prueba para mi aplicación de interacción de botones usando el ejemplo ButtonClicker como referencia. Mi aplicación tiene un "SubmitButton" que debe habilitarse solo cuando se completan los campos "NameInput" y "EmailInput". Genere un plan de pruebas con pasos de Power Fx para validar este comportamiento.

Los ejemplos de BasicGallery y NestedGallery muestran cómo probar las interacciones de galería:

Solicitud:
Genere una prueba para mi aplicación de galería donde tengo una galería "Productos" con elementos de productos que contienen controles "TitleLabel", "PriceLabel" y "SelectButton". Utilice la estructura de muestra BasicGallery para comprobar que puedo seleccionar elementos y que los detalles correctos aparecen en un "DetailPanel".

Indicaciones para operaciones de datos

El ejemplo de Dataverse demuestra las pruebas de operaciones de datos:

Solicitud:
Cree una prueba para mi aplicación CRM usando el patrón de muestra de Dataverse. Prueba que puedo crear un nuevo registro de contacto, actualizarlo y luego verificar que los cambios persistan. Incluye tanto pruebas de IU como operaciones de Dataverse directas.

Indicaciones para pruebas de IA

Para probar la funcionalidad impulsada por IA, consulte el ejemplo de aviso de IA:

Solicitud:
Genere una prueba para mi aplicación de análisis de sentimiento basada en el ejemplo de solicitud de IA. Mi aplicación tiene un cuadro de texto "FeedbackInput" y usa AI Builder para clasificarla como positiva, negativa o neutra. Cree una prueba que valide que diferentes entradas produzcan los resultados esperados dentro de umbrales aceptables.

Técnicas avanzadas

En esta sección se ofrecen ejemplos de capacidades de solicitud avanzadas.

Crear conjuntos de pruebas multientorno

Puede solicitar Copilot para generar pruebas que funcionan en varios entornos:

Solicitud:
Genere un conjunto de pruebas para mi aplicación que pueda ejecutarse en entornos DEV, TEST y PROD con variables de configuración adecuadas para cada entorno.

Generar escenarios de simulación de datos

Para pruebas aisladas con simulación de conector:

Solicitud:
Cree una prueba con respuestas de conector simuladas para mi aplicación que use el conector Office 365 Outlook. La prueba debe simular la recepción de correos electrónicos y validar la lógica de procesamiento de la aplicación.

Probar capacidades de la IA y manejo de resultados no deterministas

Cuando se trabaja con aplicaciones impulsadas por IA, las pruebas presentan desafíos únicos, ya que los resultados de IA pueden variar levemente entre ejecuciones, incluso con entradas idénticas. Este comportamiento no determinista requiere enfoques de prueba especiales.

Descripción de las pruebas no deterministas

Las pruebas no deterministas implican validar resultados que podrían variar legítimamente entre ejecuciones de pruebas:

  • AI Model Outputs: Respuestas de modelos de IA como gpT o componentes de AI Builder personalizados
  • Puntuaciones de confianza: evaluaciones numéricas que pueden fluctuar dentro de rangos aceptables
  • Contenido generado: texto o recomendaciones producidas por sistemas de IA

Usar Preview.AIExecutePrompt para pruebas deterministas de las capacidades de IA

Test Engine proporciona el Preview.AIExecutePrompt que permite la validación determinista de las respuestas de IA. Este enfoque le permite:

  • Ejecutar indicaciones de IA dentro de escenarios de prueba
  • Analizar y validar las respuestas estructuradas
  • Comprobar que los resultados críticos cumplan con las expectativas a pesar de las posibles variaciones

Ejemplo: Evaluación de clasificación con AI Builder

El siguiente ejemplo demuestra el uso de la función Preview.AIExecutePrompt para probar un sistema de calificación impulsado por IA:

EvaluateTestQuestionPrompt(Prompt: TestQuestion): TestResult =
  With({
    Response: ParseJSON(
      Preview.AIExecutePrompt("PromptEvaluator",
      {
        Context: "You are a helpful agent asking about external customer service questions.",
        Question: Prompt.Question
      }).Text)
  },If(
    IsError(AssertNotError(Prompt.ExpectedRating=Response.Rating, Prompt.Question & ", Expected " & Prompt.ExpectedRating & ", Actual " & Response.Rating)),
    {PassFail: 1, Summary: Prompt.Question & ", Expected " & Prompt.ExpectedRating & ", Actual " & Response.Rating}, {PassFail: 0, Summary: "Pass " & Prompt.Question}
  ))

En este ejemplo:

  • La prueba ejecuta una solicitud de IA contra el modelo "PromptEvaluator"
  • Pasa un contexto y una pregunta para evaluación
  • Valida que la calificación devuelta coincida con el valor esperado
  • Proporciona comentarios claros sobre el éxito o el error de la prueba.

Puede explorar la implementación completa en el ejemplo de solicitud de IA del repositorio PowerApps-TestEngine.

Incorporar pruebas que reconocen IA

Al usar GitHub Copilot para generar pruebas para aplicaciones con tecnología de inteligencia artificial:

Solicitud:
Genera una prueba para mi aplicación impulsada por IA que use el procesamiento de formularios de AI Builder. Incluya pasos de prueba que validen los resultados de IA con la tolerancia adecuada para resultados no deterministas.

Solución de problemas y refinamiento

Si GitHub Copilot genera pruebas que no satisfacen sus necesidades:

  • Refina tu mensaje: especifique con mayor detalle lo que desea probar.
  • Proporcione ejemplos: vincule a muestras de prueba específicas que coincidan con su estilo deseado
  • Desglose de pruebas complejas: solicite la generación de componentes de prueba más pequeños y específicos.
  • Iterate: Use las respuestas de Copilot para refinar el siguiente mensaje

Explorar las funciones de Test Engine
Examinar el catálogo de muestras de Test Engine
Más información sobre las funciones de prueba de Power Fx
Comprender el formato de prueba YAML
Explorar opciones de autenticación
Entrenamiento: creación de aplicaciones con el modo agente de Copilot de GitHub