Share via


Követelménykövetési mintajelentés

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

A Követelmények kategóriához tartozó munkaelemek minőségét a követelmények nyomon követéséről szóló jelentéssel követheti nyomon. A Követelmények kategória olyan munkaelemeket tartalmaz, mint például a Felhasználói történetek (Agile), a termék-hátralékelemek (Scrum), a problémák (alapszintű) és a követelmények (CMMI). A munkaelem-kategóriákról további információt a felhasználói történetek, problémák, hibák és egyéb munkaelemek nyomon követése című témakörben talál.

Az alábbi képen egy követelménykövetési jelentés példája látható.

Képernyőkép a Power BI-követelmények nyomon követéséről szóló jelentésrő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.

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.

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

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

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

Feljegyzés

Az alábbi lekérdezés az Agilis folyamathoz használható, mivel a munkaelemekben definiálja Remaining Work és Completed Work mezőket tartalmaz.

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 Processes/any(p:p/BacklogType eq 'RequirementBacklog') 
        and Processes/all(p:p/IsBugType eq false)
    )
    &$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(TestSuite/RequirementWorkItem/WorkItemId as WorkItemId, TestSuite/RequirementWorkItem/Title as WorkItemTitle)
    /groupby(
        (WorkItemId, WorkItemTitle),
        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

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 Processes/any(p:p/BacklogType eq 'RequirementBacklog') 
        and Processes/all(p:p/IsBugType eq false)
    )
    &$expand=Links(
        $apply=filter(
            (LinkTypeName eq 'Child' or LinkTypeName eq 'Related')
            and TargetWorkItem/WorkItemType eq 'Bug'
        )
        /groupby(
            (TargetWorkItem/State),
            aggregate($count as Count)
        )
    )&$select=WorkItemId,Title", null, [Implementation="2.0"]),
    #"Expanded Links" = Table.ExpandTableColumn(Source, "Links", {"TargetWorkItem", "Count"}, {"Links.TargetWorkItem", "Links.Count"}),
    #"Expanded Links.TargetWorkItem" = Table.ExpandRecordColumn(#"Expanded Links", "Links.TargetWorkItem", {"State"}, {"Links.TargetWorkItem.State"}),
    #"Filtered Rows" = Table.SelectRows(#"Expanded Links.TargetWorkItem", each [Links.Count] <> null and [Links.Count] <> ""),
    #"Pivoted Column" = Table.Pivot(#"Filtered Rows", List.Distinct(#"Filtered Rows"[Links.TargetWorkItem.State]), "Links.TargetWorkItem.State", "Links.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} )'

Csak a kijelölt iteráció, terület és hátralék munkaelemek adatait adja vissza.

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

Szűrje a munkaelemeket úgy, hogy azok a hozzájuk társított legalább egy folyamat "követelmények" kategóriájába kerüljenek.

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

Hagyja ki a hibatípusú munkaelemeket a követelmények beolvasása közben. Az Alapszintű folyamatsablonban a Probléma munkaelemek szintén hibatípusúak, ezért az Alapszintű folyamat esetében távolítsa el ezt a záradékot a lekérdezésből.

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 kiválasztott követelmények adatait adja vissza iteráció és terület alapján.

/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 Passed

Az összesítés során az "Átment" legutóbbi végrehajtási eredménnyel rendelkező típusbeöntött tesztpontok 1-re vannak állítva, és összegezve ""Passed metrikaként vannak összeadva.

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

A szűrt szülőelemek gyermekmunkaelemeinek befejezett éshátralévő munka adatait adja vissza.

/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

A jelentés létrehozásához hajtsa végre a következő lépéseket:

  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

A jelentésnek az alábbi képhez hasonlóan kell kinéznie.

Képernyőkép a Power BI-követelmények nyomon követéséről szóló jelentésről