TFS工作項數據統計及相關數據庫結構分析


今天為客戶的質量管理部門人員提供TFS咨詢過程中,客戶的質量管理專家基於TFS提出了一個比較棘手的數據統計需求。需求是這樣,客戶的數十個軟件項目通過質量管理部按照年度版本計划進行軟件產品系統的發布,因此對需求的管理有一個基線跟蹤的過程,也就是說,當產品發布后,質量管理部門希望統計出與該版本發布后相關的需求、Bug、任務等工作項是否發生變更,以及變更的什么數據。

 

初始討論這個需求時,根據對TFS的了解,第一判斷出這個數據是可以統計出來了,但是可能要費一番周折。實現的過程確時如此:

 

首先從TFS的數據Warehouse數據庫入手,查詢WIT之間的關聯關系以及變更歷史數據,管理關系的數據查詢sql如下:

1、根據工作項ID查詢出該工作項所有相關聯的其他工作項目

select * from FactWorkItemLinkHistory wh
left join CurrentWorkItemView cwv on wh.SourceWorkItemID = cwv.System_Id
where cwv.System_Id ='25429'

  

2、從工作項歷史記錄數據中統計出1中的相關工作項的變更歷史 

select  cwv.System_Title as versionTitle , linkCWV.System_Title as targetTitle,linkCWV.ProjectNodeName from FactWorkItemLinkHistory wh

left join CurrentWorkItemView cwv on wh.SourceWorkItemID = cwv.System_Id  and cwv.TeamProjectCollectionSK = wh.TeamProjectCollectionSK

left join CurrentWorkItemView linkCWV on  wh.TargetWorkItemID = linkCWV.System_Id and  linkCWV.TeamProjectCollectionSK = wh.TeamProjectCollectionSK

where  cwv.System_Id ='25429'

   

3、通過添加過濾條件查詢出工作項相關的工作項數據在某個基線后是否發生了變化

select  cwv.System_Title as versionTitle , linkCWV.System_Title as targetTitle,linkCWV.ProjectNodeName from FactWorkItemLinkHistory wh

left join CurrentWorkItemView cwv on wh.SourceWorkItemID = cwv.System_Id  and cwv.TeamProjectCollectionSK = wh.TeamProjectCollectionSK

left join CurrentWorkItemView linkCWV on  wh.TargetWorkItemID = linkCWV.System_Id and  linkCWV.TeamProjectCollectionSK = wh.TeamProjectCollectionSK

where  cwv.System_Id ='25429'

and wh.TargetWorkItemID   in (
  select distinct System_Id from WorkItemHistoryView group by System_Id having max(LastUpdatedDateTime) >= cwv.LastUpdatedDateTime
)

   

通過上述統計,本以為已經統計出所需數據了,但是經過仔細的分析,TFS中的工作項任何的變更,比如添加了新的相關關聯項,但其內容,比如需求說明、bug症狀、測試步驟並沒有方式變化,這樣的數據就不應該是基線的變化,因此這樣統計出的數據是有出入的,不准確。

基於這樣的考慮,僅僅在TFS的Warehouse數據庫中是統計不出相關報表的,必須從Collection數據庫中來進行統計,Collection庫結構是很復雜,如果僅僅是讀取數據,分析一下,是沒問題的,但如果是想直接修改里面的數據,就別考慮了,說不定就搞出問題,特別是在客戶的大型生產環境中。

通過目測、查詢、和搜索網絡,終於找到了在Collection庫中工作項各個字段修改歷史記錄的數據:  

 

基於上面在兩個數據庫中的查詢,終於統計出所需的數據。

網上搜到一個詳細介紹TFS數據庫的Blog,分析的很透徹。

https://visualstudiomagazine.com/articles/2009/03/09/inside-the-tfs-databases-an-occasional-series.aspx

 


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM