林麗惠
(武夷學院 數學與計算機系,福建 武夷山 354300)
《軟件測試》課程教學改革探討
林麗惠
(武夷學院 數學與計算機系,福建 武夷山 354300)
本文針對《軟件測試》課程教學中存在的問題,結合計算機科學與技術專業實際,從課程的教學目的、教學內容、教學方法、實踐環節及考核方法等方面進行了深入的探討,提出了《軟件測試》課程教學改革的思路和方法.
軟件測試;教學方法;教學改革
《軟件測試》是計算機科學與技術專業的專業課.隨著目前對軟件產品質量的日益關注,軟件測試在整個軟件開發過程中的地位越來越受到重視.通過本課程的教學,使學生掌握軟件測試的基本理論和基本方法,能熟練使用一些常用的測試工具,了解工程項目中軟件測試的實施策略和實施過程,并進一步增強學生軟件質量管理的意識.為學生將來從事實際軟件測試工作和進一步深入研究打下堅實的理論基礎和實踐基礎.但在許多高校其教學效果并不理想,學生普遍感覺理論學習枯燥無味,不能將理論與實踐聯系在一起對軟件進行有效的測試.究其原因,主要是傳統的《軟件測試》課程的教學存在著一定的局限性,必須進行改革.
目前市面上的有關軟件測試的教材相對偏少,且這些教材多存在以下幾種傾向[1]:
(1)偏重通用化的指導,看似大而全,實則缺乏實踐性;
(2)過分追求淺顯化,有些測試方法的討論缺乏系統的指導;
(3)過分專注于理論,沒有聯系實際運用;
(4)面向高端軟件測試技術人才市場,所討論的內容需要密切結合企業工作實際,不適合在高校中推廣.
很多高校的《軟件測試》課程從內容上來講,全而不精,重點不突出,學生也較難掌握;從難度上講,更多注意的是理論的講授,概念的介紹,而忽略了實際動手能力,因此培養的學生也只能是紙上談兵,達不到預期的效果.
由于教學內容和教學條件的限制,傳統的教學方法一般比較單一、落后.教師一般按照課本知識的編排順序先講理論再講例子,使得學生在理論知識的學習階段覺得枯燥無味又難以理解,如果課堂上教師和學生教與學的互動再減少一下,學生學習的積極性和主動性就被降低了,學習效果大打折扣.
軟件測試實驗是培養學生軟件測試技能的重要環節.通過實踐教學,使學生能掌握軟件測試技術和基本操作技能,進一步加深對所學基本理論的理解,對實驗所用的測試工具能夠正確和熟練地使用,并能撰寫規范的測試文檔,使學生具有較強的實踐動手能力以及分析問題和解決問題的能力[2].然而,目前軟件測試實踐教學存在不少弊端.傳統的《軟件測試》課程雖然有實驗教學的要求,但一般只是停留在課本上的黑盒和白盒方法的基礎性實驗上,也沒有結合一些典型案例,培養學生的動手能力和創新能力.因此,如何開展軟件測試的實驗教學,如何保證軟件測試實驗環節的效果一直是個問題.
傳統的《軟件測試》課程的考核通常以期末理論考試成績作為學生最終成績的主要依據,實驗環節占的比例很小,這樣會造成學生不注重實踐能力的培養,不利于激發學生學習的積極性和主動性.
針對目前《軟件測試》課程的教學體系存在的不足,通過整合與優化教學內容,改革教學方法和教學手段,加強實踐教學,改革課程考核方法,建立一個合理的《軟件測試》課程教學體系,從而提高學生學習的積極性和主動性,提高學生分析問題和解決問題的能力,促進教學質量的提高.
教師除了要認真挑選一本結構清晰、內容豐富、難易適中、有豐富實例的書籍作為教材,教師平常還要注意將軟件測試的科研實踐和教學中積累的經驗進行整理和提煉,作為教學內容的補充.教師還可以充分利用電子書籍,通過網上圖書系統,了解軟件測試最新的知識,適時補充到課堂教學中.
在教學中,不僅要求學生掌握軟件測試的基本理論和測試技術,更重要的是強調軟件測試技術在軟件業中的廣泛應用,培養軟件測試技能和實踐能力.重點介紹測試方法、測試層次、測試用例的設計,自動化測試工具的運用和測試過程的管理.使學生能夠根據被測試的對象選擇合理的測試策略和測試方法,設計完善的測試用例,執行測試,分析測試結果,撰寫測試報告,并能對整個測試過程進行有效管理.
倡導啟發式教學,激發學生的興趣和潛能.強調從學生的實際出發,以學生為學習的主體,引導學生積極思維,使他們自覺的完成學習任務,從而達到培養和提高學生分析和解決問題的能力的目的.例如在講白盒測試的邏輯覆蓋時,告訴學生語句覆蓋從流程圖看,其實等同于“節點”覆蓋[4].如果要更進一步深入覆蓋,是不是可以考慮每一條邊都覆蓋呢?這就引入了判定覆蓋的概念,同時讓學生思考還要補充什么設計測試用例才能夠從剛才的節點覆蓋做到“邊”的覆蓋.
利用案例教學法,促進學生理論聯系實際.從案例入手分析,將難于理解的概念定義變為分析后得出的結論,有利于提高學生學習的積極性.案例教學法是傳統教學方法的一種補充.實例教學法的成功取決于(1)選擇的案例合理;(2)教師的素質和教師在課堂上的表現;(3)學生在教學過程中的主動性發揮程度.在選取案例時,一方面可以從生產實際中尋找一些合適的項目,另一方面可充分利用歷屆畢業設計的成果,然后根據教學目標精心設計成軟件測試案例.通過案例教學的實施使學生快速的將軟件測試理論運用到實際的測試中,提高測試工具的使用技能和測試文檔的撰寫能力.
討論式教學是需要教師預先設定討論題目和要求,由學生分組討論的一種互動教學方式.課前教師應認真設計一些問題,這些問題緊扣教學內容,同時又具有多解性的特點,這樣就需要學生自己去思考答案,對不同的答案進行優劣性探討.例如,在軟件測試這門課中,等價類測試這個知識點就特別適合討論式教學.等價類測試首先要將輸入域或者輸出域進行等價類劃分[3].通常學生們由于對問題的理解和對理論的掌握不同,設計出來的等價類也會不一樣,不能說哪個設計就是絕對正確的,只是由于側重點不同,設計的結果就不一樣,教師應該合理的進行評價和鼓勵.討論的過程必然可以使得學生受益匪淺.
采用現代化教學手段有利于發揮學生在教學活動中的主體作用.針對軟件測試課程的特點,制作相應的電子課件,突出重點和難點,以文字、圖像、動畫等多種表現手段,展示教學內容,不僅增加了課堂信息量,更有利于教師在課堂上堅持講重點、講難點、講思路、講方法,而學生也可在相對輕松的狀態下主動的接受更多知識,掌握有效學習的方法.
建立課程網站,將相關的學習資源以合理的方式和結構組織到網絡課堂中,這些資源包括教學大綱、授課教案、課程視頻錄像、在線測試題、常見問題解答、實驗指導書和范例下載等,對學生提交到網上的留言信息及時答復.通過網絡的先進性、開放性和實時性,更大范圍內實現師資力量的整合,滿足學生的學習要求.
必須充分重視和精心設計實驗內容.實驗內容分為基礎性實驗和綜合性實驗.通過基礎實驗,掌握軟件測試的技術,并能熟練運用自動化測試工具執行測試;通過綜合實驗,掌握軟件測試的測試步驟和流程,并能對測試流程進行有效管理.在綜合實驗中,學生以小組的方式參與到測試項目中,培養學生管理能力和培養團隊合作精神.實驗課上,重點講解實驗中比較關鍵的內容,然后輔導、答疑,回答和解決學生在實驗中遇到的問題;在實驗課結束前,對實驗內容和出現的問題進行總結.
基礎性實驗測試的程序可以從《C++程序設計》或《數據結構》等課程中選取.這樣就使得學生很容易將以前所學知識與軟件測試結合起來,綜合解決軟件開發中的問題,使學生有成就感,提高學習的興趣和動力.綜合性實驗被測試對象是一個完整的系統.在選取案例時,盡量選擇一些學生熟悉的,并且在生產實際中正在使用的系統.另外,還可以從歷屆優秀的畢業設計成果中選取,學生對這類系統的需求比較了解,對功能點和測試要點熟悉.這樣使得綜合性實驗的題目內容豐富,并且與生產實踐結合緊密,可提高學生軟件測試的實戰能力.
可以將考核分三部分:平時成績+期末考試成績+實踐能力成績,平時成績主要是作業、考勤和平時課堂提問等,期末考試成績還是傳統的筆試方式,主要考核學生對基礎知識的理解和掌握情況,實踐能力成績主要看實驗成績.對于實驗成績的考核可以采用答辯的形式.答辯時主要采用學生講解、演示測試過程、老師提問和小組討論的方式,以便深入了解學生對實驗內容的掌握情況.通過這種考核方法,既能促使學生掌握軟件測試的基本原理,又能增強學生的實踐動手能力,最終能夠將理論知識轉化為現實工作能力.
軟件測試在軟件開發過程中的重要作用日益彰顯,對《軟件測試》課程進行教學改革,也是為了緊跟軟件測試的技術前沿,積極跟蹤當前軟件測試技術發展的水平和趨勢來培養人才.要提高教學質量,離不開正確的教學指導思想、完善的理論實踐教學環節、先進的教學方法和手段.如何進一步改革教學體系,進一步提高學生學習的積極性和主動性,以取得更好的教學效果,在今后的教學中仍需要不斷實踐和探索.
〔1〕武劍潔,陳傳波,肖來元.軟件測試技術基礎[M].華中科技大學出版社,2008.
〔2〕鄧武.《軟件測試技術(B)》實踐教學大綱[EB/OL].http://www.stdjtu.edu.cn/jpk/rjcs/new s_view.asp?newsid=628,2010-11-12.
〔3〕趙斌.軟件測試技術經典教程[M].科學出版社,2011.
〔4〕佟偉光.軟件測試[M].人們郵電出版社,2008.
G642
A
1673-260X(2011)12-0219-02