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