林若欽

摘要:隨著軟件工程復雜度不斷的上升,軟件工程質量要求不斷提高。傳統的軟件測試課程的教學已經不能滿足時代發展的需要。從傳統的軟件測試實驗教學出發,針對已存在的問題和實驗教學的總體目標要求,探討以項目驅動的軟件測試實驗教學改革意義與方案。以合理的課程體系分布,適當的實驗內容的分布,滿足人才培養方案的要求。
Abstract: With the increasing complexity of software engineering, software engineering quality requirements continue to improve. The teaching of the traditional software testing course can't meet the needs of the times. From the traditional software testing experimental teaching, aiming at the existing problems and the overall objectives of the experimental teaching requirements, this paper explores the significance of project driven software testing and experimental teaching reform, which with reasonable distribution of the curriculum system, the distribution of appropriate experimental content, can meet the requirements of personnel training program.
關鍵詞:軟件測試;項目驅動;實驗教學;教學改革
Key words: software testing;project driven;experimental teaching;teaching reform
中圖分類號:G642.0 文獻標識碼:A 文章編號:1006-4311(2017)03-0226-03
0 引言
軟件測試在很早以前就是軟件工程里的一個課程。但近幾年來才被國內的軟件行業及軟件公司所重視。因而出現需要大量軟件測試人員的需求。所以國內的很多高校因市場的需求,開設了相關的軟件測試專業或方向。但很多學校的開設的軟件測試的課程只停留在基本理論的學習,或者測試工具的介紹上,以至于畢業出來的學生只能滿足最底層的測試工作。而較高要求的測試崗位很難招到人。所以培養“高素質、復合型”的軟件測試人才,是學校的當務之急,軟件測試的教學改革勢在必行[1]。
1 傳統測試課程教學存在的問題
教學課時少,課程結構單一。傳統軟件測試是以軟件工程原理的一個章節來講的。講課的課時也就4個學分。老師授課只是對測試基本的概念及流程作講解,內容偏重理論且抽象。學生理解和掌握難度比較大,在實際測試工作中無法入手。現如今對軟件測試的工作越來越重視,對軟件測試的工作要求越來越高。如此單一教學內容,讓學生今后勝任軟件測試的相關工作是不現實的。
重理論,輕實踐。傳統軟件測試課程的教學一直以任課老師講授以主,學生被動接受知識,在理論的教學過程中,授課老師重點講解軟件測試的基本概念、原理及方法。但軟件測試的相關課程在實踐方面要求有較強的動手的實踐能力。如在講解黑盒測試、白盒測試中的測試方法來設計測試用例時,實際使用過程中需要結合多種方法來保證測試用例的完整性,這需要引入實際的生產案例來練習。再如在講解單元測試、集成測試時,在講解單一類的測試、容器內的測試、數據庫持久層的測試時,如果老師在授課時只是講理論,沒有引入實際的生產案例,學生很難體會到課程的挑戰和樂趣,缺少主觀主動性,學習效果較差。這樣的教學質量難以保證,學生很難學以致用。
2 項目驅動教學的內涵
“項目教學法”最早見于美國教育家凱茲和加拿大教育家查德合著的《項目教學法》。“項目教學法”的理論認為:知識可以在一定的條件下自主建構獲得;學習是知識、技能與行為、態度與價值觀等方面的長進;教育是滿足長進需要的有意識、有系統、有組織的持續交流活動。教育家陶行知先生說過:教、學、做應是一體化的,教、學、做是一件事,不是三件事[2]。
項目教學法由以下內容組成:有一定的教學內容,具有實際應用價值;能將理論知識和實際崗位技能結合起來;與企業實際生產或商業經營等活動有關系;學生可以獨立制定計劃并實施;學生可以運用所學知識克服、處理在項目工作中出現的困難和問題;有一定的難度,學生在完成過程中能掌握和運用新的知識和技能;要滲透情感、態度、價值觀的培養;有明確而具體的成果展示,師生能共同評價項目完成情況和工作成果[3][4]。
3 項目驅動的軟件測試實驗教學的意義
以軟件行業發展需要為依托,面向軟件開發(敏捷開發)過程中對軟件測試人才的迫切需求,以提高教學質量為核心,以教學改革為動力,以實現軟件開發與測試的學生知識、能力與素質協同發展為原則,以培養學生實踐能力為目標,結合學科優勢,以主干課程建設為突破點,開展項目驅動軟件測試實驗教學改革與研究,構建和實踐面向應用型本科軟件測試人才的專業實驗教學體系。具體的意義可歸納為以下四點:
①優化測試相關專業主干課程體系,打造以項目驅動軟件測試實驗教學的專業特色。測試相關主干課程體系優化與專業課程實驗教學改革是項目的核心。專業主干課程體系的建設能直接反映專業課程建設的目的和培養目標,是提高人才素質和保障教育質量的核心環節,也是衡量教學水平和教學質量的重要標志[5]。因此,面向軟件工程和軟件實踐背景,開展“項目驅動軟件測試實驗教學”,對于豐富和完善軟件測試課程教學改革,培養適應軟件測試行業中“高素質,高要求”的復合型、應用型管理人才,打造學科專業特色,形成學科專業競爭力,具有重要價值。
②以主干課程教學組織與團隊建設為著手點。制定主干課程建設的方案和措施,通過課程示范作用,帶動本專業相關其他課程的建設與改革。狠抓主干課程教材的選用與編寫、教學大綱的制定、應用案例的編寫、教學內容的精選、教學手段與教學方法的改革等環節,夯實了主干課程建設的基礎,并為該專業今后教學改革奠定基礎。
③以點帶面,擴展軟件工程專業實驗教學體系。通過在主干課程中適當引入綜合性實驗、設計性實驗、軟件工程案例分析,可加強學生的實踐技能、創新意識和團隊精神的培養,提高學生的綜合運用能力和競爭力。從長遠來講,這項成果會進一步提高我校該專業的人才綜合素質, 進一步提高該學科專業綜合競爭力。
④擴大畢業生就業率及提高就業檔次。通過該項目的建設,希望能推動該學科專業課程體系的優化,改善廣州大學該專業本科學生的知識結構,提高軟件測試學生的綜合素質和專業技能,擴大畢業生就業率及提高就業檔次。
不管是站在專業學科建設的角度,還是站在學生培養的角度,從培養“高素質、復合型”的軟件測試人才、解決學生就業的目標來看,教學改革研究均具有重要的意義,有必要開展系統、深入的研究。
4 項目驅動的軟件測試實驗教學改革方案
以培養“高素質、復合型”的軟件測試人才為目標,以專業主干課程體系優化主干課程教學團隊,強化主干課程配套的實踐教學環節,構建了理論教學和實踐教學相結合的、 “測試理論+測試方法+測試工程”三位一體的主干課程培養體系,并開展長期的跟蹤實踐,努力在應用型創新人才培養模式上形成自身的專業特色,完善“強基礎、重能力、多樣性、個性化”的人才培養方案。
4.1 軟件測試的課程體系的建立
隨著軟件行業對軟件測試重視,軟件測試對從業人員的要求也越來越高。傳統的教學內容已經不能滿足就業人員的需要。需對軟件測試的課程體系進行擴展、優化。如圖1軟件測試教改實踐課程體系所示。
軟件測試基礎:本課程從理論和實踐兩個層面引導學生學習軟件測試的基礎知識,涵蓋軟件測試的思想、流程和方法,主要內容包括軟件測試的基本概念和基本原理、白盒測試方法、黑盒測試方法以及面向對象軟件測試等知識點。
高效單元測試:課程以最典型的單元測試框架JUnit為例講述了單元測試的方法和最佳實踐,介紹了在java軟件開發中使用junit進行測試的原則、技巧與實踐,深入闡述如何編寫自動測試。課程討論了實踐中的測試技術,主要內容包括:用mock objects進行隔離測試、用ant和maven進行自動構建、Cactus進行容器內測試的方法、對java應用程序、數據庫應用程序等進行單元測試,以及Parasoft Jtest的使用。
WEB項目應用測試:由淺入深、全面、細致地闡述了如何使用開源測試工具來完成Web自動化測試,便于學生輕松掌握Web自動化測試的原理、方法和實際操作。課程將教如何使用Selenium、WebDriver、Jmeter、Badboy搭建起一整套穩定、高效、低成本的自動化測試平臺。結合應用實例展示web應用項目測試的過程。
軟件測試質量與保證:軟件測試質量與保證是面向軟件測試方向一門專業必修課,在學習軟件測試基礎理論與技術的基礎上,加強對軟件質量的認識及質量保證的重視,主要從軟件質量的概述、軟件質量工程體系、軟件質量度量、軟件可靠性測試、軟件質量標準、全面質量控制等多方面展開對軟件質量保證的深入學習。
性能測試與優化管理:從測試項目實戰需求出發,講述了性能測試技術和軟件性能測試工具應用的實戰知識。引入項目案例,詳細講述性能測試方案實施、性能測試計劃制定、性能測試用例設計、性能測試腳本開發、性能總結、性能優化管理及相關交付文檔。
軟件測試綜合項目實訓:本課程綜合應用軟件測試方向各門專業課程,以一個實際案例貫穿整個教學過程,使學生對軟件測試的過程有深刻地理解,包括測試需求的獲取、制定測試計劃,設計測試用例,測試執行、測試缺陷、測試評估及報告,并在實訓過程中加強對團隊協作的體會及文檔的協作能力。
移動應用程序測試:本課程將從實際應用角度出發,以智能終端和4G業務規劃為基礎,介紹手機測試的方法和實踐技術,主要內容;手機設備軟硬件的現狀與趨勢,手機軟件測試用例設計技術與方法,手機軟件體系結構與手機軟件測試技術和常用測試工具。
4.2 項目驅動實驗教學的實施方針
由于課程深度的不同,項目驅動實驗教學的方針與過程也不同。其主干課程項目驅動實驗教學的實施方針如下:
《軟件測試基礎》由于是基礎課程,課程涉及的基礎概念比較多,且為低年級的學生。所以實驗教學的案例要以單獨、經典的小應用實例為主,以鞏固和強化理論知識為目的。
《高效單元測試》軟件測試專業課。課程涉及代碼級軟件測試方法與技術。課程從應用程序的角度可分為三個方面的單元測試:表示層單元測試、運用層單元測試、數據層單元測試。從這三個方面再拆散成若干個小實驗以便對應相應的理論知識。在實驗案例選擇的原則要以高年級完成的課程設計或畢業設計為主,其原因是這樣的項目實例學生能更好的理解,上課的更有效果。
《WEB應用項目測試》軟件測試專業課。課程主要講解Web自動化測試的原理、方法和實際操作及測試工具的使用。在項目驅動實驗教學實例的選取了一些比較完善并同學比較熟悉的系統,比如學院的信息管理系統或學院的郵件系統。學生對這些系統的業務比較了解。做自動化測試比較容易上手。
《軟件測試綜合項目實訓》是一個以實際案例貫穿整個教學過程,以學生為主,教師為輔的綜合項目實訓課程。在實驗教學的實例選取上要求要接近企業的工作要求。所以項目組在設計用例時,直接向相關校企合作單位,要來需求和被測項目,并設計成實驗教學,以便學生在最接近現實的環境中作項目實訓。
《移動應用程序測試》軟件測試選修課。課程主要講解移動測試的原理、方法和實際操作及測試工具的使用。在項目驅動實驗教學實例的選取上,把學校組織參加比賽的移動應用項目拿來測試,這個項目影響較廣,學生對業務比較了解也比較。
5 小結
如何正確處理系統性理論知識體系與學生實際能力培養之間的矛盾?其解決的基本途徑是:重視實際能力培養,強化軟件測試工程案例教學,重視課程配套的課內課外各種實踐教學,強化學生人文素質培養。只有這樣,才能解決學生專業知識面過窄、適應能力差、滿足不了高要求的根本問題。如何搞好主干課程體系建設和主干課程師資隊伍建設,其解決的基本途徑是:以測試相關主干課程和教學團隊建設著手點,建立完善的主干課程體系,發揮主干課程的帶動效應,可達到以點帶面效果,解決課程教學內容不先進、教學方法單一、教學手段落后、教師業務能力不強等問題。
參考文獻:
[1]宰光軍,任兩品,劉燕.復合型軟件測試人才培養模式的探索與創新[J].計算機光盤軟件與應用,2012(20).
[2]張世澤,劉同先,丁升選,呂淑敏.淺議項目教學法在我國的發展、應用和建議[J].教育教學論壇,2014(50):168-169.
[3]鄭春瑛,郭偉青.項目教學法在管理信息系統課程中的應用探討[J].中國職業技術教育,2007(22).
[4]侯占軍,葛竹春,胡曉旭.項目驅動教學法在《管理信息系統》課程教學中的應用與研究[J].金融理論與教學,2010(2):76-77.
[5]祁克宗,劉紅梅,涂健,張麗霞.以專業主干課程建設為核心推進教學內容與課程體系改革[J].高等農業教育,2006(10):54-56.