王勇+李麗+盧桂馥+劉濤
摘要:提高計(jì)算機(jī)相關(guān)專業(yè)學(xué)生的軟件測(cè)試水平,將有利于保證學(xué)生畢業(yè)后開展高水平的軟件測(cè)試工作,從而進(jìn)一步提高我國(guó)的軟件質(zhì)量。文章分析軟件測(cè)試教學(xué)過程中存在的問題,提出以核心概念與案例驅(qū)動(dòng)的軟件測(cè)試課程教學(xué)改革,闡述其具體方法和實(shí)施途徑,最后總結(jié)課程評(píng)價(jià)和效果。
關(guān)鍵詞:軟件測(cè)試;核心概念;案例驅(qū)動(dòng)
0.引言
隨著軟件日益滲透到人們生活的方方面面,人們對(duì)軟件高質(zhì)量的要求也日漸迫切。然而,通過與軟件企業(yè)中的項(xiàng)目經(jīng)理和測(cè)試人員溝通交流,大多企業(yè)表示,雖然軟件測(cè)試工作是一項(xiàng)重要工作,但與系統(tǒng)開發(fā)人員和軟件設(shè)計(jì)師相比,軟件測(cè)試員的工作未能得到應(yīng)有的重視,這與軟件測(cè)試人員的技術(shù)水平以及業(yè)界的重產(chǎn)出輕質(zhì)量相關(guān)。因此,提高軟件測(cè)試水平,將有利于開展高水平的軟件測(cè)試工作,保證軟件的高質(zhì)量,同時(shí),也會(huì)為軟件測(cè)試職業(yè)帶來正面效應(yīng)。
1.存在的問題
1.1基本概念混淆
目前,大多數(shù)高校均開設(shè)軟件測(cè)試課程,通常以講解理論知識(shí)為主,實(shí)踐教學(xué)環(huán)節(jié)只占很小的部分,即教師重理論、輕實(shí)踐;另一方面,學(xué)生普遍對(duì)理論不感興趣,重視軟件測(cè)試工具的使用。最后結(jié)果是學(xué)生對(duì)測(cè)試?yán)碚撘恢虢?,?duì)測(cè)試工具的掌握粗枝大葉。
通過調(diào)研可以看出,學(xué)生對(duì)軟件測(cè)試中的基本概念含糊不清,經(jīng)?;煜?。比如,軟件測(cè)試與調(diào)試,軟件錯(cuò)誤(error)與故障(fault),軟件故障(fault)與失效(failure)等混為一談。對(duì)軟件測(cè)試的基本原理不清,表現(xiàn)為對(duì)諸如覆蓋(coverage)、故障傳播模型(RIP模型)、測(cè)試充分性等不甚了解。眾所周知,對(duì)一門學(xué)科的核心概念的精準(zhǔn)把握,有利于掌握該學(xué)科的基本原理。反之,核心概念的混淆,反映學(xué)生對(duì)軟件測(cè)試原理的理解不夠深入。
1.2案例及測(cè)試教學(xué)工具缺乏
軟件測(cè)試是一門實(shí)踐性很強(qiáng)的課程。學(xué)生們?nèi)绻荒苡H手完成測(cè)試活動(dòng)的各個(gè)過程,就很難真正地掌握軟件測(cè)試的相關(guān)知識(shí),更難勝任軟件公司的軟件測(cè)試工程師崗位。目前,大多高校都對(duì)軟件測(cè)試課程的實(shí)踐教學(xué)環(huán)節(jié)高度重視,也采取了案例驅(qū)動(dòng)的教育教學(xué)改革。然而,適用于高校教學(xué)的實(shí)際案例不多見,軟件測(cè)試教材中所給出的諸如判斷屬于哪種三角形的案例很難適應(yīng)軟件測(cè)試對(duì)象不斷發(fā)展的要求。高校在案例及可應(yīng)用于教學(xué)的測(cè)試工具選擇上存在困境。如何在給定課時(shí)的情況下,既教授學(xué)生專門的軟件測(cè)試?yán)碚撝R(shí),又讓學(xué)生掌握市場(chǎng)上常見的軟件測(cè)試工具,對(duì)高校的教師的確是一個(gè)很大的挑戰(zhàn)。
1.3師資缺少工程背景
軟件測(cè)試是一門藝術(shù),Boris Beizer等將軟件測(cè)試劃分為五級(jí),leve10到level4。在最高級(jí)(1evel4)中,測(cè)試看作是一種智力訓(xùn)練,能夠幫助所有的IT專業(yè)人員開發(fā)出更高質(zhì)量的軟件產(chǎn)品。由此可見,軟件測(cè)試雖然感覺起點(diǎn)要求比較低,但是到第三級(jí)以后,軟件測(cè)試工程師不但要有軟件測(cè)試的相關(guān)理論知識(shí),還要有大量的與軟件產(chǎn)品質(zhì)量相關(guān)的知識(shí)。大多高校都缺少專門從事軟件測(cè)試領(lǐng)域研究并具有豐富工程背景的教師。近年來,不少本科高校引進(jìn)了大量的計(jì)算機(jī)相關(guān)的博士,軟件相關(guān)的博士依然較少,而博士偏重于某一狹小領(lǐng)域的研究方向,對(duì)整個(gè)軟件相關(guān)的本科專業(yè)教學(xué)幫助并不大。因此,解決軟件測(cè)試的師資及其工程化背景,是提高軟件測(cè)試教學(xué)質(zhì)量的關(guān)鍵之一。
2.方法
2.1以學(xué)生反饋為抓手,重點(diǎn)灌輸核心概念和測(cè)試思想
核心概念的清楚把握是理解某一門技術(shù)的關(guān)鍵。例如,在整個(gè)軟件測(cè)試過程中,軟件規(guī)格說明書起著至關(guān)重要的作用,是衡量軟件是否失效的關(guān)鍵。表1是軟件測(cè)試中所涉及的核心概念?;谶@些核心概念,我們通過隨機(jī)測(cè)驗(yàn)的方式及時(shí)了解學(xué)生的掌握情況。
通常的測(cè)試結(jié)果顯示,學(xué)生對(duì)有些概念的理解令人驚訝。我們需要對(duì)這些概念進(jìn)行重點(diǎn)標(biāo)注,并調(diào)整部分教學(xué)內(nèi)容的講授。
軟件測(cè)試本質(zhì)是一種抽樣技術(shù)。正如Beizer所說,測(cè)試很簡(jiǎn)單,測(cè)試人員只需要找到一個(gè)圖然后覆蓋它。然而,覆蓋的原則是什么?關(guān)注點(diǎn)在哪里?我們需要結(jié)合故障傳播的過程,并進(jìn)行多次強(qiáng)化。故障傳播模型有利于學(xué)生理解軟件失效產(chǎn)生的過程,而能理解軟件工作即為發(fā)現(xiàn)軟件失效的過程,而軟件調(diào)試即為已知軟件失效去找到bug并進(jìn)行修復(fù)的過程。通過學(xué)生的多次反饋,積極灌輸測(cè)試基本概念與測(cè)試思想,有利于學(xué)生理解軟件測(cè)試的本質(zhì)思想,更有利于后期的測(cè)試實(shí)踐。
2.2以案例驅(qū)動(dòng)打通軟件測(cè)試工作流程
軟件測(cè)試是一門藝術(shù),更是一項(xiàng)工程實(shí)踐活動(dòng)。學(xué)生在教學(xué)活動(dòng)中工程實(shí)踐能力的提高是判斷教學(xué)質(zhì)量的關(guān)鍵。因此,很多高校都試圖探索出符合本校學(xué)生實(shí)際的項(xiàng)目驅(qū)動(dòng)教學(xué)方案。自2012年,我們也進(jìn)行了案例驅(qū)動(dòng)教學(xué)改革的嘗試。我們認(rèn)為,單元測(cè)試是集成測(cè)試、系統(tǒng)測(cè)試等方法的基礎(chǔ),通過案例驅(qū)動(dòng),打通軟件測(cè)試的整個(gè)工作流程比講授更多的測(cè)試技術(shù)更重要。因此,在整個(gè)案例驅(qū)動(dòng)過程中,我們側(cè)重于精講單元測(cè)試過程中各個(gè)測(cè)試準(zhǔn)則的應(yīng)用。
軟件測(cè)試是發(fā)現(xiàn)軟件錯(cuò)誤的過程,該過程不僅僅包括測(cè)試用例的設(shè)計(jì)與測(cè)試諭言的使用,還包括大量的文檔撰寫。規(guī)范化的文檔是進(jìn)行規(guī)范化測(cè)試的基礎(chǔ)與保證,IEEE829 Standard給出的測(cè)試文檔如圖1所示。
我們對(duì)標(biāo)準(zhǔn)的測(cè)試文檔進(jìn)行簡(jiǎn)化,主要強(qiáng)調(diào)軟件規(guī)格說明書、測(cè)試設(shè)計(jì)規(guī)格說明、測(cè)試用例與測(cè)試數(shù)據(jù)規(guī)格說明、測(cè)試結(jié)果報(bào)告等主要測(cè)試文檔的撰寫。在案例驅(qū)動(dòng)中主要應(yīng)用一個(gè)簡(jiǎn)單程序——飛機(jī)座位預(yù)訂程序作為課堂教學(xué)案例講解,使用一個(gè)較為復(fù)雜的程序——車輛保險(xiǎn)程序作為學(xué)生課后練習(xí)使用。其內(nèi)容主要分以下幾個(gè)部分(見表2)。
2.3借助開源項(xiàng)目,增強(qiáng)學(xué)生的學(xué)習(xí)興趣
面向教學(xué)的案例選擇程序規(guī)模通常較小,無法滿足學(xué)生對(duì)較復(fù)雜軟件測(cè)試學(xué)習(xí)的實(shí)際需求。因此,為了增強(qiáng)學(xué)生的學(xué)習(xí)興趣,提高學(xué)生的實(shí)踐能力,可以通過引入軟件測(cè)試領(lǐng)域廣泛使用的SIR庫(The Software Infrastructure Repository,htto://sir.unl.edu/portal/index.html)中開源軟件作為學(xué)生的軟件測(cè)試對(duì)象。表3選取SIR庫中規(guī)模適中的8個(gè)程序作為開源項(xiàng)目。SIR庫已包含了一個(gè)用于正確版本和多個(gè)錯(cuò)誤版本,以及應(yīng)用各種測(cè)試研究的測(cè)試用例集合。通過研讀開源軟件的幫助文件,學(xué)生能夠掌握測(cè)試用例的規(guī)范編寫,以及測(cè)試腳本的編寫。表3為開源軟件信息表。
3.課程評(píng)價(jià)及效果
軟件測(cè)試課程不同于一般的理論課程,它不但需要學(xué)生的個(gè)人能力,同時(shí)需要團(tuán)隊(duì)的協(xié)作精神。我們將課程成績(jī)劃分為兩塊,理論考試占70%,實(shí)踐考核為30%。我們?cè)趯?shí)踐過程中將學(xué)生每4個(gè)人分為一組,作為實(shí)踐部分的最終得分。在考核中,教師對(duì)每一個(gè)小組進(jìn)行考核,組長(zhǎng)對(duì)小組成員進(jìn)行考核。我們將每個(gè)小組規(guī)定為100分,55分交給組長(zhǎng)分配給每個(gè)組員,比如25分、10分、10分、10分,總計(jì)55分,其他組員每個(gè)人有15分的分配權(quán)利。
我們分別對(duì)教學(xué)改革前的2010級(jí)計(jì)算機(jī)科學(xué)與技術(shù)專業(yè)的81名學(xué)生、教學(xué)改革后的2011級(jí)計(jì)算機(jī)科學(xué)與技術(shù)的79名學(xué)生、2012級(jí)計(jì)算機(jī)科學(xué)與技術(shù)專業(yè)的84名學(xué)生進(jìn)行了滿意度調(diào)查,主要包括課程滿意度、組長(zhǎng)滿意度、組員滿意度。為了避免直接對(duì)教師進(jìn)行評(píng)價(jià),我們讓每名學(xué)生對(duì)課程之間進(jìn)行效果評(píng)價(jià),分為很滿意、比較滿意、滿意、不滿意四個(gè)等級(jí)。小組內(nèi)也進(jìn)行滿意度評(píng)價(jià),分別是組長(zhǎng)對(duì)組員,組員對(duì)組長(zhǎng)及其他組員。圖2顯示學(xué)生對(duì)課程的滿意度有了顯著的改善。圖3顯示學(xué)生之間的滿意度也逐年增長(zhǎng)??傊?,采用核心概念和案例驅(qū)動(dòng)的教學(xué)改革有效果顯著。
4.結(jié)語
高校在軟件測(cè)試課程的教學(xué)與實(shí)踐中還存在諸多問題。我們針對(duì)這些問題采用以核心概念和案例驅(qū)動(dòng)的教學(xué)方法改革,并取得了一定的教學(xué)效果。但是,培養(yǎng)滿足社會(huì)需求的軟件測(cè)試人才,不僅僅要改革軟件測(cè)試課程的方式方法,還需要課程群之間的相互滲透。下一步,我們將基于核心概念與案例驅(qū)動(dòng)的教學(xué)改革實(shí)踐應(yīng)用于軟件方向的課程中。