CDIO工程教育《軟件測試技術》教學改革

前言:尋找寫作靈感?中文期刊網用心挑選的CDIO工程教育《軟件測試技術》教學改革,希望能為您的閱讀和創作帶來靈感,歡迎大家閱讀并分享。

CDIO工程教育《軟件測試技術》教學改革

摘要:隨著軟件的復雜度和多樣性日益增長,軟件測試作為軟件質量保障的關鍵環節,重要性不言而喻。本文對新工科背景下基于cdio模式的《軟件測試技術》的教學進行探討,從教學內容、實驗環節、課程相融、企業實踐等方面進行研究,旨在將工程教育落到實處,提升課程質量,實踐表明教學改革成果取得一定的效果。

關鍵詞:新工科;CDIO;軟件測試;教學改革

0前言

基于國家戰略發展新需求,新工科計劃的提出,明確我國工程教育改革方向應以工程類人才的培養為核心[1-2]。自2017年開始,無論是“復旦共識”[3]還是“天大行動”[4]對知識的綜合應用能力,創新能力和工程性思維提出更高的要求。通過對新工科建設模式進一步的探討,旨在以新的理念、新的結構、新的模式、新的質量和新的體系推動現有工科專業的改革和創新,同時也為高校培養適應社會發展的應用型、工程性人才提供方向。近年來國際工程教育改革的最新成果CDIO模式,由構思(Conceive)、設計(Design)、實現(Implement)、運行(Operate)四個環節組成[5]。該模式由麻省理工學院等四所工程院校于2004年提出[6],以工程項目研發的全過程為載體,將教育環節融入工程領域的實踐情景中,讓學生主動參與實踐中,培養自學能力和工程意識的同時,讓學生在實踐中掌握工程基礎知識,提升項目實踐能力以及解決復雜工程問題和創新創業發展的能力,思維更加開闊,具備工程性大局觀。新工科提出“培養什么樣的人”即我們的目標,強調回歸工程。CDIO模式給出“如何培養人”即達成目標的路徑,強調“做中學”,與新工科的培養目標相吻合。兩者理念互相補充,符合人才培養規律。新工科背景下基于CDIO模式的教學研究為工程性人才的培養提供一條可復制、可落地的實施路徑,全面提升學生的知識水平、實踐能力和個人綜合素質。

1軟件測試技術發展及教學現狀

軟件測試貫穿于整個軟件開發全過程,是軟件質量的重要保障。隨著信息技術的發展,滿足人們生活、工作、學習的應用軟件越來越多[7],功能的復雜性和多樣性使得軟件規模也越發復雜和龐大,因此通過測試找到軟件中存在的缺陷是軟件發布前非常重要的工作和必經環節。軟件測試開展的好壞,直接影響最后的軟件質量?;谲浖|量的控制與保障,軟件測試在軟件行業中的地位與日俱增,企業對測試人員的需求和要求越來越高;此外,當前軟件測試的需求呈現多樣化,有系統功能、性能測試、面向對象測試、Web測試、移動APP測試等。同時自動化測試工具和軟件的出現,讓測試的專業度變得更高。“十四五”規劃對科技創新提出更迫切的需求,51testing發布的《2020年第十四屆軟件測試現狀報告》顯示我國當前人工智能、大數據、云計算發展迅速,但是軟件測試人才的不足成為制約我國軟件行業發展的主要因素。當前我國軟件測試人才缺口近40萬,并且缺口人數以每年20%的速度增加,在快速發展的技術時代,軟件測試人才的培養至關重要。《軟件測試技術》作為軟件工程專業的核心課程,培養學生掌握基本的測試知識和測試技能、熟悉軟件測試流程、能設計測試用例并開展測試,并對測試中應具備的原則和測試人員需具備的素質有深刻理解,同時在測試過程中培養學生的職業素養和團隊合作能力等。該課程是軟件開發中的重點環節,對支撐畢業要求中“培養學生解決復雜工程能力”有著舉足輕重的作用。通過調查發現,當前的軟件測試課程無法滿足企業和市場對測試人才的要求,問題主要存在以下方面:

1.1內容缺少新技術、新方法的講授,結構不完整

當前測試內容的講解重點圍繞在黑盒和白盒方法的講解和運用該方法設計測試用例上,對移動APP測試、面向對象測試、Web測試的講解較少,內容較陳舊,同時對逐漸成熟的自動化測試工具的涉及也較少。內容與社會崗位需求相比偏滯后;

1.2邏輯缺少連貫性,課堂教學內容呈現“碎片化”

對知識的點的講授偏散,雖然講授大量的黑盒方法例如等價類劃分、邊界值分析法、判定表等以及白盒方法例如各種邏輯覆蓋法、基本路徑法。但學生只是掌握一個一個碎片的知識點[8],對這些課程知識點間以及課程和課程知識點間的內在關系一知半解,學期末易出現遺漏現象,無法形成系統的知識體系;

1.3認知上學生普遍存在“重開發、測試”的觀點

在學習系統測試課程之前,學生已系統學習多種程序開發語言,學習的重點一直在軟件開發上,未來的目標也是從事軟件開發工作。對軟件測試的認知僅停留在開發結束后對系統功能進行簡單的驗證。學生誤以為測試課程的學習對開發用處不大,甚至沒有用處。對課程的學習不認真,有混學分、應付考試之態[9];

1.4實踐案例與企業崗位需求脫節,缺少應用性和專業性

實驗依舊圍繞傳統的三角型問題、NEXTDAY問題的用例設計和測試上,學生對課程實驗僅停留在理論的簡單應用,缺少真實性。無法感受真實的測試環境,同時在實踐過程中涉及的測試文檔撰寫不規范,缺少專業性。

2新工科背景下基于CDIO模式的《軟件測試技術》教學改革措施

為了應對未來的科技變革與挑戰,軟件測試的教學主要圍繞測試知識的講授與測試的實踐開展,分為理論和實驗兩部分,以行業需求為導向,貫穿“做中學”。旨在建立課程知識點間的邏輯串聯,模擬真實的測試環境提升學生的實踐能力。同時將計算機技術與軟件專業技術資格(水平)考試中的中級工程師即軟件評測師的內容、其它相關課程的內容以及相關領域的前沿技術與本課程的教學相融合,培養學生的創新意識和實踐能

2.1重組教學內容

在CDIO模式下,介紹完測試的基本理論知識以及相關概念后,以工程項目的生命周期為載體,基于整個軟件測試的環節:測試需求分析、制訂測試計劃、測試用例的設計、測試的執行和管理、測試的報告和評估。在各個環節滲透測試理論,讓學生具備完成該環節相應的知識儲備,掌握測試每個階段應完成的內容。建立完整的測試知識體系,將知識點的講授和測試項目的開展結合起來,提升學生的學術性,以及自主學習和持續發展能力;同時在每個測試環節引入企業經典文檔進行解讀,作為課程學習的重要補充,提升學生對測試行為表達的專業性。傳統的軟件測試,集中于三角形問題、傭金問題、NextDay問題的用例設計。在本課題背景下,基于時代發展,講授了特定環境下的測試開展和測試方法,加入新測試方向,新測試工具的運用。比如移動APP測試、面向對象測試、Web測試等。在測試過程中介紹主流的自動化測試工具,通過對同一項目的手動和自動測試結果對比,讓學生體會自動化測試的執行過程和執行復雜程度,實現從手動測試到自動測試的過渡;此外,將教學內容進行課外的延伸,通過開放實驗室項目,進行工程訓練。訓練圍繞CDIO模式開展,學生通過自行組隊,自主查閱資料,對所給項目進行分析,制訂測試計劃(C)后通過組內合作完成用例的設計和完善(D),進一步開展測試(I)。測試過程以答辯展示,測試結果以報告提交(O)。該環節是課堂內容的拓展,所選項目由教師針對性選擇,既要有明顯錯誤,讓學生能上手,又要有隱藏錯誤,讓學生主動思考。同時引導學生向著高效率挑戰,使用自動化工具進行測試,提升教學的高階性。

2.2實驗環節開展沉浸式測試

為能將理論得到較好的應用,對重點環節輔以相應的實驗,突出工程實訓。將實驗的開展和CDIO四個環節相結合。在此過程中,通過學習主流公司的經典測試案例,了解測試過程,提升學生的職業素養以及對測試的理解。實驗環節主要以小組開展“沉浸式”為主,讓學生真正參與測試當中?;贑DIO模式,結合所給案例,小組通過以下環節開展測試。該環節重點挖掘學生的主動性、創造性。過程模板一改傳統的由教師下發轉變為學生依據項目討論制定。具體實驗環節如下表1所示:小組在整個項目運作過程中模擬真實測試,從接受者變為參與者。以團隊合作形式開展測試,在組長的帶領下進行項目分析、方案探討、任務分配、資源整合。測試所發現的缺陷經過組長確認后記錄到缺陷報告中;評審環節是測試實施中關鍵的一環,無論是測試計劃的提出還是測試用例的設計以及對程序的糾錯,都要經過評審會議進行審核。一方面能鍛煉學生的表達能力;另一方面對測試進行質量把關;通過答辯展示各組的測試過程,其它小組作為評委對答辯者進行提問,在交流過程中,對存在的問題,教師不斷與學生交流,引導學生思考問題、解決問題,將測試的執行與測試學習融為一體。經過評審、答辯、反復修改后學生的創新性和團隊意識將有很大的提高。

2.3課程相融,建立課程群體系

軟件評測師是國家軟考即計算機技術與軟件專業技術資格(水平)考試中針對軟件測試的中級工程師考試,該考試對從事測試工作的軟件評測師的能力和素質從不同維度提出了要求。因此,將該考試大綱和考試內容與課程進行融合,用工程師標準要求學生。教師親身參加該課程的考試并取得相應證書,在此過程中,了解軟件評測師的需求,從而將課程與軟考融合讓課程大綱與考試大綱保持一致。通過對近十年軟考真題的整合,結合教學內容,配套相應真題,建立了針對性的習題庫開展練習,讓學生學習有方向、有目標。課程的練習不僅停留在課后作業,也吸取軟考中的一些案例分析、用例設計等,提升學生對知識的應用能力。軟件測試并不是孤立存在,與軟件工程課程,有著密切聯系。軟件工程課程講述科學開發軟件的過程,軟件測試伴隨著整個軟件開發,因此基于CDIO模式將測試課程的講授與軟件工程中軟件開發過程一一對應,讓學生更好地體會每個環節應對應什么樣的測試工作,具體環節見表2:在課程的講授過程中,將課程置身于軟件工程宏觀背景下,結合軟件工程中軟件開發教學內容和其它程序設計教學內容開展教學。構思和設計部分重點考察學生的測試計劃的設立、測試用例的設計。實現和運行部分重點考察學生基于測試用例對測試的執行、缺陷的管理和測試的總結。讓學生學習科學開發軟件的同時也學會科學的測試。課堂上所用的測試程序,選取該學期關聯性高的其它程序課程中正在設計的程序開展測試,不同課程間從不同角度進行考核,共享實驗成果。一方面建立了課程間的聯系;另一方面讓學生參與自己設計程序的測試過程中,讓測試氛圍感變得更強。在學生之間搭建了軟件測試和其它課程間的橋梁,讓學生能知測試、用測試。將軟件測試的教學與學科競賽相融合,提升學生學習的積極性。通過引導學生積極參與軟件測試大賽,讓學生親身參與工程性問題的測試與實踐中,實現理論到實踐的應用和升華,真正做到能分析、能設計、能執行、能報告。也鼓勵學生將其它正在參與的學科競賽的程序當做本課程的測試程序,同一個案例,既可從開發角度,也可從軟件測試角度進行分析;同時每次參與大賽也是一次自我的提升,大賽的相關資源也可用到軟件測試的課堂教學中,拓寬課堂教學的深度與廣度。

2.4參與企業項目,提升實踐能力

通過暑期企業實踐或掛職鍛煉等形式提升教師的工程實踐能力,讓教師真正參與真實的企業實踐中。利用教師真實的軟件測試經驗,更好地開展教學,讓課堂言之有物,而非理論實踐兩張皮;同時加強“雙師型”教師的培養,不僅注重專業測試知識積累,也重視專業測試的實踐。既能上課堂,又能下工廠。同時借助校企合作,讓學生參與測試一線,了解測試前沿發展技術和企業最新要求,掌握最新測試工具和方法,為造就應用型人才和構建科學職業規劃奠定基礎。

3實施效果

通過對軟件測試技術課程的教學改革,教學取得初步進展和積累。在對本課程教學持續的改革和完善中,每年學生的期末總評成績較去年均有小幅度提升,同時中級軟件評測師證書的考取率實現了0的突破。在畢業設計中,畢業選題從全部圍繞程序開發、算法設計到部分學生開始以測試作為畢業論文的重點研究方向并高質量完成畢業論文。學生對未來的職業規劃,從僅停留在軟件開發工程師上開始對測試工程師有了一定的認知,學生的畢業選擇有了多樣性,選擇了最適合自己的工作崗位。同時測試課程的學習也為學生更好地從事其它軟件行業工作添磚加瓦。

4結語

新工科背景下基于CDIO模式的《軟件測試技術》教學改革,以學生為中心,培養測試工程師為目標,結合行業動態和企業要求,針對課程教學中出現的問題,通過讓學生真正參與測試等一系列方法進行教學改革實踐,提升學生的動手能力,激發學生的學習興趣,培養學生的團隊精神和創新意識,形成學中做、做中學、學中思的良好氛圍,教學效果明顯改善。未來將進一步完善CDIO模式在本課程中的應用,旨將這些經驗在其它相關領域課程中得以應用、推廣。德州學院計算機與信息學院推行的“一生一師一項目”拓展學習的視野,鍛煉學生的邏輯思維能力,實踐任務化、目標化學習過程,增強學生學習的自主性和能動性,本論文為實踐成果的一部分。

作者:閆婷 單位:山西工商學院

亚洲精品一二三区-久久