Share via


Követelmények nyomon követése összesítő mintajelentés

Azure DevOps Services | Azure DevOps Server 2022 | Azure DevOps Server 2020

A Követelmények nyomon követése összesítő jelentés a Követelmények nyomon követéséről szóló jelentésre épül, és bemutatja, hogyan összesíthetők az egyszintű összesítés metrikái. Ha például a Felhasználói történetek szolgáltatással kapcsolatos követelményeket követ nyomon, a cikkben megadott lekérdezések használatával összesítheti a szolgáltatások adatait.

Az alábbi képen egy példa látható.

Képernyőkép a Power BI-történetek áttekintési összegző jelentéséről.

Ez a jelentés a következő információkat jeleníti meg minden egyes követelményhez, amelyet felsorol:

  • Befejezett munka százalékos aránya: A befejezett munka százalékos aránya a követelményhez kapcsolódó összesítő munkaórák alapján.
  • Sikeres tesztek: A legutóbbi tesztfuttatás alapján átadott tesztesetek száma.
  • Sikertelen tesztek: A legutóbbi tesztfuttatás alapján meghiúsult tesztesetek száma.
  • Tesztek futtatása: A végrehajtott tesztfuttatások száma.
  • Aktív hibák: Aktív állapotban lévő csatolt hibák száma.
  • Lezárt hibák: A csatolt hibák száma lezárt, kész vagy befejezett állapotban.

Feljegyzés

A követelménykövetés csak követelményalapú tesztcsomagon keresztül összekapcsolt tesztesetekhez támogatott. A követelmény munkaelem – a Felhasználói történet (Agile), a Termékháttúlnapló (Scrum), a Követelmény (CMMI) vagy a probléma (alapszintű) – és a manuális tesztvégrehajtás közötti társítás csak akkor jön létre, ha a teszteset egy követelményalapú tesztcsomagon keresztül van összekapcsolva.

Kérdések a jelentés válaszaiból

A követelmények nyomon követéséről szóló jelentések a következő típusú kérdések megválaszolására hasznosak.

Munka előrehaladása

  • Az egyes követelményekhez tartozó munkamennyiség megfelel az elvárásainak?
  • Elsőként a legfelső szintű követelményeket implementálják?
  • Hány teszt van definiálva az egyes követelményekhez? Hány teszt megy át?
  • Milyen követelményeket vezetnek be, amelyekhez nincsenek meghatározva tesztelési esetek?

Minőség előrehaladása

  • Hány teszteset futott az egyes követelményekhez, és hányan mentek át?
  • Hány aktív hiba van az egyes követelményekben?
  • Találhatók-e hibák a tesztelt követelményekhez?
  • Megoldották a hibákat, vagy aktívak maradnak?

Kockázatfelmérés

  • Mely követelmények vannak veszélyben?
  • Mely követelmények nem elég stabilak a kiadáshoz?
  • Milyen követelményeket tudunk ma szállítni?

Fontos

Az Elemzési szolgáltatás OData-hírcsatornájának Power BI-integrációja és hozzáférése általánosan elérhető az Azure DevOps Serviceshez, valamint az Azure DevOps Server 2020- és újabb verzióihoz. A cikkben szereplő minta lekérdezések csak az Azure DevOps Server 2020 és újabb verzióira érvényesek, és a 3.0-s vagy újabb verziótól függnek. Javasoljuk, hogy használja ezeket a lekérdezéseket, és küldjön nekünk visszajelzést.

Előfeltételek

  • Az Analytics-adatok megtekintéséhez és a szolgáltatás lekérdezéséhez egy alapszintű hozzáféréssel rendelkező vagy annál nagyobb hozzáférésű projekt tagjának kell lennie. Alapértelmezés szerint minden projekttag rendelkezik az Analytics lekérdezéséhez és az Analytics-nézetek meghatározásához szükséges engedélyekkel.
  • A szolgáltatás- és szolgáltatás-engedélyezéssel, valamint az általános adatkövetési tevékenységekkel kapcsolatos egyéb előfeltételekről az Analytics eléréséhez szükséges engedélyek és előfeltételek című témakörben olvashat.

Feljegyzés

Ez a cikk feltételezi, hogy OData-lekérdezésekkel olvasta a mintajelentések áttekintését, és alapszintű ismeretekkel rendelkezik a Power BI-ról.

Ahhoz, hogy a jelentés hasznos adatokat hozzon létre, a következő feladatokat kell elvégeznie:

  • Meghatározta a szükséges munkaelemeket, és hozzárendelte őket a kívánt területhez és iterációs útvonalakhoz. A terület- és iterációs útvonalak definiálásáról további információt a Területútvonalak definiálása és az Iterációs útvonalak definiálása című témakörben talál.
  • Az órák százalékos készültségi arányának lekéréséhez ki kell töltenie a Gyermek hivatkozástípusú követelményekhez kapcsolódó tevékenységek és hibák Teljes munka és hátralévő munka mezőjét.
  • A tesztelési esetek végrehajtási állapotának lekéréséhez a követelményeknek megfelelő, követelményalapú tesztcsomagokat fog létrehozni a tesztcsomagokban . A Kanban-táblán keresztül hozzáadott beágyazott tesztek megfelelnek ennek az előfeltételnek, azonban a tesztekhez csatolt követelmények nem. További információ: Tesztcsomagok és tesztcsomagok létrehozása.
  • A hibák állapotának lekéréséhez létrehozott és összekapcsolt hibákat a Gyermek hivatkozástípussal kapcsolatos követelményekhez.

Minta lekérdezések

A jelentés létrehozásához három Power BI-lekérdezést kell hozzáadnia a Power BI desktophoz, majd csatolnia kell őket. Minden lekérdezés végrehajtja a vagy TestPoints az WorkItems entitáskészletet.

Feljegyzés

Az alábbi szakaszokban megadott Power BI-lekérdezésrészletek tartalmazzák az oszlopok kibontásához és az adattípus módosításához szükséges adatátalakításokat.

Lekérdezési terület és iterációs útvonalak

Annak érdekében, hogy a jelentés hatóköre egy adott terület és iterációs útvonal legyen, szűrheti a lekérdezést AreaSK a és IterationSKa . További információ: Alapszintű lekérdezések meghatározása az OData Analytics használatával.

Feljegyzés

A szűrési vagy jelentéskészítési célokra elérhető tulajdonságok meghatározásához tekintse meg az Azure Boards metaadat-referenciáját. Szűrheti a lekérdezéseket, vagy visszaadhatja a tulajdonságokat egy Property adott vagy egy adott értékkel elérhető értékek EntityTypeNavigationPropertyBinding Path bármelyikével EntitySet. Mindegyik EntitySet egy EntityType. Ha többet szeretne megtudni az egyes értékek adattípusáról, tekintse át a megfelelő EntityTypemetaadatokat.

Az órák teljesítésének százalékos aránya a követelményekhez

Feljegyzés

Módosítsa a WorkItemType használt folyamat alapján. A Scrum-sablon támogatja a funkciót , az Alapszintű sablon pedig az Epicet az összesítő munkaelem típusaként.

Az alábbi Power BI-lekérdezést közvetlenül az Adat-üres> lekérdezés lekérése ablakba illessze be. További információkért tekintse át a mintajelentések áttekintését OData-lekérdezésekkel.

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"

A követelmények tesztvégrehajtási állapotának lekérdezése

Feljegyzés

A szűrési vagy jelentéskészítési célokra elérhető tulajdonságok meghatározásához tekintse meg a Test Plans Analytics metaadat-referenciáit. Szűrheti a lekérdezéseket, vagy visszaadhatja a tulajdonságokat egy Property adott vagy egy adott értékkel elérhető értékek EntityTypeNavigationPropertyBinding Path bármelyikével EntitySet. Mindegyik EntitySet egy EntityType. Ha többet szeretne megtudni az egyes értékek adattípusáról, tekintse át a megfelelő EntityTypemetaadatokat.

Az alábbi Power BI-lekérdezést közvetlenül az Adat-üres> lekérdezés lekérése ablakba illessze be. További információkért tekintse át a mintajelentések áttekintését OData-lekérdezésekkel.

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"

Feljegyzés

A TestSuite/RequirementWorkItem/... bejegyzés azt jelzi, hogy a munkaelemet egy követelményalapú tesztcsomagon keresztül kell csatolni a tesztcsomaghoz, az előfeltételekben leírtak szerint.

A követelményekhez kapcsolódó hibák állapotának lekérdezése

Feljegyzés

Módosítsa a WorkItemType használt folyamat alapján. A Scrum-sablon támogatja a funkciót , az Alapszintű sablon pedig az Epicet az összesítő munkaelem típusaként.

Az alábbi Power BI-lekérdezést közvetlenül az Adat-üres> lekérdezés lekérése ablakba illessze be. További információkért tekintse át a mintajelentések áttekintését OData-lekérdezésekkel.

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"

Helyettesítési sztringek és lekérdezések lebontása

Cserélje le a következő sztringeket az értékekkel. Ne tartalmazzon szögletes zárójeleket {} a helyettesítéssel. Ha például a szervezet neve "Fabrikam", cserélje le a Fabrikamhelyére {organization} a nem {Fabrikam}.

  • {organization} - A szervezet neve
  • {project} - A projekt neve
  • {iterationSK}- Az iterációs útvonalhoz társított GUID. A GUID kereséséhez lásd: [.. /extend-analytics/wit-analytics.md#iterationsk](Egy adott iterációs útvonal IterationSK-ját adja vissza)
  • {areaSK} - Az érdeklődési terület útvonalához társított GUID. A GUID kereséséhez lásd: [.. /extend-analytics/wit-analytics.md#areask](Egy adott terület elérési útjának AreaSK-ját adja vissza).

Lekérdezések lebontása

Az alábbi táblázat a lekérdezés egyes részeit ismerteti.

Lekérdezési rész

Leírás


$filter=( IterationSK eq {iterationSK} and AreaSK eq {areaSK} és WorkItemType eq "Feature" )"

Csak a megadott iteráció és terület alatti szolgáltatások adatait adja vissza.

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)))

Csak a kijelölt teendőlista-követelményelemek adatait adja vissza a megadott iteráció és terület alatt.

&$expand=Descendants( $apply=filter( CompletedWork ne null or RemainingWork ne null )

Bontsa ki a Szolgáltatások gyermekelemeit, és adja vissza a munkaelemek befejezett éshátralévő munka adatait.

&$expand=Descendants( $apply=filter( WorkItemType eq 'Bug' ) /groupby( (State), aggregate($count as Count) )

Bontsa ki a Szolgáltatások gyermekelemeit, és szűrje a hibát, csoportosítsa a visszaadott adatokat állam szerint, és adja meg a gyermekelemek teljes számát.

/aggregate($count as TotalCount,

Adatok összesítése a szűrt tesztpontokon a számolásukkal 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)

Az összesítés során összegzi a tesztpontok értékeit a Legutóbbi, a Sikertelen, a Letiltott, a NotApplicable és a None legutóbbi végrehajtási eredménye alapján. Emellett összegzi azoknak a tesztpontoknak az értékeit, amelyek legutóbbi eredménye nem egyenlő a None értékkel az összeg RunCountlekéréséhez.

/aggregate( iif(CompletedWork ne null, CompletedWork, 0) with sum as SumCompletedWork, iif(RemainingWork ne null, RemainingWork, 0) with sum as SumRemainingWork

A befejezett munka és a fennmaradó munka adatainak összesítése a szűrt munkaelemek között.

)/compute( (SumCompletedWork add SumRemainingWork) as TotalWork, SumCompletedWork as SumCompleted

Kiszámítja a befejezett munka és a hátralévő munka összesítő összegét.

)/compute( iif(TotalWork gt 0,(SumCompleted div cast(TotalWork, Edm.Double) mul 100), 0) as PercCompletedWork )

Számítsa ki a teljes wor százalékát.

A Tábla jelentés létrehozása

  1. A Modellezés lapon válassza Kapcsolatok kezelése, és kapcsolja össze a három lekérdezési eredményt oszlop szerintWorkItemId.
  2. A Vizualizációk csoportban válassza a Táblázat lehetőséget.
  3. Adja hozzá a három Power BI-lekérdezésből azokat az oszlopokat, amelyekre kíváncsi.
  4. Az additív oszlopok, például az Átment tesztek stb. összesítéseként válassza a Sum (Összeg) lehetőséget.

    A Power BI a Sum as aggregation (Összesítés) lehetőséget választja

Itt a hitelesítési forgatókönyvek két felhasználói történet szülőfunkciója.

Képernyőkép a Power BI-mintatörténetek összegző jelentéséről.