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