龐海波 李占波
摘 要 本文分析了軟件測試行業(yè)和課程教學(xué)中存在的若干問題,總結(jié)了軟件企業(yè)對軟件測試人才要求和行業(yè)對人才的需求狀況,歸納了軟件測試從業(yè)人員所應(yīng)具備的基本知識(shí)和素質(zhì)要求,著眼于提高學(xué)生的軟件測試?yán)碚摗⒓夹g(shù)能力,從課程設(shè)置、教學(xué)過程、工程實(shí)踐、校企合作和課程置換等方面提出軟件測試改革的新模式,激發(fā)學(xué)生學(xué)習(xí)的熱情與動(dòng)力,提高軟件測試人員培養(yǎng)質(zhì)量。
關(guān)鍵詞 軟件測試 教學(xué)改革 能力培養(yǎng) 教學(xué)過程 課程置換
中圖分類號(hào):G424 文獻(xiàn)標(biāo)識(shí)碼:A
Exploring about the Reform of Software Testing Course
in the Application-oriented Institutions
PANG Haibo, LI Zhanbo
(Software Technology School of Zhengzhou University, Zhengzhou, He'nan 450002)
Abstract This paper analyzes the software testing industry, and a number of issues that exist in teaching, summed up the software companies for software testing requirements and industry demand conditions talent for talent, summed up the software testing professionals should have the basic knowledge and quality requirements, focusing on the improve student software testing theory, technical capacity, a new model of software testing from the curriculum reform, teaching, engineering practice, school-enterprise cooperation and replacement programs, etc., to stimulate students' enthusiasm and motivation to learn and improve training quality of software testers.
Key words software testing; teaching reform; ability training; teaching process; course change
近年來,中國軟件產(chǎn)業(yè)保持了飛速發(fā)展的趨勢,軟件產(chǎn)品的質(zhì)量備受所有用戶特別是IT行業(yè)用戶的關(guān)注。軟件測試作為軟件開發(fā)過程中重要的一環(huán),對保證軟件質(zhì)量具有至關(guān)重要的意義,同時(shí)也是控制軟件質(zhì)量的重要手段之一。目前,國內(nèi)許多軟件開發(fā)企業(yè)對軟件開發(fā)仍然存在“重開發(fā)、輕測試”的思想,因此,盡快建立完善軟件測試人才的系統(tǒng)培養(yǎng)環(huán)境、提高軟件測試人才的培養(yǎng)質(zhì)量,為軟件產(chǎn)業(yè)的健康發(fā)展提供智力支持已成為軟件測試專業(yè)課程和教學(xué)改革的主要目標(biāo)之一。
本文首先分析了我國軟件測試行業(yè)和教學(xué)存在的若干問題以及IT企業(yè)對軟件測試人才的素質(zhì)要求,接著討論了軟件測試專業(yè)課程的設(shè)置和定位問題,結(jié)合筆者的工作實(shí)際以及校企聯(lián)合開展大學(xué)生軟件測試技能競賽的效果,對軟件測試教學(xué)過程提出了一些建議。
1 軟件測試行業(yè)和教學(xué)現(xiàn)狀
軟件生產(chǎn)方式已經(jīng)越來越趨向于大規(guī)模集成化生產(chǎn),這一生產(chǎn)方式確立了軟件產(chǎn)品的質(zhì)量控制與質(zhì)量管理在軟件生產(chǎn)中至關(guān)重要的地位。調(diào)查顯示,我國軟件開發(fā)企業(yè)普遍缺少測試人員,而專職軟件測試人員與開發(fā)人員的比率更是偏低,遠(yuǎn)遠(yuǎn)達(dá)不到國外1:1甚至2:1的比例,整個(gè)軟件行業(yè)從業(yè)人員比例結(jié)構(gòu)很不合理。主要由于企業(yè)認(rèn)知和軟件測試人員的培養(yǎng)過程存在以下一些問題和不足而導(dǎo)致:
1.1 重開發(fā),輕測試
很多企業(yè)和學(xué)生認(rèn)為,軟件開發(fā)比軟件測試重要,軟件測試相關(guān)工作職位待遇不如軟件開發(fā)。他們認(rèn)為軟件測試從業(yè)人員不需要深入的專業(yè)知識(shí),只要會(huì)寫程序就能夠勝任軟件測試工作,從事軟件測試類的工作沒有前途,所以大部分傾向于做開發(fā)人員,而不喜歡做測試。同樣,絕大多數(shù)學(xué)生認(rèn)為軟件測試比軟件開發(fā)容易,沒有較高的技術(shù)含量,只是能夠找出軟件中的錯(cuò)誤就可以了。甚至有相當(dāng)一部分軟件測試人員認(rèn)為軟件的質(zhì)量的好壞是開發(fā)人員的事情,與軟件測試人員沒有關(guān)系。
1.2 底子薄、基礎(chǔ)差
大部分開設(shè)計(jì)算機(jī)課程的學(xué)校,學(xué)生都是到大學(xué)二年級(jí)后半學(xué)期才開始接觸軟件測試課程,缺少對軟件測試課程的系統(tǒng)學(xué)習(xí),甚至很多學(xué)生只學(xué)習(xí)軟件工程課程,根本接觸不到軟件測試課程。
對離散數(shù)學(xué)、程序設(shè)計(jì)、軟件工程等軟件測試基礎(chǔ)課程的學(xué)習(xí)效果差。例如,軟件測試中黑盒測試用例的設(shè)計(jì)方法大都以數(shù)學(xué)知識(shí)為依據(jù)的,決策表驅(qū)動(dòng)分析法與因果圖法對應(yīng)命題邏輯知識(shí)。盡管學(xué)生之前已經(jīng)學(xué)習(xí)這些課程了,但是由于受行業(yè)認(rèn)知的限制,學(xué)生經(jīng)常忽略一些重要的知識(shí),導(dǎo)致在后續(xù)測試課程學(xué)習(xí)中感到力不從心,最終還是不能夠穩(wěn)固掌握軟件測試的相關(guān)知識(shí)和技能。
軟件測試貫穿軟件開發(fā)的全部過程,軟件測試的大部分階段都要求測試人員能夠編寫代碼并且進(jìn)行調(diào)試,比如,在單元測試階段和進(jìn)行白盒測試的時(shí)候都需要檢查和測試代碼,這就對軟件測試學(xué)院提出了更高的要求,要求學(xué)生不但要了解軟件測試技術(shù),還要能夠熟練對代碼進(jìn)行分析和調(diào)試,甚至更多的時(shí)候要求測試人員能夠自己編寫代碼進(jìn)行專項(xiàng)測試。但是,由于先導(dǎo)課程的課程設(shè)計(jì)、實(shí)踐和考查的脫節(jié),導(dǎo)致學(xué)生寫代碼能力較弱,不能靈活運(yùn)用軟件測試中的技術(shù)和方法。
1.3 重技術(shù)、輕理論
現(xiàn)代社會(huì)快節(jié)奏的影響和急功近利心情的驅(qū)使,學(xué)生通常希望學(xué)習(xí)一些能夠馬上使用的技術(shù),而不愿意去學(xué)習(xí)復(fù)雜和理論性較強(qiáng)的工程管理內(nèi)容。軟件測試計(jì)劃、軟件測試管理等工程管理課程抽象和教條,并且理論性較強(qiáng),教師如果單純通過課堂教學(xué),學(xué)生很難真正掌握這些內(nèi)容,他們不能將所學(xué)知識(shí)馬上轉(zhuǎn)換為應(yīng)用,或者不能立刻看到成效,會(huì)慢慢地失去對這些課程的興趣和熱情。同時(shí),考慮到軟件測試需要與具體的開發(fā)模式和行業(yè)背景相結(jié)合,在學(xué)習(xí)階段容易受授課模式和知識(shí)結(jié)構(gòu)的限制,學(xué)生覺得學(xué)無所用,將來也很難結(jié)合具體場合恰當(dāng)使用測試手段。
1.4 重個(gè)人,輕團(tuán)隊(duì)
軟件的大規(guī)模集成化生產(chǎn)意味著個(gè)人獨(dú)立勞動(dòng)已經(jīng)不能勝任大型軟件的開發(fā),并且對團(tuán)體軟件開發(fā)中的協(xié)作和溝通提出了更高的要求。軟件測試作為軟件開發(fā)過程中一個(gè)不可或缺的環(huán)節(jié),也需要測試團(tuán)隊(duì)分工合作。目前教學(xué)更多地采用教師講、學(xué)生聽這一學(xué)習(xí)模式,沒有實(shí)現(xiàn)雙向互動(dòng)學(xué)習(xí),老師總是面面俱到地傳授測試專業(yè)知識(shí)和技術(shù),希望學(xué)生能夠?qū)W得更全面。然而,當(dāng)代學(xué)生普遍以自我為中心,缺少基本的溝通和團(tuán)隊(duì)協(xié)作能力,單獨(dú)的個(gè)體又不能獨(dú)當(dāng)一面,最終導(dǎo)致軟件測試工作不能順利進(jìn)行。
2 軟件測試人員素質(zhì)要求及課程設(shè)置定位
軟件測試人員的工作職責(zé)是理解軟件產(chǎn)品的功能和性能需求,在軟件開發(fā)中擔(dān)任“質(zhì)量管理”角色,這種職責(zé)對軟件測試人員在技術(shù)、管理能力和個(gè)人綜合素質(zhì)等方面提出了更高的要求。主要包括以下方面:(1)全面技術(shù)能力。測試人員必須站在工程技術(shù)的角度對需要開發(fā)的產(chǎn)品進(jìn)行理解,以工程技術(shù)產(chǎn)品應(yīng)用為目的構(gòu)造合適的測試用例進(jìn)行測試。這就要求測試人員必須掌握軟件生命周期、開發(fā)流程、軟件質(zhì)量管理知識(shí),熟悉離散數(shù)學(xué)、工程經(jīng)濟(jì)等基礎(chǔ)知識(shí),熟悉各種系統(tǒng)平臺(tái)、數(shù)據(jù)庫、常用軟件和網(wǎng)絡(luò)等軟硬件,掌握主流測試工具與測試管理工具,還有具備編程能力和相關(guān)行業(yè)的法規(guī)和外語等知識(shí)。(2)責(zé)任心。做測試工作,需要思維嚴(yán)密,具有懷疑與破壞的精神,測試人員要打破常規(guī)思路進(jìn)行軟件測試,能夠設(shè)計(jì)一些非常規(guī)測試用例對軟件進(jìn)行破壞性測試。(3)細(xì)心與耐心。軟件測試工作中發(fā)現(xiàn)缺陷的環(huán)節(jié)除了依仗測試人員的專業(yè)技術(shù)知識(shí)之外,還與測試人員的細(xì)心及耐心程度有很大關(guān)系。軟件測試工作相比較軟件開發(fā)工作而言,更加繁瑣和枯燥,如果沒有足夠的細(xì)心和耐心,就會(huì)留下很多潛伏的缺陷。(4)良好的溝通與組織協(xié)調(diào)能力。軟件測試不僅僅是測試人員和測試團(tuán)隊(duì)內(nèi)部的事情,軟件測試人員要能夠與項(xiàng)目經(jīng)理、開發(fā)人員、客戶、市場人員等不同角色人員進(jìn)行良好溝通,保持密切配合。這就要求測試人員具備良好的溝通技巧,當(dāng)發(fā)現(xiàn)問題的時(shí)候,能夠積極有效組織協(xié)調(diào)開發(fā)人員、客戶等各方面來解決問題,并且能夠精準(zhǔn)表達(dá)自己的觀點(diǎn)。
軟件測試人員的素質(zhì)培養(yǎng),需要從構(gòu)建合理的軟件課程著手。課程體系構(gòu)建根據(jù)測試內(nèi)涵來分析相應(yīng)的知識(shí)、技能、素質(zhì)要求,以軟件測試這一職業(yè)所需的知識(shí)和技能為先導(dǎo),強(qiáng)調(diào)當(dāng)前及未來就業(yè)崗位所需基礎(chǔ)知識(shí)和基本技能的掌握運(yùn)用,體現(xiàn)知識(shí)、能力、素質(zhì)培養(yǎng)的統(tǒng)一。精選教學(xué)內(nèi)容進(jìn)行整合與優(yōu)化,使課程模塊化,明確每個(gè)模塊化課程對知識(shí)和技能的培養(yǎng)要求,構(gòu)建以掌握技術(shù)理論和技術(shù)應(yīng)用為培養(yǎng)目的的課程體系,實(shí)現(xiàn)知識(shí)和技能同步培養(yǎng)和提高。
3 軟件測試教學(xué)過程的改進(jìn)
教學(xué)過程是對軟件測試人員技能和素質(zhì)培養(yǎng)的關(guān)鍵環(huán)節(jié),教學(xué)方法起著至關(guān)重要的作用。教師在教學(xué)過程中應(yīng)注意幾方面:
3.1 正確認(rèn)識(shí)開發(fā)和測試的關(guān)系,激發(fā)學(xué)生學(xué)習(xí)動(dòng)力
針對學(xué)生認(rèn)為軟件測試不如軟件開發(fā)重要,或者認(rèn)為軟件測試類崗位不如軟件開發(fā)類崗位有前途等片面認(rèn)識(shí),教師應(yīng)注意正確引導(dǎo)。通常在第一節(jié)課上教師應(yīng)該結(jié)合功能測試、性能測試等具體案例介紹軟件測試的重要性,讓學(xué)生了解該課程的重要性、必要性和當(dāng)前的行業(yè)動(dòng)態(tài)。另外,要讓學(xué)生認(rèn)識(shí)到測試工作的豐富層次和內(nèi)涵,了解測試人員應(yīng)該具備的知識(shí)和技能更加多樣,做測試工作比做開發(fā)更有挑戰(zhàn)性。最后,要給學(xué)生介紹行業(yè)對測試人員的需求,讓學(xué)生更清楚了解軟件測試工作的待遇和發(fā)展前景,樹立從事軟件測試工作的決心和信心,激發(fā)他們學(xué)習(xí)軟件測試的主觀能動(dòng)性。
3.2 案例法教學(xué)貫穿全過程
針對軟件測試課程中測試計(jì)劃、管理等理論性較強(qiáng)的工程化管理知識(shí)部分,需要結(jié)合實(shí)際案例進(jìn)行教學(xué),因?yàn)閱渭冋n堂教條式的教學(xué)很難讓學(xué)生深刻掌握這些知識(shí)的精髓并應(yīng)用于實(shí)際工作,更甚至?xí)寣W(xué)生失去學(xué)習(xí)軟件測試的興趣。因此,應(yīng)在教學(xué)過程中引領(lǐng)學(xué)生由易入難自己動(dòng)手實(shí)踐,激發(fā)學(xué)生的學(xué)習(xí)主動(dòng)性與熱情。通過課堂討論或分組討論的方式活躍課堂氣氛,在討論的過程中,讓學(xué)生擔(dān)任不同角色,模擬實(shí)際管理過程,切身感受管理知識(shí)的應(yīng)用價(jià)值,同時(shí),不同角色的輪換擔(dān)任還可以鍛煉學(xué)生的溝通能力,樹立團(tuán)隊(duì)意識(shí)。教師要適時(shí)進(jìn)行引導(dǎo)與總結(jié),指導(dǎo)學(xué)生按照工程化的文檔模板規(guī)范將思考分析的結(jié)果進(jìn)行記錄,在鍛煉學(xué)生分析、解決問題能力的同時(shí)養(yǎng)成良好的學(xué)習(xí)工作習(xí)慣。
對于技術(shù)性較強(qiáng)的知識(shí),也要注意實(shí)際案例的引入。加大實(shí)際案例實(shí)驗(yàn)學(xué)時(shí)的的分配,引入規(guī)模適中的工程實(shí)例,讓學(xué)生利用所學(xué)的測試技術(shù)對實(shí)例設(shè)計(jì)測試計(jì)劃,測試用例,執(zhí)行測試,分析和討論測試結(jié)果,發(fā)現(xiàn)測試存在的問題,通過這樣的實(shí)踐教學(xué)活動(dòng),更容易讓學(xué)生產(chǎn)生成就感,激發(fā)學(xué)生興趣。
3.3 注重工程實(shí)踐課程和參與競賽
根據(jù)軟件測試行業(yè)對人才素質(zhì)需求定位測試專業(yè)方向人才培養(yǎng)目標(biāo)。由于軟件測試課程與軟件開發(fā)課程的不同,軟件測試實(shí)驗(yàn)教學(xué)應(yīng)該設(shè)立實(shí)驗(yàn)、實(shí)訓(xùn)和實(shí)習(xí)等多層次的工程實(shí)踐課程,通過讓學(xué)生參與實(shí)際工程項(xiàng)目,提高學(xué)生專業(yè)技術(shù)應(yīng)用、分析問題和解決問題的能力。同樣,教師需要設(shè)計(jì)和引入規(guī)模適中的工程實(shí)踐項(xiàng)目,要求學(xué)生現(xiàn)學(xué)現(xiàn)賣,完成制定測試計(jì)劃、設(shè)計(jì)測試用例、執(zhí)行測試和評(píng)估測試的全過程。通過項(xiàng)目的鍛煉,學(xué)生分析問題和解決問題的能力會(huì)逐漸得到提高。
鼓勵(lì)學(xué)生多參加軟件測試技能競賽等實(shí)戰(zhàn)性的實(shí)踐活動(dòng),提高學(xué)生的觀察、思考、交流、實(shí)踐和協(xié)作能力。本團(tuán)隊(duì)組織學(xué)生參加河南省計(jì)算機(jī)學(xué)會(huì)主辦的首屆大學(xué)生軟件測試技能大賽,成績斐然:三個(gè)代表隊(duì)分別獲得了特等獎(jiǎng)、一等獎(jiǎng)和二等獎(jiǎng)。事實(shí)證明,競賽類的實(shí)踐活動(dòng),能夠極大激發(fā)學(xué)生自己動(dòng)手進(jìn)行軟件測試的興趣,同時(shí)在動(dòng)手操作的過程中培養(yǎng)了學(xué)生的創(chuàng)新能力,促進(jìn)了學(xué)生思維的縱深發(fā)展;學(xué)生對軟件測試課程的學(xué)習(xí)熱情和積極性空前高漲,學(xué)習(xí)的自覺性極大提高。
3.4 開展校企合作和課程置換
校企合作的目的就是通過學(xué)校與軟件企業(yè)進(jìn)行多方面的合作,建立企業(yè)實(shí)習(xí)基地,讓學(xué)生能夠親身參與企業(yè)軟件的開發(fā)和測試過程,校企合作是軟件測試人才培養(yǎng)最有效的辦法。在計(jì)算機(jī)行業(yè),校企合作有著至關(guān)重要的作用,學(xué)生通過參與企業(yè)實(shí)際產(chǎn)品的開發(fā)和測試,可以更好更快地融入到軟件開發(fā)過程中。學(xué)生不但能夠?qū)⑺鶎W(xué)的綜合知識(shí)進(jìn)行實(shí)際應(yīng)用,還能對軟件開發(fā)有一個(gè)更加深刻的認(rèn)識(shí)。與企業(yè)交流不只是學(xué)生的事情,教師參與其中也是十分必要,教師到企業(yè)實(shí)習(xí),參與軟件項(xiàng)目的測試,緊跟技術(shù)發(fā)展步伐,才能把握授課方向,才能以自身參與的項(xiàng)目為實(shí)例進(jìn)行授課。
課程置換是將企業(yè)成熟的軟件測試培訓(xùn)課程和教學(xué)體系替換掉學(xué)校的部分軟件測試課程,將企業(yè)以應(yīng)用為目的的教學(xué)方式、科學(xué)、系統(tǒng)和實(shí)用的課程內(nèi)容引入學(xué)校教學(xué)?!八街?,可以攻玉”,課程置換就是要結(jié)合學(xué)校教學(xué)和企業(yè)培訓(xùn)的優(yōu)勢方法和資源,彌補(bǔ)傳統(tǒng)學(xué)校教學(xué)方式存在的不足,緊緊結(jié)合市場需求,提高學(xué)生各個(gè)方面的能力。 同時(shí),課程置換將學(xué)歷教育和職業(yè)教育相結(jié)合,學(xué)生在獲得學(xué)歷證書的同時(shí),還能獲得相關(guān)企業(yè)行業(yè)證書和一線實(shí)踐經(jīng)驗(yàn),從而為學(xué)生畢業(yè)后服務(wù)于企業(yè)奠定良好的基礎(chǔ)。
4 結(jié)束語
軟件測試的重要性得到越來越廣泛的認(rèn)可,創(chuàng)造一種課程內(nèi)容改革的引導(dǎo)機(jī)制,探索一套切實(shí)有效的大學(xué)生學(xué)習(xí)和實(shí)踐相結(jié)合的學(xué)習(xí)模式,轉(zhuǎn)變教師對傳統(tǒng)軟件測試課程的教育教學(xué)觀念,推動(dòng)軟件測試教學(xué)改革,才是提高軟件測試學(xué)生的專業(yè)技能和創(chuàng)新能力,最終提高學(xué)生的核心競爭力的根本途徑。
參考文獻(xiàn)
[1] 鐘素芬,葉明芷.軟件測試應(yīng)用性人才培養(yǎng)模式的探索與實(shí)踐[J].北京聯(lián)合大學(xué)學(xué)報(bào),2007(9):90-91.
[2] 孫金華.軟件測試人才培養(yǎng)與課程構(gòu)建的探索[J].計(jì)算機(jī)時(shí)代,2009(6):68-71.
[3] 柳永坡.軟件測試大學(xué)教程:軟件測試課程專業(yè)教材[J].計(jì)算機(jī)教育,2010(12):158.
[4] 鐘華,韓伯棠.創(chuàng)新型、研究型人才培養(yǎng)實(shí)踐教學(xué)范式及應(yīng)用[J].中國大學(xué)教學(xué),2012(3):39-42.
[5] 李雯睿,張鵬程,楊種學(xué).基于主動(dòng)學(xué)習(xí)策略的軟件測試教學(xué)方法初探[J].計(jì)算機(jī)教育,2012(4).