郭莎莎 張兵 黃中杰
摘?要:結(jié)合工程教育專業(yè)認(rèn)證對應(yīng)用型本科院校的學(xué)生培養(yǎng)目標(biāo)要求,分析本科院校學(xué)生能力現(xiàn)狀,針對自動化測試既有理論性又有實踐性、對學(xué)生編程能力有要求的教學(xué)和實施難點,提出逆向思維教學(xué)法,由果到因,由實踐到理論,理論與實踐相結(jié)合,以案例驅(qū)動培養(yǎng)學(xué)生的主動思考和解決問題的能力,使學(xué)生掌握針對Web應(yīng)用的自動化測試技術(shù)。
關(guān)鍵詞:工程教育專業(yè)認(rèn)證;自動化測試;逆向思維;案例驅(qū)動
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
在計算機行業(yè),軟件測試是軟件開發(fā)過程中不可或缺的一個重要環(huán)節(jié),是充分保證軟件產(chǎn)品質(zhì)量的一個重要技術(shù)手段。隨著軟件行業(yè)的蓬勃發(fā)展,軟件測試工程師的需求越來越多。自動化測試是軟件測試領(lǐng)域的重要組成部分,注意通過編寫腳本和應(yīng)用工具來模擬用戶操作,自動執(zhí)行測試用例,提高測試效率和準(zhǔn)確性。自動化測試是生產(chǎn)實踐中有效保障軟件質(zhì)量、降低人工成本、提高效率的一個環(huán)節(jié)。在軟件開發(fā)快速發(fā)展和Web應(yīng)用復(fù)雜性不斷增加的情況下,自動化測試在軟件開發(fā)生命周期中的地位越來越重要。對于軟件測試工程師來說,如何熟練地應(yīng)用測試工具和技術(shù)已經(jīng)成為他們職業(yè)生涯中必不可少的一部分。為了更好地促進(jìn)高校畢業(yè)生的就業(yè),培養(yǎng)滿足社會需求的高質(zhì)量人才,多所高校開設(shè)“軟件質(zhì)量保證與測試”課程對學(xué)生進(jìn)行軟件測試技術(shù)應(yīng)用能力的培養(yǎng),尤其是對自動化測試工具和腳本的教學(xué)可以為學(xué)生成為一名軟件測試工程師打下堅實的基礎(chǔ)[13]?。
1?教學(xué)背景
自動化測試是將人工測試過程轉(zhuǎn)化為機器自動化執(zhí)行測試任務(wù)的過程,即通過模擬人工測試過程編寫和運行測試腳本。在教學(xué)過程中,自動化測試不同于純理論教學(xué),其作為上機實踐的教學(xué)重點,同時也是教學(xué)難點,對學(xué)生實踐能力要求較高。自動化測試工程師要求求職者除具備軟件測試崗位基本素質(zhì)以外,還應(yīng)有扎實的專業(yè)知識能力,包括軟件測試方面的能力和軟件開發(fā)能力。此課程面向大三學(xué)生,學(xué)生具備基本的軟件開發(fā)能力,但是由于缺乏實踐,學(xué)習(xí)自動化測試時仍然有一定的困難。其次,由于此課程大部分內(nèi)容偏向理論知識,知識點繁雜,且自動化測試工具多為商業(yè)化軟件,不利于學(xué)生自主練習(xí),學(xué)生整體興趣和主動學(xué)習(xí)積極性不高[4]?。
工程教育認(rèn)證要求以學(xué)生為中心,成果導(dǎo)向,聚焦學(xué)生的能力培養(yǎng),并持續(xù)改進(jìn)[5]?。近年來,滿足工程教育認(rèn)證要求的自動化測試教學(xué)改革研究略有欠缺,針對教學(xué)現(xiàn)狀提出采用逆向思維教學(xué)法對自動化測試教學(xué)內(nèi)容進(jìn)行整合,幫助學(xué)生更靈活地運用現(xiàn)有資源,使學(xué)生更好地學(xué)習(xí)和掌握自動化測試?yán)碚撝R,提升自動化測試實踐能力。以新鄉(xiāng)學(xué)院為例,“軟件質(zhì)量保證與測試”課程主要面向軟件工程專業(yè)、數(shù)據(jù)科學(xué)與大數(shù)據(jù)技術(shù)、3D打印軟件技術(shù)專業(yè),教學(xué)內(nèi)容包括軟件質(zhì)量與軟件測試基本理論知識、黑白盒測試方法、軟件生命周期各階段測試技術(shù)、自動化測試、軟件測試管理等內(nèi)容。一方面,自動化測試是學(xué)生發(fā)展為軟件測試工程師的必備能力;另一方面,Web應(yīng)用大有盛行之勢。在自動化測試實踐教學(xué)環(huán)節(jié),主要教授對Web應(yīng)用的自動化測試方法和技術(shù)。以往順向思維教學(xué)過程中,學(xué)生缺乏學(xué)習(xí)和思考主動性,由于編程能力不足在自動化測試學(xué)習(xí)中望而卻步的不在少數(shù)。
2?逆向思維教學(xué)實驗設(shè)計
逆向思維指的是從結(jié)果出發(fā)逆向分析問題的一種思維方式,包括反向工程、調(diào)試和優(yōu)化代碼等。自動化測試教學(xué)中,常規(guī)正向思維教學(xué)按照課程知識理論體系先講授自動化測試?yán)碚撝R,再應(yīng)用自動化測試工具實踐操作以加深對理論知識的理解。理論知識學(xué)習(xí)中,學(xué)生由于缺乏實踐記憶不夠深刻,難以準(zhǔn)確理解,進(jìn)而在開始動手實踐時需要重新梳理知識以指導(dǎo)實踐。其次,自身編程能力不足的同學(xué)在學(xué)習(xí)腳本時易故步自封、放大困難。通過逆向思維的教學(xué)方式和案例驅(qū)動的教學(xué)方法,引導(dǎo)學(xué)生在案例實踐中準(zhǔn)確把握自動化測試過程,理解自動化測試的方式方法,理解腳本的運行模式,從而更好地理解被測試軟件的內(nèi)部結(jié)構(gòu)和工作原理,更易掌握測試腳本編寫技術(shù)和發(fā)現(xiàn)潛在的問題。
采用先實踐后理論的模式,以案例驅(qū)動,通過錄制、回放、調(diào)試、回放、導(dǎo)出腳本、學(xué)習(xí)總結(jié)的步驟,實施自動化測試實驗。學(xué)生首先采用自動化測試工具通過錄制手工測試的過程感知自動化測試工具的測試流程,以問題為導(dǎo)向,對遇到的具體問題加以分析解決,增強對自動化測試的理解。
2.1?自動化測試工具
常見的自動化測試工具有Jmeter、Selenium、QTP、LoadRunner等開源和非開源的、測試功能和測試性能的,針對不同的測試需求,可以選擇不同的測試工具。Selenium是一款開源的輕量級自動化測試工具,支持主流的編程語言,支持常見的瀏覽器Google、Firfox等,可以滿足跨平臺、跨瀏覽器的Web自動化測試需求[6]?。Selenium?IDE作為瀏覽器插件,安裝和應(yīng)用非常簡便,適合教學(xué)和學(xué)生學(xué)習(xí)。
2.2?案例驅(qū)動實驗設(shè)計
學(xué)習(xí)通平臺作為教育部第一批推薦的22個學(xué)習(xí)平臺之一,是我校教學(xué)共用的一款學(xué)習(xí)平臺。學(xué)習(xí)通是一款正式運營中的平臺,系統(tǒng)穩(wěn)定,是很好的測試案例。同時,教師通過學(xué)習(xí)通平臺創(chuàng)建課程、上傳課件資料、布置和批改作業(yè)等,學(xué)生在學(xué)習(xí)通上學(xué)習(xí)公開課程、完成并提交作業(yè)、進(jìn)行話題交流等,雙方對學(xué)習(xí)通都有著較為熟悉的認(rèn)知。教學(xué)與學(xué)生實踐案例選擇學(xué)習(xí)通平臺作為測試平臺,既可以避免花費心思和時間尋求案例和搭建平臺,同時以熟悉的平臺為測試目標(biāo),又可以調(diào)動學(xué)生的測試積極性。其次,學(xué)生登錄自己個人賬號進(jìn)行測試,可以要求學(xué)生人盡參與。更重要的是,由于學(xué)生所學(xué)課程不同、課外學(xué)習(xí)內(nèi)容的不同,學(xué)習(xí)通平臺展示的內(nèi)容不完全一致,針對同一平臺操作步驟不同,在測試過程中可以獲得獨一無二的體驗。教學(xué)實驗內(nèi)容依據(jù)專業(yè)畢業(yè)要求及其指標(biāo)點進(jìn)行具體設(shè)計。
2.2.1?課程目標(biāo)及自動化測試實驗?zāi)繕?biāo)
結(jié)合工程教育專業(yè)認(rèn)證要求,明確本門課程的畢業(yè)要求指標(biāo)點,制定課程目標(biāo):
課程目標(biāo)1:掌握軟件質(zhì)量保證與測試的基礎(chǔ)知識和理論、基本方法和技術(shù),了解影響軟件質(zhì)量保證與測試的各種因素,樹立嚴(yán)謹(jǐn)?shù)乃枷牒吞幨聭B(tài)度,能夠進(jìn)行軟件性能優(yōu)化。
課程目標(biāo)2:掌握軟件測試設(shè)計方法,能夠針對特定測試需求設(shè)計測試用例,開發(fā)測試腳本,執(zhí)行測試過程。
課程目標(biāo)3:掌握軟件質(zhì)量保證與測試常用工具,并能選擇使用恰當(dāng)?shù)募夹g(shù)、資源和工具,解決較為復(fù)雜的軟件測試實際問題。
課程目標(biāo)與畢業(yè)要求指標(biāo)點對應(yīng)關(guān)系如表1所示。
針對課程目標(biāo)明確自動化測試實驗?zāi)繕?biāo)和綜合素質(zhì)目標(biāo)要求,以成果為導(dǎo)向,培養(yǎng)學(xué)生的綜合應(yīng)用能力。學(xué)生通過實驗要能夠掌握基本的軟件測試方法和技術(shù),掌握自動化測試工具和技術(shù),在實驗中自主探索,培養(yǎng)“精益求精”的工匠精神。
2.2.2?實驗內(nèi)容
依據(jù)實驗?zāi)繕?biāo)制定實驗指導(dǎo)書,要求學(xué)生按要求進(jìn)行實驗操作,在實踐中學(xué)習(xí)。合理的實驗內(nèi)容安排對學(xué)生動手實踐、學(xué)習(xí)并理解自動化測試具有重要的意義,實驗內(nèi)容及實驗過程如表3所示。
2.2.3?教學(xué)評價
合理的教學(xué)評價方式可以更全面地反映學(xué)生的學(xué)習(xí)效果與教學(xué)改革效果。教學(xué)評價從主觀、客觀兩個方面進(jìn)行多維度評價,主觀評價參考學(xué)生掌握情況的問卷調(diào)查結(jié)果、學(xué)生自動化測試工具的應(yīng)用演示、學(xué)生對自動化測試的理解三個維度;客觀評價參考課程目標(biāo)達(dá)成度評價方式,考量本環(huán)節(jié)在整體課程中歷年的達(dá)成情況。
經(jīng)過對2022級軟件工程(專升本)共計224名學(xué)生的問卷調(diào)查與客觀成績數(shù)據(jù)分析,學(xué)生對課程目標(biāo)3客觀評價達(dá)成度為86.23%,主觀評價達(dá)成度為87.5%,表明超過86%的學(xué)生在此次教學(xué)實踐改革中獲得了較好的體驗和收獲。
結(jié)語
在自動化測試實驗教學(xué)活動中,探索以逆向思維的教學(xué)方式,以案例驅(qū)動方法引導(dǎo)學(xué)生帶著問題去探究自動化技術(shù),進(jìn)行自動化測試的應(yīng)用分析、自動化測試腳本的設(shè)計與優(yōu)化,掌握自動化測試技術(shù),培養(yǎng)學(xué)生的逆向創(chuàng)新思維和問題解決能力。學(xué)生在分析和設(shè)計過程中充分運用逆向思維,從結(jié)果出發(fā),逐步分析問題的原因和解決方案,可以幫助提高學(xué)生的實踐能力和創(chuàng)造力。
參考文獻(xiàn):
[1]喬陽,田飛.“新工科”背景下的應(yīng)用型大學(xué)計算機專業(yè)實踐教學(xué)研究[J].數(shù)字通信世界,2019(03):257.
[2]王法勝,鄭東霞,邵銳鋒,等.自動化測試工具課程教學(xué)方案[J].計算機教育,2011(11):6163.
[3]符發(fā),楊厚群,黎才茂,等.新工科背景下計算機網(wǎng)絡(luò)實驗教學(xué)改革探索[J].計算機教育,2022(03):3942.
[4]張艷,楊麗娟,車冬娟.以實踐能力為目標(biāo)的“軟件測試”課程教學(xué)[J].科技創(chuàng)新導(dǎo)報,2020,17(16):203205.
[5]鄭浩,李真,劉建芳.工程教育專業(yè)認(rèn)證背景下《軟件測試技術(shù)》課程改革與實踐[J].電腦知識與技術(shù),2022,18(22):174177.
[6]朱佳藝,劉從軍.基于Selenium的自動化測試框架設(shè)計與實現(xiàn)[J].軟件導(dǎo)刊,2023,22(05):103108.
作者簡介:郭莎莎(1993—?),女,漢族,河南輝縣人,碩士,助教,新鄉(xiāng)學(xué)院計算機與信息工程學(xué)院教師,研究方向:計算機視覺。