單元測(cè)試方法范文
時(shí)間:2023-04-05 04:59:53
導(dǎo)語(yǔ):如何才能寫(xiě)好一篇單元測(cè)試方法,這就需要搜集整理更多的資料和文獻(xiàn),歡迎閱讀由公務(wù)員之家整理的十篇范文,供你借鑒。
篇1
關(guān)鍵詞:遺傳算法;模擬退火算法;自動(dòng)化;單元測(cè)試
中圖分類(lèi)號(hào):TP311.53
隨著計(jì)算機(jī)技術(shù)的發(fā)展,計(jì)算機(jī)智能技術(shù)也逐漸得到了開(kāi)發(fā)應(yīng)用,生物智能、人工智能以及算計(jì)智能的聯(lián)合應(yīng)用和優(yōu)勢(shì)互補(bǔ),使智能技術(shù)的應(yīng)用更加有效。隨著計(jì)算機(jī)的普及,軟件產(chǎn)品已經(jīng)深入人們生活工作的各個(gè)領(lǐng)域,成為日常工作、生活、娛樂(lè)的必不可少的組成部分。而對(duì)于軟件安全性能的要求則在很大程度上促進(jìn)了軟件測(cè)試的發(fā)展。軟件測(cè)試是軟件安全性能和良好的使用性能的重要哦保證,貫穿于軟甲開(kāi)發(fā)過(guò)程的始終,保證軟件開(kāi)發(fā)每個(gè)階段的質(zhì)量。
軟件的質(zhì)量需要經(jīng)過(guò)軟件功能測(cè)試才能得到保障,而單元測(cè)試則是軟件功能測(cè)試的基礎(chǔ)和前提,是軟件測(cè)試的起步環(huán)節(jié)。單元測(cè)試針對(duì)的對(duì)象是程序中最小的軟件模塊,一般是軟件開(kāi)發(fā)人員通過(guò)編寫(xiě)小段代碼,針對(duì)被測(cè)試代碼的某個(gè)較小較明確的功能進(jìn)行測(cè)試,看其是否可以正常運(yùn)行。
1 參數(shù)化單元測(cè)試
單元測(cè)試作為軟件測(cè)試的起步環(huán)節(jié),同時(shí)也是不可或缺的環(huán)節(jié),對(duì)軟件的質(zhì)量起著至關(guān)重要的作用。在實(shí)際測(cè)試中,單元測(cè)試代碼的手動(dòng)編寫(xiě)工作是一件極其復(fù)雜且耗時(shí)的工作,并且所選測(cè)試實(shí)例不能保證覆蓋較大的代碼,具有很大的隨機(jī)性,進(jìn)而降低單元測(cè)試的效率。
參數(shù)化單元測(cè)試將程序規(guī)格與測(cè)試用例生成分離,解決了傳統(tǒng)單元測(cè)試存在的弊端。運(yùn)用參數(shù)化單元測(cè)試方法,程序要實(shí)現(xiàn)的功能需要人工書(shū)寫(xiě)代碼,然后測(cè)試工具就會(huì)通過(guò)對(duì)測(cè)試代碼的分析和檢測(cè),自動(dòng)根據(jù)測(cè)試的實(shí)際路徑生成對(duì)應(yīng)的實(shí)例和測(cè)試代碼,實(shí)現(xiàn)代碼的高覆蓋率。
2 基于遺傳算法的搜索策略
在退火算法的運(yùn)行過(guò)程中溶入遺傳算法,稱(chēng)為退火遺傳算法,依舊是說(shuō),所謂的退火遺傳算法,實(shí)際上是由退火算法和遺傳算法兩個(gè)部分組成,結(jié)合雙方各自的優(yōu)點(diǎn)和特性,所得到的新的綜合性計(jì)算方法。
2.1 遺傳算法依據(jù)
遺傳算法的提出源于計(jì)算機(jī)發(fā)展初期提出的所謂“人工進(jìn)化系統(tǒng)”,它是根據(jù)生物進(jìn)化的特點(diǎn),借鑒優(yōu)勝劣汰的自然遺傳法則,參照達(dá)爾文進(jìn)化論的理論思想而形成的一種不依賴(lài)具體問(wèn)題的直接搜索方法,在運(yùn)用遺傳算法進(jìn)行數(shù)據(jù)計(jì)算時(shí),不僅要用到進(jìn)化學(xué)的概念,同時(shí)也要符合遺傳學(xué)說(shuō)的基因遺傳原理。
運(yùn)用遺傳算法進(jìn)行計(jì)算時(shí),一般要經(jīng)過(guò)幾個(gè)基本步驟,即:初始化數(shù)據(jù)、數(shù)據(jù)的擇優(yōu)選擇、隨機(jī)對(duì)選中的兩個(gè)數(shù)據(jù)進(jìn)行交叉互換、根據(jù)遺產(chǎn)學(xué)說(shuō)的基因變異原理所進(jìn)行的個(gè)體數(shù)據(jù)變異、全局最優(yōu)收斂,進(jìn)而得出需要的結(jié)論或數(shù)據(jù)。
2.2 模擬退火算法依據(jù)
模擬退火算法是根據(jù)固體退火過(guò)程和組合優(yōu)化問(wèn)題之間的相似性而提出的。在對(duì)物質(zhì)進(jìn)行加熱處理時(shí),物質(zhì)組成中粒子之間的布朗運(yùn)動(dòng)加強(qiáng),當(dāng)加熱到一定程度時(shí),溫度達(dá)到物質(zhì)熔點(diǎn),固體物質(zhì)會(huì)轉(zhuǎn)化為液體形態(tài)。這時(shí),對(duì)物體進(jìn)行退火處理,使溫度降低,則物體的粒子運(yùn)動(dòng)減弱,并且會(huì)逐漸趨于平衡和有序,最終達(dá)到物質(zhì)性質(zhì)的穩(wěn)定。
模擬退火算法運(yùn)用溫度參數(shù)進(jìn)行控制,當(dāng)溫度較高時(shí),數(shù)據(jù)運(yùn)動(dòng)變化劇烈,從而使解的區(qū)間變化較大,容易接受到較差解;當(dāng)溫度降低,數(shù)據(jù)運(yùn)動(dòng)逐漸減緩時(shí),解的區(qū)間也會(huì)逐漸趨于穩(wěn)定,這時(shí)候就可以得到較為優(yōu)良的解果,從而對(duì)遺傳算法的不足進(jìn)行彌補(bǔ)。
2.3 退火遺傳算法依據(jù)
退火遺傳算法,是指以遺傳算法為主要運(yùn)算方法,并在運(yùn)算過(guò)程中引入模擬退火算法,使兩者達(dá)到優(yōu)勢(shì)互補(bǔ),進(jìn)一步對(duì)群體進(jìn)行優(yōu)化調(diào)整。退火遺傳算法可以分為兩個(gè)組成部分:首先,運(yùn)用遺傳算法的進(jìn)化理論,產(chǎn)生一個(gè)相對(duì)較為優(yōu)良的群體,然后利用模擬退火算法,對(duì)群體中的個(gè)體進(jìn)行優(yōu)化和調(diào)整。
(1)針對(duì)遺傳算子進(jìn)行改進(jìn)
所謂遺傳算子,是指在遺傳算法中,用來(lái)維持遺傳多樣性所使用的算子,遺傳多樣性是生物或數(shù)據(jù)演化過(guò)程中不可或缺的一個(gè)必要性質(zhì),遺傳算子在遺傳算法中類(lèi)似于自然中的適者生存原則,對(duì)于個(gè)體的進(jìn)化會(huì)產(chǎn)生巨大的影響。
初始進(jìn)化階段,為了保持種群的多樣性,便于從中進(jìn)行選擇,應(yīng)該加大對(duì)于個(gè)體間相互交叉和互換的概率;在進(jìn)化的終極階段,頻繁的交叉互換不利于種群的穩(wěn)定和最優(yōu)解的產(chǎn)生,因此需要適當(dāng)?shù)販p小個(gè)體間的聯(lián)系和活動(dòng),減少最優(yōu)解的求解難度,縮短求解過(guò)程。針對(duì)種群中的個(gè)體而言,在進(jìn)行變異操作時(shí),對(duì)優(yōu)勢(shì)個(gè)體進(jìn)行較小的變異,劣勢(shì)個(gè)體進(jìn)行較大的變異,可以使其更加趨近于最優(yōu)解。
(2)合理構(gòu)造適應(yīng)值函數(shù)
適應(yīng)值函數(shù)可以針對(duì)遺傳算法的求解過(guò)程進(jìn)行指導(dǎo),對(duì)最優(yōu)解的數(shù)值區(qū)間進(jìn)行限定,在適應(yīng)值函數(shù)的構(gòu)造過(guò)程中,引入關(guān)鍵分支的概念。關(guān)鍵分支,指在選定的路徑中,對(duì)存在的結(jié)點(diǎn)的真實(shí)性進(jìn)行判定,求解過(guò)程可能會(huì)在這些結(jié)點(diǎn)處產(chǎn)生偏離,引發(fā)錯(cuò)誤,而這些會(huì)導(dǎo)致求解過(guò)程偏離目標(biāo)路徑的結(jié)點(diǎn),就是關(guān)鍵分支。
適應(yīng)值函數(shù)在遺傳算法中是用來(lái)區(qū)分個(gè)體優(yōu)劣的標(biāo)準(zhǔn),是進(jìn)行自然選擇的唯一依據(jù)。原始適應(yīng)值函數(shù)是對(duì)問(wèn)題最初求解目標(biāo)的反映。適應(yīng)值對(duì)個(gè)體的判斷有兩個(gè)截然相反的情形:適應(yīng)值越大,個(gè)體性能越好和適應(yīng)值越小,個(gè)體性能越好。在遺傳算法中,對(duì)適應(yīng)值函數(shù)是有限制的,即適應(yīng)值函數(shù)必須為非負(fù)數(shù),這就需要選擇較大的適應(yīng)值函數(shù)來(lái)選擇較為優(yōu)良的個(gè)體。
為了使被測(cè)數(shù)據(jù)中每個(gè)參數(shù)都可以得到評(píng)估,根據(jù)相關(guān)數(shù)據(jù)對(duì)判斷結(jié)點(diǎn)進(jìn)行數(shù)據(jù)轉(zhuǎn)換,在保證個(gè)體數(shù)據(jù)得到充分計(jì)算的情況下,不會(huì)對(duì)程序主體造成破壞
3 實(shí)驗(yàn)結(jié)果與分析
為了對(duì)退火遺傳算法的性能進(jìn)行驗(yàn)證,采用判斷三角形的相關(guān)測(cè)試程序,將退火遺傳算法與單純的遺傳算法進(jìn)行對(duì)比,對(duì)進(jìn)化每一代的最大適應(yīng)值進(jìn)行記錄。
從實(shí)驗(yàn)數(shù)據(jù)可以看出,初始進(jìn)化階段,個(gè)體的產(chǎn)生具有隨機(jī)性,在對(duì)實(shí)驗(yàn)進(jìn)行多次運(yùn)行后,可以看出,最高適應(yīng)值之間差異十分明顯。進(jìn)化過(guò)程初期,兩種算法的最高適應(yīng)值都存在較大的波動(dòng),而隨著遺傳的不斷進(jìn)行,退火遺傳算法的最大適應(yīng)值范圍逐漸趨于穩(wěn)定,而遺傳算法的最大適應(yīng)值范圍仍不穩(wěn)定。因此可以得出結(jié)論,將模擬退火算法與遺傳算法相互配合,可以有效避免單一遺傳算法的不足,加快對(duì)最優(yōu)解的計(jì)算速度,減少計(jì)算所需時(shí)間。根據(jù)實(shí)驗(yàn)的數(shù)據(jù),對(duì)多次實(shí)驗(yàn)的結(jié)果進(jìn)行統(tǒng)一總結(jié),可以看出,相對(duì)于單一的遺傳算法而言,退火遺傳算法的進(jìn)化速度大大加快,減少了計(jì)算時(shí)間。
4 結(jié)束語(yǔ)
經(jīng)過(guò)實(shí)驗(yàn)和分析,我們可以看到,生成高代碼覆蓋率的測(cè)試用例是自動(dòng)化測(cè)試的關(guān)鍵問(wèn)題,是提高自動(dòng)化測(cè)試性能的主要手段。針對(duì)遺傳算法存在的缺陷,將遺傳算法和模擬退火算法相互結(jié)合,實(shí)現(xiàn)優(yōu)勢(shì)互補(bǔ),針對(duì)群體數(shù)據(jù)中的遺傳算子以及適應(yīng)值函數(shù)作出改進(jìn),最終通過(guò)對(duì)比實(shí)驗(yàn),驗(yàn)證了退火遺傳算法的有效性和優(yōu)越性。
參考文獻(xiàn):
[1]趙慧娟,孫文輝.基于退火遺傳算法的單元測(cè)試方法[J].計(jì)算機(jī)工程,2013,39(1):49-53.
[2]楊學(xué)紅.自動(dòng)化單元測(cè)試概述[J].信息通信技術(shù),2012,(1):66-68.
篇2
關(guān)鍵詞關(guān)鍵詞:軟件工程;軟件質(zhì)量;單元測(cè)試;測(cè)試框架;面向?qū)ο虺绦?/p>
中圖分類(lèi)號(hào):TP302 文獻(xiàn)標(biāo)識(shí)碼:A 文章編號(hào)文章編號(hào):16727800(2013)008004503
0 引言
隨著現(xiàn)代軟件工程的不斷發(fā)展,人們對(duì)軟件質(zhì)量和生產(chǎn)力的要求越來(lái)越高。軟件測(cè)試技術(shù)和框架復(fù)用技術(shù)作為提高軟件質(zhì)量和生產(chǎn)力的有效手段,近年來(lái)倍受人們的重視。
傳統(tǒng)的“黑盒”、“白盒”測(cè)試技術(shù)主要應(yīng)用于面向過(guò)程的程序設(shè)計(jì)中。隨著面向?qū)ο蠹夹g(shù)的發(fā)展,這種技術(shù)已不能滿(mǎn)足軟件測(cè)試的需要。自動(dòng)化單元測(cè)試框架應(yīng)用于面向?qū)ο髥卧獪y(cè)試中,通過(guò)它來(lái)實(shí)現(xiàn)單元測(cè)試自動(dòng)化。
單元測(cè)試是對(duì)軟件進(jìn)行正確性檢驗(yàn)的測(cè)試工作,是軟件設(shè)計(jì)的最小單位。單元測(cè)試的目的主要是發(fā)現(xiàn)每個(gè)程序模塊內(nèi)部可能存在的錯(cuò)誤。程序員的基本職責(zé)是單元測(cè)試,單元測(cè)試能力是程序員基本能力的體現(xiàn),程序員必須對(duì)自己所編寫(xiě)的代碼認(rèn)真負(fù)責(zé),軟件的質(zhì)量與程序員的工作效率直接受程序員單元測(cè)試能力高低的影響。
單元測(cè)試是一項(xiàng)很重要而且必要的工作。在實(shí)際工作中,許多程序員并不愿意對(duì)自己編寫(xiě)的代碼進(jìn)行測(cè)試。軟件開(kāi)發(fā)的工作壓力大,大多數(shù)程序員們因?yàn)闆](méi)有時(shí)間測(cè)試自己的代碼,使程序的代碼質(zhì)量得不到保證,有些代碼還需重新編寫(xiě),程序員根本沒(méi)有時(shí)間對(duì)代碼進(jìn)行測(cè)試。自動(dòng)化單元測(cè)試框架能夠從根本上解決這個(gè)問(wèn)題,它可以使測(cè)試工作變得簡(jiǎn)單,這樣更有助于程序員進(jìn)行代碼開(kāi)發(fā)工作。
1 自動(dòng)化單元測(cè)試框架設(shè)計(jì)目標(biāo)
自動(dòng)化單元測(cè)試框架的設(shè)計(jì)應(yīng)達(dá)到以下目標(biāo):首先,框架簡(jiǎn)單,可以使測(cè)試程序的編寫(xiě)更簡(jiǎn)化。框架使用常見(jiàn)的工具設(shè)計(jì),測(cè)試工作操作簡(jiǎn)單;其次,測(cè)試框架應(yīng)能夠使除作者以外的其他程序員進(jìn)行代碼測(cè)試,并能解釋其結(jié)果,即將不同程序員的測(cè)試結(jié)合起來(lái),且不發(fā)生相互沖突。最后,測(cè)試用例可以復(fù)用,可以以現(xiàn)有的測(cè)試為起點(diǎn)形成新的測(cè)試。
本文將以這些目標(biāo)為指導(dǎo),討論如何用以Kent Beck和Ralph Johnson提出的“模式產(chǎn)生體系結(jié)構(gòu)”的方式來(lái)設(shè)計(jì)框架系統(tǒng)。自動(dòng)化單元測(cè)試框架的設(shè)計(jì)思想是從0開(kāi)始根據(jù)設(shè)計(jì)問(wèn)題應(yīng)用設(shè)計(jì)模式,一個(gè)接一個(gè)逐步設(shè)計(jì),直至獲得最終合適的系統(tǒng)架構(gòu)。其中實(shí)現(xiàn)部分采用Java語(yǔ)言來(lái)實(shí)現(xiàn),并會(huì)使用UML圖來(lái)表示各種類(lèi)及類(lèi)間關(guān)系。
2 面向?qū)ο笞詣?dòng)化單元測(cè)試分析
自動(dòng)化測(cè)試定義為:管理與實(shí)施各種測(cè)試活動(dòng),包括開(kāi)發(fā)測(cè)試腳本、執(zhí)行測(cè)試腳本,這樣使驗(yàn)證測(cè)試需求更加方便,通過(guò)這些腳本實(shí)現(xiàn)了自動(dòng)測(cè)試,可以把它稱(chēng)為自動(dòng)測(cè)量工具。使用這種自動(dòng)測(cè)試工具對(duì)增量軟件集成測(cè)試提供了巨大的方便,增加了巨大的價(jià)值。每一個(gè)新的構(gòu)件可以重用先前開(kāi)發(fā)的測(cè)試腳本,即使需求和軟件有變更,作為一個(gè)重要的控制機(jī)制,自動(dòng)測(cè)試也能夠確保每一次重新構(gòu)建的穩(wěn)定性與準(zhǔn)確性。
3 面向?qū)ο笞詣?dòng)化單元測(cè)試框架
自動(dòng)化測(cè)試框架實(shí)質(zhì)是一種自動(dòng)測(cè)試工具,單元測(cè)試的核心問(wèn)題是實(shí)現(xiàn)測(cè)試自動(dòng)化。一個(gè)完整的自動(dòng)化測(cè)試過(guò)程通常包括5個(gè)測(cè)試活動(dòng),分別是測(cè)試標(biāo)識(shí)、測(cè)試設(shè)計(jì)、測(cè)試實(shí)現(xiàn)、測(cè)試執(zhí)行與評(píng)估。測(cè)試用例針對(duì)被測(cè)試系統(tǒng)的各項(xiàng)功能準(zhǔn)確地開(kāi)發(fā)與設(shè)計(jì),而且每一個(gè)測(cè)試用例都要按順序執(zhí)行這5個(gè)測(cè)試開(kāi)發(fā)活動(dòng),測(cè)試開(kāi)發(fā)活動(dòng)如圖1所示。
圖1 測(cè)試活動(dòng)
測(cè)試標(biāo)識(shí)與測(cè)試設(shè)計(jì)這兩個(gè)測(cè)試活動(dòng)主要為智力活動(dòng),分別標(biāo)識(shí)測(cè)試條件和設(shè)計(jì)測(cè)試用例。測(cè)試執(zhí)行與測(cè)試比較這兩個(gè)活動(dòng)屬于比較機(jī)械的活動(dòng),它們的功能分別為:執(zhí)行測(cè)試用例、將測(cè)試輸出結(jié)果并與期望輸出結(jié)果值相比較。前兩個(gè)活動(dòng)決定了測(cè)試用例的質(zhì)量,后兩個(gè)活動(dòng)適合自動(dòng)化。在單元測(cè)試中,測(cè)試執(zhí)行和測(cè)試比較這兩個(gè)活動(dòng)要重復(fù)多次,測(cè)試標(biāo)識(shí)與測(cè)試設(shè)計(jì)通常只執(zhí)行一次。因此,在單元測(cè)試過(guò)程中,重復(fù)性的活動(dòng)特別需要自動(dòng)化執(zhí)行。
4 自動(dòng)化單元測(cè)試設(shè)計(jì)與實(shí)現(xiàn)
首先構(gòu)建對(duì)象來(lái)表達(dá)基本概念:Test Case(測(cè)試用例),然后將對(duì)象發(fā)送到測(cè)試框架,再由測(cè)試框架執(zhí)行,最后報(bào)告測(cè)試結(jié)果。
采用Command命令模式將一個(gè)請(qǐng)求封裝成一個(gè)對(duì)象,Command模式可以為每一個(gè)操作生成一個(gè)與之對(duì)應(yīng)的對(duì)象,同時(shí)能夠給出一個(gè)對(duì)應(yīng)的執(zhí)行方法。這樣可以對(duì)多個(gè)用戶(hù)請(qǐng)求進(jìn)行排隊(duì),也可以將多個(gè)請(qǐng)求記錄到日志,并使用不同的請(qǐng)求對(duì)客戶(hù)進(jìn)行參數(shù)化。具體實(shí)現(xiàn)方法如下:
其中的run()方法為模式中的執(zhí)行方法,可以通過(guò)繼承來(lái)重用該類(lèi),為了便于在測(cè)試失敗時(shí)能夠識(shí)別出失敗的測(cè)試,每一個(gè)Test Case在創(chuàng)建時(shí)都要給出與之對(duì)應(yīng)的名稱(chēng),這樣即可判斷出失敗的測(cè)試。
圖1展示了測(cè)試框架組成部分的快照,也展示了應(yīng)用于TestCase中的標(biāo)記。
圖1 測(cè)試框架組成部分
5 單元測(cè)試用例執(zhí)行流程
在實(shí)際測(cè)試過(guò)程中,構(gòu)造參數(shù)或資源、測(cè)試、釋放資源為測(cè)試的業(yè)務(wù)邏輯過(guò)程。例如,在測(cè)試數(shù)據(jù)庫(kù)的插入、更新、刪除、查詢(xún)等操作時(shí),首先要對(duì)數(shù)據(jù)庫(kù)進(jìn)行連接,然后測(cè)試,最后釋放連接。這樣,在一個(gè)Test Case中有多個(gè)測(cè)試,需要反復(fù)書(shū)寫(xiě)代碼,這增加了測(cè)試人員的工作量,不符合設(shè)計(jì)目標(biāo)。
建立測(cè)試支架即為所有的測(cè)試建立一個(gè)共同的結(jié)構(gòu),可以解決以上問(wèn)題,初始化代碼、測(cè)試代碼和釋放資源的代碼均放在測(cè)試支架上,每次運(yùn)行測(cè)試代碼之前,首先都運(yùn)行初始化代碼,最后運(yùn)行釋放資源代碼。這樣,每一個(gè)測(cè)試都會(huì)和與之對(duì)應(yīng)的支架一起運(yùn)行,而且測(cè)試結(jié)果互不影響,每一個(gè)結(jié)果都不會(huì)影響其它的測(cè)試結(jié)果。這樣便實(shí)現(xiàn)了代碼的復(fù)用,大大提高了軟件單元測(cè)試的工作效率。
以上通過(guò)模板方法實(shí)現(xiàn),模板方法的Template Method靜態(tài)結(jié)構(gòu)如圖3所示。
其中,setUp方法初始化測(cè)試信息,如數(shù)據(jù)庫(kù)的連接,cleanUp方法的功能是測(cè)試結(jié)束后釋放資源。runTest方法的功能是進(jìn)行測(cè)試業(yè)務(wù)邏輯。TestCase的方法的功能為進(jìn)行測(cè)試邏輯框架的設(shè)計(jì),run為模板方法。在這里,setUp和cleanUp可以被用來(lái)重寫(xiě),由框架來(lái)進(jìn)行調(diào)用。
6 測(cè)試結(jié)果收集
創(chuàng)建對(duì)象TestResult來(lái)收集運(yùn)行的測(cè)試結(jié)果,實(shí)現(xiàn)代碼如下:
UTF使軟件開(kāi)發(fā)者們更愿意接受測(cè)試代碼的工作。有種種好處:UIT使測(cè)試用例的實(shí)現(xiàn)簡(jiǎn)單、一致且模塊化;測(cè)試實(shí)現(xiàn)與執(zhí)行的特性支持迭代、增量開(kāi)發(fā);重新運(yùn)行測(cè)試包的便利使高頻率的回歸測(cè)試成為可能;同時(shí)它還能保證單元測(cè)試的持久性。此外,單元測(cè)試框架UTF也是可擴(kuò)展的,例如,利用Decorator模式,可以不斷向UTF添加新的功能;TestResult類(lèi)也是框架的一個(gè)擴(kuò)展點(diǎn)??蛻?hù)能夠自定義它們的TestResult類(lèi),例如, HTMLTestResult可將結(jié)果上報(bào)為一個(gè)HTML文檔等。
參考文獻(xiàn)參考文獻(xiàn):
[1] (美)普雷斯曼.軟件工程:實(shí)踐者的研究方法[M].北京:機(jī)械工業(yè)出版社,2011.
[2] (美)麥格雷戈.面向?qū)ο蟮能浖y(cè)試[M].北京:機(jī)械工業(yè)出版社,2002.
篇3
關(guān)鍵詞:Testbed/Tbrun;軟件單元測(cè)試;嵌入式軟件
中圖分類(lèi)號(hào):TP311 文獻(xiàn)標(biāo)識(shí)碼:A 文章編號(hào):1009-2374(2013)18-0027-02
嵌入式軟件作為嵌入式系統(tǒng)的重要組成部分,嵌入式軟件質(zhì)量問(wèn)題可能會(huì)帶來(lái)設(shè)備的損壞和人員的傷亡,因而用戶(hù)對(duì)其質(zhì)量有較高的要求。軟件測(cè)試是對(duì)軟件質(zhì)量檢驗(yàn)的一個(gè)非常重要的手段。而軟件測(cè)試中動(dòng)態(tài)測(cè)試最基礎(chǔ)的測(cè)試就是單元測(cè)試。如何開(kāi)展單元測(cè)試以及如何提高單元測(cè)試的效率是一個(gè)值得研究的問(wèn)題。
1 軟件單元測(cè)試的要求及重點(diǎn)
軟件單元測(cè)試是對(duì)軟件基本組成單元進(jìn)行測(cè)試,測(cè)試軟件單元是否正確地實(shí)現(xiàn)規(guī)定的功能,是否滿(mǎn)足軟件性能和接口要求。并驗(yàn)證程序與詳細(xì)設(shè)計(jì)說(shuō)明的一致性。因此在單元測(cè)試時(shí),需要模擬被測(cè)單元與其他模塊之間的交互,開(kāi)發(fā)驅(qū)動(dòng)模塊和樁模塊兩種輔助模塊,構(gòu)建一個(gè)可執(zhí)行的環(huán)境,驅(qū)動(dòng)模塊用于模擬被測(cè)單元的上層模塊,測(cè)試執(zhí)行時(shí)由驅(qū)動(dòng)模塊調(diào)用被測(cè)單元使其運(yùn)行;樁模塊用于模擬被測(cè)單元在執(zhí)行過(guò)程中所調(diào)用的模塊。
單元測(cè)試重點(diǎn)考慮的測(cè)試類(lèi)型有:(1) 接口測(cè)試。接口測(cè)試主要檢查實(shí)參與形參的數(shù)目是否相等、實(shí)參與形參的屬性是否匹配、實(shí)參與形參的單位是否一致、傳到被調(diào)用模塊的實(shí)參的屬性是否與形參的屬性匹配、是否把常量當(dāng)作變量傳遞等內(nèi)容。(2)功能測(cè)試。功能測(cè)試主要是對(duì)照軟件單元的設(shè)計(jì)說(shuō)明,驗(yàn)證軟件是否完成了所需的功能。(3)重要執(zhí)行路徑測(cè)試。應(yīng)設(shè)計(jì)測(cè)試用例以發(fā)現(xiàn)錯(cuò)誤的計(jì)算、不正確的比較和不正常的控制流向等錯(cuò)誤。在計(jì)算中比較常見(jiàn)的錯(cuò)誤是:誤解或錯(cuò)誤處理算術(shù)運(yùn)算的優(yōu)先次序、混用不同類(lèi)的操作、計(jì)算精度不夠等。另外在控制軟件執(zhí)行流程的比較操作中比較常見(jiàn)的錯(cuò)誤有:不同數(shù)據(jù)類(lèi)型的比較、不正確的邏輯操作符或不正確的優(yōu)先次序、因精度不夠使本應(yīng)相等的數(shù)不相等(如浮點(diǎn)數(shù))等。(4)軟件單元的局部數(shù)據(jù)結(jié)構(gòu)測(cè)試。軟件單元的局部數(shù)據(jù)結(jié)構(gòu)是一個(gè)主要的錯(cuò)誤來(lái)源,應(yīng)設(shè)計(jì)測(cè)試用例來(lái)發(fā)現(xiàn)不正確的或不一致的數(shù)據(jù)說(shuō)明、初始化有錯(cuò)或沒(méi)有賦初值、不正確的變量名、不一致的數(shù)據(jù)類(lèi)型、上溢/下溢或引用錯(cuò)誤等類(lèi)型的錯(cuò)誤。(5)錯(cuò)誤處理路徑測(cè)試。一般軟件錯(cuò)誤處理路徑測(cè)試應(yīng)考慮下面幾種可能的錯(cuò)誤:對(duì)錯(cuò)誤的描述不易理解、指出的錯(cuò)誤并不是所遇到的錯(cuò)誤、出錯(cuò)時(shí)還沒(méi)有進(jìn)行出錯(cuò)處理就先進(jìn)行系統(tǒng)干預(yù)、錯(cuò)誤邊界條件的處理不正確、描述錯(cuò)誤的信息不正確從而不足以確定出錯(cuò)的原因等。(6)邊界測(cè)試。邊界測(cè)試是檢測(cè)軟件在其輸入/輸出域、過(guò)程參數(shù)、狀態(tài)轉(zhuǎn)換、功能界限等具有一定范圍的邊界或端點(diǎn)條件下的運(yùn)行情況,考核軟件的功能或性能在其邊界條件下或邊界的鄰近區(qū)域內(nèi)是否依然滿(mǎn)足設(shè)計(jì)要求。按照上去要求進(jìn)行單元測(cè)試時(shí),為達(dá)到要求的覆蓋條件,還需采取一定的技術(shù)手段對(duì)測(cè)試覆蓋率進(jìn)行記錄和分析,確保達(dá)到相應(yīng)的覆蓋率指標(biāo)。采用TBrun單元級(jí)測(cè)試工具,能自動(dòng)產(chǎn)生軟件測(cè)試驅(qū)動(dòng)、樁模塊,提供友好的輸入輸出人機(jī)交互和覆蓋率統(tǒng)計(jì)功能,能有效提高單元測(cè)試的測(cè)試效率。
2 Testbed在單元測(cè)試中的應(yīng)用
使用 Testbed/TBrun的基本方法是:設(shè)計(jì)測(cè)試用例;在Testbed/TBrun中加載被測(cè)單元文件,通過(guò)Testbed/TBrun對(duì)被測(cè)軟件進(jìn)行源程序自動(dòng)插裝;根據(jù)測(cè)試用例設(shè)定輸入和預(yù)期的輸出,執(zhí)行插裝好的源程序單元;分析輸入數(shù)據(jù)、預(yù)期輸出和實(shí)際輸出;得到被測(cè)軟件在當(dāng)前的測(cè)試用例執(zhí)行過(guò)程中代碼的覆蓋率。需要注意的是,每執(zhí)行一個(gè)測(cè)試用例就需要重新編譯并執(zhí)行。Testbed/TBrun的覆蓋率統(tǒng)計(jì)只具有累加的功能,因此不能查詢(xún)每一測(cè)試用例執(zhí)行后的覆蓋率信息。在執(zhí)行完所有的測(cè)試用例后會(huì)生成一個(gè)總的覆蓋率文件,Testbed/TBrun通過(guò)對(duì)覆蓋率文件的分析得出軟件單元相應(yīng)語(yǔ)句的覆蓋情況,根據(jù)這些覆蓋情況可以較快確定冗余的測(cè)試數(shù)據(jù)并增補(bǔ)遺漏的測(cè)試數(shù)據(jù),從而指導(dǎo)新的測(cè)試用例設(shè)計(jì)。在實(shí)際應(yīng)用Testbed單元測(cè)試時(shí),需注意以下三個(gè)方面:(1)數(shù)組和指針類(lèi)型的變量的輸入。數(shù)組可以通過(guò)在Testbed/TBrun插裝后的源代碼中插入數(shù)組的初始化語(yǔ)句對(duì)數(shù)組賦值或者在 Testbed/TBrun 環(huán)境中對(duì)數(shù)
組的一部分賦值。因指針不能被直接賦一個(gè)地址,所以輸入指針可采用映射的方式來(lái)賦值,將指針變量映射成相應(yīng)的自定義變量,然后對(duì)自定義變量賦值。在測(cè)試執(zhí)行的過(guò)程中,這個(gè)自定義變量的值就是指針的輸入值。(2)被測(cè)單元代碼的必要修改。在實(shí)際的測(cè)試過(guò)程中,有的代碼單元不能直接使用Testbed/TBrun直接執(zhí)行測(cè)試。須在分析之前對(duì)代碼單元做少量修改。如Testbed/TBrun 插裝源代碼時(shí)會(huì)生成 main()函數(shù),因此被測(cè)單元中的 main()函數(shù)要改為其他的名稱(chēng)以避免造成名字沖突;Testbed/TBrun 執(zhí)行分析時(shí)會(huì)執(zhí)行被測(cè)單元,因此被測(cè)單元中的 while(1)之類(lèi)的死循環(huán)結(jié)構(gòu)要去掉,否則分析將無(wú)法結(jié)束。(3)模塊測(cè)試后顯示最終整體覆蓋率,不能查詢(xún)每一測(cè)試用例執(zhí)行后的覆蓋率信息。
3 結(jié)語(yǔ)
Testbed有效地支持了測(cè)試人員的測(cè)試工作,相對(duì)于完全人工測(cè)試提高了測(cè)試效率。該工具仍存在不足,還需在實(shí)踐中不斷完善使用方法。
參考文獻(xiàn)
篇4
功能測(cè)試主要通過(guò)單元測(cè)試和集成測(cè)試來(lái)完成系統(tǒng)的功能測(cè)試。單元測(cè)試的目的是測(cè)試源碼中最小單元的代碼是否正確處理它該處理的任務(wù)。單元測(cè)試重點(diǎn)測(cè)試了代碼中分支比較多的地方,以驗(yàn)證程序是否能根據(jù)條件執(zhí)行相應(yīng)的分支;并重點(diǎn)測(cè)試了代碼對(duì)于異常情況的處理,以驗(yàn)證代碼是否能對(duì)于發(fā)生的異常情況進(jìn)行相應(yīng)的處理;再就是對(duì)源碼中與數(shù)據(jù)庫(kù)相關(guān)的代碼和涉及用戶(hù)輸入輸出的代碼進(jìn)行了重點(diǎn)測(cè)試。集成測(cè)試是在單元測(cè)試的基礎(chǔ)上,將已經(jīng)通過(guò)單元測(cè)試的軟件單元組合起來(lái),組成可以執(zhí)行的功能單元,然后進(jìn)行測(cè)試。通過(guò)測(cè)試的子功能單元再通過(guò)組合,組成更大一級(jí)的功能模塊進(jìn)行測(cè)試。集成測(cè)試重點(diǎn)測(cè)試軟件單元的組合能否正常工作,模塊之間的組合能否集成起來(lái)工作,還要測(cè)試構(gòu)成系統(tǒng)的所有模塊組合能否正常工作。集成測(cè)試主要有三種測(cè)試方案:自底向上進(jìn)行測(cè)試,自頂向下進(jìn)行測(cè)試,以及自底向上和自頂向下結(jié)合的方式進(jìn)行測(cè)試。自底向上的集成測(cè)試方式是最常使用的方法,這種方式從程序模塊結(jié)構(gòu)中最底層的單元模塊開(kāi)始組裝和測(cè)試。自頂向下的集成測(cè)試方式正好與自底向上的方式相反,需要編寫(xiě)樁模塊以支撐上層的測(cè)試。最理想的方案是能將這兩種集成方式結(jié)合起來(lái),這樣在早期的時(shí)候,既能發(fā)現(xiàn)重大的問(wèn)題,又能及早展開(kāi)人力。但是這種方式實(shí)施起來(lái)有難度,需要軟件開(kāi)發(fā)者一開(kāi)始要做好合理的策劃和設(shè)計(jì)。由于系統(tǒng)在需求和設(shè)計(jì)階段做的工作比較扎實(shí),本系統(tǒng)主要采用了自底向上的集成測(cè)試方式:先把最底層的軟件單元組合,組成高一級(jí)的功能單元進(jìn)行測(cè)試;測(cè)試通過(guò)的功能單元再進(jìn)行組合,組成更高一級(jí)的模塊單元,并對(duì)模塊單元進(jìn)行測(cè)試;最后,模塊單元再集成到系統(tǒng)中進(jìn)行測(cè)試。測(cè)試重點(diǎn)集中在各單元與各單元之間的接口和信息交互。
2.用戶(hù)界面測(cè)試
通過(guò)用戶(hù)界面測(cè)試來(lái)驗(yàn)證用戶(hù)與系統(tǒng)的交互情況。界面測(cè)試的目標(biāo)是確保系統(tǒng)向用戶(hù)提供適當(dāng)?shù)脑L問(wèn)和瀏覽被測(cè)對(duì)象功能的操作。測(cè)試方法,為每個(gè)窗口創(chuàng)建或修改測(cè)試,以核實(shí)各個(gè)應(yīng)用程序窗口和對(duì)象都可正確進(jìn)行瀏覽,并處于正常狀態(tài)。完成標(biāo)準(zhǔn),證實(shí)各個(gè)窗口與基準(zhǔn)版本保持一致,或符合接受標(biāo)準(zhǔn);需考慮的特殊事項(xiàng),并不是所有定制或第三方對(duì)象的特征都可訪問(wèn)。
3.性能測(cè)試
性能測(cè)試采用了主觀評(píng)測(cè)和軟件評(píng)測(cè)相結(jié)合的方法,先部署上系統(tǒng),在環(huán)保局內(nèi)部試運(yùn)行,通過(guò)工作人員的使用來(lái)了解系統(tǒng)的反應(yīng)速度是否滿(mǎn)足客戶(hù)的需求。系統(tǒng)的性能需求主要是對(duì)系統(tǒng)web訪問(wèn)的response時(shí)間和系統(tǒng)負(fù)載能力的要求。在性能測(cè)試過(guò)程中,我們利用Loadrunner模擬用戶(hù)向系統(tǒng)發(fā)送請(qǐng)求,并監(jiān)控系統(tǒng)的CPU,Memory等參數(shù)。
4.安全性測(cè)試
本系統(tǒng)采用先登錄,后操作的方式。因此,必須測(cè)試有效和無(wú)效的用戶(hù)名和密碼,并注意到是否大小寫(xiě)敏感。本系統(tǒng)是有超時(shí)的限制,也就是說(shuō),用戶(hù)登錄后在一定時(shí)間內(nèi)(20分鐘)沒(méi)有點(diǎn)擊任何頁(yè)面,需要重新登錄才能正常使用。所以,也必須對(duì)其進(jìn)行測(cè)試。
5.測(cè)試結(jié)果
功能測(cè)試結(jié)果:滿(mǎn)足環(huán)保局功能需求,與需求不相符或者后增加的功能,將在后續(xù)版本中加入,本版將不做修改。
篇5
【關(guān)鍵詞】軟件測(cè)試 白盒 黑盒 單元測(cè)試 組裝測(cè)試 確認(rèn)測(cè)試 系統(tǒng)測(cè)試
一、軟件測(cè)試的常用方法
軟件測(cè)試就是在軟件投入運(yùn)行前,對(duì)軟件需求分析、設(shè)計(jì)規(guī)格說(shuō)明和編碼的最終復(fù)審,是軟件開(kāi)發(fā)過(guò)程的重要組成部分,是軟件質(zhì)量保證的關(guān)鍵步驟。采用面向?qū)ο蠹夹g(shù)進(jìn)行軟件開(kāi)發(fā)產(chǎn)生了兩個(gè)結(jié)果:一是開(kāi)發(fā)出功能更強(qiáng)大更便于用戶(hù)使用的軟件產(chǎn)品,二是生成規(guī)模龐大的程序代碼和文檔,這也必然導(dǎo)致更大規(guī)模的軟件測(cè)試和維護(hù)工作。因此,規(guī)范化的軟件測(cè)試勢(shì)在必行。規(guī)范化不只是測(cè)試的需求(有效代碼量、結(jié)構(gòu)/邏輯的復(fù)雜性、高性能/高精確性/高可靠性需求)和消耗資源(人力/時(shí)間/測(cè)試頻度)規(guī)?;?,更要求在面對(duì)規(guī)模龐大的軟件測(cè)試需求,在合理的資源消耗基礎(chǔ)上,實(shí)施有效的測(cè)試。
1.人工測(cè)試的方法
(1)個(gè)人復(fù)查。個(gè)人復(fù)查是指程序員自行設(shè)計(jì)測(cè)試用例,對(duì)源代碼、詳細(xì)設(shè)計(jì)進(jìn)行仔細(xì)檢查,并記錄錯(cuò)誤、不足之處等。個(gè)人復(fù)查主要包括檢查變量的正確性、檢查標(biāo)號(hào)的正確性、檢查子程序、宏、函數(shù)、常量檢查、標(biāo)準(zhǔn)檢查、風(fēng)格檢查、比較控制流、選擇、激活路徑、對(duì)照詳細(xì)說(shuō)明書(shū),閱讀源代碼和補(bǔ)充文檔等方面的測(cè)試內(nèi)容。
(2)走查。走查是指測(cè)試人員先閱讀相應(yīng)的文檔和源代碼,然后人工將測(cè)試數(shù)據(jù)輸入被測(cè)試程序,并在紙上跟蹤監(jiān)視程序的執(zhí)行情況,人工沿著程序的邏輯走查運(yùn)行一遍,跟蹤走查運(yùn)行的進(jìn)程來(lái)發(fā)現(xiàn)程序的錯(cuò)誤。走查的具體測(cè)試內(nèi)容包括模塊特性、模塊接口、模塊的對(duì)外輸入或輸出、局部數(shù)據(jù)結(jié)構(gòu)、數(shù)據(jù)計(jì)算錯(cuò)誤、控制流錯(cuò)誤、處理出錯(cuò)和邊界測(cè)試等方面。
(3)會(huì)審。會(huì)審是指測(cè)試人員在會(huì)審前仔細(xì)閱讀軟件的有關(guān)資料,根據(jù)錯(cuò)誤類(lèi)型清單(根據(jù)以往的經(jīng)驗(yàn)、對(duì)源程序的估計(jì)等,并在以后測(cè)試中給以豐富補(bǔ)充)填寫(xiě)檢測(cè)表,提出根據(jù)錯(cuò)誤類(lèi)型要提出的問(wèn)題。會(huì)審時(shí),由程序設(shè)計(jì)人員講解程序的設(shè)計(jì)方法,由程序編寫(xiě)人員逐個(gè)講解程序代碼的編寫(xiě),測(cè)試人員需要逐個(gè)審查,提問(wèn),討論可能出現(xiàn)的問(wèn)題。會(huì)審對(duì)程序的功能、結(jié)構(gòu)、邏輯和風(fēng)格都要進(jìn)行審定。會(huì)審的測(cè)試內(nèi)容與“走查”的內(nèi)容相同。
2.機(jī)器測(cè)試
(1)定義。機(jī)器測(cè)試的目的是檢查程序的動(dòng)態(tài)性能,檢查程序在執(zhí)行過(guò)程中存在的錯(cuò)誤。尤其是發(fā)現(xiàn)程序在實(shí)現(xiàn)功能、邏輯通路、數(shù)值計(jì)算、數(shù)據(jù)處理、邊界處理、錯(cuò)誤處理等方面存在的錯(cuò)誤。機(jī)器測(cè)試分為白盒測(cè)試和黑盒測(cè)試。
(2)黑盒測(cè)試。黑盒測(cè)試即功能測(cè)試,這種方法是把軟件看成一個(gè)看不見(jiàn)里面內(nèi)容的黑盒,在完全不考慮程序內(nèi)部結(jié)構(gòu)和特性的情況下,測(cè)試軟件的外部特性。根據(jù)軟件的需求規(guī)格說(shuō)明書(shū)設(shè)計(jì)測(cè)試用例,從程序輸入和輸出特性上檢查程序是否滿(mǎn)足設(shè)定的功能。黑盒測(cè)試常采用的方法是設(shè)計(jì)適量有效和無(wú)效的輸入數(shù)據(jù)進(jìn)行測(cè)試,以期用最小的代價(jià)發(fā)現(xiàn)最多的錯(cuò)誤。
(3)白盒測(cè)試。白盒也稱(chēng)結(jié)構(gòu)測(cè)試,這是將軟件看成一個(gè)透明的白盒子,按照程序的內(nèi)部結(jié)構(gòu)和處理邏輯來(lái)選定測(cè)試用例,對(duì)軟件的邏輯路徑及過(guò)程進(jìn)行測(cè)試,檢查它與設(shè)計(jì)是否相符。
二、軟件測(cè)試的流程
軟件測(cè)試雖然是一個(gè)獨(dú)立的階段,但在實(shí)際工作中,測(cè)試的流程主要包含單元測(cè)試、組裝測(cè)試、確認(rèn)測(cè)試等階段。
1.單元測(cè)試。單元測(cè)試也叫模塊測(cè)試,單元指清晰定義了子功能的最小單位,如程序的最小編譯單位等,是測(cè)試工作的第一步,通常單元測(cè)試需要編寫(xiě)樁程序及耙程序。單元測(cè)試是要保證每個(gè)獨(dú)立的模塊完成清晰定義的子功能,發(fā)現(xiàn)編碼和詳細(xì)設(shè)計(jì)的錯(cuò)誤。它將整個(gè)系統(tǒng)分解,減少測(cè)試復(fù)雜度,在模塊范圍定位錯(cuò)誤的位置,并且可以多個(gè)模塊并行測(cè)試。測(cè)試可以由編碼人員也可以由測(cè)試人員來(lái)完成。測(cè)試方法以白盒測(cè)試為主,輔以必要的黑盒測(cè)試。測(cè)試內(nèi)容包括模塊接口、模塊內(nèi)部數(shù)據(jù)結(jié)構(gòu)、邏輯通路、邊界值、出錯(cuò)處理等。
2.組裝測(cè)試。組裝測(cè)試也叫綜合測(cè)試、集成測(cè)試、聯(lián)合測(cè)試,它是在單元測(cè)試之后需要按照設(shè)計(jì)時(shí)做出的層次模塊圖把測(cè)試模塊連接起來(lái),進(jìn)行組裝測(cè)試。測(cè)試目的是檢查能夠獨(dú)立實(shí)現(xiàn)子功能的單元模塊能否在組裝過(guò)程中逐級(jí)實(shí)現(xiàn)組合起來(lái)的主功能。測(cè)試人員由編碼人員和測(cè)試人員共同進(jìn)行。測(cè)試方法是黑盒測(cè)試。組裝測(cè)試的策略分為非增式測(cè)試和增式測(cè)試,增式測(cè)試又分為自頂向下、自底向上和混合式三種。
3.確認(rèn)測(cè)試。確認(rèn)測(cè)試也叫合格性測(cè)試、驗(yàn)收測(cè)試,經(jīng)過(guò)組裝測(cè)試后,所有模塊已連接成為一體,確認(rèn)測(cè)試是將整個(gè)軟件作為測(cè)試對(duì)象,進(jìn)一步檢查軟件是否符合需求規(guī)格說(shuō)明書(shū)的要求。確認(rèn)測(cè)試的目的是檢查系統(tǒng)是否能夠按預(yù)定要求工作。確認(rèn)測(cè)試主要由測(cè)試人員完成。確認(rèn)測(cè)試要進(jìn)行以下幾方面的內(nèi)容:在模擬的環(huán)境下,運(yùn)用黑盒測(cè)試的方法,驗(yàn)證測(cè)試可包括功能測(cè)試、可移植性、兼容性、錯(cuò)誤恢復(fù)能力、可維護(hù)性等性能測(cè)試。有些確認(rèn)測(cè)試還將軟件配置審查,α測(cè)試,β測(cè)試也包含進(jìn)來(lái)。
三、結(jié)束語(yǔ)
在現(xiàn)實(shí)生活中,業(yè)界人員所熱衷追求的往往是高效的軟件開(kāi)發(fā)技能,而高效的軟件測(cè)試技能卻相對(duì)為人們所冷落。在當(dāng)今的大學(xué),計(jì)算機(jī)專(zhuān)業(yè)均沒(méi)有開(kāi)設(shè)任何軟件測(cè)試方面的課程,每年畢業(yè)進(jìn)入業(yè)界的學(xué)生,幾乎全無(wú)軟件測(cè)試方面的知識(shí),軟件測(cè)試的培訓(xùn)與教育并無(wú)法滿(mǎn)足當(dāng)今IT產(chǎn)業(yè)的需求。隨著敏捷開(kāi)發(fā)方法等新一代軟件工程概念的風(fēng)靡,軟件編碼和測(cè)試過(guò)程多次迭代,測(cè)試人員更積極地參與到軟件生命周期的各個(gè)階段中,使得整個(gè)項(xiàng)目團(tuán)隊(duì)收取事半功倍的成效。編碼和測(cè)試人員越來(lái)越緊密地協(xié)同工作,優(yōu)秀的程序必然需要了解測(cè)試的方法和概念,優(yōu)秀的測(cè)試人員所具備的技能也不再是僅僅是對(duì)現(xiàn)成的程序進(jìn)行直觀的功能測(cè)試,軟件測(cè)試的涵義和策略日益復(fù)雜,軟件質(zhì)量風(fēng)險(xiǎn)控制涉及到愈來(lái)愈多的方面。
參考文獻(xiàn):
[1]《淺析軟件測(cè)試技術(shù)現(xiàn)狀》 李靜 郭曉磊 《光盤(pán)技術(shù)》2009年第5期
[2]《軟件測(cè)試:跨越整個(gè)軟件開(kāi)發(fā)生命周期》 (美國(guó))愛(ài)弗里特 (Everett G.D.) (美國(guó))Raymond MCleod 譯者:郭耀 清華大學(xué)出版社
篇6
關(guān)鍵詞:分類(lèi);規(guī)則;面向?qū)ο?繼承;封裝;多態(tài)
中圖分類(lèi)號(hào):TP311文獻(xiàn)標(biāo)識(shí)碼:A文章編號(hào):1009-3044(2010)08-2010-02
The Study of Object Oriented of the Unit Test Based on Rule
ZHANG Ke-hong
(School of Statistics, Lanzhou Commercial College, Lanzhou 730030, China)
Abstract: The Object Oriented of the unit test depend on rule,which is required and analysed by the software system of Testing case. The traditional unit tests analysis the internal logic structure of programs, but The Object Oriented's unit test I am talking about stress the tests of the inherit, encapsulation and diversity of the class in Object Oriented development besides the function of the ones.This document depends on Data Mining of rule classification.
Key words: classification; rule; object oriented; inherit; encapsulation diversity
面向?qū)ο蟮臏y(cè)試技術(shù)是面向?qū)ο箝_(kāi)發(fā)的重要一環(huán),也是軟件質(zhì)量和成熟度的保證。單元測(cè)試的指導(dǎo)思想是:能自生編譯運(yùn)行的最小程序單元[4]。這一理論對(duì)面向?qū)ο箝_(kāi)發(fā)的軟件也是適用的,但它的不足是沒(méi)有明確在面向?qū)ο蟮臏y(cè)試中把方法還是把類(lèi)看作單元,如果把方法看作單元會(huì)給以類(lèi)為單元的面向?qū)ο蟮拈_(kāi)發(fā)和測(cè)試帶來(lái)混亂,所以在軟件系統(tǒng)測(cè)試用例庫(kù)的單元測(cè)試中以類(lèi)為單元進(jìn)行測(cè)試。
數(shù)據(jù)挖掘是指在數(shù)據(jù)中發(fā)現(xiàn)有效的、新穎的、潛在有用的、最終可理解的模式。為了從大量數(shù)據(jù)的低層數(shù)據(jù)中抽取高層知識(shí),數(shù)據(jù)挖掘利用其他學(xué)科知識(shí):機(jī)器學(xué)習(xí)、模式識(shí)別、數(shù)據(jù)庫(kù)、統(tǒng)計(jì)理論、人工智能、專(zhuān)家系統(tǒng)中的知識(shí)獲取、數(shù)據(jù)可視化,高性能計(jì)算等[9]?;谝?guī)則的分類(lèi)是數(shù)據(jù)挖掘的分類(lèi)方法中比較有效的一種技術(shù),它是適用于從少量信息和知識(shí)中獲取有用的信息,它的這一特點(diǎn)也可以在以類(lèi)為單元進(jìn)行測(cè)試中得到應(yīng)用,也是對(duì)軟件測(cè)試技術(shù)的改進(jìn)。
1 軟件系統(tǒng)測(cè)試用例庫(kù)介紹
軟件測(cè)試項(xiàng)目的管理活動(dòng)包含測(cè)度、度量、估算、風(fēng)險(xiǎn)分析、進(jìn)度安排、跟蹤和控制[6]等,而軟件測(cè)試項(xiàng)目管理的基本內(nèi)容是計(jì)劃、組織和監(jiān)控,從另一個(gè)角度來(lái)說(shuō)它有八個(gè)工作領(lǐng)域,即測(cè)試范圍管理、時(shí)間管理、成本管理、質(zhì)量管理、人力資源管理、溝通管理、風(fēng)險(xiǎn)管理和過(guò)程管理[10]。
軟件系統(tǒng)的開(kāi)發(fā)工作有很大的工作量,軟件測(cè)試的工作占有很大的比重,因?yàn)檐浖y(cè)試工作存在于軟件系統(tǒng)測(cè)試用例庫(kù)軟件開(kāi)發(fā)的各個(gè)階段,所以軟件測(cè)試項(xiàng)目的管理活動(dòng)也不是鎖定在那一個(gè)階段,而是存在于需求分析、概要設(shè)計(jì)、詳細(xì)設(shè)計(jì)、編碼階段、安裝與維護(hù)的各個(gè)階段[3]。
在軟件系統(tǒng)每一個(gè)測(cè)試階段,需要設(shè)計(jì)與之相關(guān)的測(cè)試用例,而測(cè)試用例設(shè)計(jì)和執(zhí)行是軟件系統(tǒng)測(cè)試工作的核心,直接關(guān)系到測(cè)試的效率、結(jié)果,也是工作量最大的任務(wù)之一,同時(shí)BUG的管理一般由數(shù)據(jù)庫(kù)系統(tǒng)來(lái)支持,如果在軟件系統(tǒng)中沒(méi)有很好的測(cè)試管理系統(tǒng)也就不能提高測(cè)試的效率。軟件系統(tǒng)測(cè)試用例庫(kù)的建設(shè)也是基于上述目標(biāo),當(dāng)然測(cè)試用例庫(kù)的建立有利于跟蹤和統(tǒng)計(jì)執(zhí)行測(cè)試結(jié)果的報(bào)告 ,也有利于實(shí)現(xiàn)軟件系統(tǒng)測(cè)試用例的標(biāo)準(zhǔn)化、回歸測(cè)試和系統(tǒng)的質(zhì)量分析。
軟件系統(tǒng)測(cè)試用例庫(kù)包括基本測(cè)試數(shù)據(jù)維護(hù)、測(cè)試信息查詢(xún)、安全、幫助、測(cè)試數(shù)據(jù)庫(kù)管理六個(gè)模塊,通過(guò)UML畫(huà)出軟件系統(tǒng)測(cè)試用例庫(kù)的用例圖1。
2 軟件系統(tǒng)測(cè)試用例庫(kù)單元測(cè)試中類(lèi)測(cè)試的充分性
類(lèi)測(cè)試充分性是面相對(duì)象中類(lèi)測(cè)試的重要條件,也是質(zhì)量的保障,我們?cè)谠O(shè)計(jì)軟件系統(tǒng)測(cè)試用例庫(kù)單元測(cè)試用例的時(shí)候能不能保證對(duì)執(zhí)行的語(yǔ)句每一條都考慮到,能不能找到程序中的每一個(gè)Bug,同時(shí)也要考慮到相反的問(wèn)題,那就是在效率優(yōu)先的前提下有沒(méi)有必要做到找出所有的Bug,也要考慮到類(lèi)的繼承、多態(tài)、封裝等特點(diǎn)以及這些特點(diǎn)給測(cè)試帶來(lái)的在傳統(tǒng)測(cè)試中從沒(méi)遇到的新困難。為了有效地進(jìn)行面向?qū)ο蟮膯卧獪y(cè)試就要考慮類(lèi)測(cè)試的充分性,它有3個(gè)標(biāo)準(zhǔn)[6]:
1) 基于類(lèi)的狀態(tài)轉(zhuǎn)換的充分性:類(lèi)的狀態(tài)有很多,在設(shè)計(jì)測(cè)試用例的時(shí)候要考慮到要充分考慮了的狀態(tài)轉(zhuǎn)換,如果在測(cè)試用例中沒(méi)有體現(xiàn)出至少一次的狀態(tài)轉(zhuǎn)換,那就意味著測(cè)試是失敗的,同時(shí)也要說(shuō)明就是測(cè)完所有的狀態(tài)也可能存在著B(niǎo)ug。
2) 基于限制的充分性:對(duì)每一個(gè)操作來(lái)說(shuō)它都可能存在前置約束條件和后置約束條件。在設(shè)計(jì)測(cè)試用例時(shí)就要考慮到這些約束條件對(duì)操作的影響,特別是要注意約束條件出現(xiàn)的可能性。
3) 基于路徑的充分性:在設(shè)計(jì)測(cè)試用例時(shí)還要考慮基于路徑的測(cè)試是否完全,也就是說(shuō)在測(cè)試用例都執(zhí)行完時(shí),程序中的每行代碼都盡可能執(zhí)行一邊。但此時(shí)要強(qiáng)調(diào)測(cè)試的效率問(wèn)題。
3 基于規(guī)則的單元測(cè)試技術(shù)研究
基于規(guī)則的分類(lèi)法使用一組IF-THEN規(guī)則進(jìn)行分類(lèi),其表達(dá)式為:IF 條件THEN 結(jié)論,規(guī)則的IF部分乘坐規(guī)則前件,THEN部分是規(guī)則的結(jié)論。條件是由一個(gè)或多個(gè)連接詞AND連接的屬性測(cè)試組成,規(guī)則的結(jié)論是包含一個(gè)類(lèi)預(yù)測(cè),如果給定的測(cè)試用例,其規(guī)則前件中的條件都成立,則規(guī)則前件被滿(mǎn)足,說(shuō)明規(guī)則覆蓋該測(cè)試用例。一般規(guī)則的提取有決策樹(shù)和順序覆蓋算法,規(guī)則可以用覆蓋率和準(zhǔn)確律來(lái)評(píng)價(jià),其定義為[8]:
和
其中ncovers為規(guī)則覆蓋的測(cè)試用例數(shù),ncorrect為規(guī)則正確分類(lèi)的測(cè)試用例數(shù),|D|為測(cè)試用例庫(kù)中D的測(cè)試用例數(shù)。
在設(shè)計(jì)軟件系統(tǒng)測(cè)試用例庫(kù)類(lèi)的測(cè)試用例時(shí),用基于規(guī)則的思想考慮路徑的測(cè)試是否完全,也就是說(shuō)在測(cè)試用例都執(zhí)行完時(shí),程序中的每行代碼都盡可能執(zhí)行一遍。但此時(shí)要強(qiáng)調(diào)測(cè)試的效率問(wèn)題。例如:軟件系統(tǒng)測(cè)試用例庫(kù)的模糊查詢(xún)void CMainDialog::BlurTestSch(),主要是關(guān)鍵字KEY填寫(xiě)和四個(gè)查詢(xún)類(lèi)別的選擇,四個(gè)查詢(xún)類(lèi)別是項(xiàng)目編號(hào)(XMBH)、優(yōu)先級(jí)(FIRST)、是否通過(guò)(YN)、和時(shí)間(TIME),優(yōu)先級(jí)又包括致命(D)、嚴(yán)重(S)、一般(U)、微小(M),用決策樹(shù)提取模糊查詢(xún)的規(guī)則如表1。
通過(guò)上述的規(guī)則,有關(guān)軟件系統(tǒng)測(cè)試用例庫(kù)的模糊查詢(xún)void CMainDialog::BlurTestSch()
的測(cè)試通過(guò)void CMainDialog::OnTest()實(shí)現(xiàn),其主要步驟如下:
void CMainDialog::OnTest()
{
CTestingSet m_testingset;//定義CTestingSet類(lèi)的對(duì)象
…
if(!m_input.IsEmpty())
{
if(pare("項(xiàng)目編號(hào)")==0)
{
CMainDialog::BlurTestSch();
MessageBox("選擇項(xiàng)目編號(hào)關(guān)鍵字成功!");
}
if(pare("優(yōu)先級(jí)")==0)
{
CMainDialog::BlurTestSch());
MessageBox("選擇優(yōu)先級(jí)關(guān)鍵字成功!");
}
if(pare("是否通過(guò)")==0)
{
CMainDialog::BlurTestSch();
MessageBox("選擇是否通過(guò)關(guān)鍵字成功!");
}
if(pare("時(shí)間")==0)
{
CMainDialog::BlurTestSch();
MessageBox("選擇時(shí)間關(guān)鍵字成功!");
} }
else
{CMainDialog::BlurTestSch();
MessageBox("請(qǐng)?zhí)顚?xiě)查詢(xún)關(guān)鍵字成功!");
} }
通過(guò)測(cè)試程序的運(yùn)行,我們發(fā)現(xiàn)通過(guò)基于規(guī)則的分類(lèi)方法設(shè)計(jì)的測(cè)試用例是非常有效的,例如在本次測(cè)試中設(shè)計(jì)測(cè)試數(shù)據(jù)集D=10,其中規(guī)則2時(shí)人為設(shè)計(jì)的錯(cuò)誤的規(guī)則,主要用于XMBH為空的測(cè)試。
它們的覆蓋率為:ncovers(1)=…= ncovers(9)=1/9。(下轉(zhuǎn)第2021頁(yè))
(上接第2011頁(yè))
它們的正確率有區(qū)別,主要是規(guī)則2覆蓋兩個(gè)測(cè)試用例,它的正確率 ncorrec(2)=1/2,其余的正確率是 ncorrec(1)=1/1,ncorrec(3)=…= ncorrec(9)=1/1。
從這些數(shù)據(jù)說(shuō)明基于規(guī)則的分類(lèi)方法使面向?qū)ο蟮臏y(cè)試的效率方面有很大的提高,這也是對(duì)軟件測(cè)試技術(shù)中白盒測(cè)試的比較有意義的探索,也是數(shù)據(jù)挖掘的方法和軟件測(cè)試技術(shù)有益的嘗試,從而促進(jìn)軟件測(cè)試技術(shù)的發(fā)展。
4 結(jié)束語(yǔ)
從軟件的生存周期看,單元測(cè)試是指在程序文檔結(jié)束以后進(jìn)行的測(cè)試,它在測(cè)試技術(shù)中主要是白盒測(cè)試,也就是說(shuō)它是針對(duì)程序的邏輯結(jié)構(gòu)進(jìn)行的測(cè)試。從另一方面來(lái)說(shuō)面向?qū)ο蟮拈_(kāi)發(fā)技術(shù)下的面向?qū)ο蟮臏y(cè)試也是和傳統(tǒng)意義的測(cè)試有很多的不同點(diǎn),尤其是面向?qū)ο箢?lèi)的繼承、封裝、和多態(tài)給測(cè)試造成了很大的困難,所以在本文中結(jié)合數(shù)據(jù)挖掘中的基于規(guī)則的分類(lèi)技術(shù)這些特征的設(shè)計(jì)。又因?yàn)椴还苁莻鹘y(tǒng)意義的測(cè)試還是面向?qū)ο蟮臏y(cè)試,設(shè)計(jì)測(cè)試的依據(jù)是軟件系統(tǒng)測(cè)試用例庫(kù)規(guī)格說(shuō)明書(shū)、軟件系統(tǒng)測(cè)試用例庫(kù)設(shè)計(jì)文檔和軟件系統(tǒng)測(cè)試用例庫(kù)使用說(shuō)明書(shū),如果是設(shè)計(jì)文檔錯(cuò)誤,不管哪種測(cè)試軟件質(zhì)量就難以保證,當(dāng)然測(cè)試的設(shè)計(jì)也就沒(méi)有保障。即使測(cè)試以后發(fā)現(xiàn)是設(shè)計(jì)的錯(cuò)誤,這時(shí)修改的代價(jià)是相當(dāng)昂貴的。因此,較理想的做法是深入了解軟件的特點(diǎn),按軟件工程各階段形成的文檔,分別進(jìn)行嚴(yán)格的審查和測(cè)試。總之應(yīng)通過(guò)各種方法和新技術(shù)提高測(cè)試效率和軟件系統(tǒng)測(cè)試用例庫(kù)的健壯性、正確性和有效性!
參考文獻(xiàn):
[1] 郭寧.UML及建模[M].北京:清華大學(xué)出版社,2007.
[2] 國(guó)剛,周峰,孫更新.UML與Rational Rose 2003 軟件工程統(tǒng)一建模原理與實(shí)踐教程[M].北京:北京電子工業(yè)出版社,2007.
[3] Fenton N E,Pfleeger S L.軟件度量[M].2版.北京:機(jī)械工業(yè)出版社,2004.
[4] Jorgensen P C.軟件測(cè)試[M].2版.北京:機(jī)械工業(yè)出版社,2003.
[5] Priestley M.面向?qū)ο笤O(shè)計(jì)UML實(shí)踐[M].2版.北京:清華大學(xué)出版社,2005.
[6] 古樂(lè),史九林.軟件測(cè)試技術(shù)概論[M].北京:清華大學(xué)出版社,2004.
[7] 宮云戰(zhàn).軟件測(cè)試[M].北京:國(guó)防工業(yè)出版社,2006.
[8] Han Jiawei,Kamber M.數(shù)據(jù)挖掘的概念與技術(shù)[M].北京:機(jī)械工業(yè)出版社,2008.
篇7
關(guān)鍵詞:軟件;測(cè)試;設(shè)計(jì);技術(shù)
中圖分類(lèi)號(hào):TP311.52文獻(xiàn)標(biāo)識(shí)碼 A 文章編號(hào):1009-3044(2007)17-31323-02
Technique of Software Test and Design
GUO Qun
(Liaoning University of Intemational Business and Economics,Dalian 116024,China)
Abstract:Software test, the straightforward and rapid way to improve the quality of software, is the necessary condition for the improvement of the software quality. This paper, introducing the common concept, method and step of the software test, gives the solution to the software test.
Key words:software; test; design; technique
1 引言
在大型軟件開(kāi)發(fā)過(guò)程中,人們使用了許多保證軟件質(zhì)量的方法分析、設(shè)計(jì)和實(shí)現(xiàn)軟件。但由干問(wèn)題的復(fù)雜性,人們對(duì)客觀事物認(rèn)識(shí)的局限性及軟件開(kāi)發(fā)人員配合不協(xié)調(diào)等因素,因而在軟件開(kāi)發(fā)過(guò)程中難免有各種各樣的錯(cuò)誤。如果在軟件投入生產(chǎn)性運(yùn)行之前,沒(méi)有發(fā)現(xiàn)并糾正軟件中的大部分錯(cuò)誤,則這些錯(cuò)誤遲早會(huì)在生產(chǎn)過(guò)程中暴露出來(lái),那時(shí)不僅改正這些錯(cuò)誤的代價(jià)更高,而且往往會(huì)造成很惡劣的后果。因此,一定要高度重視軟件測(cè)試工作。軟件測(cè)試是為了發(fā)現(xiàn)故障而執(zhí)行程序的過(guò)程。其目的是以盡可能少的時(shí)間和人力發(fā)現(xiàn)并改正軟件中潛在的各種故障及缺陷。所以,在軟件投入運(yùn)行之前必須進(jìn)行軟件測(cè)試,以盡可能多地發(fā)現(xiàn)軟件中的故障,提高軟件可靠性。
2 軟件測(cè)試定義
軟件測(cè)試就是在軟件投入運(yùn)行前,對(duì)軟件需求分析、設(shè)計(jì)規(guī)格說(shuō)明和編碼的最終復(fù)審,是軟件質(zhì)量保證的關(guān)鍵步驟。軟件測(cè)試是為了發(fā)現(xiàn)錯(cuò)誤而執(zhí)行程序的過(guò)程?;蛘哒f(shuō),軟件測(cè)試是根據(jù)軟件開(kāi)發(fā)各階段的規(guī)格說(shuō)明和程序的內(nèi)部結(jié)構(gòu)而精心設(shè)計(jì)一批測(cè)試用例(即輸入數(shù)據(jù)及其預(yù)期的輸出結(jié)果),并利用這些測(cè)試用例去運(yùn)行程序,以發(fā)現(xiàn)程序錯(cuò)誤的過(guò)程。正確認(rèn)識(shí)軟件測(cè)試的定義是十分重要的,它決定了測(cè)試方案的設(shè)計(jì)。軟件測(cè)試只能查找程序中的錯(cuò)誤;不能證明程序中沒(méi)有錯(cuò)誤。
3 軟件測(cè)試方法
怎樣對(duì)軟件進(jìn)行測(cè)試呢?有兩種方法。一種稱(chēng)為黑盒測(cè)試:如果知道了產(chǎn)品應(yīng)該具有的功能,可以通過(guò)測(cè)試來(lái)檢驗(yàn)是否每個(gè)功能都能正確使用,也叫功能測(cè)試;它是在程序的接口進(jìn)行的,把軟件看成是一個(gè)黑盒,測(cè)試時(shí)僅僅關(guān)心如何尋找出使程序不按要求運(yùn)行的情況,是最基本的測(cè)試法。另一種稱(chēng)為白盒測(cè)試:如果知道產(chǎn)品內(nèi)部工作過(guò)程,可以通過(guò)測(cè)試來(lái)檢驗(yàn)產(chǎn)品內(nèi)部動(dòng)作是否按照規(guī)格說(shuō)明書(shū)的規(guī)定正常進(jìn)行,也叫結(jié)構(gòu)測(cè)試。它是把軟件看成裝在一個(gè)透明的白盒子里,就是完全了解程序的結(jié)構(gòu)和處理過(guò)程,按照程序內(nèi)部的邏輯測(cè)試程序,檢驗(yàn)程序中的每條通路是否都能按規(guī)定要求正確工作。
4 軟件測(cè)試步驟
一個(gè)大型軟件系統(tǒng)通常由若干個(gè)子系統(tǒng)構(gòu)成,每個(gè)子系統(tǒng)又由若干個(gè)模塊構(gòu)成。軟件測(cè)試分以下幾個(gè)步驟:
(1)單元測(cè)試:又稱(chēng)模塊測(cè)試,是針對(duì)軟件設(shè)計(jì)的最小單位――程序模塊,進(jìn)行正確性檢驗(yàn)的測(cè)試工作。其目的在于發(fā)現(xiàn)各模塊內(nèi)部可能存在的各種差錯(cuò)。單元測(cè)試需要從程序的內(nèi)部結(jié)構(gòu)出發(fā)設(shè)計(jì)測(cè)試用例。多個(gè)模塊可以平行的獨(dú)立進(jìn)行單元測(cè)試。
(2)組裝測(cè)試:又稱(chēng)集成測(cè)試,通常,在單元測(cè)試的基礎(chǔ)上,需要將所有模塊按照設(shè)計(jì)要求組裝成為系統(tǒng)。這時(shí)需要考慮的問(wèn)題是:在把各個(gè)模塊連接起來(lái)時(shí),穿越模塊接口的數(shù)據(jù)是否會(huì)丟失;一個(gè)模塊的功能是否會(huì)對(duì)另一個(gè)模塊的功能產(chǎn)生不利的影響;各個(gè)子功能組合起來(lái),能否達(dá)到預(yù)期要求的父功能;全局?jǐn)?shù)據(jù)結(jié)構(gòu)是否有問(wèn)題;單個(gè)模塊的誤差累積起來(lái),是否會(huì)放大,從而達(dá)到不能接受的程度。
(3)確認(rèn)測(cè)試:又稱(chēng)有效性測(cè)試。它的任務(wù)是驗(yàn)證軟件的功能和性能及其他特性是否與用戶(hù)的要求一致。首先要進(jìn)行有效性測(cè)試以及軟件配置復(fù)審,然后進(jìn)行驗(yàn)收測(cè)試和安裝測(cè)試,在通過(guò)了專(zhuān)家鑒定之后,才能成為可交付的軟件。
(4)系統(tǒng)測(cè)試:是將通過(guò)確認(rèn)測(cè)試的軟件,作為整個(gè)基于計(jì)算機(jī)系統(tǒng)的一個(gè)元素,與計(jì)算機(jī)硬件、外設(shè)、某些支持軟件、數(shù)據(jù)和人員等其他系統(tǒng)元素結(jié)合在一起,在實(shí)際運(yùn)行(使用)環(huán)境下,對(duì)計(jì)算機(jī)系統(tǒng)進(jìn)行一系列的組裝測(cè)試和確認(rèn)測(cè)試。系統(tǒng)測(cè)試的目的在于通過(guò)與系統(tǒng)的需求定義作比較,發(fā)現(xiàn)軟件與系統(tǒng)定義不符合或與之矛盾的地方。
5 軟件測(cè)試的策略
測(cè)試過(guò)程按4個(gè)步驟進(jìn)行,即單元測(cè)試、組裝(集成)測(cè)試、確認(rèn)測(cè)試和系統(tǒng)測(cè)試。如圖1所示。
圖1 軟件測(cè)試的過(guò)程
開(kāi)始是單元測(cè)試,集中對(duì)用原代碼實(shí)現(xiàn)的每一個(gè)程序單元進(jìn)行測(cè)試,檢查各個(gè)程序模塊是否正確地實(shí)現(xiàn)了規(guī)定的功能。然后,把已測(cè)試過(guò)的模塊組裝起來(lái),進(jìn)行組裝測(cè)試,主要對(duì)與設(shè)計(jì)相關(guān)的軟件體系結(jié)構(gòu)的構(gòu)造進(jìn)行測(cè)試。為此。在將一個(gè)一個(gè)實(shí)施了單元測(cè)試并確保無(wú)誤的程序模塊組裝成軟件系統(tǒng)的過(guò)程中,對(duì)正確性和程序結(jié)構(gòu)等方面進(jìn)行檢查。確認(rèn)測(cè)試則是要檢查已實(shí)現(xiàn)的軟件是否滿(mǎn)足了需求規(guī)格說(shuō)明中確定了的各種需求,以及軟件配置是否完全、正確。最后是系統(tǒng)測(cè)試,把已經(jīng)經(jīng)過(guò)確認(rèn)的軟件納入實(shí)際運(yùn)行環(huán)境中,與其他系統(tǒng)成分組合在一起進(jìn)行測(cè)試。
6 結(jié)束語(yǔ)
軟件測(cè)試是保證軟件可靠性的主要手段,是軟件開(kāi)發(fā)過(guò)程中最艱巨、最繁重的任務(wù)。軟件開(kāi)發(fā)人員要明確軟件測(cè)試的目標(biāo),掌握軟件測(cè)試的方法、策略,選用最少量的高效測(cè)試數(shù)據(jù),做到盡可能完善的測(cè)試,從而盡可能多地發(fā)現(xiàn)軟件中的問(wèn)題。降低軟件測(cè)試的成本,提高軟件測(cè)試效率。開(kāi)發(fā)出用戶(hù)滿(mǎn)意的高質(zhì)量的軟件。
參考文獻(xiàn):
[1]張海藩.軟件工程導(dǎo)輪[M].北京:清華大學(xué)出版社,1992.6.
[2]鄭人杰,等.實(shí)用軟件工程[M]. 北京:清華大學(xué)出版社,1997.4.
篇8
筆者在課堂教學(xué)中建立了一套激發(fā)學(xué)生學(xué)習(xí)興趣和發(fā)展學(xué)生能力的“六項(xiàng)全能”的形成性評(píng)價(jià)方法,并把這種評(píng)價(jià)方法和傳統(tǒng)的終結(jié)性評(píng)價(jià)方法結(jié)合起來(lái)對(duì)學(xué)生進(jìn)行評(píng)價(jià)。這“六項(xiàng)全能”的評(píng)價(jià)方法包括課堂活動(dòng)評(píng)價(jià)、單元聽(tīng)寫(xiě)評(píng)價(jià)、單元測(cè)試評(píng)價(jià)、課文背誦評(píng)價(jià)、完成作業(yè)評(píng)價(jià)和課堂紀(jì)律評(píng)價(jià)。
一、課堂活動(dòng)評(píng)價(jià)
學(xué)生參與課堂活動(dòng)是形成性評(píng)價(jià)的一個(gè)重要內(nèi)容,課堂活動(dòng)包括課前have a speech,free talk,在課堂教學(xué)過(guò)程中開(kāi)展的group work,pair work,教學(xué)游戲,回答上節(jié)課所學(xué)知識(shí)點(diǎn)等活動(dòng)。在課堂上采用小組評(píng)價(jià)法,把學(xué)生分成若干小組,以小組為單位開(kāi)展討論,進(jìn)行比賽。采用記分制,完成任務(wù)的加3分,答錯(cuò)不加分。但是回答上節(jié)課所學(xué)知識(shí)點(diǎn)錯(cuò)了就扣3分。如果是個(gè)人完成的給個(gè)人加分,如果是小組合作完成的就給小組加分。
二、單元聽(tīng)寫(xiě)評(píng)價(jià)
把聽(tīng)寫(xiě)和形成性評(píng)價(jià)方法結(jié)合起來(lái)使用,幫助學(xué)生調(diào)控自己的學(xué)習(xí)過(guò)程,使學(xué)生獲得成就感,培養(yǎng)合作精神。
課堂聽(tīng)寫(xiě)前教師讓學(xué)生自己在家先聽(tīng)寫(xiě),可以家長(zhǎng)報(bào)也可以自己寫(xiě)出漢語(yǔ)再默寫(xiě)。聽(tīng)寫(xiě)的內(nèi)容是本單元的單詞、詞組、句子或是課外閱讀中的詞匯,由學(xué)生自己定。課堂聽(tīng)寫(xiě)采用記分制,達(dá)到100分的同學(xué)加10分,90分以上的加5分,沒(méi)達(dá)到90分的就算不合格,不合格的同學(xué)要找課代表重新聽(tīng)寫(xiě)。他們可以找本組組長(zhǎng)尋求幫助,也可以找一幫一結(jié)的對(duì)子弄清楚沒(méi)寫(xiě)會(huì)的內(nèi)容。重新聽(tīng)寫(xiě)達(dá)到90以上的可以補(bǔ)加3分,基礎(chǔ)差的同學(xué)可以降低標(biāo)準(zhǔn),達(dá)到60分即可加5分。對(duì)于重新聽(tīng)寫(xiě)合格的學(xué)生,教師應(yīng)及時(shí)給予表?yè)P(yáng)鼓勵(lì),幫助學(xué)生建立自信,激發(fā)積極學(xué)習(xí)情感。
三、單元測(cè)試評(píng)價(jià)
單元測(cè)試作為階段性的測(cè)試結(jié)果是形成性評(píng)價(jià)的一種形式。教師在完成每個(gè)單元的教學(xué)后,運(yùn)用單元測(cè)試對(duì)學(xué)生進(jìn)行評(píng)價(jià)。
以上一次期中或期末考試成績(jī)作為評(píng)價(jià)標(biāo)準(zhǔn)。120分試卷,108分以上的加15分,96分以上的加10分,跟上次比較有進(jìn)步的同學(xué)再加五分。96分以下的同學(xué),跟上次比有進(jìn)步的加5分。
每次單元測(cè)試后,還要求學(xué)生進(jìn)行自我評(píng)價(jià),寫(xiě)出試卷分析,對(duì)自己試卷的得失進(jìn)行一個(gè)小結(jié)。引導(dǎo)學(xué)生進(jìn)行單元測(cè)試后的自我評(píng)價(jià),對(duì)于強(qiáng)化學(xué)生對(duì)單元重點(diǎn)、難點(diǎn)的掌握起著至關(guān)重要的作用。
四、課文背誦的評(píng)價(jià)
背誦典型的對(duì)話(huà)或者課文是學(xué)習(xí)英語(yǔ)、培養(yǎng)語(yǔ)感的一種重要途徑。通過(guò)背誦幫助學(xué)生掌握生詞,養(yǎng)成英語(yǔ)思維的習(xí)慣,有助于提高聽(tīng)說(shuō)能力,還可以幫助學(xué)生提高閱讀理解能力。
對(duì)于課文背誦的評(píng)價(jià),可采取小組合作的方式進(jìn)行評(píng)價(jià)。在班上選出8個(gè)英語(yǔ)背誦小組長(zhǎng),組長(zhǎng)先在教師這背。組員找組長(zhǎng)背,不會(huì)讀的先向組長(zhǎng)請(qǐng)教。全班基本完成后再進(jìn)行抽查,檢查和督促組長(zhǎng)的工作。采用記分的方式,在規(guī)定時(shí)間背完的同學(xué)可以加5分,抽查過(guò)關(guān)的同學(xué)再加3分。對(duì)于英語(yǔ)基礎(chǔ)較差的學(xué)生,降低要求,讓他們看著課文的漢語(yǔ)背。無(wú)法看漢語(yǔ)背出的同學(xué),只要求朗讀。
五、完成作業(yè)評(píng)價(jià)
德國(guó)教育家第斯多惠說(shuō)過(guò):“教學(xué)的藝術(shù)不在于傳授本領(lǐng),而在于激勵(lì),喚醒和鼓舞?!睂?duì)于完成作業(yè)的評(píng)價(jià),筆者主要是通過(guò)口頭表?yè)P(yáng)并加分的方式。
對(duì)于按時(shí)交作業(yè),并且書(shū)寫(xiě)認(rèn)真,正確率高的學(xué)生及時(shí)給予肯定,并加5分;對(duì)于沒(méi)按時(shí)交作業(yè)的學(xué)生扣5分。收作業(yè)的事情讓小組長(zhǎng)參與,培養(yǎng)他們的責(zé)任心。
六、課堂紀(jì)律評(píng)價(jià)
形成性評(píng)價(jià)要求積極有效的課堂環(huán)境,而這與學(xué)生良好的紀(jì)律有著緊密聯(lián)系,有時(shí)課堂氣氛活躍,但課堂紀(jì)律卻難以控制,因此對(duì)課堂紀(jì)律評(píng)價(jià)尤為重要。
對(duì)于課堂紀(jì)律評(píng)價(jià)采取記分制,違反紀(jì)律一次扣10分。一個(gè)月內(nèi)紀(jì)律扣分最多的同學(xué)會(huì)告知家長(zhǎng)共同管理該生。課堂紀(jì)律評(píng)價(jià)不僅要成為約束學(xué)生的一種方式,也要成為服務(wù)課堂的工具,使其成為提高課堂效率的一種有效手段。
對(duì)于“六項(xiàng)全能”的評(píng)價(jià)方法,每個(gè)單元進(jìn)行一次統(tǒng)計(jì),由兩名英語(yǔ)課代表分工記載和統(tǒng)計(jì)“六項(xiàng)全能”評(píng)價(jià)的分?jǐn)?shù)??偡峙徘?5名的學(xué)生評(píng)為優(yōu)秀學(xué)生,再選出10名有進(jìn)步的學(xué)生。在班級(jí)表?yè)P(yáng)欄公布,并且在家長(zhǎng)QQ群中表?yè)P(yáng)信息。每個(gè)月進(jìn)行一次小結(jié),給總分排名前15名的學(xué)生頒發(fā)小小獎(jiǎng)勵(lì)。
篇9
關(guān)鍵詞:數(shù)學(xué) 教學(xué)步驟 認(rèn)知結(jié)構(gòu) 參照系
中圖分類(lèi)號(hào):G623.5 文獻(xiàn)標(biāo)識(shí)碼:A 文章編號(hào):1673-9795(2014)02(c)-0102-01
根據(jù)每個(gè)單元的知識(shí)結(jié)構(gòu),從小學(xué)生的心理特點(diǎn)和認(rèn)知結(jié)構(gòu)出發(fā),由教師確定每個(gè)單元的教學(xué)目標(biāo),并找準(zhǔn)該單元的知識(shí)重點(diǎn),難點(diǎn)及關(guān)鍵,然后根據(jù)學(xué)生的認(rèn)知水平,組織有效的課堂教學(xué)活動(dòng),完成重點(diǎn)、難點(diǎn)及關(guān)鍵的教學(xué),教給學(xué)生學(xué)習(xí)的方法。
1 確定教學(xué)目標(biāo),把握教學(xué)內(nèi)容
制定單元教學(xué)目標(biāo),實(shí)際上是為單元教學(xué)定方向。方向能否定得正確,關(guān)鍵在于能否根據(jù)數(shù)學(xué)的學(xué)科特點(diǎn),正確處理好整體與部分,知識(shí)與能力的關(guān)系,使所定目標(biāo)切實(shí)具有科學(xué)性、準(zhǔn)確性和可測(cè)性。一旦所定目標(biāo)具有上述“三性”,就能真正成為教師組織教學(xué)活動(dòng),判斷教學(xué)效果,調(diào)控教學(xué)過(guò)程的出發(fā)點(diǎn)和參照系。這樣目標(biāo)備課,教學(xué)就會(huì)因方向明確而少走彎路。
2 抓關(guān)鍵、教給學(xué)生方法
首先弄清該單元所涉及的知識(shí)在新與舊、難與易,相互制約方面有哪些聯(lián)系,找準(zhǔn)其中起關(guān)鍵作用的知識(shí)。其次在認(rèn)真研究這一關(guān)鍵知識(shí)與哪些舊知識(shí)有密切聯(lián)系的基礎(chǔ)上,拿出3~5分鐘做好對(duì)舊知識(shí)的復(fù)習(xí)。一旦確認(rèn)學(xué)生已經(jīng)具備了學(xué)習(xí)新知識(shí)的認(rèn)知前提,就要把重點(diǎn)、難點(diǎn)知識(shí)的教學(xué)放到中心位置,采用適合兒童智力活動(dòng)規(guī)律的教學(xué)方法組織各種形式的教學(xué)活動(dòng),甚至使絕大多數(shù)學(xué)生對(duì)這一知識(shí)達(dá)到充分地理解,較好地掌握。
顯而易見(jiàn),抓關(guān)鍵,主要包括兩層意思:一是研究教材的知識(shí)結(jié)構(gòu),找準(zhǔn)在整個(gè)單元教學(xué)中能牽一發(fā)而動(dòng)全局的重點(diǎn)、難點(diǎn)知識(shí)的教學(xué),使學(xué)生切實(shí)掌握學(xué)習(xí)本單元的方法。
例如:北師大版小學(xué)數(shù)學(xué)四年級(jí)下冊(cè),第二單元認(rèn)識(shí)圖形中,教學(xué)重點(diǎn):認(rèn)識(shí)直角三角形,銳角三角形,等腰三角形和等邊三角形等,三角形的內(nèi)角和等于180°,三角形任意兩邊的和大于第三邊。難點(diǎn)是:三角形內(nèi)角和的探索,三角形任意兩邊的和大于第三邊的探索。
讓學(xué)生體會(huì)先“量一量,算一算”產(chǎn)生猜想,再“拼一拼,折一折”進(jìn)行驗(yàn)證的數(shù)學(xué)思想方法,體會(huì)通過(guò)操作獲得一些數(shù)據(jù),并整理分析數(shù)據(jù),從中歸納出結(jié)論。
3 抓自學(xué),讓學(xué)生自己解答
自學(xué),是學(xué)生在教師輔導(dǎo)下的學(xué)習(xí)。
由于學(xué)生在第二步的單元教學(xué)中,已經(jīng)初步掌握了學(xué)習(xí)該單元的方法,因而進(jìn)入第三步后,教師的主要任務(wù)就變成了有計(jì)劃,有目的地深入到學(xué)生的自學(xué)中去,認(rèn)真觀察學(xué)生是怎樣運(yùn)用已掌握的方法去解答數(shù)學(xué)題的。及時(shí)發(fā)現(xiàn)學(xué)生在解答過(guò)程中存在的問(wèn)題,并根據(jù)反饋情況進(jìn)行及時(shí)恰當(dāng)?shù)妮o導(dǎo)。
學(xué)生自學(xué)時(shí),往往會(huì)出現(xiàn)這樣一種現(xiàn)象:他們?cè)詾橐呀?jīng)掌握了重點(diǎn)、難點(diǎn)知識(shí)。在自學(xué)時(shí),又會(huì)遇到若干意想不到的困難和障礙,暴露出個(gè)別學(xué)生對(duì)方法并未真正掌握。這就需要教師有的放矢地采取得力措施,組織學(xué)生再學(xué)習(xí)、再思考。在這個(gè)反復(fù)的、曲折的思維過(guò)程中,教師的輔導(dǎo)是舉足輕重的。因?yàn)榍‘?dāng)?shù)膯l(fā)、點(diǎn)撥,可以指導(dǎo)學(xué)生及時(shí)走出迷谷,避免浪費(fèi)時(shí)間,保證學(xué)生在課堂上做更多的題,從而培養(yǎng)學(xué)生運(yùn)用關(guān)鍵知識(shí)解決實(shí)際問(wèn)題的能力,達(dá)到熟能生巧,運(yùn)用自如。
4 抓練習(xí),讓學(xué)生舉一反三
學(xué)生通過(guò)自學(xué),初步掌握了該單元的知識(shí),但要培養(yǎng)學(xué)生思維的靈活性和深刻性,還要通過(guò)抓練習(xí),讓學(xué)生多層次,多角度,多形式地練習(xí),做到舉一反三。這種練習(xí)可分為三類(lèi):
(1)基本題。即與課本例題相似,且難度基本相同的單項(xiàng)練習(xí)題目。進(jìn)行這種練習(xí),目的是讓學(xué)生進(jìn)一步鞏固和熟練單元的基礎(chǔ)知識(shí),切實(shí)完成識(shí)記與理解這兩個(gè)層次的學(xué)習(xí)任務(wù)。
(2)變式題。源于例題,但形式與例題不盡相同,而解法與基本題又大致一樣的練習(xí)題。練習(xí)此類(lèi)題目,可以深化本單元所學(xué)的知識(shí),逐步使學(xué)生形成技能技巧,有利于培養(yǎng)學(xué)生的分析,判斷能力。
例如:第五單元小數(shù)除法練習(xí)四第10題。
10:哪種食用油便宜些?
第一種:每瓶2.5千克 花35.00元
依據(jù):?jiǎn)蝺r(jià)=總價(jià)÷數(shù)量
35÷2.5=14(元)
第二種:有兩瓶油
大瓶3千克 小瓶0.5千克
共需:48.30元
48.3÷(3+0.5)=13.8(元)
所以買(mǎi)第二種合算。
(3)綜合題。將本單元所學(xué)知識(shí)與有關(guān)知識(shí)混合編排而成的綜合型和智力型。做此類(lèi)題,能培養(yǎng)學(xué)生解決實(shí)際問(wèn)題的能力,使知識(shí)能靈活運(yùn)用;能讓學(xué)生把本單元學(xué)到的知識(shí)與有關(guān)舊知識(shí)聯(lián)系起來(lái),形成知識(shí)體系,標(biāo)志著已完成綜合運(yùn)用這一教學(xué)目標(biāo)。
如:找座位(總復(fù)習(xí))。
這道題綜合考察學(xué)生的小數(shù)加、減、乘、除計(jì)算的能力(見(jiàn)圖1)。
5 單元測(cè)試,及時(shí)評(píng)價(jià)學(xué)習(xí)情況
先根據(jù)單元教學(xué)目標(biāo),分類(lèi)編制單元標(biāo)準(zhǔn)測(cè)試題,再于該單元學(xué)完之后,進(jìn)行單元測(cè)試,以檢驗(yàn)各層次教學(xué)目標(biāo)的達(dá)成情況。編制可測(cè)性強(qiáng)的單元測(cè)試卷,是第五步驟的主要工作。在編制單元測(cè)試卷時(shí),特別應(yīng)注意以下三點(diǎn):
(1)題型多樣。既有考察基礎(chǔ)知識(shí)的填充、判斷、選擇題,又有考察各種能力的計(jì)算題、操作題和應(yīng)用題。
(2)覆蓋面廣。單元測(cè)試題能充分反映本單元教學(xué)目標(biāo)的各個(gè)方面,有利于對(duì)學(xué)生的學(xué)習(xí)情況進(jìn)行全面性診斷。
(3)呈階梯狀。既有與“識(shí)記、理解”相對(duì)應(yīng)的基本題,又有與“簡(jiǎn)單應(yīng)用”相對(duì)應(yīng)的綜合題,還有少量難度較大的能考查創(chuàng)新能力的思考題。
通過(guò)測(cè)試,可以從識(shí)記、理解、應(yīng)用的不同層次上準(zhǔn)確反饋出學(xué)生的學(xué)習(xí)情況。使教師能據(jù)此采取相應(yīng)措施,及時(shí)進(jìn)行矯正和補(bǔ)救,有的放矢地對(duì)學(xué)生進(jìn)行重新講解和點(diǎn)撥,從而收到事半功倍的效果,使學(xué)生能扎實(shí)熟練地掌握并應(yīng)用所學(xué)的知識(shí)。
參考文獻(xiàn)
[1] 張景中,曹培生.從數(shù)學(xué)教育到教育數(shù)學(xué)[M].中國(guó)少年兒童出版社,2011.
篇10
Abstract: With the increasing complexity of software engineering, software engineering quality requirements continue to improve. The teaching of the traditional software testing course can't meet the needs of the times. From the traditional software testing experimental teaching, aiming at the existing problems and the overall objectives of the experimental teaching requirements, this paper explores the significance of project driven software testing and experimental teaching reform, which with reasonable distribution of the curriculum system, the distribution of appropriate experimental content, can meet the requirements of personnel training program.
關(guān)鍵詞:軟件測(cè)試;項(xiàng)目驅(qū)動(dòng);實(shí)驗(yàn)教學(xué);教學(xué)改革
Key words: software testing;project driven;experimental teaching;teaching reform
中圖分類(lèi)號(hào):G642.0 文獻(xiàn)標(biāo)識(shí)碼:A 文章編號(hào):1006-4311(2017)03-0226-03
0 引言
軟件測(cè)試在很早以前就是軟件工程里的一個(gè)課程。但近幾年來(lái)才被國(guó)內(nèi)的軟件行業(yè)及軟件公司所重視。因而出現(xiàn)需要大量軟件測(cè)試人員的需求。所以國(guó)內(nèi)的很多高校因市場(chǎng)的需求,開(kāi)設(shè)了相關(guān)的軟件測(cè)試專(zhuān)業(yè)或方向。但很多學(xué)校的開(kāi)設(shè)的軟件測(cè)試的課程只停留在基本理論的學(xué)習(xí),或者測(cè)試工具的介紹上,以至于畢業(yè)出來(lái)的學(xué)生只能滿(mǎn)足最底層的測(cè)試工作。而較高要求的測(cè)試崗位很難招到人。所以培養(yǎng)“高素質(zhì)、復(fù)合型”的軟件測(cè)試人才,是學(xué)校的當(dāng)務(wù)之急,軟件測(cè)試的教學(xué)改革勢(shì)在必行[1]。
1 傳統(tǒng)測(cè)試課程教學(xué)存在的問(wèn)題
教學(xué)課時(shí)少,課程結(jié)構(gòu)單一。傳統(tǒng)軟件測(cè)試是以軟件工程原理的一個(gè)章節(jié)來(lái)講的。講課的課時(shí)也就4個(gè)學(xué)分。老師授課只是對(duì)測(cè)試基本的概念及流程作講解,內(nèi)容偏重理論且抽象。學(xué)生理解和掌握難度比較大,在實(shí)際測(cè)試工作中無(wú)法入手?,F(xiàn)如今對(duì)軟件測(cè)試的工作越來(lái)越重視,對(duì)軟件測(cè)試的工作要求越來(lái)越高。如此單一教學(xué)內(nèi)容,讓學(xué)生今后勝任軟件測(cè)試的相關(guān)工作是不現(xiàn)實(shí)的。
重理論,輕實(shí)踐。傳統(tǒng)軟件測(cè)試課程的教學(xué)一直以任課老師講授以主,學(xué)生被動(dòng)接受知識(shí),在理論的教學(xué)過(guò)程中,授課老師重點(diǎn)講解軟件測(cè)試的基本概念、原理及方法。但軟件測(cè)試的相關(guān)課程在實(shí)踐方面要求有較強(qiáng)的動(dòng)手的實(shí)踐能力。如在講解黑盒測(cè)試、白盒測(cè)試中的測(cè)試方法來(lái)設(shè)計(jì)測(cè)試用例時(shí),實(shí)際使用過(guò)程中需要結(jié)合多種方法來(lái)保證測(cè)試用例的完整性,這需要引入實(shí)際的生產(chǎn)案例來(lái)練習(xí)。再如在講解單元測(cè)試、集成測(cè)試時(shí),在講解單一類(lèi)的測(cè)試、容器內(nèi)的測(cè)試、數(shù)據(jù)庫(kù)持久層的測(cè)試時(shí),如果老師在授課時(shí)只是講理論,沒(méi)有引入實(shí)際的生產(chǎn)案例,學(xué)生很難體會(huì)到課程的挑戰(zhàn)和樂(lè)趣,缺少主觀主動(dòng)性,學(xué)習(xí)效果較差。這樣的教學(xué)質(zhì)量難以保證,學(xué)生很難學(xué)以致用。
2 項(xiàng)目驅(qū)動(dòng)教學(xué)的內(nèi)涵
“項(xiàng)目教學(xué)法”最早見(jiàn)于美國(guó)教育家凱茲和加拿大教育家查德合著的《項(xiàng)目教學(xué)法》?!绊?xiàng)目教學(xué)法”的理論認(rèn)為:知識(shí)可以在一定的條件下自主建構(gòu)獲得;學(xué)習(xí)是知識(shí)、技能與行為、態(tài)度與價(jià)值觀等方面的長(zhǎng)進(jìn);教育是滿(mǎn)足長(zhǎng)進(jìn)需要的有意識(shí)、有系統(tǒng)、有組織的持續(xù)交流活動(dòng)。教育家陶行知先生說(shuō)過(guò):教、學(xué)、做應(yīng)是一體化的,教、學(xué)、做是一件事,不是三件事[2]。
項(xiàng)目教學(xué)法由以下內(nèi)容組成:有一定的教學(xué)內(nèi)容,具有實(shí)際應(yīng)用價(jià)值;能將理論知識(shí)和實(shí)際崗位技能結(jié)合起來(lái);與企業(yè)實(shí)際生產(chǎn)或商業(yè)經(jīng)營(yíng)等活動(dòng)有關(guān)系;學(xué)生可以獨(dú)立制定計(jì)劃并實(shí)施;學(xué)生可以運(yùn)用所學(xué)知識(shí)克服、處理在項(xiàng)目工作中出現(xiàn)的困難和問(wèn)題;有一定的難度,學(xué)生在完成過(guò)程中能掌握和運(yùn)用新的知識(shí)和技能;要滲透情感、態(tài)度、價(jià)值觀的培養(yǎng);有明確而具體的成果展示,師生能共同評(píng)價(jià)項(xiàng)目完成情況和工作成果[3][4]。
3 項(xiàng)目驅(qū)動(dòng)的軟件測(cè)試實(shí)驗(yàn)教學(xué)的意義
以軟件行業(yè)發(fā)展需要為依托,面向軟件開(kāi)發(fā)(敏捷開(kāi)發(fā))過(guò)程中對(duì)軟件測(cè)試人才的迫切需求,以提高教學(xué)質(zhì)量為核心,以教學(xué)改革為動(dòng)力,以實(shí)現(xiàn)軟件開(kāi)發(fā)與測(cè)試的學(xué)生知識(shí)、能力與素質(zhì)協(xié)同發(fā)展為原則,以培養(yǎng)學(xué)生實(shí)踐能力為目標(biāo),結(jié)合學(xué)科優(yōu)勢(shì),以主干課程建設(shè)為突破點(diǎn),開(kāi)展項(xiàng)目驅(qū)動(dòng)軟件測(cè)試實(shí)驗(yàn)教學(xué)改革與研究,構(gòu)建和實(shí)踐面向應(yīng)用型本科軟件測(cè)試人才的專(zhuān)業(yè)實(shí)驗(yàn)教學(xué)體系。具體的意義可歸納為以下四點(diǎn):
①優(yōu)化測(cè)試相關(guān)專(zhuān)業(yè)主干課程體系,打造以項(xiàng)目驅(qū)動(dòng)軟件測(cè)試實(shí)驗(yàn)教學(xué)的專(zhuān)業(yè)特色。測(cè)試相關(guān)主干課程體系優(yōu)化與專(zhuān)業(yè)課程實(shí)驗(yàn)教學(xué)改革是項(xiàng)目的核心。專(zhuān)業(yè)主干課程體系的建設(shè)能直接反映專(zhuān)業(yè)課程建設(shè)的目的和培養(yǎng)目標(biāo),是提高人才素質(zhì)和保障教育質(zhì)量的核心環(huán)節(jié),也是衡量教學(xué)水平和教學(xué)質(zhì)量的重要標(biāo)志[5]。因此,面向軟件工程和軟件實(shí)踐背景,開(kāi)展“項(xiàng)目驅(qū)動(dòng)軟件測(cè)試實(shí)驗(yàn)教學(xué)”,對(duì)于豐富和完善軟件測(cè)試課程教學(xué)改革,培養(yǎng)適應(yīng)軟件測(cè)試行業(yè)中“高素質(zhì),高要求”的復(fù)合型、應(yīng)用型管理人才,打造學(xué)科專(zhuān)業(yè)特色,形成學(xué)科專(zhuān)業(yè)競(jìng)爭(zhēng)力,具有重要價(jià)值。
②以主干課程教學(xué)組織與團(tuán)隊(duì)建設(shè)為著手點(diǎn)。制定主干課程建設(shè)的方案和措施,通過(guò)課程示范作用,帶動(dòng)本專(zhuān)業(yè)相關(guān)其他課程的建設(shè)與改革。狠抓主干課程教材的選用與編寫(xiě)、教學(xué)大綱的制定、應(yīng)用案例的編寫(xiě)、教學(xué)內(nèi)容的精選、教學(xué)手段與教學(xué)方法的改革等環(huán)節(jié),夯實(shí)了主干課程建設(shè)的基礎(chǔ),并為該專(zhuān)業(yè)今后教學(xué)改革奠定基礎(chǔ)。
③以點(diǎn)帶面,擴(kuò)展軟件工程專(zhuān)業(yè)實(shí)驗(yàn)教學(xué)體系。通過(guò)在主干課程中適當(dāng)引入綜合性實(shí)驗(yàn)、設(shè)計(jì)性實(shí)驗(yàn)、軟件工程案例分析,可加強(qiáng)學(xué)生的實(shí)踐技能、創(chuàng)新意識(shí)和團(tuán)隊(duì)精神的培養(yǎng),提高學(xué)生的綜合運(yùn)用能力和競(jìng)爭(zhēng)力。從長(zhǎng)遠(yuǎn)來(lái)講,這項(xiàng)成果會(huì)進(jìn)一步提高我校該專(zhuān)業(yè)的人才綜合素質(zhì), 進(jìn)一步提高該學(xué)科專(zhuān)業(yè)綜合競(jìng)爭(zhēng)力。
④擴(kuò)大畢業(yè)生就業(yè)率及提高就業(yè)檔次。通過(guò)該項(xiàng)目的建設(shè),希望能推動(dòng)該學(xué)科專(zhuān)業(yè)課程體系的優(yōu)化,改善廣州大學(xué)該專(zhuān)業(yè)本科學(xué)生的知識(shí)結(jié)構(gòu),提高軟件測(cè)試學(xué)生的綜合素質(zhì)和專(zhuān)業(yè)技能,擴(kuò)大畢業(yè)生就業(yè)率及提高就業(yè)檔次。
不管是站在專(zhuān)業(yè)學(xué)科建設(shè)的角度,還是站在學(xué)生培養(yǎng)的角度,從培養(yǎng)“高素質(zhì)、復(fù)合型”的軟件測(cè)試人才、解決學(xué)生就業(yè)的目標(biāo)來(lái)看,教學(xué)改革研究均具有重要的意義,有必要開(kāi)展系統(tǒng)、深入的研究。
4 項(xiàng)目驅(qū)動(dòng)的軟件測(cè)試實(shí)驗(yàn)教學(xué)改革方案
以培養(yǎng)“高素質(zhì)、復(fù)合型”的軟件測(cè)試人才為目標(biāo),以專(zhuān)業(yè)主干課程體系優(yōu)化主干課程教學(xué)團(tuán)隊(duì),強(qiáng)化主干課程配套的實(shí)踐教學(xué)環(huán)節(jié),構(gòu)建了理論教學(xué)和實(shí)踐教學(xué)相結(jié)合的、 “測(cè)試?yán)碚?測(cè)試方法+測(cè)試工程”三位一體的主干課程培養(yǎng)體系,并開(kāi)展長(zhǎng)期的跟蹤實(shí)踐,努力在應(yīng)用型創(chuàng)新人才培養(yǎng)模式上形成自身的專(zhuān)業(yè)特色,完善“強(qiáng)基礎(chǔ)、重能力、多樣性、個(gè)性化”的人才培養(yǎng)方案。
4.1 軟件測(cè)試的課程體系的建立
隨著軟件行業(yè)對(duì)軟件測(cè)試重視,軟件測(cè)試對(duì)從業(yè)人員的要求也越來(lái)越高。傳統(tǒng)的教學(xué)內(nèi)容已經(jīng)不能滿(mǎn)足就業(yè)人員的需要。需對(duì)軟件測(cè)試的課程體系進(jìn)行擴(kuò)展、優(yōu)化。如圖1軟件測(cè)試教改實(shí)踐課程體系所示。
軟件測(cè)試基礎(chǔ):本課程從理論和實(shí)踐兩個(gè)層面引導(dǎo)學(xué)生學(xué)習(xí)軟件測(cè)試的基礎(chǔ)知識(shí),涵蓋軟件測(cè)試的思想、流程和方法,主要內(nèi)容包括軟件測(cè)試的基本概念和基本原理、白盒測(cè)試方法、黑盒測(cè)試方法以及面向?qū)ο筌浖y(cè)試等知識(shí)點(diǎn)。
高效單元測(cè)試:課程以最典型的單元測(cè)試框架JUnit為例講述了單元測(cè)試的方法和最佳實(shí)踐,介紹了在java軟件開(kāi)發(fā)中使用junit進(jìn)行測(cè)試的原則、技巧與實(shí)踐,深入闡述如何編寫(xiě)自動(dòng)測(cè)試。課程討論了實(shí)踐中的測(cè)試技術(shù),主要內(nèi)容包括:用mock objects進(jìn)行隔離測(cè)試、用ant和maven進(jìn)行自動(dòng)構(gòu)建、Cactus進(jìn)行容器內(nèi)測(cè)試的方法、對(duì)java應(yīng)用程序、數(shù)據(jù)庫(kù)應(yīng)用程序等進(jìn)行單元測(cè)試,以及Parasoft Jtest的使用。
WEB項(xiàng)目應(yīng)用測(cè)試:由淺入深、全面、細(xì)致地闡述了如何使用開(kāi)源測(cè)試工具來(lái)完成Web自動(dòng)化測(cè)試,便于學(xué)生輕松掌握Web自動(dòng)化測(cè)試的原理、方法和實(shí)際操作。課程將教如何使用Selenium、WebDriver、Jmeter、Badboy搭建起一整套穩(wěn)定、高效、低成本的自動(dòng)化測(cè)試平臺(tái)。結(jié)合應(yīng)用實(shí)例展示web應(yīng)用項(xiàng)目測(cè)試的過(guò)程。
軟件測(cè)試質(zhì)量與保證:軟件測(cè)試質(zhì)量與保證是面向軟件測(cè)試方向一門(mén)專(zhuān)業(yè)必修課,在學(xué)習(xí)軟件測(cè)試基礎(chǔ)理論與技術(shù)的基礎(chǔ)上,加強(qiáng)對(duì)軟件質(zhì)量的認(rèn)識(shí)及質(zhì)量保證的重視,主要從軟件質(zhì)量的概述、軟件質(zhì)量工程體系、軟件質(zhì)量度量、軟件可靠性測(cè)試、軟件質(zhì)量標(biāo)準(zhǔn)、全面質(zhì)量控制等多方面展開(kāi)對(duì)軟件質(zhì)量保證的深入學(xué)習(xí)。
性能測(cè)試與優(yōu)化管理:從測(cè)試項(xiàng)目實(shí)戰(zhàn)需求出發(fā),講述了性能測(cè)試技術(shù)和軟件性能測(cè)試工具應(yīng)用的實(shí)戰(zhàn)知識(shí)。引入項(xiàng)目案例,詳細(xì)講述性能測(cè)試方案實(shí)施、性能測(cè)試計(jì)劃制定、性能測(cè)試用例設(shè)計(jì)、性能測(cè)試腳本開(kāi)發(fā)、性能總結(jié)、性能優(yōu)化管理及相關(guān)交付文檔。
軟件測(cè)試綜合項(xiàng)目實(shí)訓(xùn):本課程綜合應(yīng)用軟件測(cè)試方向各門(mén)專(zhuān)業(yè)課程,以一個(gè)實(shí)際案例貫穿整個(gè)教學(xué)過(guò)程,使學(xué)生對(duì)軟件測(cè)試的過(guò)程有深刻地理解,包括測(cè)試需求的獲取、制定測(cè)試計(jì)劃,設(shè)計(jì)測(cè)試用例,測(cè)試執(zhí)行、測(cè)試缺陷、測(cè)試評(píng)估及報(bào)告,并在實(shí)訓(xùn)過(guò)程中加強(qiáng)對(duì)團(tuán)隊(duì)協(xié)作的體會(huì)及文檔的協(xié)作能力。
移動(dòng)應(yīng)用程序測(cè)試:本課程將從實(shí)際應(yīng)用角度出發(fā),以智能終端和4G業(yè)務(wù)規(guī)劃為基礎(chǔ),介紹手機(jī)測(cè)試的方法和實(shí)踐技術(shù),主要內(nèi)容;手機(jī)設(shè)備軟硬件的現(xiàn)狀與趨勢(shì),手機(jī)軟件測(cè)試用例設(shè)計(jì)技術(shù)與方法,手機(jī)軟件體系結(jié)構(gòu)與手機(jī)軟件測(cè)試技術(shù)和常用測(cè)試工具。
4.2 項(xiàng)目驅(qū)動(dòng)實(shí)驗(yàn)教學(xué)的實(shí)施方針
由于課程深度的不同,項(xiàng)目驅(qū)動(dòng)實(shí)驗(yàn)教學(xué)的方針與過(guò)程也不同。其主干課程項(xiàng)目驅(qū)動(dòng)實(shí)驗(yàn)教學(xué)的實(shí)施方針如下:
《軟件測(cè)試基礎(chǔ)》由于是基礎(chǔ)課程,課程涉及的基礎(chǔ)概念比較多,且為低年級(jí)的學(xué)生。所以實(shí)驗(yàn)教學(xué)的案例要以單獨(dú)、經(jīng)典的小應(yīng)用實(shí)例為主,以鞏固和強(qiáng)化理論知識(shí)為目的。
《高效單元測(cè)試》軟件測(cè)試專(zhuān)業(yè)課。課程涉及代碼級(jí)軟件測(cè)試方法與技術(shù)。課程從應(yīng)用程序的角度可分為三個(gè)方面的單元測(cè)試:表示層單元測(cè)試、運(yùn)用層單元測(cè)試、數(shù)據(jù)層單元測(cè)試。從這三個(gè)方面再拆散成若干個(gè)小實(shí)驗(yàn)以便對(duì)應(yīng)相應(yīng)的理論知識(shí)。在實(shí)驗(yàn)案例選擇的原則要以高年級(jí)完成的課程設(shè)計(jì)或畢業(yè)設(shè)計(jì)為主,其原因是這樣的項(xiàng)目實(shí)例學(xué)生能更好的理解,上課的更有效果。
《WEB應(yīng)用項(xiàng)目測(cè)試》軟件測(cè)試專(zhuān)業(yè)課。課程主要講解Web自動(dòng)化測(cè)試的原理、方法和實(shí)際操作及測(cè)試工具的使用。在項(xiàng)目驅(qū)動(dòng)實(shí)驗(yàn)教學(xué)實(shí)例的選取了一些比較完善并同學(xué)比較熟悉的系統(tǒng),比如學(xué)院的信息管理系統(tǒng)或?qū)W院的郵件系統(tǒng)。學(xué)生對(duì)這些系統(tǒng)的業(yè)務(wù)比較了解。做自動(dòng)化測(cè)試比較容易上手。
《軟件測(cè)試綜合項(xiàng)目實(shí)訓(xùn)》是一個(gè)以實(shí)際案例貫穿整個(gè)教學(xué)過(guò)程,以學(xué)生為主,教師為輔的綜合項(xiàng)目實(shí)訓(xùn)課程。在實(shí)驗(yàn)教學(xué)的實(shí)例選取上要求要接近企業(yè)的工作要求。所以項(xiàng)目組在設(shè)計(jì)用例時(shí),直接向相關(guān)校企合作單位,要來(lái)需求和被測(cè)項(xiàng)目,并設(shè)計(jì)成實(shí)驗(yàn)教學(xué),以便學(xué)生在最接近現(xiàn)實(shí)的環(huán)境中作項(xiàng)目實(shí)訓(xùn)。
《移動(dòng)應(yīng)用程序測(cè)試》軟件測(cè)試選修課。課程主要講解移動(dòng)測(cè)試的原理、方法和實(shí)際操作及測(cè)試工具的使用。在項(xiàng)目驅(qū)動(dòng)實(shí)驗(yàn)教學(xué)實(shí)例的選取上,把學(xué)校組織參加比賽的移動(dòng)應(yīng)用項(xiàng)目拿來(lái)測(cè)試,這個(gè)項(xiàng)目影響較廣,學(xué)生對(duì)業(yè)務(wù)比較了解也比較。
5 小結(jié)
如何正確處理系統(tǒng)性理論知識(shí)體系與學(xué)生實(shí)際能力培養(yǎng)之間的矛盾?其解決的基本途徑是:重視實(shí)際能力培養(yǎng),強(qiáng)化軟件測(cè)試工程案例教學(xué),重視課程配套的課內(nèi)課外各種實(shí)踐教學(xué),強(qiáng)化學(xué)生人文素質(zhì)培養(yǎng)。只有這樣,才能解決學(xué)生專(zhuān)業(yè)知識(shí)面過(guò)窄、適應(yīng)能力差、滿(mǎn)足不了高要求的根本問(wèn)題。如何搞好主干課程體系建設(shè)和主干課程師資隊(duì)伍建設(shè),其解決的基本途徑是:以測(cè)試相關(guān)主干課程和教學(xué)團(tuán)隊(duì)建設(shè)著手點(diǎn),建立完善的主干課程體系,發(fā)揮主干課程的帶動(dòng)效應(yīng),可達(dá)到以點(diǎn)帶面效果,解決課程教學(xué)內(nèi)容不先進(jìn)、教學(xué)方法單一、教學(xué)手段落后、教師業(yè)務(wù)能力不強(qiáng)等問(wèn)題。
參考文獻(xiàn):
[1]宰光軍,任兩品,劉燕.復(fù)合型軟件測(cè)試人才培養(yǎng)模式的探索與創(chuàng)新[J].計(jì)算機(jī)光盤(pán)軟件與應(yīng)用,2012(20).
[2]張世澤,劉同先,丁升選,呂淑敏.淺議項(xiàng)目教學(xué)法在我國(guó)的發(fā)展、應(yīng)用和建議[J].教育教學(xué)論壇,2014(50):168-169.
[3]鄭春瑛,郭偉青.項(xiàng)目教學(xué)法在管理信息系統(tǒng)課程中的應(yīng)用探討[J].中國(guó)職業(yè)技術(shù)教育,2007(22).
熱門(mén)標(biāo)簽
單元教學(xué)論文 單元整體教學(xué) 單元考試總結(jié) 單元教學(xué)設(shè)計(jì) 單元復(fù)習(xí)計(jì)劃 單元 單元教學(xué) 單元復(fù)習(xí) 單元流水 單元負(fù)責(zé)人 強(qiáng)磁場(chǎng) 強(qiáng)拆 強(qiáng)度 強(qiáng)管理
相關(guān)文章
1聚焦要素 精準(zhǔn)助讀 走近名著——統(tǒng)編教材五下冊(cè)古典名著單元教學(xué)策略
2高中歷史教學(xué)單元作業(yè)設(shè)計(jì)分析
4統(tǒng)編語(yǔ)文教材閱讀主題單元教學(xué)對(duì)策