郭莎莎 張兵 黃中杰



摘?要:結合工程教育專業認證對應用型本科院校的學生培養目標要求,分析本科院校學生能力現狀,針對自動化測試既有理論性又有實踐性、對學生編程能力有要求的教學和實施難點,提出逆向思維教學法,由果到因,由實踐到理論,理論與實踐相結合,以案例驅動培養學生的主動思考和解決問題的能力,使學生掌握針對Web應用的自動化測試技術。
關鍵詞:工程教育專業認證;自動化測試;逆向思維;案例驅動
Exploration?of?Reverse?Thinking?Teaching?Practice
in?Automation?Testing?Experiments
Guo?Shasha?Zhang?Bing?Huang?Zhongjie
Department?of?Computer?and?Information?Engineering,Xinxiang?University?HenanXinxiang?453003
Abstract:Incorporating?the?requirements?of?engineering?education?professional?accreditation?for?the?cultivation?of?students?in?applicationoriented?undergraduate?colleges?and?universities,this?paper?analyzes?the?current?situation?of?students'?abilities?and?proposes?a?reverse?thinking?teaching?method?aiming?at?teaching?and?practicing?difficulties?of?automated?testing?which?requires?both?theoretical?and?practical?skills,as?well?as?programming?proficienty.The?method?combining?theory?and?practice,driven?by?case?studies,intends?to?cultivate?students'?ability?to?actively?think?and?solve?problems?and?enable?students?to?master?automated?testing?techniques?for?web?applications.
Keywords:engineering?education?professional?accreditation;automation?testing;reverse thinking;case?driven
在計算機行業,軟件測試是軟件開發過程中不可或缺的一個重要環節,是充分保證軟件產品質量的一個重要技術手段。隨著軟件行業的蓬勃發展,軟件測試工程師的需求越來越多。自動化測試是軟件測試領域的重要組成部分,注意通過編寫腳本和應用工具來模擬用戶操作,自動執行測試用例,提高測試效率和準確性。自動化測試是生產實踐中有效保障軟件質量、降低人工成本、提高效率的一個環節。在軟件開發快速發展和Web應用復雜性不斷增加的情況下,自動化測試在軟件開發生命周期中的地位越來越重要。對于軟件測試工程師來說,如何熟練地應用測試工具和技術已經成為他們職業生涯中必不可少的一部分。為了更好地促進高校畢業生的就業,培養滿足社會需求的高質量人才,多所高校開設“軟件質量保證與測試”課程對學生進行軟件測試技術應用能力的培養,尤其是對自動化測試工具和腳本的教學可以為學生成為一名軟件測試工程師打下堅實的基礎[13]?。
1?教學背景
自動化測試是將人工測試過程轉化為機器自動化執行測試任務的過程,即通過模擬人工測試過程編寫和運行測試腳本。在教學過程中,自動化測試不同于純理論教學,其作為上機實踐的教學重點,同時也是教學難點,對學生實踐能力要求較高。自動化測試工程師要求求職者除具備軟件測試崗位基本素質以外,還應有扎實的專業知識能力,包括軟件測試方面的能力和軟件開發能力。此課程面向大三學生,學生具備基本的軟件開發能力,但是由于缺乏實踐,學習自動化測試時仍然有一定的困難。其次,由于此課程大部分內容偏向理論知識,知識點繁雜,且自動化測試工具多為商業化軟件,不利于學生自主練習,學生整體興趣和主動學習積極性不高[4]?。
工程教育認證要求以學生為中心,成果導向,聚焦學生的能力培養,并持續改進[5]?。近年來,滿足工程教育認證要求的自動化測試教學改革研究略有欠缺,針對教學現狀提出采用逆向思維教學法對自動化測試教學內容進行整合,幫助學生更靈活地運用現有資源,使學生更好地學習和掌握自動化測試理論知識,提升自動化測試實踐能力。以新鄉學院為例,“軟件質量保證與測試”課程主要面向軟件工程專業、數據科學與大數據技術、3D打印軟件技術專業,教學內容包括軟件質量與軟件測試基本理論知識、黑白盒測試方法、軟件生命周期各階段測試技術、自動化測試、軟件測試管理等內容。一方面,自動化測試是學生發展為軟件測試工程師的必備能力;另一方面,Web應用大有盛行之勢。在自動化測試實踐教學環節,主要教授對Web應用的自動化測試方法和技術。以往順向思維教學過程中,學生缺乏學習和思考主動性,由于編程能力不足在自動化測試學習中望而卻步的不在少數。
2?逆向思維教學實驗設計
逆向思維指的是從結果出發逆向分析問題的一種思維方式,包括反向工程、調試和優化代碼等。自動化測試教學中,常規正向思維教學按照課程知識理論體系先講授自動化測試理論知識,再應用自動化測試工具實踐操作以加深對理論知識的理解。理論知識學習中,學生由于缺乏實踐記憶不夠深刻,難以準確理解,進而在開始動手實踐時需要重新梳理知識以指導實踐。其次,自身編程能力不足的同學在學習腳本時易故步自封、放大困難。通過逆向思維的教學方式和案例驅動的教學方法,引導學生在案例實踐中準確把握自動化測試過程,理解自動化測試的方式方法,理解腳本的運行模式,從而更好地理解被測試軟件的內部結構和工作原理,更易掌握測試腳本編寫技術和發現潛在的問題。
采用先實踐后理論的模式,以案例驅動,通過錄制、回放、調試、回放、導出腳本、學習總結的步驟,實施自動化測試實驗。學生首先采用自動化測試工具通過錄制手工測試的過程感知自動化測試工具的測試流程,以問題為導向,對遇到的具體問題加以分析解決,增強對自動化測試的理解。
2.1?自動化測試工具
常見的自動化測試工具有Jmeter、Selenium、QTP、LoadRunner等開源和非開源的、測試功能和測試性能的,針對不同的測試需求,可以選擇不同的測試工具。Selenium是一款開源的輕量級自動化測試工具,支持主流的編程語言,支持常見的瀏覽器Google、Firfox等,可以滿足跨平臺、跨瀏覽器的Web自動化測試需求[6]?。Selenium?IDE作為瀏覽器插件,安裝和應用非常簡便,適合教學和學生學習。
2.2?案例驅動實驗設計
學習通平臺作為教育部第一批推薦的22個學習平臺之一,是我校教學共用的一款學習平臺。學習通是一款正式運營中的平臺,系統穩定,是很好的測試案例。同時,教師通過學習通平臺創建課程、上傳課件資料、布置和批改作業等,學生在學習通上學習公開課程、完成并提交作業、進行話題交流等,雙方對學習通都有著較為熟悉的認知。教學與學生實踐案例選擇學習通平臺作為測試平臺,既可以避免花費心思和時間尋求案例和搭建平臺,同時以熟悉的平臺為測試目標,又可以調動學生的測試積極性。其次,學生登錄自己個人賬號進行測試,可以要求學生人盡參與。更重要的是,由于學生所學課程不同、課外學習內容的不同,學習通平臺展示的內容不完全一致,針對同一平臺操作步驟不同,在測試過程中可以獲得獨一無二的體驗。教學實驗內容依據專業畢業要求及其指標點進行具體設計。
2.2.1?課程目標及自動化測試實驗目標
結合工程教育專業認證要求,明確本門課程的畢業要求指標點,制定課程目標:
課程目標1:掌握軟件質量保證與測試的基礎知識和理論、基本方法和技術,了解影響軟件質量保證與測試的各種因素,樹立嚴謹的思想和處事態度,能夠進行軟件性能優化。
課程目標2:掌握軟件測試設計方法,能夠針對特定測試需求設計測試用例,開發測試腳本,執行測試過程。
課程目標3:掌握軟件質量保證與測試常用工具,并能選擇使用恰當的技術、資源和工具,解決較為復雜的軟件測試實際問題。
課程目標與畢業要求指標點對應關系如表1所示。
針對課程目標明確自動化測試實驗目標和綜合素質目標要求,以成果為導向,培養學生的綜合應用能力。學生通過實驗要能夠掌握基本的軟件測試方法和技術,掌握自動化測試工具和技術,在實驗中自主探索,培養“精益求精”的工匠精神。
2.2.2?實驗內容
依據實驗目標制定實驗指導書,要求學生按要求進行實驗操作,在實踐中學習。合理的實驗內容安排對學生動手實踐、學習并理解自動化測試具有重要的意義,實驗內容及實驗過程如表3所示。
2.2.3?教學評價
合理的教學評價方式可以更全面地反映學生的學習效果與教學改革效果。教學評價從主觀、客觀兩個方面進行多維度評價,主觀評價參考學生掌握情況的問卷調查結果、學生自動化測試工具的應用演示、學生對自動化測試的理解三個維度;客觀評價參考課程目標達成度評價方式,考量本環節在整體課程中歷年的達成情況。
經過對2022級軟件工程(專升本)共計224名學生的問卷調查與客觀成績數據分析,學生對課程目標3客觀評價達成度為86.23%,主觀評價達成度為87.5%,表明超過86%的學生在此次教學實踐改革中獲得了較好的體驗和收獲。
結語
在自動化測試實驗教學活動中,探索以逆向思維的教學方式,以案例驅動方法引導學生帶著問題去探究自動化技術,進行自動化測試的應用分析、自動化測試腳本的設計與優化,掌握自動化測試技術,培養學生的逆向創新思維和問題解決能力。學生在分析和設計過程中充分運用逆向思維,從結果出發,逐步分析問題的原因和解決方案,可以幫助提高學生的實踐能力和創造力。
參考文獻:
[1]喬陽,田飛.“新工科”背景下的應用型大學計算機專業實踐教學研究[J].數字通信世界,2019(03):257.
[2]王法勝,鄭東霞,邵銳鋒,等.自動化測試工具課程教學方案[J].計算機教育,2011(11):6163.
[3]符發,楊厚群,黎才茂,等.新工科背景下計算機網絡實驗教學改革探索[J].計算機教育,2022(03):3942.
[4]張艷,楊麗娟,車冬娟.以實踐能力為目標的“軟件測試”課程教學[J].科技創新導報,2020,17(16):203205.
[5]鄭浩,李真,劉建芳.工程教育專業認證背景下《軟件測試技術》課程改革與實踐[J].電腦知識與技術,2022,18(22):174177.
[6]朱佳藝,劉從軍.基于Selenium的自動化測試框架設計與實現[J].軟件導刊,2023,22(05):103108.
作者簡介:郭莎莎(1993—?),女,漢族,河南輝縣人,碩士,助教,新鄉學院計算機與信息工程學院教師,研究方向:計算機視覺。