郭 煦
(上海電機(jī)學(xué)院 電子信息學(xué)院,上海201306)
2010年6月,教育部宣布啟動(dòng)“卓越工程師教育培養(yǎng)計(jì)劃”?!白吭焦こ處熃逃囵B(yǎng)計(jì)劃”是貫徹落實(shí)《國(guó)家中長(zhǎng)期教育改革和發(fā)展規(guī)劃綱要(2010—2020年)》和《國(guó)家中長(zhǎng)期人才發(fā)展規(guī)劃綱要(2010—2020年)》的重大改革項(xiàng)目,旨在培養(yǎng)造就一批創(chuàng)新能力強(qiáng)、適應(yīng)經(jīng)濟(jì)社會(huì)發(fā)展需要的高質(zhì)量各類型工程技術(shù)人才[1-2]。這項(xiàng)涉及逾千所高校400萬工科專業(yè)學(xué)生的重大項(xiàng)目,將聯(lián)合行業(yè)企業(yè)著力培養(yǎng)學(xué)生的實(shí)踐與創(chuàng)新能力。
軟件測(cè)試課程的教學(xué)通常是針對(duì)測(cè)試的基本概念、測(cè)試用例設(shè)計(jì)方法、測(cè)試各階段的主要任務(wù)為主線展開的,就測(cè)試講測(cè)試,而沒有置軟件測(cè)試的內(nèi)容于軟件工程的大背景下,與軟件工程其他專業(yè)課的銜接也沒有跟進(jìn)。其結(jié)果就是學(xué)生知識(shí)體系的構(gòu)建不夠完整,學(xué)到的是條條塊塊的知識(shí),而無法建立一個(gè)完整的軟件工程知識(shí)體系。
軟件測(cè)試課程涉及許多基本概念,如樁、驅(qū)動(dòng)、路徑覆蓋、回歸測(cè)試、吞吐量等,準(zhǔn)確理解這些概念是順利進(jìn)行軟件測(cè)試的基礎(chǔ)。對(duì)于教師來講,采用常規(guī)教學(xué)手段講授清楚這些概念并不困難,而學(xué)生學(xué)習(xí)這些概念靠的是死背硬記,沒有理解和掌握概念的含義。究其原因是理論教學(xué)和實(shí)踐教學(xué)脫節(jié)嚴(yán)重,理論教學(xué)采用滿堂灌的方式,很少與學(xué)生交流和互動(dòng),學(xué)生也沒有機(jī)會(huì)在實(shí)踐中深入理解這些概念。
一方面是由于軟件工程類專業(yè)的課程設(shè)置多偏重于軟件開發(fā)類課程,從程序設(shè)計(jì)語言到設(shè)計(jì)模式、架構(gòu)設(shè)計(jì),學(xué)生自然認(rèn)為開發(fā)是軟件工程的重中之重。反觀測(cè)試類課程,只有一門軟件測(cè)試技術(shù)課。另一方面,課程的內(nèi)容在很大程度上引導(dǎo)學(xué)生去給現(xiàn)有的程序或軟件找缺陷,學(xué)生也會(huì)認(rèn)為只有不會(huì)編程的人才會(huì)去做測(cè)試。因此,學(xué)生對(duì)軟件測(cè)試課程的重視程度不夠,學(xué)習(xí)動(dòng)力不足。
作為軟件工程學(xué)科的分支,軟件測(cè)試技術(shù)與軟件工程理論有著密切的聯(lián)系。因此,教師在教學(xué)過程中首先聯(lián)系先修課程軟件工程,重溫軟件生命周期,這樣既可以消除學(xué)生對(duì)本課程的陌生與敬畏感,又可以為本課程內(nèi)容的展開做好鋪墊。講授軟件測(cè)試的過程和階段時(shí),會(huì)重申軟件工程課程的相關(guān)內(nèi)容,同時(shí)也可以比較軟件工程中提到的瀑布型模型和當(dāng)前軟件開發(fā)中的V型模型,這樣可以使學(xué)生將兩門課程有機(jī)地聯(lián)系起來進(jìn)行學(xué)習(xí)。
在講授缺陷管理和跟蹤時(shí),除了介紹常規(guī)的缺陷管理工具等內(nèi)容外,還兼顧本課程的后續(xù)課程——軟件項(xiàng)目管理,對(duì)軟件項(xiàng)目管理的內(nèi)容適當(dāng)點(diǎn)撥,引領(lǐng)學(xué)生的思路從測(cè)試管理自然延伸到軟件項(xiàng)目管理。
在授課過程中也注意到與并發(fā)課程內(nèi)容的銜接和整合。如在講授單元測(cè)試工具JUNIT時(shí),會(huì)結(jié)合并發(fā)課程Java Web開發(fā)中SSH框架開發(fā)的內(nèi)容,講授JUNIT工具如何應(yīng)用在SSH框架下進(jìn)行單元測(cè)試。
綜上,在本課程的教學(xué)過程中,同時(shí)兼顧課程的先修課、后續(xù)課和并發(fā)課的內(nèi)容整合,使軟件測(cè)試過程置于軟件工程學(xué)科的背景之下,這樣就打破了各門課程內(nèi)容之間的壁壘,改善了彼此很少關(guān)聯(lián)的傳統(tǒng)課程教學(xué)模式,能夠建立課程之間的有機(jī)聯(lián)系。
在理論教學(xué)環(huán)節(jié),重視采用案例教學(xué)手段。讓學(xué)生帶著問題去學(xué),通過一個(gè)個(gè)具體問題的解決,將基本概念和原理的講授置于實(shí)踐的背景下,從而幫助學(xué)生準(zhǔn)確理解重要概念。如,通過幾組案例的介紹,強(qiáng)調(diào)軟件測(cè)試的重要性,同時(shí)激發(fā)學(xué)生的學(xué)習(xí)興趣,并由此引出軟件測(cè)試的目的。明確軟件測(cè)試的目的才能準(zhǔn)確地定位測(cè)試,并更有效地進(jìn)行測(cè)試,學(xué)生學(xué)習(xí)才有動(dòng)力和目標(biāo)。對(duì)于各階段的測(cè)試方法和測(cè)試工具,選擇一個(gè)簡(jiǎn)單的小程序或小型軟件,邊講邊演示。如在講授單元測(cè)試的時(shí)候,以類Gcd(求兩個(gè)數(shù)的最大公約數(shù)的類)為測(cè)試對(duì)象,結(jié)合講授單元測(cè)試工具JUNIT用法。在講授集成測(cè)試的時(shí)候,以類Environment(設(shè)定系統(tǒng)時(shí)間和日期的類,教師自編)為測(cè)試對(duì)象。在給學(xué)生展示類Environment的代碼以后,學(xué)生可以通過現(xiàn)有的知識(shí)來判斷,直接對(duì)這個(gè)類做單元測(cè)試是不可行的。通過提出對(duì)類Environment的測(cè)試問題,分析該測(cè)試問題,引出樁和驅(qū)動(dòng)的概念,從而給出該問題的解決方案,即集成測(cè)試方法的講授。在講授性能測(cè)試、驗(yàn)收測(cè)試和測(cè)試管理的時(shí)候,選擇以往學(xué)生的畢業(yè)設(shè)計(jì)項(xiàng)目作為樣本,解析對(duì)該項(xiàng)目的測(cè)試過程。因?yàn)閷W(xué)生對(duì)這類項(xiàng)目的需求是十分了解的,而且案例項(xiàng)目來自本校高年級(jí)學(xué)生之手,自然會(huì)激起學(xué)生的極大興趣。這樣就可以順利地展開對(duì)項(xiàng)目的需求分析、測(cè)試計(jì)劃制定、測(cè)試環(huán)境搭建、測(cè)試用例設(shè)計(jì)、測(cè)試執(zhí)行、測(cè)試結(jié)果分析及發(fā)布測(cè)試報(bào)告等測(cè)試環(huán)節(jié)。這樣,寓重要概念和重要方法的講授于實(shí)際問題的解決中,既可以激發(fā)學(xué)生的學(xué)習(xí)興趣,又能加深他們對(duì)重要概念的理解。
綜上所述,在軟件測(cè)試課程的教學(xué)實(shí)踐中,一方面注重從軟件工程學(xué)科的宏觀背景下講授軟件測(cè)試的基本流程,另一方面注重結(jié)合案例在微觀項(xiàng)目中講授軟件測(cè)試概念和方法,從而打通課程間的壁壘,幫助學(xué)生快速構(gòu)建知識(shí)體系,在實(shí)踐中理解和掌握軟件測(cè)試的重要概念。
傳統(tǒng)教學(xué)模式中,教師占據(jù)主體地位,教師講,學(xué)生聽,學(xué)生容易產(chǎn)生依賴心理,甚至感到疲勞、枯燥。在教學(xué)實(shí)踐中,我們的做法是讓教學(xué)實(shí)施圍繞某問題、任務(wù)或項(xiàng)目展開,以項(xiàng)目為載體,由教師引導(dǎo)學(xué)生自主學(xué)習(xí)和研究。如在講授測(cè)試用例的設(shè)計(jì)方法時(shí),以軟件測(cè)試領(lǐng)域經(jīng)典的測(cè)試問題(如nextDate問題、買槍問題等)為案例,要求學(xué)生以小組為單位討論測(cè)試用例的設(shè)計(jì)方案。由每個(gè)小組派代表交流設(shè)計(jì)思路,最后由教師點(diǎn)評(píng)。
同時(shí),針對(duì)本課程的重要知識(shí)點(diǎn)進(jìn)行梳理,制作了7套時(shí)長(zhǎng)10分鐘左右的慕課,充分利用線上手段對(duì)這些重要知識(shí)點(diǎn)進(jìn)行集中簡(jiǎn)短的講授。
翻轉(zhuǎn)課堂和慕課等現(xiàn)代化教學(xué)手段的實(shí)施,使學(xué)生從知識(shí)的被動(dòng)接受者轉(zhuǎn)變?yōu)橹鲃?dòng)建構(gòu)者,這種方法極大調(diào)動(dòng)了學(xué)生學(xué)習(xí)的積極性,讓學(xué)生學(xué)會(huì)獨(dú)立思考,綜合運(yùn)用所學(xué)知識(shí)解決實(shí)際問題;同時(shí)也鍛煉了學(xué)生的表達(dá)溝通能力。
軟件測(cè)試對(duì)學(xué)生的實(shí)踐能力也有很高的要求。有效的實(shí)踐教學(xué)是促進(jìn)知識(shí)理解、培養(yǎng)動(dòng)手能力的一個(gè)重要的環(huán)節(jié)。我們?cè)趯?shí)踐教學(xué)環(huán)節(jié)改革方面也進(jìn)行了積極探索。
實(shí)踐教學(xué)分為課內(nèi)實(shí)驗(yàn)和課程設(shè)計(jì)兩個(gè)部分。課內(nèi)實(shí)驗(yàn)作為理論課的有力補(bǔ)充,與課堂教學(xué)相輔相成,具有啟發(fā)學(xué)生積極思考,深入理解理論課內(nèi)容,達(dá)到理論聯(lián)系實(shí)際的作用。內(nèi)容安排上本著由淺入深、循序漸進(jìn)的原則交叉安排了認(rèn)知型、設(shè)計(jì)型、綜合型3種類型的實(shí)驗(yàn)項(xiàng)目。認(rèn)知型實(shí)驗(yàn)是基礎(chǔ)實(shí)驗(yàn),目的是讓學(xué)生掌握一些軟件測(cè)試工具的使用方法。我們選擇了大多數(shù)企業(yè)測(cè)試部門最常用的測(cè)試工具,包括JUNIT、JMeter、QTP、Selenium、Bugzilla 等。對(duì)于大多數(shù)被測(cè)軟件來說,這些測(cè)試工具完全能夠支撐整個(gè)軟件測(cè)試過程。設(shè)計(jì)型實(shí)驗(yàn)是另一類基礎(chǔ)實(shí)驗(yàn),讓學(xué)生通過設(shè)計(jì)實(shí)驗(yàn)方案將課堂所學(xué)理論知識(shí)應(yīng)用于實(shí)踐,進(jìn)一步鞏固理論基礎(chǔ),內(nèi)容有黑盒測(cè)試、白盒測(cè)試、單元測(cè)試等。綜合型實(shí)驗(yàn)是對(duì)知識(shí)點(diǎn)的綜合應(yīng)用,使學(xué)生理解和掌握軟件測(cè)試技術(shù)和各種具體的測(cè)試方法在項(xiàng)目中的應(yīng)用,感受軟件測(cè)試項(xiàng)目的工作流程和實(shí)施細(xì)節(jié),為后續(xù)的課程設(shè)計(jì)做好準(zhǔn)備。綜合型實(shí)驗(yàn)畢竟屬于常規(guī)實(shí)踐教學(xué)環(huán)節(jié),規(guī)模和難度都會(huì)適當(dāng)控制。高年級(jí)學(xué)生的畢業(yè)設(shè)計(jì)作品、軟件測(cè)試中的經(jīng)典問題等都作為綜合實(shí)驗(yàn)的素材。綜合實(shí)驗(yàn)一般包含2~3項(xiàng)軟件測(cè)試的重要方法或者重要概念。如針對(duì)公交換乘查詢軟件(學(xué)生畢業(yè)設(shè)計(jì)作品)做功能測(cè)試,驗(yàn)收測(cè)試并利用工具實(shí)現(xiàn)缺陷管理和跟蹤。
課程設(shè)計(jì)是實(shí)踐教學(xué)中非常重要的環(huán)節(jié)。理論教學(xué)和常規(guī)實(shí)踐教學(xué)給學(xué)生打牢理論基礎(chǔ)、奠定基本的操作技能,而課程設(shè)計(jì)則要求學(xué)生綜合運(yùn)用本課程及相關(guān)課程的知識(shí)解決實(shí)際的工程問題。課程設(shè)計(jì)安排在理論課程和常規(guī)實(shí)踐教學(xué)結(jié)束后進(jìn)行。學(xué)生自由組合為小組,分角色進(jìn)行。在課程設(shè)計(jì)教學(xué)中,我們應(yīng)用了當(dāng)今工程教育的CDIO理念。CDIO 分別代表構(gòu)思(Conceive)、設(shè)計(jì)(Design)、實(shí)現(xiàn)(Implement)和運(yùn)作(Operate),它以產(chǎn)品研發(fā)到產(chǎn)品運(yùn)行的生命周期為載體,讓學(xué)生以主動(dòng)的、實(shí)踐的、課程之間有機(jī)聯(lián)系的方式學(xué)習(xí)工程[3-6]:“構(gòu)思”側(cè)重測(cè)試的需求分析和測(cè)試策略的制定;“設(shè)計(jì)”側(cè)重測(cè)試用例設(shè)計(jì)和測(cè)試過程的設(shè)計(jì);“實(shí)現(xiàn)”和“運(yùn)作”側(cè)重測(cè)試工具的選擇、具體測(cè)試方案的實(shí)施。在課程設(shè)計(jì)中,我們選擇軟件企業(yè)的實(shí)際項(xiàng)目作為測(cè)試對(duì)象,結(jié)合企業(yè)提供的項(xiàng)目需求文檔,從需求分析、測(cè)試方案設(shè)計(jì)、測(cè)試計(jì)劃制定、測(cè)試用例設(shè)計(jì)到缺陷跟蹤等都由學(xué)生獨(dú)立完成。
在課程設(shè)計(jì)的教學(xué)和考核中,我們采取寬嚴(yán)相濟(jì)的考核辦法:嚴(yán)格要求學(xué)生自己動(dòng)手設(shè)計(jì)方案并實(shí)施,杜絕個(gè)別學(xué)生拷貝的現(xiàn)象;嚴(yán)格驗(yàn)收和檢查,要求學(xué)生編寫規(guī)范化文檔,并結(jié)合演示,隨機(jī)抽取提問等手段,使學(xué)生在思考—實(shí)現(xiàn)—再思考中真正得到提高。同時(shí)營(yíng)造一個(gè)比學(xué)趕幫超的學(xué)習(xí)氛圍,鼓勵(lì)學(xué)生發(fā)表自己的見解,鼓勵(lì)學(xué)生放開手腳大膽實(shí)踐。
卓越工程師不僅要能解決實(shí)際工程問題,而且還必須具備相應(yīng)的社會(huì)意識(shí)、人文精神、誠(chéng)信和職業(yè)道德[7]。對(duì)學(xué)生進(jìn)行專業(yè)教育的同時(shí),還要注意培養(yǎng)其職業(yè)道德。在課程教學(xué)中,讓學(xué)生了解作為一名合格工程師所必須具備的素質(zhì)與規(guī)范, 并要求學(xué)生在未來的學(xué)習(xí)與實(shí)踐環(huán)節(jié)中始終以工程師的道德標(biāo)準(zhǔn)與行為準(zhǔn)則要求自己。我們教育學(xué)生要勤學(xué)好問,發(fā)現(xiàn)問題不放過,學(xué)會(huì)充分利用各種資源解決問題。我們提倡理論聯(lián)系實(shí)際,要想真正學(xué)會(huì)測(cè)試,必須進(jìn)行實(shí)際的測(cè)試。我們反對(duì)閉門造車,鼓勵(lì)學(xué)生多了解行業(yè)動(dòng)態(tài),了解行業(yè)需求,有針對(duì)性地學(xué)習(xí)。我們教育學(xué)生要細(xì)心有耐心,軟件測(cè)試是對(duì)人的技術(shù)和意志的考驗(yàn),不細(xì)心就有可能與缺陷擦肩而過;沒有耐心就無法將枯燥的測(cè)試進(jìn)行到底。我們注重培養(yǎng)學(xué)生的團(tuán)隊(duì)精神和溝通能力,工程領(lǐng)域的工作絕非個(gè)人能力所及,必須學(xué)會(huì)匯集眾人的智慧和力量。在團(tuán)隊(duì)中,還要學(xué)會(huì)與團(tuán)隊(duì)中各種角色的人進(jìn)行有效、順暢的溝通。
作為軟件工程專業(yè)的重要基礎(chǔ)課程,軟件測(cè)試課程對(duì)傳授軟件測(cè)試技術(shù),培養(yǎng)學(xué)生的工程實(shí)踐能力都有重要作用。我們?cè)谲浖y(cè)試技術(shù)課程教學(xué)過程中,探索出“強(qiáng)化基礎(chǔ),重視實(shí)踐,著力提高動(dòng)手能力”的教學(xué)理念,并注重學(xué)生職業(yè)道德的養(yǎng)成教育,為卓越工程師培養(yǎng)方式進(jìn)行了積極探索。我們?cè)诮虒W(xué)過程中始終秉承這一理念,連續(xù)三年學(xué)生評(píng)教得分94.37(校平均得分90.96),連續(xù)三年督導(dǎo)評(píng)價(jià)得分92.21(校平均得分 90.12)。
我們將在教學(xué)實(shí)踐中繼續(xù)探索,不斷總結(jié)經(jīng)驗(yàn)教訓(xùn),期望能為卓越工程師培養(yǎng)做些實(shí)事,為培養(yǎng)符合現(xiàn)代企業(yè)要求的工程技術(shù)人才做出自己的貢獻(xiàn)。
參考文獻(xiàn):
[1]新華社. 國(guó)家中長(zhǎng)期教育改革和發(fā)展規(guī)劃綱要(2010—2020年)[EB/OL]. [2017-07-29]. http://www.gov.cn/jrzg/2010-07/29/content_1667143.htm.
[2]新華社. 國(guó)家中長(zhǎng)期人才發(fā)展規(guī)劃綱要(2010—2020年)[EB/OL]. [2017-08-30]. http://www.gov.cn/jrzg/2010-06/06/content_1621777.htm.
[3]康全禮, 丁飛己.中國(guó)CDIO工程教育模式研究的回顧與反思[J]. 高等工程教育研究, 2016(4): 40-46.
[4]謝愛娟, 曹劍瑜, 羅士平, 等. CDIO視域下構(gòu)建“五位一體”實(shí)驗(yàn)教學(xué)新模式[J]. 教學(xué)研究, 2015, 38(1): 98-101.
[5]汪軍, 強(qiáng)俊. 基于CDIO理念的軟件工程專業(yè)人才培養(yǎng)模式的研究[J]. 重慶工商大學(xué)學(xué)報(bào)(自然科學(xué)版), 2015, 32(6): 70-74.
[6]成淑萍. TOPCARES-CDIO模式下軟件測(cè)試課程教學(xué)改革[J]. 軟件導(dǎo)刊, 2015, 14(5): 187-189.
[7]隋秀凜, 吳秋鳳, 段鐵群, 等. 卓越工程師人才培養(yǎng)管理模式探索與實(shí)踐[J]. 大學(xué)教育, 2016, (5): 165-167.