Informe de ejemplo de acumulación de seguimiento de requisitos

Azure DevOps Services | Azure DevOps Server 2020 | Azure DevOps Server 2019

Este informe se basa en el informe de seguimiento de requisitos y realiza una acumulación de un nivel para proporcionar métricas agregadas. Por ejemplo, si está haciendo un seguimiento de los requisitos con casos de usuario, puede tener una implementación de un nivel (hasta Características) con las consultas proporcionadas en esta sección.

Importante

Power BI integración y el acceso a la fuente OData del servicio Analytics se encuentran en versión preliminar. Las consultas de ejemplo proporcionadas en este artículo solo son válidas en Azure DevOps Services y dependen de la versión 3.0-preview o posterior. Le recomendamos que use estas consultas y nos proporcione sus comentarios.

Un ejemplo se muestra en la imagen siguiente.

Ejemplo: informe acumulativo de información general de casos

Nota

El seguimiento de requisitos solo se admite para los casos de prueba vinculados a través de un conjunto de pruebas basado en requisitos. La asociación entre un elemento de trabajo de requisitos:Caso de usuario(Agile),Elemento de trabajo pendiente del producto(Scrum),Requisito(CMMI)o Problema(Básico)y Ejecución manual de pruebas solo se forma cuando el caso de prueba se vincula através de un conjunto de pruebas basado en requisitos .

Este informe muestra la siguiente información para cada requisito que enumera:

  • Porcentaje de trabajo completado:barra de progreso que muestra el porcentaje de trabajo completado en función del resumen de horas completadas para todas las tareas vinculadas al requisito.
  • Pruebas superdas:número de casos de prueba ejecutados que se han superado en función de la ejecución de pruebas más reciente.
  • Pruebas conerror: número de casos de prueba ejecutados con errores en función de la ejecución de pruebas más reciente.
  • Ejecutar pruebas:número de ejecuciones de prueba que se han ejecutado.
  • Errores activos:el número de errores vinculados en un estado Activo.
  • Errores cerrados:número de errores vinculados en un estado Cerrado, Listo o Completado.

Preguntas que responde el informe

Los informes de seguimiento de requisitos son útiles para responder a los siguientes tipos de preguntas.

Progreso del trabajo

  • ¿Corresponde a sus expectativas la cantidad de trabajo que resta para cada requisito?
  • ¿Se implementan primero los requisitos clasificados por relevancia?
  • ¿Cuántas pruebas se definen para cada requisito? ¿Cuántas pruebas se superan?
  • ¿Qué requisitos se implementan que no tienen ningún caso de prueba definido para ellos?

Progreso de calidad

  • ¿Cuántos casos de prueba se han ejecutado para cada requisito y cuántos se han superado?
  • ¿Cuántos errores activos tiene cada requisito?
  • ¿Se encuentran errores para los requisitos que se prueban?
  • ¿Se resuelven los errores o siguen activos?

Evaluación de riesgos

  • ¿Qué requisitos están en riesgo?
  • ¿Qué requisitos no son lo suficientemente estables para la versión?
  • ¿Qué requisitos podemos enviar hoy?

Requisitos previos

Para que el informe genere datos útiles, debe haber realizado las siguientes tareas:

  • Ha definido los elementos de trabajo necesarios y los ha asignado a las rutas de acceso de área e iteración de interés. Para obtener información sobre cómo definir rutas de acceso de área e iteración, vea Definir rutas de acceso de área y Definir rutas de iteración.
  • Para obtener el porcentaje de horas de finalización, debe rellenar los campos Completar trabajo y Trabajo restante de tareas o errores vinculados a los requisitos con el tipo de vínculo Secundario.
  • Para obtener el estado de ejecución de los casos de prueba, habrá creado conjuntos de pruebas basados en requisitos en Test Plans correspondientes a esos requisitos. Las pruebas insertdas que agregue a través del panel Kanban cumplen este requisito previo, pero los requisitos que vincule a las pruebas no lo cumplen. Para más información, consulte Creación de planes de pruebas y conjuntos de pruebas.
  • Para obtener el estado de los errores, habrá creado y vinculado errores a los requisitos con el tipo de vínculo Secundario.

Nota

En este artículo se da por supuesto que ha leído Información general de los informes de ejemplo mediante consultas de OData y que tiene conocimientos básicos de Power BI.

Consultas de ejemplo

Rutas de acceso de área de consulta e iteración

Para establecer el ámbito del informe en una ruta de acceso de área e iteración determinada, puede consultarlos como se describe en Consulta de los datos de seguimiento de trabajo mediante OData Analytics y usar valores de AreaSK e IterationSK de interés para proporcionar a las demás consultas proporcionadas en las secciones proporcionadas más adelante en este artículo.

Consulta del porcentaje de horas de finalización de los requisitos

Nota

Cambie en WorkItemType función del proceso que use. La plantilla de Scrum admite Feature y la plantilla Basic admite Epopeya como tipo de elemento de trabajo de lanzamiento, respectivamente.

Puede pegar la consulta Power BI que se muestra a continuación directamente en la ventana Obtener datos: consulta en blanco. Para obtener más información, consulte Información general de informes de ejemplo mediante consultas de OData.

let
    Source = OData.Feed("https://analytics.dev.azure.com/{organization}/{project}/_odata/v3.0-preview/WorkItems? 
$filter=( 
    IterationSK eq {iterationSK}
    and AreaSK eq {areaSK}
    and WorkItemType eq 'Feature'
)
&$expand=Descendants( 
    $apply=filter( CompletedWork ne null or RemainingWork ne null ) 
    /aggregate( 
        iif(CompletedWork ne null, CompletedWork, 0) with sum as SumCompletedWork, 
        iif(RemainingWork ne null, RemainingWork, 0) with sum as SumRemainingWork 
    ) 
    /compute( 
        (SumCompletedWork add SumRemainingWork) as TotalWork, 
        SumCompletedWork as SumCompleted 
    ) 
    /compute( 
        iif(TotalWork gt 0,(SumCompleted div cast(TotalWork, Edm.Double) mul 100), 0) as PercCompletedWork 
    ) 
)
&$select=WorkItemId, Title", null, [Implementation="2.0"]),
    #"Expanded Descendants" = Table.ExpandTableColumn(Source, "Descendants", {"SumCompletedWork", "SumRemainingWork", "TotalWork", "SumCompleted", "PercCompletedWork"}, {"Descendants.SumCompletedWork", "Descendants.SumRemainingWork", "Descendants.TotalWork", "Descendants.SumCompleted", "Descendants.PercCompletedWork"}),
    #"Changed Type" = Table.TransformColumnTypes(#"Expanded Descendants",{{"Descendants.SumCompletedWork", type number}, {"Descendants.SumRemainingWork", type number}, {"Descendants.TotalWork", type number}, {"Descendants.SumCompleted", type number}, {"Descendants.PercCompletedWork", type number}})
in
    #"Changed Type"

Consulta del estado de ejecución de pruebas de los requisitos

Puede pegar la consulta Power BI que se muestra a continuación directamente en la ventana Obtener datos: consulta en blanco. Para obtener más información, consulte Información general de informes de ejemplo mediante consultas de OData.

let
    Source = OData.Feed("https://analytics.dev.azure.com/{organization}/{project}/_odata/v3.0-preview/TestPoints? 
	$apply=filter(
	    (TestSuite/RequirementWorkItem/IterationSK eq {iterationSK}
    and TestSuite/RequirementWorkItem/AreaSK eq {areaSK}
    and TestSuite/RequirementWorkItem/Processes/any(p:p/BacklogType eq 'RequirementBacklog')
    and TestSuite/RequirementWorkItem/Processes/all(p:p/IsBugType eq false)
	))
	/compute(iif(TestSuite/RequirementWorkItem/Parent ne null, TestSuite/RequirementWorkItem/Parent/WorkItemId, 0) as ParentWorkItemId, 
	iif(TestSuite/RequirementWorkItem/Parent ne null, TestSuite/RequirementWorkItem/Parent/Title, 'Unparented') as ParentWorkItemTitle
	)/groupby(
	    (ParentWorkItemId, ParentWorkItemTitle), 
	    aggregate(
	        $count as TotalCount, 
	        cast(LastResultOutcome eq 'Passed', Edm.Int32) with sum as PassedCount, 
	        cast(LastResultOutcome eq 'Failed', Edm.Int32) with sum as FailedCount, 
            cast(LastResultOutcome eq 'Blocked', Edm.Int32) with sum as BlockedCount,
            cast(LastResultOutcome eq 'NotApplicable', Edm.Int32) with sum as NotApplicableCount,
	        cast(LastResultOutcome eq 'None', Edm.Int32) with sum as NotRunCount, 
	        cast(LastResultOutcome ne 'None', Edm.Int32) with sum as RunCount)
)", null, [Implementation="2.0"]),
    #"Changed Type" = Table.TransformColumnTypes(#"Source",{{"TotalCount", type number}, {"PassedCount", type number}, {"FailedCount", type number}, {"BlockedCount", type number}, {"NotApplicableCount", type number}, {"NotRunCount", type number}, {"RunCount", type number}})
in
    #"Changed Type"

Nota

La entrada indica que el elemento de trabajo debe vincularse al conjunto de pruebas a través de un conjunto de pruebas basado en requisitos, como se describe TestSuite/RequirementWorkItem/... en los requisitos previos.TestSuite/RequirementWorkItem/...

Consulta del estado de los errores vinculados a los requisitos

Nota

Cambie en WorkItemType función del proceso que use. La plantilla de Scrum admite Feature y la plantilla Basic admite Epopeya como tipo de elemento de trabajo de lanzamiento, respectivamente.

Puede pegar la consulta Power BI que se muestra a continuación directamente en la ventana Obtener datos: consulta en blanco. Para obtener más información, consulte Información general de informes de ejemplo mediante consultas de OData.

let
    Source = OData.Feed("https://analytics.dev.azure.com/{organization}/{project}/_odata/v3.0-preview/WorkItems?
    $filter=(
        IterationSK eq {iterationSK}
        and AreaSK eq {areaSK}
        and WorkItemType eq 'Feature'
    )
&$expand=Descendants(
    $apply=filter(
        WorkItemType eq 'Bug'
    )
    /groupby(
        (State),
        aggregate($count as Count)
    )
)
&$select=WorkItemId,Title", null, [Implementation="2.0"]),
    #"Expanded Descendants" = Table.ExpandTableColumn(Source, "Descendants", {"State", "Count"}, {"Descendants.State", "Descendants.Count"}),
    #"Filtered Rows" = Table.SelectRows(#"Expanded Descendants", each [Descendants.Count] <> null and [Descendants.Count] <> ""),
    #"Pivoted Column" = Table.Pivot(#"Filtered Rows", List.Distinct(#"Filtered Rows"[Descendants.State]), "Descendants.State", "Descendants.Count", List.Sum),
    #"Changed Type" = Table.TransformColumnTypes(#"Pivoted Column",{{"Active", type number}, {"Closed", type number}})
in
    #"Changed Type"

Cadenas de sustitución

Cada consulta contiene las cadenas siguientes que debe sustituir por sus valores. No incluya corchetes con {} la sustitución. Por ejemplo, si el nombre de la organización es "Fabrikam", reemplace {organization} por Fabrikam,no {Fabrikam}.

  • {organization}: nombre de la organización
  • {project}: el nombre del proyecto de equipo, omita por completo "/{project}" para una consulta entre proyectos.
  • {iterationSK}: SKU de iteración de la ruta de acceso de iteración que le interesa.
  • {areaSK}: SK de área de la ruta de acceso del área que le interesa.

Desglose de consultas

En la tabla siguiente se describe cada parte de la consulta.

Elemento de consulta

Descripción

Processes/any(p:p/BacklogType eq 'RequirementBacklog')

Filtre los elementos de trabajo de forma que deban incluirse en la categoría "requisitos" para al menos un proceso asociado a ellos.

Processes/all(p:p/IsBugType eq false)

Omita los elementos de trabajo del tipo de error al obtener los requisitos. En la plantilla de proceso Básico, los elementos de trabajo issue también son de tipo de error, por lo que para el proceso básico, quite esta cláusula de la consulta.

Power BI transformaciones

Las transformaciones aplicadas a Power BI consultas ya se han agregado en fragmentos de código de consulta.

Creación del informe

Power BI muestra los campos sobre los que puede informar.

Nota

En el ejemplo siguiente se da por supuesto que nadie ha cambiado el nombre de ninguna columna.

Para crear el informe, realice los pasos siguientes:

  1. En la pestaña Modelado, elija Administrar relaciones y vincule los tres resultados de la consulta por columna WorkItemId.
  2. Cree una tabla Power BI visualización de datos.
  3. Agregue las columnas que le interesen de las tres Power BI consultas.
  4. Seleccione Suma como agregación para columnas de adición, como Pruebas superdas, etc.

    Power BI suma como agregación

Aquí, los escenarios de autenticación son una característica primaria de dos casos de usuario.

Ejemplo: informe acumulativo de información general de casos