###### tags: `Workshop` `Azure DevOps` `Azure Board` `Wiwynn` ## Agenda - User permission:使用者權限配置 - Organization, Project and Team:組織、專案及團隊說明及設置 - Notification setting:通知管理及 Team 整合 - Azure Test Plan ## Map [TOC] ## 1/ Permission [Get started with permissions and access](https://learn.microsoft.com/en-us/azure/devops/organizations/security/about-permissions?view=azure-devops&tabs=preview-page) - Azure DevOps 有預設的 Security Group ![](https://hackmd.io/_uploads/BJ_7lk3_n.png) - 當 Project Manger 將使用者加入 Project 中後,可透過 Project Setting 設定使用者的權限 ![](https://hackmd.io/_uploads/BJlRRNs_n.png) - Members > Add 可添加人員 ![](https://hackmd.io/_uploads/HkNBkHs_2.png) ### Project-level security group - 一般使用者可使用 Contributor,專案管理人員可使用 Project Administrators - [Customize cards on Kanban board](https://learn.microsoft.com/en-us/azure/devops/boards/boards/customize-cards?view=azure-devops#prerequisites) 權限需為 Team Administrator role 或設於 Project Administrators security group - [Permissions and access for work tracking](https://learn.microsoft.com/en-us/azure/devops/organizations/security/permissions-access-work-tracking?view=azure-devops) - [Manage security and permissions of project level](https://learn.microsoft.com/en-us/azure/devops/user-guide/project-admin-tutorial?view=azure-devops#manage-security-and-permissions) <!-- - [Default permissions quick reference for Azure DevOps](https://learn.microsoft.com/en-us/azure/devops/organizations/security/permissions-access?view=azure-devops) --> ### Organization-level security group - 組織管理人員(需要異動 Process) 可使用 **Project Collection Administrators** ![](https://hackmd.io/_uploads/H1DvzriO3.png =500x) - [Change permissions at the organization or collection-level](https://learn.microsoft.com/en-us/azure/devops/organizations/security/change-organization-collection-level-permissions?view=azure-devops&tabs=preview-page#collection-level-permissions) ## 2/ 專案團隊及週期管理 ![](https://i.imgur.com/N8Ja4Cj.png) ### 名詞解釋 - Team (團隊):將專案成員做分群,各別 Team 可有各自的 Area、Permission - Area Paths(區域路徑):區域路徑可將工作專案分組,可以依據小組所需時做的工作內容不同、產品功能的規畫等做劃分,Team 在新增時可選擇是否要 default 建置 Area Path - Iteration (迭代週期):每個 Sprint 的起始日期 - 建議一個 **Team** mapping 到一個 **Area Path**,較易管理 ### 設定團隊及其 Permission - 新增團隊,Project Settings > Teams > New Team ![](https://hackmd.io/_uploads/Sy-f0c9_h.png) - 新增 `User` 團隊,Permission 設定為 `Contributors` ![](https://hackmd.io/_uploads/ryUX1s5uh.png =400x) - 新增 `PM` 團隊,Permission 設定為 `Project Administrators` ![](https://hackmd.io/_uploads/BkqLbi9d2.png =400x) - 權限參考 [Default permissions and access levels for Azure Boards](https://learn.microsoft.com/en-us/azure/devops/boards/get-started/permissions-access-boards?view=azure-devops) - 將 `User` 設定為使用者加入專案時預設團隊 ![](https://hackmd.io/_uploads/B1JlMj9_n.png) ### 設定 Iteration 及 Area Path - 在 Project Setting > Iteration,可以設定個別 Iteration 的起始日期 ![](https://hackmd.io/_uploads/ByQsBVj_h.png) - 在 Project Setting > Areas,可以看到先前新建 Team 時預設建立的 Area Path 及 Team ![](https://hackmd.io/_uploads/S1UdIEo_3.png) - 預設不限制其他 Team 對其他 Area Path 的 Work Item 使用權限,則可透過選取要限制的 Area Path > ... > Security ![](https://hackmd.io/_uploads/HJxBDVoun.png) - Permission 為 Contributor 者不可修改此 Area Path 的 work item (即 Team User 不可修改 PM Area Path 的 work item),則將 **Contributor** 的 **Edit work items in this node** 設定為 **Deny** ![](https://hackmd.io/_uploads/HJQFvEj_3.png) - 當該使用者要修改時則會呈現 ![](https://hackmd.io/_uploads/B1fbrNoO3.png) <!-- ### 設定各團隊 Iteration 及 Area Path - 點選要設定的團隊名稱 ![](https://hackmd.io/_uploads/rkPrMic_h.png) - 選擇 Iterations and Area Paths ![](https://hackmd.io/_uploads/H1BIfi9d2.png) - 每個 Team 可以選擇要使用到的層級或 bug 的層級 ![](https://hackmd.io/_uploads/Sy0xXjcu2.png) - 點選 Iteration,可以設定個別 Iteration 的起始日期 ![](https://hackmd.io/_uploads/r15zQjqOn.png) ![](https://hackmd.io/_uploads/BJlNXiq_h.png) - 點選 Areas > Area Name > ... > security 來設定 Area Path 的安全性 ![](https://hackmd.io/_uploads/HkyGN4oOh.png) - 預設不限制其他 Team 使用者的權限,如需設定 Permission 為 Contributor 者不可修改此 Area Path 的 work item,可將 **Contributor** 的 **Edit work items in this node** 設定為 **Deny** ![](https://hackmd.io/_uploads/r1lYVEj_n.png) - 當該使用者要修改時則會呈現 ![](https://hackmd.io/_uploads/B1fbrNoO3.png) - 設定團隊使用的 template ![](https://hackmd.io/_uploads/B1V9Qo5_h.png) --> <!-- - 管理專案 Team、Area 及 Iteration - 新增 Developer、Operation、PM 團隊,`Project Setting > Teams > New Team` ![](https://i.imgur.com/J7cveGM.png) - 設定專案的 iteration date - 設定專案時間,`Project Setting > Project configuration > <Project Name> > set dates` - 設定 Sprint 1 時間,`Project Setting > Project configuration > <Project Name> > set dates` ![](https://i.imgur.com/6EceOlf.png) - 設定團隊所屬的 Iteration 及 Area - 設定 Iteration `Project Setting > Team Configuration > <Team Name> > Iteration > Backlog iteration > <預設選項> > Set` ![](https://i.imgur.com/WqRpbIJ.png) - 設定 Area `Project Setting > Team Configuration > <Team Name> > Iteration > Area > <預設選項> > Set` ![](https://i.imgur.com/BjPEjQB.png) - 管理團隊的取用權限 `Project Setting > Permission` ![](https://i.imgur.com/I3iSipy.png) --> ## 3/ 通知管理 ### 管理全域通知設定 - 需是 **Project Collection Administrators** 群組的成員 - 全域通知會套用至組織所有的專案 - 可針對特定通知項目選擇禁用 - Work item 全域通知設定包含 ![](https://hackmd.io/_uploads/r1pXiUnP2.png =700x) ### 管理專案中各小組通知設定 - 需是 **Team Administrator** 或 **Project Administrators** 群組的成員 - 建立新的通知在 Project Setting > Notifications > + New Subscription ![](https://hackmd.io/_uploads/Byh8uBiu2.png) - 設定當 State 異動成 Bug MGR Preview 時通知 PM Team 中的所有成員 ![](https://hackmd.io/_uploads/ryoG2SjOh.png) ## 4/ Teams Integration ### 推播通知設定 - 可參考 [Microsoft Teams with Azure DevOps Services (Collaborate, Communicate and Celebrate)](https://azuredevopslabs.com/labs/vstsextend/teams/) - 選擇要設定的 Channel > ... > Azure DevOps > Add ![](https://hackmd.io/_uploads/BkDujt5uh.png) - 將 Azure DevOps 添加至 Channel ![](https://hackmd.io/_uploads/ByLnoFq_h.png) - 登入帳號 ![](https://hackmd.io/_uploads/ryck2tqu3.png) - 選擇 組織、專案及團隊 ![](https://hackmd.io/_uploads/Sk7Wy9cOh.png =500x) - 選擇要訂閱的事件類型、work item type ![](https://hackmd.io/_uploads/B1c7195d3.png =600x) - 只訂閱 Bug work item ![](https://hackmd.io/_uploads/Hyx61c9dn.png =500x) <!-- #### 設定通知 (Azure Board Bot) - 安裝 [Azure Boards Teams App](https://teams.microsoft.com/l/app/7299542a-1697-4ec1-812b-6b70065c0795?source=app-details-dialog) ![](https://hackmd.io/_uploads/r1vBZYqO3.png) - 選擇 **Add to a team**,將 Bot 加入至 Teams Channel 中 ![](https://hackmd.io/_uploads/HJYVMtcdh.png) - 搜尋要加入的 Teams Channel,完成點選 Set up a bot ![](https://hackmd.io/_uploads/HyaJ8F5d2.png) - 在要設定的 Channel 中直接 post,透過 `@Azure Boards` 可尋找到 Bot 可操作的指令 ![](https://hackmd.io/_uploads/S1iV8Kqd2.png =700x) - 初次設定需要先登入 Azure DevOps ![](https://hackmd.io/_uploads/rkUxmt5u2.png) ![](https://hackmd.io/_uploads/Bkvb7KqO3.png) ![](https://hackmd.io/_uploads/HkdMQKqd2.png) ![](https://hackmd.io/_uploads/HkHQ7Yq_h.png) ![](https://hackmd.io/_uploads/rJFSXYcdh.png) ![](https://hackmd.io/_uploads/ry38Qtcd3.png) - 登入完成後,連結要訂閱的專案,輸入 `@Azure Board link <Azure DevOps Project URL>` ![](https://hackmd.io/_uploads/Hk-JNK5d3.png =700x) ![](https://hackmd.io/_uploads/Bk2KEt9u2.png) ![](https://hackmd.io/_uploads/r18c4t5O2.png) - 點選 ![](https://hackmd.io/_uploads/HyQoVY5d3.png =120x) 訂閱,選擇要訂閱的事件 ![](https://hackmd.io/_uploads/S1q3EtcOn.png) - 設定 當有任一類型的 work item updated 時發送通知 ![](https://hackmd.io/_uploads/SJu64FqOh.png) ![](https://hackmd.io/_uploads/HyGkSt5dh.png) - 設定完成後,可再點選 ![](https://hackmd.io/_uploads/HyQoVY5d3.png =120x) 繼續設定 ![](https://hackmd.io/_uploads/BkflBFc_h.png) ![](https://hackmd.io/_uploads/rk-WBFcOn.png) ![](https://hackmd.io/_uploads/HJtWHK9O2.png) - 設定僅接收 Bug ![](https://hackmd.io/_uploads/HkROvFcuh.png) --> ### 設定頁籤 - 在 Channel 頁籤處點選 +,搜尋 `Azure DevOps` 後點選 ![](https://hackmd.io/_uploads/H1kMdFcd2.png =700x) - 點選 **Select Organization** 選擇組織 ![](https://hackmd.io/_uploads/rJAz_Y9_3.png =600x) ![](https://hackmd.io/_uploads/rJkrdK9un.png =600x) - 可選擇要添加 Dashboard 或 Kanban Board ![](https://hackmd.io/_uploads/HkrU_F9_n.png =600x) - 設定 Dashboard ![](https://hackmd.io/_uploads/BkFhOKcdn.png =600x) ![](https://hackmd.io/_uploads/B1_mFKc_2.png) - 設定 Kanban board ![](https://hackmd.io/_uploads/S1WidKq_2.png =600x) ![](https://hackmd.io/_uploads/SJw4tt9_h.png) ## 5/ Azure Test Plan - 可參考 [Test Planning and Management with Azure Test Plans](https://azuredevopslabs.com/labs/azuredevops/testmanagement/) - 新增 Test Plan,Test Plans > + New Test Plan ![](https://hackmd.io/_uploads/B1_aaSid3.png) - 將 Test Plan 命名為 `Version 1`,設定為 Iteration 1 ![](https://hackmd.io/_uploads/BJZmABsO2.png) - 新增 Test Case ![](https://hackmd.io/_uploads/BkXY0BoO3.png) - 輸入 `測試時刻表查詢`,並填寫步驟及預期結果,完成後點選 Save ![](https://hackmd.io/_uploads/HkK2RHodh.png) - 點選 New Test Case 可再新增 Test Case ![](https://hackmd.io/_uploads/ByiTCrsu3.png) - 輸入 `測試可查找特定班次即時到站時間`,完成步驟及預期結果填寫並儲存 ![](https://hackmd.io/_uploads/B18qkIi_2.png) - 點選 Execute > 選取要執行的 Test Case > Run for web application ![](https://hackmd.io/_uploads/SJzteLsu2.png) - 會顯示彈出視窗即可開始進行測試,當遇到問題時可點選 Create Bug 新增 Bug ticket ![](https://hackmd.io/_uploads/H1_bfIsun.png =500x) - Bug 會自動帶入測試的步驟結果,並連動此 Test Case ![](https://hackmd.io/_uploads/Sk0GMLjd3.png) - 全數測試完成後點選 Save and close ![](https://hackmd.io/_uploads/rJF7GIiO2.png =500x) - Execute 的頁面會顯示最新一次的測試結果 ![](https://hackmd.io/_uploads/SyzDf8iO3.png) - 點選 Chart 可設置 Test Result 的統計圖,點選 Chart > + New > + New test result chart ![](https://hackmd.io/_uploads/rJzdfIiO2.png) - 使用 column 格式呈現測試結果資訊 ![](https://hackmd.io/_uploads/rkl1vUoO2.png) - 可將圖表釘選至 Dashboard ![](https://hackmd.io/_uploads/SyNXw8oOh.png) ## Reference - [Azure DevOps Hands-on Lab](https://azuredevopslabs.com/)