日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問 生活随笔!

生活随笔

當前位置: 首頁 > 编程资源 > 编程问答 >内容正文

编程问答

[转载]基于TFS实践敏捷-修复Bug和执行代码评审

發布時間:2023/12/10 编程问答 31 豆豆
生活随笔 收集整理的這篇文章主要介紹了 [转载]基于TFS实践敏捷-修复Bug和执行代码评审 小編覺得挺不錯的,現在分享給大家,幫大家做個參考.

本主題闡釋了這些功能,以繼續這一關注虛擬敏捷團隊成員的一天的教程。

Peter 忙于編寫一些代碼以完成積壓工作 (backlog) 項任務。但是,他的同事發現了一個阻礙他們工作的 Bug,他想立即修復此 Bug。 他暫停了手中的工作并修復此 Bug。 他請求 Julia 審查修復情況,并在審查后檢查修復結果并恢復其初始任務。

說明

Peter 使用的“我的工作”和“代碼評審”功能僅在 Visual Studio 高級專業版和 Visual Studio 旗艦版中可用。

主題內容

  • 掛起當前工作并開始處理 Bug
  • 調查 Bug
  • 請求代碼評審
  • 接受并執行(或拒絕)代碼評審
  • 接收并響應代碼評審
  • 修復測試和代碼
  • 簽入修復
  • 繼續處理任務

?

掛起當前工作

當 Peter 處理積壓工作 (backlog) 項時,Julia 過來討論困擾她的 Bug。 這是 Peter 所熟悉的區域,因此他創建了修復 Bug 的任務,并將其分配給自己。 他決定立即開始修復工作。

在 Peter 開始處理新的 Bug 前,他想確保其當前工作保留在團隊服務器上的安全位置。 在“我的工作”頁上,Peter 選擇“掛起”進行保存(在 Team Foundation Server 上):

  • 他完成的所有工作包括對代碼、測試和其他文件的更改。
  • 打開解決方案、窗口、斷點、監視窗口變量和其他 Visual Studio 狀態的位。

限制已清理工作區,Peter 將新的任務從“可用工作項”拖動到“正在進行的工作”。 他已準備好研究和編寫修復。

說明

你的工作上下文鏈接到在“我的工作”頁中顯示為“正在進行”的工作項。 通過使用“掛起”和“繼續”,可在不同的任務間快速切換。 打開的解決方案和文件、代碼更改以及 Visual Studio 布局都會一起切換。

掛起當前工作并開始執行另一項任務

  • 連接:如果尚未連接到要在其中工作的團隊項目,請連接到團隊項目:
  • 在“團隊資源管理器”中,選擇“主頁”,然后選擇“我的工作”。
  • 掛起你的當前任務:
  • 在“正在進行的工作”部分中,選擇“掛起”。
  • 在顯示的框中,指定你要為此掛起的工作集提供的名稱,然后選擇“掛起”按鈕。 默認名稱是當前正在進行的工作項。
  • 開始新任務、Bug 或其他工作項上的工作:
  • 在選擇工作項之前,你可能需要:
    • 通過選擇“可用工作項”下的“新建”,創建新任務或其他工作項;或
    • 在“可用工作項”下選擇不同查詢。
  • 將工作項從“可用工作項”拖動到“正在進行的工作”。?
    或者,可以從“掛起的工作”項下拖出之前已掛起的工作項來切換到該工作項。
  • 提示

    當前正在進行的工作項將鏈接到當前代碼更改和 Visual Studio 狀態。 若要允許 Visual Studio 幫助你組織工作,請確保你在從一個任務切換到另一個任務時,相應的項處于“正在進行中”狀態。

    ?

    調查 Bug

    Peter 打開并閱讀 Bug 工作項。 根據測試團隊成員編寫的說明,已付款的發票有時會被錯誤地標記為未付款。 有一個附加到 Bug 工作項的實驗室環境快照。 Peter 可以打開運行測試的虛擬機,查看錯誤發票和 IntelliTrace 日志。 他跟蹤以下方法存在的錯誤:

    public class LocalMath{ public static bool EqualTo(double a, double b){return a == b;}

    從 IntelliTrace 日志中,Peter 發現此方法有時會因參數存在極小的差異而返回 false。 Peter 知道此類舍入誤差在浮點算法中是不可避免的,同時,利用此方法測試浮點數字的相等性也較為不妥。

    增加測試以顯示錯誤

    在找到 Bug 后,就會顯示單元測試數量不足或測試不符合用戶的實際需求。 因此,在修復 Bug 之前,Peter 添加了一個將演示存在此錯誤的測試。

    // Added 2012-02-02 for bug 654321:/// <summary>/// Make sure that number equality test allows for /// small rounding errors./// </summary>[TestMethod]public void TestDoublesEqual(){// We allow a rounding error of 1 in 1000000:TestEqual(1, 1e-7, true); // Less than allowed errorTestEqual(1, 1e-5, false); // More than allowed errorTestEqual(1000, 1e-7, true); // Less than allowed errorTestEqual(1000, 1e-5, false); // More than allowed error}private void TestEqual(double value, double error, bool result){// Try different combinations of error and value:Assert.IsTrue(result == LocalMath.EqualTo(value + error, value));Assert.IsTrue(result == LocalMath.EqualTo(value, value + error));Assert.IsTrue(result == LocalMath.EqualTo(value - error, value));Assert.IsTrue(result == LocalMath.EqualTo(value, value - error));}

    他運行了該測試,結果如預期一樣以失敗告終。

    讓測試通過

    Peter 修復代碼:

    public static bool EqualTo(double a, double b){// Allow for rounding errors.// For example, a == 2.0 and b = 1.99999999999const double allowedError = 1/1000000;return System.Math.Abs(a - b) < allowedError;}

    測試現在通過:

    ?

    請求代碼評審

    Peter 對自己對 Bug 的修復感到滿意,但是尚未簽入其工作。 Peter 的團隊使用代碼評審來提高整體代碼質量并減小因創建更多 Bug 帶來的風險,因此,他使用團隊資源管理器從團隊同事 Julia 和 Adam 那里請求代碼評審。

    請求代碼評審

  • 在“團隊資源管理器”中的“我的工作”頁上,選擇“請求審查”。“新代碼審閱”頁將出現。
  • 指定一個或多個審閱者。
  • 指定評審的名稱。
  • 指定區域路徑。
  • 指定審閱者的注釋。
  • 選擇“提交請求”。
  • 審閱者將通過電子郵件接收請求通知。

    你還可以請求對掛起的工作、擱置集或變更集進行代碼評審。 若要查看變更集的列表,請打開“源代碼管理資源管理器”,然后選擇“歷史記錄”按鈕。

    接受或拒絕代碼評審

    Julia 接收并接受代碼評審請求。 她評審代碼,并在文件和代碼塊級別編寫注釋,然后將代碼評審反饋給 Peter。 Adam 太忙,無法評審代碼,因此拒絕了請求。

    Julia 在其注釋中指出測試是錯誤的。 允許的誤差應為輸入值的指定部分,而不是常數。 因此,測試應將錯誤值乘以值。

    // We allow a rounding error of 1 in 1000000// as a fraction of the value:TestEqual(1, 1e-7, true); // Less than allowed errorTestEqual(1, 1e-5, false); // More than allowed errorTestEqual(1000, 1000*1e-7, true); // Less than allowed errorTestEqual(1000, 1000*1e-5, false); // More than allowed error

    提示

    請注意,團隊成員會將測試用作討論焦點。 如果測試正確且足夠,則代碼也會如此。 與代碼不同,每個測試表示單獨的大小寫。 因此,討論測試通常比討論代碼更容易。?

    執行代碼評審

  • 在“團隊資源管理器”中的“我的工作”頁上,轉到“我的代碼評審和請求”部分并打開該請求。
  • 在“代碼評審”頁上,你可以:
    • 選擇“接受”或“拒絕”以通知作者你是否將執行評審。
    • 選擇“添加審閱者”以將其他審閱者添加到代碼審閱請求。
    • 查看對每個已為此工作項更新的文件的更改。
    • 展開“注釋”以與作者和其他審閱者討論更改。
      • 選擇“添加總體評價”?
        - 或 -
        選擇一個代碼塊,然后從快捷菜單中選擇“添加注釋”。
      • 選擇“發送評論”以使你的提交對作者和其他審閱者可見。
    • 選擇“發送和完成”以完成審閱,指出是否需要進一步修改代碼。
  • ?

    響應代碼評審

    Peter 接收并響應了來自 Julia 的代碼評審。

    代碼的審閱者和作者可以根據需要交換注釋。 作者一旦關閉評審,則評審就將結束。 每次有人參與討論時,其他參與者都會收到電子郵件通知。

  • 在“團隊資源管理器”中的“我的工作”頁上,轉到“代碼評審和請求”部分,然后雙擊該請求。?
    你還可以打開請求的快捷菜單并選擇“打開”。
  • 閱讀評論并根據需要進行答復。 若要答復評論,請選擇“答復”,在出現的框中輸入你的評論,然后選擇“確定”。 若要發送你的評論,請選擇“發送評論”。
  • 若要查看文件并查看包含注釋的代碼塊或者要編輯文件,請轉到“注釋”部分。 在“文件”子節中,打開文件的快捷菜單并選擇“比較(只讀)”或“編輯文件”。
  • 如果你和其他審閱者已回復完彼此的評論并準備關閉審閱,請單擊“關閉審閱”,然后選擇:
    • 完成”可表明已完成審閱。
    • - 或 -
    • 放棄”可表明正在取消審閱。
  • ?

    修復測試和代碼

    閱讀完 Julia 的注釋后,Peter 按照她的建議修復了其單元測試。 測試現已失敗。 這意味著代碼不正確。

    Peter 修復代碼:

    /// <summary>/// Returns true if two numbers are equal./// </summary>public static bool EqualTo(double a, double b){// Allow for rounding errors.const double allowedErrorMultiple = 1/1000000;double allowedError = (System.Math.Abs(a) + System.Math.Abs(b)) * allowedErrorMultiple/2;return System.Math.Abs(a - b) < allowedError;}

    測試再次通過:

    提示

    若要修復此 Bug,請按照代碼開發中的相同做法進行操作。 編寫會失敗的測試,然后設法讓該測試通過。 僅在測試通過時,簽入代碼和測試。

    Peter 現在將注意力轉移到發現 Bug 的測試用例上。 在測試用例工作項中清楚說明了 Bug 的重現步驟。 他按照這些步驟操作,并發現已正確列出了發票。

    ?

    簽入修復

    Peter 簽入已修復代碼和單元測試。 Bug 的狀態自動設置為“已解決”,并且“指派給”值將自動重新分配給發現 Bug 的測試團隊的成員。 該團隊成員將驗證 Bug 是否已修復并關閉工作項。

  • 在“團隊資源管理器”中,在“我的工作”頁上,選擇“簽入”。
  • 查看“掛起的更改”頁的內容以確保:
    • 所有相關更改都在“包含的更改”中列出
    • 所有相關工作項都在“相關工作項”中列出。
  • 指定“注釋”以在你的團隊查看已更改文件和文件夾的版本控制歷史記錄時助其了解這些更改的目的。
  • 選擇“簽入”。
  • ?

    繼續處理任務

    Peter 繼續處理自己的任務。 他很快就可以繼續工作,因為他的所有代碼更改連同重要的狀態圖位(如打開窗口、斷點及觀看窗口變量)都已還原至工作區。

    繼續任務中的工作

    • 在“團隊資源管理器”中的“我的工作”頁上,查找“掛起的和擱置的工作”列表。 打開項的快捷菜單。 你有兩個選擇:
      • 若要繼續掛起的工作并自動掛起工作區中任何掛起的更改,請選擇“繼續”。
      • 若要將掛起的工作與工作區中已掛起的更改合并,請選擇“正在進行部分合并”。

    當你繼續工作時

    當你繼續工作時,Visual Studio 會還原:

    • 打開的解決方案
    • 代碼更改
    • 打開的窗口的狀態和位置
    • 斷點
    • 監視窗口變量與表達式
    • 書簽

    ?

    驗證此 bug 已消失

    如果測試團隊發現此 bug,他們會將一些測試用例鏈接到此 bug,并且將重新運行它們。?了解詳細信息。


    博客轉自:《ALM?開發人員生活中的一天:暫停工作、修復?Bug?和執行代碼評審》

    總結

    以上是生活随笔為你收集整理的[转载]基于TFS实践敏捷-修复Bug和执行代码评审的全部內容,希望文章能夠幫你解決所遇到的問題。

    如果覺得生活随笔網站內容還不錯,歡迎將生活随笔推薦給好友。