Megosztás a következőn keresztül:


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:

  • Elvégzett munka százaléka: Előrehaladási sáv, amely megmutatja a követelményhez kapcsolódó összes feladat befejezett munkaóráinak összesítésén alapuló munka elkészült százalékos arányát.
  • Sikeres tesztek: A legutóbbi tesztfuttatás alapján sikeres 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ék bejegyzés az ütemtervben (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 le az egyes követelmények esetén, és hány teljesült sikeresen?
  • 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.

Kategória Követelmények
hozzáférési szintek - Projekt tagja.
- Legalább alapszintű hozzáférést.
Jogosultságok Alapértelmezés szerint a projekttagok jogosultak az Analytics lekérdezésére és nézetek létrehozására. 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 további információt az Analytics eléréséhez szükséges engedélyek és előfeltételek című témakörben talál.

Feljegyzés

Ez a cikk feltételezi, hogy OData-lekérdezések használatával olvassa el 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 megállapításához ki kell töltenie a követelményekhez a Gyermek hivatkozástípusú kapcsolt feladatok vagy hibák Teljes munka és Hátralévő munka mezőit.
  • 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 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ó: Teszttervek és tesztcsomagok létrehozása.
  • A hibák állapotának lekéréséhez a hibákat létre kell hozni és össze kell kapcsolni a követelményekhez a Gyermek hivatkozástípussal.

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 az WorkItems vagy TestPoints entitáskészlet egyikét.

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 bármelyik Property értéket használva egy EntityType vagy NavigationPropertyBinding Path struktúrán keresztül, ami elérhető egy EntitySet-vel. Mindegyik EntitySet egy EntityType. Az egyes értékek adattípusával kapcsolatos további információkért 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.

Lekérdezés a követelmények teljesítésének órában mért százalékos arányáról

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.

Másolja és illessze be közvetlenül az alábbi Power BI-lekérdezést az Üres adat>lekérdezés lekérése ablakba. További információ: OData-lekérdezéseket használó mintajelentések áttekintése.

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 az Property alatti bármely érték, EntityType vagy NavigationPropertyBinding Path értékek használatával, amelyek elérhetők egy EntitySet segítségével. Mindegyik EntitySet egy EntityType. Az egyes értékek adattípusával kapcsolatos további információkért tekintse át a megfelelő EntityTypemetaadatokat.

Másolja és illessze be közvetlenül az alábbi Power BI-lekérdezést az Üres adat>lekérdezés lekérése ablakba. További információ: OData-lekérdezéseket használó mintajelentések áttekintése.

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ételek szakaszban leírtak szerint.

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

Másolja és illessze be közvetlenül az alábbi Power BI-lekérdezést az Üres adat>lekérdezés lekérése ablakba. További információ: OData-lekérdezéseket használó mintajelentések áttekintése.

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 karakterláncok és lekérdezés lebontása

Cserélje le a következő karakterláncokat a saját értékeire. Ne tartalmazzon szögletes zárójeleket {} a cserékben. Ha például a szervezet neve "Fabrikam", cserélje le a {organization}-t a Fabrikam-re, ne a {Fabrikam}-re.

  • {organization} - A szervezet neve
  • {project} - A projekt neve
  • {iterationSK} - Az érdeklődésre számot tartó 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 összegyűjtése 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,

Az adatok összesítése a szűrt tesztpontokon a darabszám szerinti TotalCount feltétellel.

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 befejezett munka 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 a Kapcsolatok kezelése lehetőséget, és kösse össze a három lekérdezés eredményét az oszlop alapján.
  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 (Összegzés) lehetőséget választja összesítésként.

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