330 likes | 543 Vues
從 Use Case 到 Test Case. 彭靖灝 斯歌資訊. 課程內容. 故事: K2 blackpearl 延伸解讀 User Story 和 Use Case 測試程序和測試案例 VS 2010 的測試功能. 延伸解讀. 似曾相識 …. 開發人員設計程式 開發人員確信他的程式能夠正常編譯 開發人員登入程式碼 同樣的事情發生在其他幾位開發人員身上,為期四週 開發主管進行所有元件 的組建動作 應用程式安裝到測試環境 測試人員開始進行測試 應用程式未能通過測試 開發人員責怪測試過程. 循環. 不同的作業循環有其「完成」的定義
E N D
從Use Case到Test Case 彭靖灝斯歌資訊
課程內容 • 故事:K2 blackpearl • 延伸解讀 • User Story 和 Use Case • 測試程序和測試案例 • VS 2010 的測試功能
似曾相識… • 開發人員設計程式 • 開發人員確信他的程式能夠正常編譯 • 開發人員登入程式碼 • 同樣的事情發生在其他幾位開發人員身上,為期四週 • 開發主管進行所有元件的組建動作 • 應用程式安裝到測試環境 • 測試人員開始進行測試 • 應用程式未能通過測試 • 開發人員責怪測試過程
循環 • 不同的作業循環有其「完成」的定義 • 早點「完成」要比晚點「完成」好 Daily Build Testable Iteration Check In Story Product
取捨之間 • 推遲「完成」的代價 • 在開發過程組建的成果品質不佳 • 推遲了發現問題的時機 • 不清楚究竟留了多少尾巴 • 儘快「完成」的代價 • 人工驗證代價高容易出錯 • 自動化驗證需要大量投資─很難贏得支持 • 推遲「完成」常成為預設的選項
軟體何時完成? 當… • 程式寫好時(code complete)? • 進行組建時? • 通過單元測試時? • 通過接受度測試時? • 所有的臭蟲都修正時? • 客戶說完成時?
期望的開發模型早些完成並維持 • 開發人員撰寫程式碼並進行單元測試 • 開發人員僅在通過核心測試並能組建的情況下登入程式碼 • 對整個產品進行經常性的自動化組建作業 • 組建的結果能自動部署到測試環境 • 接受度測試是驗證產品品質的最終關卡
故事 • 必要元素 • 主角 • 情境、劇情 • 使用者的角度 • 未經修飾、扭曲的需求
UML Use Case • 涵蓋User Story的功能 • 更進一步透過標準的符號表現情境中角色的互動關係
建立需求模型的重要性 • 專注在系統的外部行為,隔離內部設計 • 精確描述使用者的需要,避免自然語言描述上的誤差 • 定義在使用者、開發人員和測試人員之間一致的辭彙 • 減少需求間的不一致性和落差 • 減少處理需求變更產生的工作量 • 規劃要實作功能的順序 • 以模型為依據建立系統測試,讓需求和測試之間維持清晰的關係。一旦需求變更,立即能正確的修正測試。讓系統能符合需求
步驟1 : 自動化組建 • 自動化組建是推動「完成」的靈丹 • 提供最大的回報 • 既然最後要組建,何不早一點開始
步驟 2 : 持續整合(CI) • 持續的進行迴歸作業 • 持續執行組建並掌握你的「完成」等級 • 在問題被帶入當時就發現並處置
步驟3 : 自動化測試 • 自動化測試讓我們保持在「完成」的階段 • 不要只是「完成」了;要維持「完成」的狀態 • 越多 事情自動化越好 • 自動化的代價常意謂著沒發生
步驟 4 : 測試環境部署 • 應用程式能執行才是真正「完成」的關鍵 • 如果不能使用應用程式很難說是否完成 • 從組建到部署應用程式的過程常是障礙所在 • 每做一次組建都要部署一次是最大的障礙
步驟 5 : 明瞭「完成」的狀況 • 在任何時候都能掌握「完成」的狀態 • 組建的狀態 • 測試的結果 • 完成了那些使用者案例 • 還有多少臭蟲在那
VS Ultimate & TFS 2010推動「完成」 • 自動化推進「完成」 • 提供必要的基礎建設 • 專注在應用程式特性 • 一次調整一步 • 在每一個週期強迫「完成」 • 登入原則 • 登入把關(Gated Check-in) • 持續整合 • 清楚何時「完成」 • 測試報告 • 專案資料報告 原始碼管理 組建 工作事項 TFS 執行測試 驗證層級 部署組建
步驟1 : 自動化組建 • VS & TFS 簡化自動化組建 • 自動化組建可以不用再令人生畏 • 所有在VS中建立的專案可以幾秒內有自動化組建能力 • 完全可延伸 • 整合Windows Workflow Foundation引擎 • 從單一組建機器到組建實驗室執行跨機器的組建工作
步驟 2 : 持續整合 • VS & TFS 天生支援持續整合 • 不需要額外的動作 • 只需要組建機器的作業週期 • 登入把關確保組建中斷不致發生 • TFS 會在每一次登入前先組建 (同步化CI) • 不再聽到「它在我的電腦上OK呀」 • 確保不會有不合乎最低限度「完成」條件的程式碼登入
步驟3 : 自動化測試 • VS 降低了測試自動化的障礙和代價 • 從單元測試到自動化UI 測試 • 對測試的支援是VS 2010 的投資重點 • 整合測試和組建 • 確保你的測試儘早通過 • 每一次組建都可以有測試結果
步驟 4 : 測試環境部署 • 2010 提供了視覺化實驗室管理 • 自動組合/分割實驗室環境 • 以群組為單位管理設備 • 網路隔離 • 整合組建和實驗室部署 • 自動化部署組建結果並執行測試 • 應用程式能備妥面對其他類型的測試
Microsoft Test and Lab Manager • 可用來建立 • 測試計劃 • 測試套件(test suite) • 測試配置(test configuration) • 測試案例 • 內含在Ultimate版本,或在Test Element中獨立執行 • Visual Studio Premier不含Test and Lab Manager
提高程式品質的基本習慣 • 透過Use Case建立Test Case,開發作業一啟動,就同時著手建立測試案例 • 用測試案例做為需求把關的依據 • 對設計成果把關 • 透過Activity Diagram做為建立註解的依據,先寫註解,再寫程式碼 • 透過註解做為作業邏輯把關的依據 • 對設計過程把關 • 持續的進行Refactoring • 為程式碼的品質把關 • 讓程式碼始終處在一個易於維護的狀態