2.戴鸿杰-台湾敏捷方法AgileMethod.doc

  1. 1、本文档共5页,可阅读全部内容。
  2. 2、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
  3. 3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载
  4. 4、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
查看更多
2.戴鸿杰-台湾敏捷方法AgileMethod.doc

導入測試帶動法於大一課程 戴鴻傑 中央研究院 資訊科學研究所  摘要 精密產品需要通過多道測試確保產品品質,才能吸引消費者目光。產品品質直接影響其市場表現。因此,產品除力求創新產品設計與行銷手法外,品質是產品生存於商業戰場最關鍵的要點。 然而,現今大部分軟體工程師,疲於應付永遠無法預知的軟體需求變化,堆積如山的文件,與一延再延的交付期限,為在這夾縫中生存,自然不做系統設計與切割,略過單元測試,只求快速做完軟體展示,成為常態與奉行圭臬。而這樣的軟體〝高手〞卻往往能吸引上級目光,因此導致軟體產業惡性循環。 這其中牽涉的問題層面極廣,從初期的溝通、中期的實作、一直到最後的驗收、都值得深論,但這也是敏捷方法導入契機。基於軟體開發文化應該越早落實越好,本文探討大一學生在學完基礎 C++ 程式語言後,立即導入測試帶動方法,並討論影響成效的因素。 導入範圍與限制 本文探討測試帶動開發方法(Test-driven development, TDD)教學,幫助剛學完程式設計的大一學生,提升其軟體品質,以面對變動需求。研究對象選定為本人任教的桃園某大學,分散於三個班級,共約一百三十位。此課程並非程式設計正課,而是三學分的程式設計實習課程。 本文利用 TDD 進行專案,教學素材使用 C++ 程式語言處理自然語言(Natural language processing, NLP),學生透過實作中文斷詞演算法,瞭解如何處理基本的中文斷詞,並利用單元測試工具CppUnit 確保程式品質。 影響 TDD 導入的因素很多: 程式設計正課老師的教學,學生電腦作業系統與同儕關係皆有影響,各因素無法一一確究,本文推論結果只適用於 Visual C++ 2005 Express 版本搭配 CppUnit,不一定適用於其他程式語言、其他TDD 工具、其他縣市大學、國籍,其他年齡層。 課程簡介 教學素材:以 CppUnit 為測試框架,搭配 Visual Studio 2005 Express 開發環境,以開發中文斷詞系統。 教學時間:98 年 5 月起至 6 月止共 1 個月,每班每週 3 堂課,每堂 50 分鐘,共 12 堂課。 課程目標:本課程介紹 NLP 與 TDD,實作 NLP 的基本任務—中文斷詞處理,讓學生有 NLP 與 TDD 實作經驗。主要目標如下: 瞭解自然語言處理的概念 藉由長詞優先演算法 實作一個以字典為基礎的中文斷詞系統 藉由開放原始碼的單元測試套件 確保程式碼品質 利用測試碼應付軟體需求變動 CppUnit CppUnit 是開放原始碼套件,它提供單元測試框架(Unit test framework),能夠自動執行 以確保程式品質。縱使在開發的過程中,任何程式片段因為效能考量,或其它需要而修改,學生仍能藉由CppUnit確保程式邏輯的正確。 以本課程來說,學生開發的長詞優先斷詞演算法中需要使用詞典檔。在第二週課程中,需求定義為: 將詞典檔這個概念抽象定義為一個名為 dictionary 的 C++ 類別。再利用長度為 100 的 std::string 陣列提供 dictionary 類別的一個實作,並將這個子類別命名為 arrayImp。實作前要求學生替這個實作產生 CppUnit 的單元測試碼。圖 1 為測試碼範例。 圖1. CppUnit 測試碼範例 第三週模擬需求變動:隨著收集到的詞條越來越多,只能容納 100 個字的 arrayImp 子類別不敷使用。於是將需求修改為另外開發一個新的 dictionary 子類別,名為 vectorImp;內部用 vector 實作取代原本的字串陣列。 因為學生已經撰寫好適用於 dictionary 的單元測試碼,因此學生不需要修改單元測試碼,就可以直接利用 CppUnit 來進行單元測試,測試新實作的 vectorImp 的邏輯是否正確。 問卷 第二週起,上課前實施隨堂考試與問卷調查,以得知學生學習狀況。表1顯示期末課堂中使用的部分問卷內容。 表 1. 學生自我學習評量表 問題評定標準 同意 不同意學 習 態 度我喜歡 TDD 的概念□ □ □ □ □TDD 的過程讓我感到很愉快□ □ □ □ □我在 TDD 的過程中很努力,學習態度很認真□ □ □ □ □學 習 表 現我覺得自己聽得懂 TDD 的內涵□ □ □ □ □我覺得自己能跟得上老師的教授進度□ □ □ □ □我能自己完整的撰寫測試程式碼□ □ □ □ □我能自己安

文档评论(0)

170****0532 + 关注
实名认证
内容提供者

该用户很懒,什么也没介绍

版权声明书
用户编号:8015033021000003

1亿VIP精品文档

相关文档