摘要:本文分析了軟件測試課程的教學現狀,并從課程建設、師資力量、教學方法、實踐訓練等方面對軟件測試課程教學進行了探討,然后簡要介紹了我校軟件測試課程的教學實踐過程。
關鍵詞:軟件測試;課程建設;案例教學;實踐教學
中圖分類號:G642 文獻標識碼:A
文章編號:1672-5913(2007)12-0011-03
1引言
隨著計算機的誕生,就開始了軟件開發和軟件測試。計算機硬件的飛速發展,使得軟件在整個系統中的地位越來越高,同時對軟件的質量提出了更高的要求,軟件測試是保證軟件質量的重要手段[1]。近年來,國內軟件市場不斷擴大,軟件企業逐漸走入正規,市場需要大量的軟件測試人才。但是各高校并沒有準備好這方面的人才,迫于就業壓力,許多本科生、碩士研究生紛紛通過自學、培訓等途徑獲取軟件測試所需要的技能,去應聘軟件測試職業。鑒于此,高校應該根據社會需要,調整培養方案,培養出大批合格的軟件測試人才。軟件測試屬于軟件工程專業的一個方向,可以依托軟件工程專業,加強軟件測試課程建設,加大軟件測試方面的師資力量,改進教學方法,加強實踐教學環節,培養出具有扎實軟件測試理論基礎、掌握軟件測試方法和具有一定軟件測試經驗的軟件測試人才。
2軟件測試課程的教學現狀
目前,許多高校的計算機相關專業并沒有單獨開設軟件測試技術課程,軟件測試技術只在軟件工程課程的某一章節進行了介紹,并且沒有作為重點內容來要求。軟件測試技術方面的教材,近年來才出現了一些,但質量良莠不齊,對軟件測試技術的重視程度可見一斑。有的學校把軟件測試技術作為選修課,課時比較少,大多注重軟件測試理論的講解和測試方法的介紹,忽視了極為重要的實踐環節,缺乏系統的訓練,離軟件公司對軟件測試人才的要求差距較大。
講授軟件測試技術課程教師的缺乏也是亟待解決的問題。高校中有講授軟件工程的主講教師,他們能很好的講解軟件測試理論和介紹軟件測試方法,但缺乏較好的軟件測試案例和軟件測試經驗,而這正是講授好軟件測試技術課程的關鍵所在。
另外,學生對軟件測試的認識也直接影響他們對軟件測試技術的掌握。一些不規范的軟件公司往往讓新進人員和編程能力較差的人員從事軟件測試,這讓很多學生片面地認為不會編程序的人才從事軟件測試,從而不重視軟件測試技術的學習和訓練。
3軟件測試課程教學方法探討
為了培養符合社會需要的軟件測試人才,進行如下教學措施。
第一,加強軟件測試課程建設。軟件測試課程建設包括制定教學目標、確定教學內容、制定教學計劃和選擇教材。軟件測試課程的教學目標是通過對軟件測試技術的理論學習和系統訓練,使學生了解軟件測試在軟件開發過程中的重要作用和地位,理解軟件測試的基本概念和基本理論,掌握軟件測試技術和方法,能運用軟件測試技術解決實際測試問題,并知道軟件測試職業的特點和對軟件測試人員素質的要求。教學內容分為課堂教學、實驗教學和實踐訓練,課堂教學包括軟件測試基本概念和基本理論、軟件測試技術和方法;實驗教學則是利用所學的軟件測試技術進行軟件測試;實踐訓練有課程設計,并與認識實習、生產實習、畢業實習和畢業設計等環節有機結合起來。軟件測試技術的課堂教學在軟件工程課程結束之后開始,安排在第5、6兩學期進行,實驗教學在這兩學期同步安排;課程設計在第6學期后半學期或第7學期前半學期進行。與軟件測試技術相關的認識實習安排在第4學期后半學期或第5學期的前半學期;生產實習安排在第7學期,畢業實習和畢業設計則根據需要安排在第7、8學期。教材可先選用一些較優秀的軟件測試書籍,然后根據教學實踐與有經驗的軟件測試工程師合編軟件測試教材、實驗指導書和實踐訓練指導書。
第二,加大軟件測試師資的培養與引進。講授軟件工程的教師大多缺乏實際的軟件測試經驗和充足的測試案例,而這正是講授好軟件測試課程的關鍵,可以派遣準備講授該課程的教師到優秀的軟件測試培訓機構進行培訓,然后聯系到正規軟件公司的軟件測試部門實習。另外,引進或聘任有經驗的軟件測試工程師來校任教也是一個很好的辦法。
第三,合理安排教學內容,執行案例教學。軟件測試技術涉及的知識點很多,并且這些知識點需要通過大量規范化的訓練來理解和掌握,分階段教學是一個很好方法。第一階段的教學內容是軟件測試技術的基本要求,包括軟件測試的基本概念和基本知識、單元測試、集成測試以及自動化測試工具的使用。第二階段的教學內容是軟件測試技術的較高要求,包括需求測試、設計測試、系統測試、可靠性測試、驗收測試以及靜態測試中的同行評審等。課堂教學中利用各種測試案例進行教學能使學生更容易理解和掌握軟件測試概念和軟件測試方法。案例教學法需要建立案例庫,向案例庫中增加案例是一個逐漸積累的過程。測試案例可以從教學實踐(包括教師設計的案例和學生練習中設計的優秀案例)、教材、軟件企業等方面收集[2]。教學過程中,理解軟件測試技術時可采用一些簡單的測試案例,綜合訓練時則選擇較復雜的完整案例。
第四,扎實執行實踐訓練。掌握軟件測試技術只有課堂學習是遠遠不夠的,還必須進行扎實的實踐訓練。實踐訓練包括課程實驗、課程設計、認識實習、生產實習、畢業實習和畢業設計。實驗教學在學校專業實驗室進行,通過課程實驗使學生熟悉軟件測試過程,加深對軟件測試方法的理解。實驗內容按測試方法組織,測試案例由實驗指導教師設計或從案例庫中抽取,根據測試對象要求學生設計測試用例、編寫測試程序、測試和書寫測試報告。實驗教學的學時有限,只能使學生達到軟件測試入門級的水平。課程設計是對實驗教學的補充,針對某課程進行的綜合實踐訓練。軟件測試技術課程設計以一個小型的軟件項目為對象,在學校專業實驗室中進行軟件測試技術的綜合訓練,訓練內容包括需求測試、設計測試、單元測試、集成測試、系統測試和驗收測試,訓練要求寫出規范的測試報告、設計合理的測試用例、進行人工和自動測試并分析測試結果,當項目相對復雜時,可以多名學生合作完成。認識實習和生產實習是高校專業教育中兩個重要的實踐環節,組織對軟件測試感興趣的同學利用這兩個環節進行軟件測試技術的學習和訓練。認識實習通過參觀軟件公司測試部門的軟件測試過程、聽取有經驗軟件測試工程師的專題報告等方式進行,加深學生對軟件測試技術的理解和加強學生對軟件測試職業的認識,激發他們對軟件測試職業的興趣。生產實習則需要有軟件測試訓練基地(通過學校自建或與軟件公司合建實現),在實習基地每個有經驗的軟件測試工程師單獨指導幾名學生進行實際項目的測試,通過該項訓練,使學生認識到實際項目的軟件測試與實驗室進行的軟件測試的區別,找出自己的差距,通過自己學習和向工程師學習不斷提高自身軟件測試水平。畢業實習和畢業設計環節則組織有志于從事軟件測試職業的學生進行強化實踐訓練,由學校教師和有經驗的軟件工程師共同指導,要求學生獨立進行實際項目的測試,每個階段由指導教師評價測試用例、測試和測試報告的質量,使學生逐步達到軟件公司對軟件測試人才的要求。
第五,引導學生正確認識軟件測試技術和軟件測試職業。通過任課教師的講解、具有豐富經驗軟件工程師的報告、自己從各種媒體的學習等方式使學生了解軟件測試技術的重要性和廣闊的就業前景,激發他們學習和掌握軟件測試技術的興趣;同時要讓他們認識到軟件測試職業對軟件測試人員的要求較高,不僅要掌握軟件測試技術,還要具備軟件系統分析、軟件系統設計和軟件編程等方面的能力。由于軟件測試人員的工作是找出軟件中錯誤,并經常同系統設計者和編程人員交流,要訓練和培養學生具有嚴謹的工作習慣、良好的溝通能力和團隊合作精神。
4軟件測試課程教學實踐
我校計算機學院開設了軟件工程專業,幾年前專業建設領導就意識到市場對軟件測試人才的需求,及時修訂了專業培養計劃,設立了軟件工程專業的軟件測試方向。具體措施如下:
第一,進行了軟件測試課程建設。制定了軟件測試教學計劃,設立了軟件測試課程,增加了軟件測試課程設計,依托軟件工程實驗室建立了軟件測試實驗室,并開始建立軟件測試案例庫。
第二,加強軟件測試技術師資建設。從正在進行軟件項目開發的教師中挑選擔任軟件測試課程教師,并對他們進行短期培訓;同時從軟件公司(軟件工程專業學生的實習基地)中聘請有經驗的軟件測試工程師定期進行講座,并與任課教師進行交流。
第三,注重軟件測試實踐環節。依托軟件工程專業的實習基地,使部分對軟件測試感興趣和有志于從事軟件測試職業的學生的認識實習、生產實習、畢業實習和畢業設計在實習基地著重進行軟件測試的訓練。經過幾年的摸索和努力,2006年軟件工程專業畢業生中已有一批學生成功應聘到軟件公司從事軟件測試工作。
5結束語
隨著軟件公司規模擴大和正規化,社會需要大量的軟件測試人才,這給就業壓力極大的畢業生帶來了機遇,同時軟件公司希望招收有技術和經驗的員工,又給畢業生和高校帶來了挑戰。軟件測試人才培養剛剛起步,很多工作處于摸索階段,需要學校、教師和學生的共同努力,為社會培養出大批合格的軟件測試人才。
Discussion and Practice of Software Testing Course
HU Hong-yin
(School of Computer, Wuhan Institute of Technology, Wuhan 430073, China)
Abstract: Lots of software testing specialists are demanded currently, but they are not brought up by the colleges and universities, further more, the software testing course is not set in some colleges and universities. In this paper, teaching of software testing course is analyzed, course constructing, teachers, teaching method, practice of software testing course are discussed, and the teaching of software testing course in our university is also introduced.
Keywords: Software Testing; Course Constructing; Case Teaching; Practice Teaching
參考文獻:
[1] 古樂,史九林. 軟件測試技術概論[M]. 北京:清華大學出版社, 2004.
[2] 鐘元生. 軟件測試實踐教學特色的構造實踐[J]. 電化教育研究,2006,(10): 62-65.
作者簡介:胡宏銀(1972~),男,湖北大悟人,講師,碩士,主要研究方向:軟件工程。
聯系地址:武漢市武漢工程大學計算機學院胡宏銀
郵編:430073
聯系電話:027-69805647
電子郵件:huhongyin@hotmail.com