鄭志勇 王丹
[摘 要]課程團(tuán)隊(duì)分析了當(dāng)前軟件測試行業(yè)對人才需求的趨勢,指出一些高校軟件測試課程在培養(yǎng)學(xué)生解決復(fù)雜工程問題方面能力不足的現(xiàn)狀,并在提升培養(yǎng)目標(biāo)、“產(chǎn)學(xué)研”融合、構(gòu)建校企合作的教學(xué)實(shí)訓(xùn)平臺、采用科學(xué)的考核模式和評價(jià)方式等方面進(jìn)行了實(shí)踐。近三年畢業(yè)生對課程教學(xué)效果的反饋表明,該課程培養(yǎng)學(xué)生解決復(fù)雜工程問題能力的效果良好。
[關(guān)鍵詞]軟件測試;解決復(fù)雜工程問題能力培養(yǎng);教學(xué)案例
[中圖分類號]G642[文獻(xiàn)標(biāo)識碼]A[文章編號]2095-3437(2024)04-0061-04
隨著信息技術(shù)高速發(fā)展,線上銀行、辦公、購物、約車、社交和短視頻等軟件,已經(jīng)深入國民經(jīng)濟(jì)和社會生活中的每一個(gè)角落,改變了人們的生產(chǎn)、生活方式。大家對這些軟件的依賴性越來越強(qiáng),軟件質(zhì)量成為能否保障社會生產(chǎn)生活正常運(yùn)轉(zhuǎn)的重要因素之一。軟件測試作為軟件質(zhì)量保障的重要手段,貫穿軟件的全生命周期,需要軟件測試的從業(yè)人員具備較強(qiáng)的專業(yè)技能和職業(yè)素養(yǎng)。目前絕大多數(shù)高校的計(jì)算機(jī)類專業(yè)都開設(shè)了軟件工程課程,其中軟件測試學(xué)時(shí)占比較大,有的學(xué)校甚至直接開設(shè)了軟件測試課程。然而,培養(yǎng)的一些畢業(yè)生仍然不能滿足企業(yè)的要求,尤其在面對復(fù)雜工程問題的時(shí)候,一些學(xué)生無從下手,解決問題能力不足[1]?!豆こ探逃J(rèn)證標(biāo)準(zhǔn)》提出,復(fù)雜工程問題應(yīng)以“綜合性、深度性、沖突性”為核心[2]。朱露等將解決復(fù)雜工程問題的過程分為發(fā)現(xiàn)問題、表征問題、設(shè)計(jì)方案、實(shí)施方案、反思與評價(jià)五階段[3]。目前軟件測試課程教學(xué)主要講授軟件測試基本理論和方法,難以在教學(xué)中構(gòu)建復(fù)雜問題場景,故很難發(fā)現(xiàn)復(fù)雜問題,表征問題方法的運(yùn)用也只能停留在很淺的層次,設(shè)計(jì)方案、實(shí)施方案、反思與評價(jià)的過程也只能簡單進(jìn)行教學(xué),學(xué)生體會不深刻,影響了學(xué)生軟件測試能力的培養(yǎng)。軟件測試的實(shí)踐性很強(qiáng),技術(shù)也在不斷更新,但一些教師沒有接受過專門的軟件測試技術(shù)訓(xùn)練,工程實(shí)踐經(jīng)驗(yàn)不足,也沒有辦法構(gòu)建“綜合性、深度性、沖突性”的復(fù)雜工程問題場景,培養(yǎng)學(xué)生解決復(fù)雜工程問題的能力更無從談起。因此,有必要對軟件測試課程的教學(xué)內(nèi)容、實(shí)踐環(huán)節(jié)以及考核方式進(jìn)行改進(jìn)。
一、國內(nèi)外研究現(xiàn)狀分析
目前,很多教師根據(jù)軟件測試課程的特點(diǎn),針對學(xué)生解決復(fù)雜工程問題能力培養(yǎng)的方法,探索了諸多路徑,并在教學(xué)中進(jìn)行了實(shí)踐,取得了一些不錯(cuò)的成果。鞠小林等針對軟件測試課程案例庫構(gòu)建任務(wù),分析其在案例選擇、實(shí)踐環(huán)境組建和教學(xué)方案實(shí)施過程方面存在的問題,探討軟件測試課程實(shí)踐環(huán)節(jié)融合“產(chǎn)業(yè)”“教學(xué)”“學(xué)術(shù)研究”三個(gè)維度的教學(xué)思想,闡述測試案例庫的構(gòu)建要素以及實(shí)踐環(huán)境搭建方法[4]。王鑫便等針對目前軟件測試課程教學(xué)中學(xué)生學(xué)習(xí)目的性不強(qiáng)、教學(xué)考核方式單一等問題,提出采用OBE教育模式對軟件測試課程進(jìn)行教學(xué)改革,闡述對軟件測試課程的整個(gè)教學(xué)方案進(jìn)行反向設(shè)計(jì)的過程,從課程的教學(xué)目標(biāo)、內(nèi)容設(shè)計(jì)、考核方式等方面進(jìn)行了改革探索和實(shí)踐[5]。向尕等以產(chǎn)出為導(dǎo)向,分析目前軟件工程課程實(shí)踐教學(xué)中存在的問題與不足,從用人單位對畢業(yè)生核心能力的要求出發(fā),聚焦解決復(fù)雜工程問題能力培養(yǎng),提出基于項(xiàng)目驅(qū)動的軟件工程實(shí)踐教學(xué)改進(jìn)方法[6]。呂友波等基于工程教育認(rèn)證背景下實(shí)踐教學(xué)環(huán)節(jié)改革發(fā)展趨勢,從培養(yǎng)學(xué)生解決復(fù)雜工程問題的能力入手,提出了課程設(shè)計(jì)改革實(shí)施方案[7]。
培養(yǎng)學(xué)生解決復(fù)雜工程問題的能力,是工科專業(yè)的核心培養(yǎng)目標(biāo)。該能力的培養(yǎng)需要多門課程的理論教學(xué)和工程實(shí)踐有機(jī)結(jié)合,通過形成知識圖譜的實(shí)踐培養(yǎng)路徑來形成合力。軟件測試作為軟件工程專業(yè)的基礎(chǔ)課程,在培養(yǎng)學(xué)生解決復(fù)雜工程問題的能力中,更應(yīng)扛起重?fù)?dān)。
二、改革內(nèi)容
軟件測試?yán)碚摬粌H用于具體的軟件測試工作,還應(yīng)用于軟件開發(fā)過程和質(zhì)量管理。通過軟件測試?yán)碚撜n程的學(xué)習(xí),學(xué)生應(yīng)能夠綜合運(yùn)用本門和其他課程的理論知識和技術(shù)對軟件的缺陷進(jìn)行查找和追蹤,能運(yùn)用一定深度的理論、方法以及工具對問題進(jìn)行推理、分析,并最終將其有效解決。復(fù)雜工程問題場景的呈現(xiàn),是培養(yǎng)學(xué)生能力的關(guān)鍵。本課程主要在以下四方面進(jìn)行了改革。
(一)提升培養(yǎng)目標(biāo)
第一,要跳出課程看專業(yè)。將培養(yǎng)軟件測試工程師的目標(biāo)轉(zhuǎn)變?yōu)榕囵B(yǎng)高級軟件工程師的目標(biāo),扭轉(zhuǎn)學(xué)生對這門課“重開發(fā),輕測試”的思想認(rèn)識,使其從思想上重視這門課程在專業(yè)中的地位。
第二,要進(jìn)行多視角下的課堂教學(xué)。同一個(gè)教學(xué)案例,可以從軟件測試的角度去介紹,也可以從軟件開發(fā)或基于不同需求對軟件項(xiàng)目管理要求的角度去講解,組織小組討論,提高學(xué)生的參與度,實(shí)現(xiàn)多視角下的軟件測試課堂教學(xué)。
第三,在案例教學(xué)過程中,除了讓學(xué)生找出軟件的bug(漏洞),還要讓學(xué)生總結(jié)和分析bug產(chǎn)生的原因、bug的解決方案,以及程序員思考問題的習(xí)慣導(dǎo)致的在其開發(fā)的其他模塊中也出現(xiàn)類似缺陷的風(fēng)險(xiǎn)。
(二)“產(chǎn)學(xué)研”融合
在實(shí)際的軟件開發(fā)、管理過程中會出現(xiàn)很多復(fù)雜工程問題,從中精選符合學(xué)生認(rèn)知、適合教學(xué)的案例素材融入教學(xué)內(nèi)容的設(shè)計(jì),精心地組織教學(xué)過程,啟發(fā)學(xué)生提出復(fù)雜的問題,并引導(dǎo)學(xué)生結(jié)合所學(xué)內(nèi)容,嘗試性地尋求問題的答案,形成一條龍的“產(chǎn)學(xué)研”實(shí)踐案例。教師在教學(xué)的同時(shí),對實(shí)踐教學(xué)進(jìn)程進(jìn)行跟蹤,結(jié)合學(xué)生的行為數(shù)據(jù)、活動軌跡,也能夠發(fā)現(xiàn)很具體的、較復(fù)雜的工程問題場景,這些問題的解決過程和方式方法,反過來也能夠?yàn)槠髽I(yè)和科研中出現(xiàn)的問題作參考,做到產(chǎn)業(yè)、教學(xué)、科研互通,真正地培養(yǎng)學(xué)生解決實(shí)際復(fù)雜工程問題的能力。下面介紹兩個(gè)教學(xué)案例,案例一為優(yōu)秀畢業(yè)生分享的解決軟件測試復(fù)雜工程問題的場景,案例二為教師本人科研當(dāng)中出現(xiàn)的解決復(fù)雜問題的場景。
案例一:某知名互聯(lián)網(wǎng)大廠的酒店業(yè)務(wù)高性能網(wǎng)關(guān)優(yōu)化實(shí)踐。近年來,酒店采用DDD技術(shù)架構(gòu),一直在對以往的業(yè)務(wù)進(jìn)行調(diào)整。其中核心領(lǐng)域的團(tuán)隊(duì)將各自的“應(yīng)用層”統(tǒng)一交給下游網(wǎng)關(guān)團(tuán)隊(duì),組成統(tǒng)一的應(yīng)用層。這種由多個(gè)網(wǎng)關(guān)合并成大前臺(酒店業(yè)務(wù)網(wǎng)關(guān))的模式帶來的好處是核心系統(tǒng)邊界清晰明了,但是在實(shí)際業(yè)務(wù)運(yùn)轉(zhuǎn)中,出現(xiàn)了業(yè)務(wù)網(wǎng)關(guān)吞吐性能變差的問題。對問題進(jìn)行詳細(xì)分析發(fā)現(xiàn):Servlet與業(yè)務(wù)邏輯雖說是同一個(gè)線程,但高峰期流量上漲,尤其到流量尖峰的時(shí)候,Servlet 容器線程被阻塞,服務(wù)的吞吐量就會明顯下降,由此得到問題的根源所在:(1)CPU 資源大量浪費(fèi)在阻塞等待上,資源利用率低;(2)為了增加并發(fā)度,會引入更多額外的線程池,隨著 CPU 調(diào)度線程數(shù)的增加,會導(dǎo)致更嚴(yán)重的資源爭用,上下文切換占用 CPU 資源;(3)線程池中的線程都是阻塞的,硬件資源無法充分利用,系統(tǒng)吞吐量容易達(dá)到瓶頸。
有效的解決方案:基于響應(yīng)式編程模型,使用異步非阻塞式 I/O,可以更高效地處理并發(fā)請求,提高應(yīng)用程序的吞吐量和響應(yīng)速度。解決后的效果:單機(jī)可支持 QPS上限從100提升至200,吞吐量性能上限提升100%,資源成本下降一半。
案例二:飛機(jī)地面試驗(yàn)429總線信號出現(xiàn)“毛刺現(xiàn)象”的問題案例。在某北方飛機(jī)試驗(yàn)場所的地面鐵鳥臺某項(xiàng)試驗(yàn)中,大氣仿真計(jì)算機(jī)通過ARINC429總線輸出的信號“間斷性”不正確,通過大量的軟件測試定位并用示波器對信號進(jìn)行抓取,發(fā)現(xiàn)信號是不規(guī)則的方波信號,噪聲很大,毛刺現(xiàn)象非常明顯,導(dǎo)致接收信號的設(shè)備無法對信號“高”“零”“低”三種電平狀態(tài)進(jìn)行識別。經(jīng)長時(shí)間的觀察發(fā)現(xiàn),該問題在白天進(jìn)行的試驗(yàn)中幾乎不出現(xiàn),而是通常在晚上加班進(jìn)行的試驗(yàn)中出現(xiàn),測試人員的解決方法通常是暫時(shí)擱置出現(xiàn)問題的試驗(yàn),下班后關(guān)掉設(shè)備,第二天上班再完成這一部分的試驗(yàn)。參與飛機(jī)地面鐵鳥臺試驗(yàn)的系統(tǒng)設(shè)計(jì)單位以及各個(gè)飛機(jī)成品廠各有二三十家,所涉及的各個(gè)子系統(tǒng)也有七八種,有很多成品廠在別的機(jī)型(設(shè)計(jì)單位在不同城市)都沒有出現(xiàn)該問題,而且該問題在秋冬季節(jié)出現(xiàn)的概率大。有一天某測試人員與一個(gè)研究電磁波的人探討起這個(gè)問題,后者分析認(rèn)為,北方在供暖期間空氣干燥,容易產(chǎn)生靜電,參與試驗(yàn)的設(shè)備經(jīng)過一天運(yùn)轉(zhuǎn),到了晚上尤其容易產(chǎn)生信號干擾。測試人員最終將各參試設(shè)備共同接地,并加大信號傳輸線的屏蔽保護(hù)層后,問題成功解決。通過學(xué)習(xí)該案例,學(xué)生了解了解決實(shí)際復(fù)雜工程問題的全過程,培養(yǎng)了表達(dá)能力、發(fā)散性思維和與他人溝通尋求幫助的能力。
(三)構(gòu)建校企合作的教學(xué)實(shí)訓(xùn)平臺
學(xué)院引進(jìn)上海澤眾軟件科技有限公司的軟件測試平臺,成立企業(yè)級軟件測試實(shí)驗(yàn)室,聘請企業(yè)導(dǎo)師,組織教師參與行業(yè)內(nèi)權(quán)威企業(yè)在全國范圍內(nèi)主辦的師資培訓(xùn)活動,獲得相應(yīng)的資格培訓(xùn)證書。課程實(shí)驗(yàn)、實(shí)踐教學(xué)也通過該平臺實(shí)施,幫助學(xué)生對復(fù)雜工程問題的解決過程有更深、更直接的體會。
(四)采用科學(xué)的考核模式和評價(jià)方式
課程考核除了期末考試,還將過程性考核納入考核成績中,并適當(dāng)增加比重。課程考核成績由平時(shí)成績和期末考核成績共同決定,其中平時(shí)成績由課后作業(yè)、課堂表現(xiàn)、實(shí)驗(yàn)、大作業(yè)等綜合評定。
大作業(yè)是模擬公司項(xiàng)目組的工作模式,將3~4名學(xué)生組成一個(gè)小組,組長按照崗位角色分配任務(wù)、進(jìn)度控制和質(zhì)量監(jiān)督。大作業(yè)安排在期末前兩周進(jìn)行,此時(shí)正好是學(xué)生畢業(yè)設(shè)計(jì)答辯結(jié)束準(zhǔn)備離校的時(shí)間,選取學(xué)生的畢業(yè)設(shè)計(jì)作品作為被測的軟件,通過對作品進(jìn)行測試發(fā)現(xiàn)其中的缺陷,把這些缺陷正確表征出來并設(shè)計(jì)實(shí)施解決方案,最后再進(jìn)行反思與評價(jià)。
該作業(yè)將任務(wù)分配到各組,對學(xué)生成績考核需考慮整個(gè)小組任務(wù)完成情況、學(xué)生的態(tài)度和表現(xiàn),以及組內(nèi)每個(gè)人發(fā)揮的作用、組內(nèi)互評和集體答辯表現(xiàn)等方面對學(xué)生進(jìn)行綜合評價(jià)。
三、課程改革效果
為了培養(yǎng)學(xué)生解決復(fù)雜工程問題的能力,軟件測試課程團(tuán)隊(duì)自2018年進(jìn)行教學(xué)改革以來,一直在征集優(yōu)秀畢業(yè)生在研發(fā)軟件產(chǎn)品過程中出現(xiàn)的復(fù)雜問題案例,結(jié)合教師研究或開發(fā)的項(xiàng)目凝練出適合用于教學(xué)的復(fù)雜問題案例[8],用來支持課程教學(xué)。課程改革效果良好,學(xué)生連續(xù)五年評價(jià)教師的教學(xué)水平為優(yōu)秀,課程負(fù)責(zé)人被學(xué)生評為校級“我最喜愛的任課教師”。
對軟件工程專業(yè)近三年畢業(yè)生進(jìn)行線上問卷調(diào)查,設(shè)置如下問題:(1)軟件測試課程對當(dāng)前從事的工作是否有幫助?(2)課程案例對理解復(fù)雜工程問題是否有幫助?(3)軟件測試課程對解決實(shí)際復(fù)雜工程問題能力培養(yǎng)是否有幫助?
一共收到152名畢業(yè)生的反饋,結(jié)果見圖1。
從調(diào)查結(jié)果來看,94%以上的學(xué)生認(rèn)為軟件測試課程對當(dāng)前從事的工作有幫助,講授的課程案例對他們理解復(fù)雜工程問題有很大的幫助,對培養(yǎng)他們解決實(shí)際工程復(fù)雜問題的能力很有好處。
四、結(jié)語
學(xué)生解決復(fù)雜工程問題能力的培養(yǎng),本身就是一個(gè)復(fù)雜的問題,需要整個(gè)專業(yè)課程群進(jìn)行聯(lián)動,才有可能形成合力。專業(yè)課教師,除了進(jìn)行正常的教學(xué)內(nèi)容的設(shè)計(jì)之外,還要了解行業(yè)發(fā)展趨勢、緊跟專業(yè)技術(shù)的步伐,要將自己的研究成果融入課程教學(xué)中,與本專業(yè)優(yōu)秀畢業(yè)生保持緊密聯(lián)系,不斷地征集他們在生產(chǎn)或研發(fā)過程中出現(xiàn)的適合教學(xué)用的復(fù)雜問題場景,從中凝練出特色的教學(xué)案例,并將其充實(shí)到課程教學(xué)中,為螺旋式培養(yǎng)學(xué)生解決復(fù)雜工程問題能力提供支撐。
[ 參 考 文 獻(xiàn) ]
[1] 林健.如何理解和解決復(fù)雜工程問題:基于《華盛頓協(xié)議》的界定和要求[J].高等工程教育研究,2016(5):17-26.
[2] 中國工程教育專業(yè)認(rèn)證協(xié)會.工程教育認(rèn)證標(biāo)準(zhǔn):T/CEEAA 001—2022[S].北京:中國標(biāo)準(zhǔn)出版社,2023.
[3] 朱露,唐浩興,胡德鑫,等.工科本科生解決復(fù)雜工程問題能力評價(jià)模型[J].高等工程教育研究,2023(4):86-99.
[4] 鞠小林,陳翔,文萬志,等.“產(chǎn)教研”融合的軟件測試課程案例庫構(gòu)建[J].計(jì)算機(jī)教育,2019(3):121-125.
[5] 王鑫便,劉仰光,程萍,等.基于OBE的軟件測試課程教學(xué)改革探索[J].計(jì)算機(jī)教育,2020(5):97-101.
[6] 向尕,康海燕,孫璇.面向解決復(fù)雜工程問題能力培養(yǎng)的軟件工程實(shí)踐教學(xué)探索[J].計(jì)算機(jī)教育,2021(10):161-165.
[7] 呂友波,蘇曉東,秦相林,等.面向解決復(fù)雜工程問題能力培養(yǎng)的計(jì)算機(jī)課程設(shè)計(jì)改革[J].黑龍江科學(xué),2022,13(11):162-164.
[8] 鄭志勇,張翼飛,王丹.注入航空特色的軟件測試課程改革與實(shí)踐[J].高教學(xué)刊,2021,7(28):145-148.
[責(zé)任編輯:雷 艷]