吉雪蕓,譚火彬,蔡為東
(1.保定學(xué)院 數(shù)據(jù)科學(xué)與軟件工程學(xué)院,河北 保定 071000;2.北京航空航天大學(xué) 軟件學(xué)院,北京 100191;3.北京趣拿軟件科技有限公司,北京 100089)
軟件測(cè)試是一門(mén)實(shí)踐性很強(qiáng)的軟件工程專(zhuān)業(yè)的主干課程[1],從理論知識(shí)的角度,測(cè)試是軟件工程的一部分;從工作實(shí)踐的角度,測(cè)試是軟件開(kāi)發(fā)的一個(gè)環(huán)節(jié);軟件測(cè)試是一門(mén)課程,是一個(gè)領(lǐng)域,也是一份職業(yè)。從發(fā)展前景來(lái)看,在互聯(lián)網(wǎng)+時(shí)代,我國(guó)計(jì)算機(jī)軟件行業(yè)人才缺口高達(dá)60萬(wàn),其中就包括開(kāi)發(fā)、測(cè)試、運(yùn)維等崗位,作為衡量或者保障軟件質(zhì)量的重要手段,軟件測(cè)試技術(shù)得到迅猛的發(fā)展,市場(chǎng)對(duì)軟件測(cè)試人才的需求越來(lái)越大,企業(yè)需要更多對(duì)口資源的人才,尤其是高度職業(yè)化、專(zhuān)業(yè)化的測(cè)試人員[2],因此,加強(qiáng)軟件測(cè)試人才的培養(yǎng)成為高校相關(guān)課程的主要教學(xué)目標(biāo)。
軟件測(cè)試覆蓋的領(lǐng)域很廣,從概念理論的角度,有軟件測(cè)試基本理論、黑盒測(cè)試和白盒測(cè)試等;從市場(chǎng)需求的角度,常用的有功能測(cè)試、自動(dòng)化測(cè)試和性能測(cè)試等;從開(kāi)發(fā)流程的角度,有需求測(cè)試、單元測(cè)試、系統(tǒng)測(cè)試和敏捷測(cè)試等;從技能點(diǎn)的角度,有測(cè)試用例的撰寫(xiě)、缺陷報(bào)告的撰寫(xiě)、自動(dòng)化測(cè)試工具的操作等一系列實(shí)用技能。最重要的,還是軟件測(cè)試整體技術(shù)的把握和應(yīng)用[3]。高校里沿用的教學(xué)方法,大多屬于理論概念的講述,雖然理論是實(shí)踐的基礎(chǔ),但是和市場(chǎng)需求未免脫節(jié);雖有將理論應(yīng)用于實(shí)踐的環(huán)節(jié),也只是針對(duì)知識(shí)點(diǎn)的應(yīng)用,對(duì)軟件測(cè)試整體把握并無(wú)多大作用,加上軟件開(kāi)發(fā)技術(shù)的更新?lián)Q代,測(cè)試技術(shù)日新月異。一個(gè)測(cè)試工程師要有堅(jiān)實(shí)的理論基礎(chǔ),也要有必要的從業(yè)能力。畢業(yè)生兼有理論知識(shí)和實(shí)踐技能,是高校育人和企業(yè)用人的目標(biāo)。
為了激發(fā)學(xué)生的學(xué)習(xí)興趣,鍛煉學(xué)生解決實(shí)際問(wèn)題的能力,促進(jìn)學(xué)生就業(yè),為市場(chǎng)培養(yǎng)合格的軟件工程人才,高校以能力為導(dǎo)向的軟件測(cè)試課程研究應(yīng)從行業(yè)、理念、模式、環(huán)節(jié)等各方面入手完成以下目標(biāo):①明確教學(xué)任務(wù),總結(jié)職業(yè)技能;②調(diào)整教學(xué)內(nèi)容,實(shí)現(xiàn)知識(shí)與技能的融合;③豐富授課形式,借鑒企業(yè)模式。
經(jīng)過(guò)師生在軟件公司進(jìn)行調(diào)研、見(jiàn)習(xí)和教學(xué)大綱的把握,確定了包括熟悉測(cè)試規(guī)范、制定測(cè)試需求、擬定測(cè)試用例、執(zhí)行測(cè)試過(guò)程和撰寫(xiě)文檔等在內(nèi)的一系列職業(yè)技能。一般軟件測(cè)試的工作流程為測(cè)試需求分析、撰寫(xiě)測(cè)試文檔、設(shè)計(jì)測(cè)試用例、執(zhí)行測(cè)試、撰寫(xiě)測(cè)試報(bào)告和測(cè)試總結(jié)。有的公司要求測(cè)試人員集體參與全部工作,有的公司則將分工細(xì)化到每個(gè)測(cè)試員工。無(wú)論哪種形式,都要求測(cè)試工程師具有良好的分析需求能力、溝通能力、理解和分析問(wèn)題能力,再加上扎實(shí)的理論基礎(chǔ)和過(guò)硬的技術(shù)水平。如何提高學(xué)生的上述能力,實(shí)現(xiàn)與企業(yè)的對(duì)接,成為測(cè)試課程的主要教學(xué)任務(wù)[4]。
軟件測(cè)試課程的內(nèi)容包含概念、技能和規(guī)范,選取的一部分內(nèi)容見(jiàn)表1。
表1 軟件測(cè)試部分教學(xué)內(nèi)容
從1到4,是一個(gè)由點(diǎn)到面的過(guò)程,1和2涉及的概念相對(duì)分散,需要學(xué)生花時(shí)間去記憶。3和4更強(qiáng)調(diào)整體能力。
理論是基礎(chǔ),實(shí)踐出真知。為了將分散的知識(shí)點(diǎn)、技能點(diǎn)轉(zhuǎn)化成整體實(shí)踐能力,摒棄了表1中從1到4按階段實(shí)施教學(xué)的安排,將教學(xué)內(nèi)容用模塊的形式加以組織,每個(gè)模塊都由理論知識(shí)、技能或規(guī)范和案例構(gòu)成,教師提前安排理論部分的預(yù)習(xí),課堂上用提問(wèn)的方式引出技能點(diǎn),解決學(xué)生疑問(wèn),以案例的形式加深對(duì)理論的理解、規(guī)范的熟悉和技能的掌握。教學(xué)案例選用由淺入深,最后形成螺旋式的軟件測(cè)試教學(xué)環(huán)節(jié)。
表2中列舉了5個(gè)模塊的教學(xué)內(nèi)容。
表2 軟件測(cè)試教學(xué)模塊
需要說(shuō)明的是,重要的理論概念須進(jìn)行合理地穿插,比如黑盒測(cè)試,在之前的模塊中已經(jīng)出現(xiàn)過(guò),在后續(xù)模塊中再次回歸;而每個(gè)模塊有各自的重點(diǎn)概念和技能。同樣地,測(cè)試用例的設(shè)計(jì)和撰寫(xiě)也是每個(gè)模塊的必修環(huán)節(jié),這一技能會(huì)隨著不同的概念、場(chǎng)景和應(yīng)用反復(fù)錘煉,如在“測(cè)試的種類(lèi)1”模塊,教學(xué)內(nèi)容安排見(jiàn)表3。
作為一門(mén)和實(shí)踐活動(dòng)緊密結(jié)合的課程,在介紹常用測(cè)試技術(shù)的時(shí)候,需要代入場(chǎng)景,學(xué)生才能深入理解。從這一角度來(lái)看,學(xué)生能力的培養(yǎng),更需要企業(yè)工程測(cè)試人員的參與和引領(lǐng)。比如敏捷測(cè)試,由軟件測(cè)試工程師向?qū)W生進(jìn)行講解,學(xué)生的接納性更高。因此,企業(yè)級(jí)項(xiàng)目測(cè)試人員參與到教學(xué)環(huán)節(jié)中是必要的。
表3 測(cè)試種類(lèi)1教學(xué)內(nèi)容
校企合作已經(jīng)是軟件類(lèi)課程必經(jīng)之路,主要途徑有:通過(guò)企業(yè)工作場(chǎng)景的還原,接觸具體企業(yè)測(cè)試項(xiàng)目,學(xué)生的職業(yè)素養(yǎng)和能力可以得到提高。比如保定學(xué)院數(shù)軟學(xué)院將某企業(yè)實(shí)訓(xùn)加入實(shí)踐課程,使學(xué)生了解到軟件開(kāi)發(fā)設(shè)計(jì)模式的實(shí)用性;將企業(yè)工程師請(qǐng)入課堂,進(jìn)行案例講解,教學(xué)內(nèi)容可以雙方共同組織,也可以由企業(yè)人員制定。比如北京航空航天大學(xué)軟件學(xué)院的軟件工程課程,最后兩節(jié)大課就是由來(lái)自阿里達(dá)摩院的架構(gòu)師和去哪兒網(wǎng)的測(cè)試經(jīng)理完成教學(xué)任務(wù)。有經(jīng)驗(yàn)的測(cè)試工程師,會(huì)敏銳地捕捉到學(xué)生在實(shí)踐中存在的盲區(qū),向?qū)W生傳授“一般情況下,此類(lèi)問(wèn)題應(yīng)該如何解決”或者“應(yīng)該有哪些思路”,使學(xué)生進(jìn)一步認(rèn)識(shí)測(cè)試的重要性,萌發(fā)職業(yè)興趣,產(chǎn)生從業(yè)欲望。即便是沒(méi)有企業(yè)入駐,也可參考企業(yè)中的工作模式,采用項(xiàng)目驅(qū)動(dòng)的團(tuán)隊(duì)管理方法,模擬企業(yè)工作場(chǎng)景,例如,Scrum是目前企業(yè)常見(jiàn)的開(kāi)發(fā)方[5],同時(shí)也強(qiáng)調(diào)測(cè)試和開(kāi)發(fā)的同步性,將Scrum工作方法引入到教學(xué)中,即將學(xué)生分成若干團(tuán)隊(duì),每隊(duì)6人,測(cè)試經(jīng)理1人,測(cè)試團(tuán)隊(duì)5人。每個(gè)角色都有各自的職責(zé),協(xié)同工作。課堂開(kāi)始,教師提出問(wèn)題或工作場(chǎng)景,團(tuán)隊(duì)討論后擬定測(cè)試需求,由測(cè)試經(jīng)理撰寫(xiě)測(cè)試方案,分配任務(wù),執(zhí)行任務(wù),隨著方案細(xì)化,團(tuán)隊(duì)將新的問(wèn)題轉(zhuǎn)換為新的需求,如此重復(fù),直到課堂結(jié)束。這里的課堂,指的是課上課下一個(gè)整體,教師在課上課下進(jìn)行指點(diǎn),直到學(xué)生需求結(jié)束。
每個(gè)模塊結(jié)束的時(shí)候,每個(gè)團(tuán)隊(duì)有一份教師評(píng)價(jià)、一份自我評(píng)價(jià)以及一份同行評(píng)價(jià)(即同學(xué)評(píng)價(jià))。教師評(píng)價(jià)主要從概念的理解、技能的運(yùn)用給出評(píng)價(jià);學(xué)生主要從自身欠缺和自我提升方面做出自我評(píng)價(jià);同行評(píng)價(jià)則在自我評(píng)價(jià)的基礎(chǔ)上客觀地給出建議。所有的操作都錄制了視頻。教師和學(xué)生各存一份,便于回放和為以后的教學(xué)作準(zhǔn)備。以“測(cè)試的種類(lèi)1”模塊為例,其包含測(cè)試的概念、黑盒測(cè)試、功能測(cè)試、等價(jià)類(lèi)劃分、測(cè)試用例、缺陷報(bào)告、錄制視頻等知識(shí)點(diǎn)或技能,分別擁有優(yōu)秀、良好、合格、不合格等評(píng)價(jià)標(biāo)準(zhǔn)。
2017秋季,筆者使用新的教學(xué)模式開(kāi)啟了教研探索之路。學(xué)生們熱情飽滿(mǎn),求知欲很強(qiáng),在接口測(cè)試和性能測(cè)試兩個(gè)模塊,利用空閑時(shí)間在機(jī)房裝軟件,使用工具進(jìn)行測(cè)試,并撰寫(xiě)測(cè)試報(bào)告;在概念的理解和工具的使用的過(guò)程中,學(xué)生們開(kāi)始萌發(fā)對(duì)軟件測(cè)試的興趣;在分組迭代討論中,學(xué)生們主動(dòng)發(fā)現(xiàn)需求中的問(wèn)題,提出實(shí)現(xiàn)方案,給出測(cè)試用例,課下積極撰寫(xiě)缺陷報(bào)告。期末,94位同學(xué)參與了教學(xué)評(píng)價(jià),其中對(duì)課程內(nèi)容表示很滿(mǎn)意的達(dá)到了83人。保定學(xué)院數(shù)軟學(xué)院15級(jí)軟件工程專(zhuān)業(yè)有一部分學(xué)生在2019年1月找到了與測(cè)試相關(guān)的實(shí)習(xí)工作。
隨著軟件開(kāi)發(fā)過(guò)程地位的不斷提高,軟件測(cè)試已經(jīng)成為軟件工程專(zhuān)業(yè)的重點(diǎn)專(zhuān)業(yè)課程[6],在市場(chǎng)需求的不斷刺激下,教師主動(dòng)貼近軟件公司的用人要求,了解新技術(shù)、新模式,將靜態(tài)的理論和動(dòng)態(tài)的技能結(jié)合起來(lái),進(jìn)行教學(xué)實(shí)踐,同時(shí)實(shí)施校企合作方案,加大學(xué)校和企業(yè)的合作力度,給學(xué)生更多接觸市場(chǎng)的機(jī)會(huì),培養(yǎng)學(xué)生實(shí)踐能力,便于學(xué)生就業(yè),構(gòu)成一個(gè)良性循環(huán),為軟件測(cè)試課程和軟件工程專(zhuān)業(yè)其他課程的教學(xué)起到促進(jìn)、鋪墊和領(lǐng)引的作用。課程研究還有很多工作要做,比如測(cè)試平臺(tái)、測(cè)試方法層出不窮,不能一一介紹,全部掌握也不可能;學(xué)校畢竟和企業(yè)有差異,不能做到完全無(wú)縫銜接;測(cè)試是和開(kāi)發(fā)結(jié)合在一起的,如何以測(cè)試平臺(tái)或工具的學(xué)習(xí)以點(diǎn)帶面,激發(fā)學(xué)生主動(dòng)學(xué)習(xí)精神等,需要我們繼續(xù)探索和改革。