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