0
首頁 精品范文 軟件測試項目總結

軟件測試項目總結

時間:2022-12-31 16:06:08

開篇:寫作不僅是一種記錄,更是一種創造,它讓我們能夠捕捉那些稍縱即逝的靈感,將它們永久地定格在紙上。下面是小編精心整理的12篇軟件測試項目總結,希望這些內容能成為您創作過程中的良師益友,陪伴您不斷探索和進步。

軟件測試項目總結

第1篇

關鍵詞:軟件測試;軟件工程;認識誤區;持續改進

中圖分類號:TP311文獻標識碼:A文章編號:1009-3044(34)-1997-02

1 引言

隨著市場對軟件質量的不斷提高和國內軟件測試行業的逐漸發展,軟件測試不斷受到重視,有越來越多的軟件企業更加重視軟件測試,并已經形成了一套基本的軟件測試流程。然而,認識誤區的存在需要我們進一步改進軟件測試過程。

2 軟件測試概述

軟件測試就是在軟件投入運行前,對軟件需求分析、設計規格說明書和編碼的最終復審,是軟件質量保證的關鍵步驟。一般按四個步驟進行,即單元測試、集成測試、確認測試和系統測試及發版測試。隨著軟件危機的頻頻出現,人們已經開始認識到測試開始的時間越早,測試執行的越頻繁,所帶來的整個軟件開發成本的下降就會越多。所以,軟件測試在軟件項目實施過程中的重要性日益突出。

3 軟件測試過程中的認識誤區

3.1 軟件開發完成后進行軟件測試

人們一般認為,軟件項目要經過以下幾個階段:需求分析,概要設計,詳細設計,軟件編碼,軟件測試,軟件。據此,認為軟件測試只是軟件編碼后的一個過程,這是不了解軟件測試周期的錯誤認識。軟件測試是一個系列過程活動,包括軟件測試需求分析,測試計劃設計,測試用例設計,執行測試。因此,軟件測試貫穿于軟件項目的整個生命過程。在軟件項目的每一個階段都要進行不同目的和內容的測試活動,以保證各個階段的正確性。軟件開發與軟件測試應該是交互進行的,否則,測試的時間將會很短,測試的覆蓋面將很不全面,測試的效果也將大打折扣。

3.2 測試過程不夠完善

在軟件開發領域,確實存在一些東西看起來要比另外一些東西難測試一些,但是遠非無法測試。只不過這種不可測試性不是由于被測試的軟件內部的過緊耦合造成的,而是和外部某些很難測試的部分耦合過緊,從而表現出被測試的軟件本身很難測試。這些很難測試的部分比較常見的有:圖形界面、硬件、數據庫等。

3.3 強調測試用例設計得越詳細越好

在確定測試用例設計目標時,一些項目管理人員強調測試用例“越詳細越好”。這種做法和觀點最大的危害就是耗費了很多的測試用例設計時間和資源,可能等到測試用例設計、評審完成后,留給實際執行測試的時間所剩無幾了。因為當前軟件公司的項目團隊在規劃測試階段,分配給測試的時間和人力資源是有限的,而軟件項目的成功要堅持“質量、時間、成本”的最佳平衡,沒有足夠多的測試執行時間,就無法發現更多的軟件缺陷,測試質量更無從談起了。

3.4 追求測試用例設計“一步到位”

現在軟件公司都意識到了測試用例設計的重要性了,但是一些人認為設計測試用例是一次性投入,測試用例設計一次就“萬事大吉”了,片面追求測試設計的“一步到位”。這種認識造成的危害性使設計出的測試用例缺乏實用性,或者誤導測試用例執行人員,誤報很多不是軟件缺陷的“Bug”,這樣的測試用例在測試執行過程中“形同虛設”,難免淪為“垃圾文檔”的地步。

4 軟件測試過程的持續改進

4.1 計劃與風險

項目計劃對項目過程的實施有著直接的指導作用,它的重要性是不言而喻的。對于軟件測試來說,測試計劃也是指導后續測試工作的基礎,只有對過程中各任務進行更詳細的計劃,才有利于在測試過程中對項目進度的把握有一個明確的目標;同時,風險策略的制定,也有利于對及早對測試過程中可能遇到的問題做出分析,以便在問題出現時能夠盡可能的減少規避風險的成本。

4.2 評審

在測試過程中的每個階段結束前,都會輸出一些資源,文檔、用例等等,這些資源往往是下一個測試階段或軟件開發的下一個環節執行的依據。評和審是結合在一起的,每個角色根據自己對項目的了解,從各自角度來審核測試報告的充分性,對質量風險發表各種見解。最終,對報告的規范性也要進行考察。另外,也最好根據實際情況組織會議評審來對一定規模的問題統一評審。

4.3 文檔

文檔的編寫對于測試人員來說是一個十分重要的任務,深入的、充分的投入測試的測試人員能寫出高質量的測試文檔。所以,測試文檔的質量,往往反映了測試人員執行測試的廣度和深度。而在文檔的編寫方面,首先必須形成統一規范;另外,針對不同項目的測試,可以適當對文檔標題、內容進行簡化。總之,文檔模板一旦形成,必須嚴格遵守。

4.4 方法與策略

測試方法和測試策略,測試的重中之重。測試的策略一般要求從全局方面對測試的階段、每個階段的測試類型進行考慮、定義。而測試的方法更多是體現在一個具體的測試中,采取怎樣的測試思路。另外,在測試過程中,對資源的協調也非常關鍵,需要能保證測試資源充分利用,每個測試人員都有適度并且相當的工作量。

4.5 總結測試經驗

在測試的過程中,測試人員應該及時總結發現的錯誤并歸類,標明經常容易出錯的地方,將意見提交項目經理,審核后,制定出一份統一標準并提供給開發人員,這樣就可以提前避免錯誤、避免重復錯誤和重復測試,提高測試效率。不僅如此,項目結束后的各項總結報告將是項目的后期維護或二次開發的寶貴參考資料。

4.6 缺陷分析、度量

對測試活動過程中發現的缺陷進行分析、度量,尋找軟件開發過程中存在的問題,并持續改進開發過程,提高質量。缺陷的分析、度量從時間上分為兩個方面,首先是在軟件開發過程中發現的缺陷進行分析、度量;然后就是,對軟件產品后,對用戶提出缺陷進行統計、分析。

5 結論

測試是用來保證軟件開發過程的高效性,以及保證開發出來的軟件產品的高質量和可用性的。軟件開發本身就是一件非常困難的事情,這也決定了有效的測試是非常重要的環節,我們要加強對軟件測試的關注,使大家對于測試首先有一個正確的認識,避免誤區的存在,并積極探索測試方法的持續改進問題,真正使軟件測試真正起到它應有的作用。

參考文獻:

[1] 鄭人杰.計算機軟件測試技術[M].北京:清華大學出版社,1992.

[2] Fewster M,Graham D.軟件測試自動化技術[M].北京:電子工業出版,2000.

第2篇

關鍵詞:軟件測試;分階段教學;案例驅動教學;雙證教育;校企合作

中圖分類號:G420 文獻標識碼:A 文章編號:1009-3044(2012)30-7258-02

近幾年來,計算機信息技術發展迅速,我國的IT行業開始向國際化、規范化邁進。以往只重視軟件開發而忽視軟件測試的情況正在改變,軟件測試行業開始迅速發展。

國外小一些的軟件企業,軟件開發與測試人員之比基本上是1:1,微軟公司更是達到了1:2,軟測試人員規模遠超過開發人員的規模[1]。盡管一些國內大型軟件企業開始重視軟件人才的合理配置,但有的企業其比例也就只有10:1。軟件測試工程師鬧人才荒[2],中高級測試員緊缺的現象已十分明顯。

據統計,國內軟件測試工程師的缺口為20萬人左右,這一點從51JOB的招聘信息中可見一斑。近兩年,軟件測試工程師的需求和待遇都達到了歷史新高。

然而與當前軟件測試行業如火如荼的現狀極不協調的是當前軟件測試培訓領域的現狀[3],從事軟件測試工程師培訓的專業機構寥寥無幾,而且價格昂貴。大學里幾乎沒有軟件測試專業,部分院校開設《軟件測試》這門課程面臨三方面的問題,一是軟件測試教材知識片面。二是內容枯燥,學生不感興趣。三是教師教學經驗嚴重不足。面對軟件測試人才的社會需求緊迫性,人才培養單位應該擴大軟件測試人才培養規模,總結軟件測試知識點,改革教學方法,培養學生興趣,提高培養質量。

1 軟件測試課程教學方法探討

針對以上問題,在教學中應采取以下解決方法:

1.1 融合軟件測試知識點,分階段教學

目前,國內的軟件測試教材只涉及了部分基本理論知識,不夠全面,介紹的軟件測試工具也相對落后一些。針對這種情況,任課教師首先要融合多本軟件測試書籍內容,總結出軟件測試所涵蓋的知識點,更新軟件測試發展情況。

其次,根據學生學習過程分階段教學[4]。第一階段是基礎階段,讓學生掌握軟件測試基礎理論知識和軟件測試核心技術,以及常用測試工具的操作。第二階段是項目綜合實訓提高階段,在掌握基礎理論的前提下,加強綜合測試技術在項目實訓中的運用,針對不同的開發階段,撰寫各開發階段相應的文檔,并制定相應的測試計劃,設計典型測試用例,使用不同的軟件測試技術和測試工具,完成不同的測試目標。最后是培養學生自主學習階段,介紹軟件測試最新的技術與發展方向,引導學生對基本技術向縱深方向思考。同時向學生提供軟件測試方面重要的會議、雜志、論壇、網站,引導學生課下查閱學習資料,鼓勵學生自我學習。

1.2 改革教學方法,采用案例驅動教學

大部分高職院校學生基礎差、學習積極性主動性不強、自制力不高。在課堂教學活動中,如果繼續采用傳統教學方法,很難激發學生學習興趣。應該采用案例教學方法[5],將《手機信息管理系統》、《學生圖書借閱系統》、《學生信息管理系統》等案例資料發給學生,學生拿到案例后,在教師的引導下,課下先要進行消化,然后查閱各種他認為必要的理論知識,理解知識并思考提出解決問題的方法。課上教師答復學生的問題,并引導學生更深層次的思考。通過這種方法充分調動學生的學習積極性,提高其學習興趣,使學生既學會理論知識分析又學會用理論知識解決實際工程的問題。

1.3 采用軟件測試項目綜合實訓的實驗教學模式

開設綜合性的軟件測試課程實驗,按軟件企業項目管理和開發模式,進行軟件測試項目實訓[6],培養學生的創新意識與實踐能力。將班內學生分成若干個測試小組,每小組成員不超過7人,每組分配不同的軟件項目,如工資管理系統、圖書管理系統、學生信息管理系統、酒店預訂系統等。小組成員模擬與體驗軟件測試工程全過程工作職位和角色,使學生全過程適應工作職位的要求。

各項目小組在測試項目過程中,針對不同的開發階段,撰寫各開發階段相應的文檔,并制定相應的測試計劃,設計典型測試用例,使用不同的軟件測試技術和測試工具,完成不同的測試目標,并進行回歸測試,以實現軟件測試各單項專業知識與技能整合運用的目標。在整個測試過程可以體現“學以致用”的思想,實現理論與實踐相結合。

各項目小組通過演練項目開發,不僅讓同學們切身體會到軟件開發的整個過程,還讓同學們對軟件開發中各個角色有充分的了解,同時也更深刻的體會到團隊合作的重要性。

1.4 加強校企合作

堅持“走出去,引進來”的思想,經常邀請企事業、軟件公司里一線軟件測試人員或軟件測試組長和項目經理,來學校為學生做定期講座,或定期對教師進行培訓。也可以利用假期或其他時間,安排教師學生進軟件公司,一起跟進項目開發測試。目前本校已經連續兩年安排教師學生去齊魯軟件園,進公司一起進行項目開發測試工作。效果不錯,參加實訓的軟件項目綜合實訓的教師軟件開發測試能力有較大提高,并且學到一些最新最實用的軟件開發測試技術。

1.5 改革課程考核方法

軟件測試這門課程兼具理論與操作,目前大部分院校考核方式與理論考試為主,這種考核方式會促使部分學生考前抱佛腳,考前死記硬背,降低學生學習的積極性。除了理論考核之外,還應注重學生綜合知識和應用能力方面的考核。建議課程考核應該包含平時作業、課堂表現(發言與討論)、實驗、綜合實訓、理論考試這幾部分。采用這種考核方式,促使學生加強對知識的理解和運用,課堂踴躍發言,提高學習的主動性和創造性,以及動手操作能力。

1.6 適當加入一些最新的游戲測試

高職院校學生大部分的課余時間都是泡在網吧里玩游戲,有很多同學一有時間就玩手機游戲。學生對最新的游戲內容比較感興趣,游戲測試也是軟件測試的一方面,教師可以在課堂教學中加入一些游戲測試內容,提高學生的學習興趣。

1.7 采取雙證教育

實行“雙證教育”模式[7],將學歷教育與技能學習無縫對接,學生畢業后不僅能獲得國家勞動部高級職業技能認證證書、擁有扎實的操作技能,同時還將獲得國家承認大學學歷證書。雙證教育使學生專業能力更強、職業素養更高、綜合素質更好、更符合企業用人標準。

測試工程師有高級測試工程師、中級測試工程師、初級測試工程師。根據高職學生的能力特點,應該把高職學生定位在初級和準中級測試工程師,具有一定的設計方案的編寫能力,能利用測試工具完成一定的測試任務,并能夠執行功能測試。

2 總結

通過在本校近五六年的軟件測試教學實踐,發現軟件測試教學方法需要不斷改進,融合軟件測試知識點分階段教學,采用案例驅動和雙證教育模式,加強校企合作和教學實踐這些措施能較好地提高學生學習興趣和動手操作能力,教學質量也有較大提高。軟件測試人才培養剛剛起步,很多工作處于摸索階段,需要學校、教師和學生的共同努力,為社會培養出大批合格的軟件測試人才。

參考文獻:

[1]程茂,溫靜,吳玉潔.《軟件測試》課程的教學研究[J].河北師范大學學報/教育科學版,2010(4):117-120.

[2] .

[3]趙斌.軟件測試技術經典教程[M].北京:科學出版社,2011(3).

[4]葛漢強.高職《軟件測試》課程分層教學之實踐[J].職業教育研究,2011(8):105-107.

[5]邵謹榮.高職院校《軟件測試》課程的案例教學探討[J].職教論壇,2011(4):53-54.

第3篇

【關鍵詞】軟件測試;工作過程;課程設計

1.課程的定位與教學設計

1.1 課程定位

《軟件測試》課程作為軟件專業二年級下學期的專業課,它的前導課程是《數據庫設計》、《數據結構》、《軟件工程實施》,后續課程是課程實訓及畢業實習。通過本課程的學習,使學生加深對軟件測試基本理論和基本方法的理解與應用,能熟練使用常用軟件測試工具,并能運用軟件測試工具完成應用軟件的測試工作,提高學生對軟件的測試與維護能力,并進一步培養學生的的團隊協作能力。

1.2 課程設計思路

軟件測試是高職計算機軟件專業學生在以后的工作崗位上要用到的核心技能。因此,本課程應該作為專業必修課程和核心課程,重點培養學生在以后的工作崗位上所需的職業能力:白盒測試、黑盒測試、自動化功能測試與性能測試。

《軟件測試》課程的總體設計思路是,轉變傳統的學科課程模式,不再以知識傳授為主,構建以工作任務為中心的企業培訓體系,引入企業項目,讓學生在真實的企業項目中完成相應的工作任務,從而儲備相關的專業知識,發展職業能力。授課內容重點突出對學生職業能力的培養。課堂上不再單純地只講授理論知識,而是圍繞實際工作任務的需要來選取,這充分考慮了高職學生動手能力強,理論知識薄弱的特點。

2.教學設計

2.1 教學情境設計

本課程小組通過學院專業指導委員會、重慶亞德科技、重慶大佳、重慶港澳大家等軟件公司的企業技術人員進行實際調查,制定了適合高職學生的軟件測試課程體系與職業能力,確定了軟件測試課程典型的教學情景與子情景,在教學情景中給出具體的工作任務、工作方法以及要求學生掌握的知識與技能等,在教學中貫徹理論實踐一體化的教學模式,做到教、學、做三結合,充分體現工學結合的優勢,培養學生的職業素質。本課程的5個工作過程及11個典型工作任務如表1所示。

2.2 教材設計

(1)教材應充分考慮軟件測試的實踐特性,以工作任務為導向,引入必須的軟件測試理論知識,讓學生在實際測試的過程中,循序漸進地掌握必要的理論知識。

(2)編寫的內容要以項目驅動為原則,以企業的實際案例、場景模擬、工作過程錄像為載體,增強課后的能力拓展,并根據高職學生的職業能力所需知識的深度和廣度來編寫,并在具體的工作任務中使學生逐漸形成團隊協作意識。

(3)教材應突出軟件測試技術的實用性、前瞻性和開放性,不能只是簡單地介紹一些技術上的操作,而忽略了軟件學生所需的職業能力,在教材中應融入軟件測試技術中所用到的新規范、新技術、新標準、新工具、新知識,讓學生能系統地掌握軟件測試的前沿知識。

(4)教材應充分引領學生主動、積極地去學習,因此,文字表述要簡明扼要,內容展現應圖文并茂,內容應詳略得到。

2.3 教學方法設計

由于本課程的主要教學內容涉及白盒測試、黑盒測試、自動化功能測試與性能測試等操作性很強的教學環節,必須通過課程實訓才能達到對項目作規范需求分析的培養目標。具體教學方法設計如下:

(1)全班學生分為N個項目小組,3人一小組,1人任組長,組長要求協調溝通能力比較強。

(2)在教學過程中應加強學生對軟件總體的測試能力,采用任務驅動教學,注重以任務引領,提高學生學習興趣;

(3)組建軟件外包中心,引進企業項目,讓學生真實地體驗在軟件公司的測試流程。外包中心作為理論實踐一體化教室,達到理論和實際不脫節。

(4)教學過程中可參考軟件測試評師考試中規定的知識要求和技能等級職業標準。

(5)教師模擬企業的項目經理,必須具有開拓精神,帶領團隊完成工作任務,并在完成工作任務的過程中,探索基于工作過程的職業教育新模式,培養學生的軟件測試能力,構建軟件測試知識體系。

2.4 教學評價設計

(1)突出過程評價,結合課堂提問、實作測試、課后拓展、任務考核等手段,加強實訓教學環節的考核,并注重平時考核。

(2)強調目標評價和理論與實踐一體化評價,注重引導學生進行學習方式的改變。

(3)每個項目小組在完成課程后,要將所學的內容做ppt,匯報本小組項目完成的情況以及體會。

(4)實行學習過程的過程化考核。平時作業、期中與期末考試均采用上機實訓的方式考核,對于不合格者,在團隊的協作幫助下持續練習,直至過關。這樣可以督促學生不斷地練習,真正提高動手能力。

(5)課程的學期成績=平時作業(10%)+上課考勤(10%)+小組項目測試情況(30%)+小組ppt總結情況(10%)+期末成績(40%)

3.課程資源的開發與利用

(1)圍繞軟件測試課程,收集教師和學生必備的軟件測試工具,制作適宜教學的多媒體教學課件。

(2)組建軟件外包中心,搭建實訓工作平臺,為學生實訓提供真實的工作環境,從而提高其職業素養。

(3)要充分開發網絡課程,讓學生在課余時間可以自主學習,彌補學生課本知識的不足。

(4)充分利用和開放實訓中心,將教學與實訓合一,將理論與實踐合一,滿足學生綜合能力培養的要求。

(5)積極利用電子書籍、電子期刊、數字圖書館、校園網、各大網站等網絡資源,使教學內容從單一化向多元化轉變,通過企業技術人員的指導,課程教師的輔導,使學生知識和能力的拓展成為可能。

4.課程的實施效果

(1)基于項目化的授課內容

建立軟件外包中心,引入企業項目內容,軟件測試的授課內容緊緊圍繞企業項目的典型工作任務開展,學生的能力與素質參照軟件測試工程師的崗位要求,讓學生真實感受企業環境,就業零距離上崗。

(2)基于過程化的授課方式

老師授課不再單純地講解理論,完全按照企業的軟件測試流程開展,制定規范的軟件測試計劃、編寫測試用例、利用測試工具測試、編制測試報告,有利于學生養成職業化的學習習慣與工作習慣。

(3)基于理論實踐一體化的教學設備

學生在軟件外包中心上課以及實驗,真正實現了“做中學,學中做”的企業工作環境。

(4)基于能力化的學習評價

學生的評價不再單純地以理論考試為依據,而是從學生的軟件測試專業能力、利用軟件測試工具的能力、團隊溝通協調能力進行綜合地評價。

參考文獻

[1]鄭泳.基于工作過程系統化的高職《軟件測試》課程設計[J].漯河職業技術學院學院,2010(9).

[2]程茂,溫靜,吳玉潔.《軟件測試》課程的教學研究[J].河北師范大學學報,2010(4).

[3]蔡建平.開源軟件測試實踐教學方案設計[J].計算機教育,2011(3).

第4篇

關鍵字:軟件測試;實踐課程體系;項目實訓

0 引言

《軟件測試技術》是軟件工程本科專業的一門實踐性很強的課程,適合采用講練結合的方式開展相關教學,即讓學生多上機操作,逐漸提高軟件測試用例設計、開發能力以及軟件測試的整體管理能力。然而在實際實踐教學過程中,教師普遍感覺有不少不盡人意的地方,主要表現在理論與應用脫節,所學知識與社會需求差距較大,學生積極性不高等。

1 軟件測試行業現狀和學生認知水平

媒體報道,國內開發人員與測試人員的比例是8∶1,而國際公認的行業標準實際上是1∶1,這一點上國內測試行業與國外的差距比較大。隨著軟件行業的蓬勃發展,用戶對軟件的質量要求越來越高,導致軟件開發企業軟件測試的工作量也越來越大,因此自動化軟件測試已經成為項目測試的一大趨勢[3]。并受到原來越多的重視。

軟件測試課程一般到大三才開設,而大學高年級學生往往偏重于對技術的學習,因為技術往往是可以現學現用的,對于理論性較強的軟件工程知識反而不太感興趣了。實際教學過程中關于軟件測試流程、團隊等工程化內容的描述往往讓學生覺得比較抽象且教條化,然而這些工程化知識又是學生畢業后適應當下的軟件行業需求所必要掌握的。

2 現有軟件測試課程體系存在的問題

現有軟件測試技術課程重點講授的是理論基礎知識,含離散數學、圖論和測試基礎知識以及測試用例,開發各階段的具體應用往往被忽視,使用自動化測試工具方面的內容尤其缺乏。高校對實踐課程的重視程度普遍不夠,軟件測試實踐課開展不足且不規范。教師大量精力放在講授測試用例設計方法上,實踐中的使用這些測試用例卻較少。實驗案例通常有NextDate問題、三角形問題等,都是一些課本上常見的,設計也較單一,缺乏真實性,難以提升學生的技能,學生往往覺得枯燥乏味。畢業后學生普遍反映,軟件測試工程理論知識教的很全,但就是不知道怎樣靈活應用;相反,在企業經過一段時間的測試工作實踐后發現,工作中真正需要的知識并未掌握。

目前,相關配套的軟件測試實驗教材比較缺乏,實驗內容基本是由任課教師自行設計。這對于教學經驗豐富的教師問題不是很大,但對于沒有實際項目開發經驗作為支撐的年輕教師,就無法把握如何采用恰當的用例來驗證相關理論知識,也難以設計出實用的實驗內容,學非所用,導致學生無法掌握今后實際工作所需的基本技能。即使是教學經驗豐富的教師也大多缺乏實戰,盡管能很好的教授理論知識,但由于缺乏合適的實踐教材,加上實驗條件等各種因素制約,也難以的對學生進行系統全面的實踐培訓,導致高校重理論輕實踐成為普遍現象。因此,軟件測試課程的教學順應社會需求顯得格外迫切,必須面向企業,了解崗位要求,而不是“閉門造車”。讓學生能學到適合企業所需的技能,畢業后可以以一個“經驗者”的身份進入人才市場。

3 《軟件測試技術》實踐課程體系研究

3.1 課程構建原則

高校應以軟件測試所需的知識、技能為先導構建相應的課程體系,充分調研軟件測試工作的具體內涵,仔細研究對應的知識、技能以及素質要求,課程內容也應強調當前以及未來就業所需掌握的基本知識、技能,體現知識、技能和素質三者的結合[6]。

根據該專業人才培養的定位以及行業內需求,在建設具有特色的軟件測試課程時建立實驗、實訓和實習等不同層次的實踐課,通過多項目的練習,提高學生專業技能及分析、解決問題的能力。

3.2 實踐課程教學探究

在軟件測試技術實踐課程環節,引入具有企業背景項目的實訓。通過這些真實測試案例的引入,結合人才市場的需求,充分體現出工學結合的特點。通過對實際項目的操作,使用相關測試工具,完成對各目標的測試,提升學生的測試能力同時積累相關工作經驗。

我們可以在教學過程中引入一個貫穿整個教學過程的具體測試案例的教學法。首先,組織學生進行隨機分組,每個小組5~6個人,給每個組起一個名稱。要求每個小組在課程實施前完成同一個模擬軟件“小區物業管理系統”的開發。模擬軟件開發完成后,由各個小組交叉測試其它小組開發的軟件。在測試課程中,要求學生對軟件系統進行單元測試、功能測試、集成測試和系統測試,找出問題并解決問題。

該教學方法主要有以下明顯的優點:

1)軟件測試前期的課程有《基于Web的Java開發設計》,同步開設的課程有《J2EE企業級應用開發》,所以在實踐環節我們選擇“小區物業管理系統”作為測試對象,能讓學生快速具備軟件開發的能力,以及掌握軟件系統測試所需的技術。

2)每個人都喜歡挑別人的錯誤,相互測試對方所開發的系統,可以形成競賽,有利于發現問題,能發揮學生的積極性,提高效率。同時也便于組織課堂討論以及對各小組實踐結果的評價。

3)學生通過一整套測試課程的參與,能夠了解一個具體項目的完整測試過程是個什么樣子,真實展現了實際工作中軟件測試的方法和要求。

但由于學時和學生能力的制約,在本實驗課程中,主要針對還只是初、中級測試人員,主要是為了幫助畢業生在踏上崗位后可以順利從事不太復雜的測試工作打下堅實的基礎。對于高級別測試以及測試管理之類的工作,比如制定測試計劃、各種設計的論證、測試結果的評估和總結,恐怕還需要經相當長時間的實戰,累積足夠的經驗才能勝任。這些工作經歷,仍然不是課堂所能提供的,我們的目標就要是培養出具備從事這項工作潛能的新手。有關這方面的內容,我們也只能夠在理論教學中予以概述,不在實踐課中安排具體實驗。

為了適應實踐課程需要,我們設計了8項實驗內容,該設計旨在讓學員通過實訓,將來以一個“經驗者”的身份進入人才市場。該項目模擬“企業項目管理者”培養“新人”的模式來安排實驗進度和內容。雖然現實中軟件測試是始終貫穿于軟件生命周期中的,但對于未參加過工作的大學生來說,從培養人才的角度出發,模擬“企業項目管理者”通常還是按如下流程培養人才:單純性測試的實施、測試環境建立、測試設計等等,按照單元測試集成測試系統測試的順序逐步深入實踐,并在提供的測試案例中人為的加入一些缺陷,以便學員在測試時去發現、分析、修改這些缺陷[7]。因此,我們專門設計了表1所示的實驗內容。

通過以上8個實驗內容的實踐,可以讓學員掌握單元測試以及集成測試的具體實現方法,熟悉各種測試工具的運用,了解系統測試的實施。經過這些實際訓練,學生將來以初級測試工程師的身份投入到測試工作中。

4 總結分析

實踐證明,軟件測試技術實踐課程體系研究針對軟件測試行業及人才的特點要求,把行業、企業對人才的要求轉化為教學中的具體目標。從知識、能力、素質多方面全方位提升學生的就業競爭力,設置合適的實踐教學內容和方法,一定程度上改變了教師的教學狀態和學生的學習狀態,達到了預期目標。

參考文獻

[1]2007首屆中國軟件測試從業人員調查報告[DB/0L],2007

[2] 鐘素芬, 葉明芷. 軟件測試應用性人才培養模式的探索與實踐[J]. 北京聯合大學學報(自然科學版),2007(9).

[3] 鐘元生. 軟件測試實踐教學特色的構建實踐[J]. 電化教育研究,2006(10):62-65.

[4] 胡宏銀. 軟件測試課程教學方法探討與實踐[J]. 計算機教育,2007(6):11-12.

[5] 李繪卓,唐峻,范勇.基于案例的軟件測試實驗教學[J].電腦知識與技術,2009,27(5):7820-7821.

第5篇

【關鍵詞】軟件測試 技術 管理

隨著經濟社會的不斷進步和信息技術產業的持續發展,我國的軟件業逐步成為了信息技術產業的靈魂與核心。然而與同屬于亞洲的印度相比,我國在全球軟件業的整體地位還遠遠落后,印度目前位列全世界的前五個軟件方面供應大國之一,在計算機的軟件出口方面地位僅在美國之后、位列世界第二。在促使印度的軟件業得以快速成長和發展的原因當中,注重軟件的質量是印度軟件業能夠攻取成功的一個關鍵性因素,印度的軟件企業在世界上所獲得的質量認證也是全球最多的。所以,提升軟件的質量能夠大大地推動我國的軟件業的快速發展。而軟件的測試是把好軟件的質量關口的一個重要的環節,屬于軟件的開發周期當中占據較大比重的一項內容。然而在開發時間延續中,對軟件的缺陷修復的代價會十倍速地增長。所以,加強軟件的測試工作研究,對于提升軟件產品項目的質量,推動我國軟件行業和企業持續健康發展具有十分重要的意義和作用。本文簡要介紹了軟件測試的目的和分類,深入闡述了促進軟件測試技術自動化的措施,研究提出了加強軟件測試管理的對策和建議,希望對于推進軟件測試的研究和實踐工作能夠起到一定的幫助和借鑒作用。

1 軟件測試概述

軟件測試指的是軟件產品在投放市場前,對于軟件產品所進行的需求的分析,設計的規格和編碼等內容的復審,是確保軟件產品質量的關鍵性步驟。

1.1 軟件測試的具體目的

軟件測試的具體目的決定著如何來組織進行測試工作。通常情況下軟件測試工作的目的主要有:一是為發現程序的錯誤從而進行測試,二是測試用以證明軟件的程序存在錯誤,并非證明該程序不存在錯誤;三是好測試其功能在于可以發現以前沒有發現的一些錯誤等等。因此,必須關注測試的具體目的,進行測試用例的選擇時要遵循經濟性原則。

1.2 軟件測試分類

軟件測試通常可以分為黑盒式測試與白盒式測試兩種類型。黑盒式測試就是將軟件系統當作黑盒子而不去考慮相關程序內在的邏輯,按照需求規格的說明書要求對程序功能進行檢查,看能否達到功能說明的要求。白盒式測試就是允許實施測試的人員根據程序內部的邏輯結構和相關信息進行測試用例的設計與選擇,測試程序邏輯的路徑。按照前后的過程分類,測試步驟可分成:單元測試,組裝(集成)測試,確認測試及系統測試等。

2 促進軟件測試技術自動化的措施

2.1 軟件傳統測試方法的主要問題

一是重復性較強。在功能增加及缺陷修復時均可能修改程序的代碼,對改變過的代碼進行測試就要反復地執行測試用例,用手工進行重復操作會增加出錯率;二是測試的周期過長,手工重復測試將會使軟件的測試周期延長;三是測試內容不夠全面,修改代碼之后,手工進行測試會忽略對關聯內容的相應測試;四是不能測試不可視的組件,服務器端重要的程序代碼均處于邏輯層,而采取手工進行測試的方法無法判斷邏輯層相應內容。

2.2 軟件測試自動化技術措施

一是生成測試個案,采用相應的編程語言編制短小程序用以形成測試的輸入,以使自動化的測試和結果的核對程序更易于控制與操作。二是對測試進行寫控制,對單元的測試及集成的測試會采取單機運行的方式,然而對系統的測試及回歸式測試,則可會用到多臺設備在網絡環境下運行,以節省時間。 三是對測試的結果和標準化輸出進行對比,輸出的數據量情況和數據的格式對于對比速度有著直接的影響,應當編制特殊軟件將測試的結果和標準化輸出進行對比。四是利用對比軟件,分類、分析記錄及通報不符合的測試工作結果。五是產生測試總體統計報表,以增強過程管理工作的質量,節省數據統計時間。

3 加強軟件測試管理的對策和建議

3.1 強化軟件測試的過程管理

測試需求階段中,就明確軟件測試的對象與范圍,測試負責與項目組成員應充分溝通,對各種資料進行收集整理,對各階段測試工作需求進行分析,把測試內容細分成測試的需求,并保證其測試的可行性。測試計劃階段中,主要的任務就是按照測試需求來制定測試的計劃,計劃內容應包括:測試的環境、進度、用例及風險的分析等等。測試執行的階段中,應完成測試的實施與過程的監控。在缺陷跟蹤的階段中,主要是及時報告軟件的缺陷,跟蹤修改的進展情況。

3.2 強化對軟件測試突出問題的管理

一是防范思維定勢的問題。克服測試人員由于太過熟悉測試的軟件,從而建立起慣性的思維,造成測試的次數越是多,其發現缺陷機會反而越少的情況;防范方法是:測試人員不斷編制測試新程序及測試的用例,從而發現更多缺陷;還可用新人進行軟件的測試。二是防范定位效應的問題。測試人員的定位效應就是對于已測試功能不能進行認真的測試,由于疏于防范,可能會使缺陷一起存在;解決此問題方法為完整地實施測試用例,或者組織測試的人員進行交叉式的測試。

3.3 強化測試團隊的管理

嚴格員工考核,測試負責人定期組織項目組成員談話,定期評定做過什么和怎樣去做,做好測試人員的績效考核。加大培訓力度,系統學習相關領域的基礎和業務知識,強化日常培訓,深入學習特定的項目及技術,全面提升測試團隊的整體素質和能力。針對測試人員流動帶來的影響,建立相應的健全培訓工作機制,促進新任員工可以盡快地適應測試工作。

4 結語

綜上所述,軟件測試工作是軟件在投放市場使用前,對于軟件產品編碼的實現,設計的規格及需求的分析等內容所進行的最后一次審查,是軟件項目開發的一個重要的環節,對于軟件質量發揮著基礎保障的作用。因此,必須高度重視和加強軟件測試工作,不斷總結技術經驗,持續完善管理措施和辦法,以提升軟件產品的質量、推動軟件研發企業持續健康發展。

參考文獻

[1]楊亞南,孫忠林,李艷.軟件自動化測試淺談[J].科技信息,2007(24).

[2]肖新鳳.Web應用程序性能測試技術的研究及應用[J].科技信息,2010(27).

[3]張軍威.淺談如何以軟件測試推動軍工軟件工程化[J].硅谷,2011(14).

第6篇

【關鍵詞】激勵教學法 軟件測試 教學改革

【項目基金】北京師范大學珠海分校教學改革項目(項目編號:201245)。

【中圖分類號】G642 【文獻標識碼】A 【文章編號】2095-3089(2013)12-0247-02

軟件質量是一個直接影響軟件產業應用發展的關鍵因素,軟件測試作為一個提高軟件質量的重要手段和衡量軟件質量的唯一標準,得到了越來越多的重視。然而,目前我國軟件測試人才匱乏,其中主要的原因是這個行業對從業人員,尤其是對軟件測試工程師的要求很高。目前我國軟件測試人才主要依靠企業、IT培訓機構和高校培養三方面,靠企業和IT培訓機構突擊培養出來的人才往往基礎理論知識不夠扎實,在向高層次人才發展的過程中會碰到難以突破的瓶頸。

鑒于這種情況,許多高校都開設了軟件測試的課程,有的學校還開設了軟件測試方向或軟件測試專業。以我們信息學院為例,2008年開設了獨立的軟件測試的課程,2010年將軟件測試作為軟件工程專業的一個專業方向,其專業課程包括“軟件測試方法與技術”、“軟件測試自動化”、“軟件測試管理”和“軟件質量保證”。這些軟件測試專業課程的實踐性和綜合性都很強,尤其是“軟件測試自動化”這門課程,除了要熟悉相關的測試理論,了解數據庫、網頁設計、程序設計等軟件開發方面的基礎知識,還要求掌握先進的開發及測試的方法和技術,并能熟練運用常用的自動化測試工具。這些特點使得常規的教學方法和手段難以取得良好的教學效果,因此高等學校培養出來的軟件測試人員存在著理論和實踐脫節、獨立解決問題能力和綜合應用能力不足等問題。

1.軟件測試專業課程教學存在的問題

目前,高校的軟件測試專業課程的教學大都采用課堂教學輔助以上機練習的方法,培養出的學生雖然有著較強的理論根底,但對于如何將這些理論運用到千變萬化的實際工作中去卻知之甚少,理論和實踐嚴重脫節,學生的獨立解決問題能力和綜合應用能力不足。

許多教學研究人員和專業教師也注意到了測試專業課程教學中存在的問題,并針對這些問題提出了一系列教學改革的方法。其中項目驅動的方法是[1]在教學的過程中師生共同實施一個完整的項目,使學生的綜合應用能力得到了提高,因而在軟件測試專業課程教學中得到了廣泛的應用[2],也取得了不錯的效果。但是,這種課堂授課+上機實驗+課程項目的教學方法對軟件測試專業課程來講,還存在著一定的局限性,主要表現在以下幾個方面:

1.1缺乏真實的被測對象

在教學中使用的項目和案例中,被測對象通常是一些簡單模擬的應用軟件,測試場景,測試用例和bug也往往是模擬的。使用這類模擬的軟件、測試用例和bug對學生進一步理解概念和方法有一定的幫助,但往往不利于學生體會真實測試工作的復雜性和測試工作的價值,學生綜合應用能力的提高受到了很大的限制,學習興趣也難以調動。

1.2缺乏對新知識的掌握

軟件開發和測試技術日新月異,在就業壓力日益增加的今天,學生不僅需要學習基礎知識,還要掌握行業的最新發展趨勢。對于軟件測試這種高應用性的學科來說,最新的、最實用的技術和方法是在不斷的實踐中總結出來的,課堂授課+上機實驗+課程項目這種局限于校園的教學方法很難滿足學生和老師對新知識的掌握,也難以激發學生的學習熱情,更不利于開拓學生的視野,培養他們獨立解決問題的能力。

1.3缺乏對測試工作的熱情

目前,軟件行業里流傳著軟件測試工作的門檻低、收入低,經過簡單的培訓就可勝任的錯誤言論。其實,在軟件測試行業剛剛興起,軟件測試還是手工進行的時候,這種情況是存在的。但隨著軟件開發技術的發展,軟件變得越來越復雜,測試的方法和技術也有了進一步提高,低技術含量的單純手工測試已經不能滿足需求了,測試工作的回報也有了大幅度地提高。然而,這種低門檻低收入的說法卻一直流傳了下來,加上前面提到的過于簡單的被測對象和沒能及時更新的測試技術,都使得學生對軟件測試工作認識不足,進而缺乏足夠的熱情。

2.改革措施

根據上一節提出的當前軟件測試專業課程教學方法的局限性,我們提出了將激勵教學法應用到軟件測試專業課程教學工作中的解決方案。具體的說,就是在課程中引入企業發起的校園競賽。

2.1激勵教學法

激勵教學法,就是教師根據學生的不同情況,運用各種有效手段,激發、鼓勵學生的進取精神、競爭精神和創造精神,提高學生的學習積極性、主動性,使其思想行為朝著教學計劃所期望的方向發展的方法[3]。然而,對大學高年級的同學來講,一般的方法和手段并不能對他們起到真正的激勵作用,為此,我們采用“校園競賽”這種與所學課程和未來職業規劃聯系密切的方式來激發同學們學習的積極性,同時也能提高他們獨立解決問題和綜合應用的能力。

2.2校園競賽

在軟件測試專業課程的教學中,校園競賽是激勵教學法中的激勵機制,因此校園競賽設計的好壞,直接影響到激勵教學法實施的效果。

和大多數校園競賽不同,激勵教學法中的校園競賽是和某一軟件測試課程緊密聯系的,但競賽內容卻不失實用性,參賽者也不僅僅局限于學習課程的學生。這樣,不但對課程的學習有很大的幫助,也能更多地吸引其他同學。最重要的是,競賽的優勝者可以獲得進入企業實習和工作的機會,這種激勵方式可以有效地激發同學們學習的興趣。

為了使激勵教學法在軟件測試專業課程的教學中取得良好的效果,在競賽的設計方面,應著重注意以下幾點:

2.2.1真實的被測對象

競賽中使用的被測對象應該是企業中正在開發或運營的真實產品,在競賽的過程中,企業一線的軟件測試工程師應親自指導,使學生猶如置身于一個實際的工作環境中。這從根本上解決了高校培養的軟件測試人員理論和實踐脫節、缺乏實戰經驗的問題,極大地提高了學生的綜合應用能力。

2.2.2及時更新技術知識

在競賽的過程中應定期地舉辦一系列技術講座,邀請企業的專家學者來學校和同學們面對面地交流。這些業內專家不僅會帶來國內外最先進的測試技術,還可對如何將這些技術應用到實際工作中去做詳細的講解。這不僅讓學生加深對理論學習重要性的認識,激發他們的學習興趣,更從另一個側面強化他們把理論應用到實踐中去的能力,并且使同學們對企業的管理和工作方式有更深入、更具體的了解,為今后走向社會打下堅實的基礎。

2.2.3競賽題目的難度要適中

對學生專業興趣的培養和鼓勵不能僅僅靠真實被測對象和新技術的更新,還要注意競賽題目的難易程度,要根據學生的整體知識水平和能力做相應調整。太簡單了會失去挑戰性,太困難了會使他們產生畏懼心理,兩者都不利于激發他們對測試工作和測試課程學習的熱情。

3.方案實施

激勵教學法首先在“軟件測試自動化”課程上進行了實施。“軟件測試自動化”是軟件測試方向的必修課、其他方向的選修課,參加課程學習的同學主要為大三軟件工程專業的學生,他們一般至少學過一門軟件測試課程,具備一定的軟件測試的基本知識,同時對數據庫、網頁設計、程序設計等軟件開發方面的基礎知識有一定的了解。

根據“軟件測試自動化”課程的特點,結合腳本程序在測試工作中應用越來越廣泛的趨勢,校園競賽的主題定為“自動化測試腳本編程”,被測試的對象為公司正在開發運行的一個性能監控工具。

競賽分三個階段進行:

第一階段為熱身運動。企業提供詳細的操作步驟與說明,幫助參賽者了解比賽進行的方式與完成的步驟,也了解被測試對象的功能。

第二階段為實際演練。在這個階段,參賽者需要運用所學到的技能,結合自動化測試的理論及工具,來完成精細的自動化代碼設計任務。

第三階段為實戰考驗。參賽者需要完成實際的軟件測試自動化編碼工作,編寫真正的自動化測試腳本,搭建自動化測試框架,并讓其跑在真正的被測產品上。

為了擴大校園競賽的影響,專家講座以課外科技講座的形式進行,競賽結果的評定由企業和教師共同進行。

4.結語

激勵教學法針對高等學校培養的軟件測試人員存在的理論和實踐脫節、獨立解決問題能力和綜合應用能力不足等問題,克服了當前軟件測試專業課程教學經常出現的缺乏真實測試對象、知識更新不及時和對測試工作熱情不高帶來了弊端,對培養應用型、外向型、復合型的專門測試人才起到了積極的作用。經過對“軟件測試自動化”課程教學的實施,證明了該方法是切實可行、效果顯著的,不但可以在軟件測試專業課程中進行應用,經過改進,完全有可能在其他類似的課程(如軟件工程)中加以推廣。

參考文獻:

[1]焦瑞.項目導向法初探[J].中國科技創新導刊,2010(13):36 - 36.

[2]趙曉君,黃艷,鄧璐娟. 項目驅動法在“軟件測試理論”課程教學中的應用[J]. 中國電力教育,2013(7): 101-102.

第7篇

關鍵詞 軟件測試 實踐教學 測試工具

中圖分類號:TP311.53 文獻標識碼:A

1 軟件測試課程教學現狀及分析

1.1 軟件測試課程教學現狀介紹

軟件測試是軟件工程專業本科生的一門重要的必修課程。在本校的課程設置中為56學時,其中理論教學為32學時,上機實踐為24學時,由于軟件測試的各個環節分別對應于軟件工程的相應環節,使得軟件測試課程的內容龐雜,而其實踐環節也相應地具有內容雜,任務重的特點。

軟件測試的教學目標是通過理論及實踐教學,讓本科生熟悉軟件測試的工作流程、常用軟件測試方法及常用工具的使用及軟件測試過程管理。

教學過程中的主要參考書目為機械工業出版社出版,原著為Paul C.Jorgensen,韓柯等譯的《軟件測試(原書第2版)》,原書的英文名為《Software Testing A Craftsman''s Approach(Second Edition》。授課基本流程基本也是依據以上教材的流程,首先介紹軟件測試的概論,介紹什么是軟件測試,軟件測試的意義、軟件測試的基本流程和基本概念等內容。接著介紹貫穿全書的軟件測試需要的示例以及軟件測試所需要的基本理論知識,包括測試人員使用的離散數學及圖論相關知識。介紹完以上知識以后,按照軟件測試流程依次介紹單元測試、集成測試和系統測試的測試用例開發方法和技術。其中在單元測試部分分別介紹單元測試部分的黑盒測試和白盒測試內容,黑盒測試部分包括邊界值測試、等價類測試和基于決策表的測試,在白盒測試部分介紹路徑測試、數據流測試等結構性測試方法的測試用例開發技術。介紹完以上內容以后,又介紹了面向對象的軟件測試方法。

課程的上機實踐基本上也是配合上課的流程進行安排,在相應的知識點介紹以后,安排學生按照指定的技術開發測試用例以進行測試活動,附帶掌握相應的軟件測試的各種管理和自動化工具。

1.2 軟件測試課程教學現狀分析

通過以上教學流程的描述結合以往畢業生工作以后反饋,可以總結其教學過程的特點為:通過系統的學習,同學們基本上能掌握軟件測試用例開發的各種技術要點,對所有的知識點都有所觸及,通過學習同學們基本上能夠掌握各種實用的軟件測試用例的開發方法,也能將各種方法應用于實際軟件測試中。

而在實際軟件測試實踐中,軟件測試工作具有以下特點:

首先,依據測試工作越早開展越有利的原則,軟件測試一般從開發的初期就開始介入。例如在開發初期,需要編制測試計劃進行時間人員和物力上的計劃;在需求分析階段需要進行軟件測試的系統測試用例的開發;在設計階段需要進行集成測試用例的開發,隨著設計粒度越來越細,相應的路徑及數據流集成測試用例也向下擴展;到達軟件編碼階段,主要依據相應白盒技術進行單元測試用例的開發。其次,現代化的測試管理技術需要利用軟件全面管理軟件測試過程中的環節,包括測試計劃的建立及管理、測試用例的管理、測試過程評價管理等。最后,因為人力資源成本的提高及各種技術限制,各種自動化的軟件用例的運行軟件的使用越來越多等。

通過比較教學過程及實際軟件測試的開發過程很容易發現以往教學過程具有以下限制:

首先,沒有將軟件測試作為軟件開發的有機部分進行介紹,而是將軟件測試過程從軟件開發過程中割裂開來。知識點沒有按照實際應用過程展開,容易造成同學們掌握各個知識點,卻無法形成知識實際應用能力。其次,缺少相應的測試管理軟件的介紹和實踐,影響了同學們對軟件測試管理的重要性的認識。最后,教學課程缺乏同學們比較感興趣的各種軟件測試自動化工具的介紹。降低了同學們的學習興趣。

2 軟件測試課程教學改革方法探討

通過上文的現狀介紹和分析,針對以上教學方法進行改造,同時本著揚長避短的原則,在中國石油大學(華東)軟件工程專業2009級軟件測試課程教學過程中進行了教學改革。

教學改革的契機為本校軟件工程專業和IBM公司開展教材合作編寫項目,軟件測試作為軟件開發的重要部分獲得了空前的發展良機。

具體的有利因素可以概括為:首先,學校向IBM公司購買JAZZ開發平臺及相應的專業軟件測試管理軟件。通過和業界領先的最新的軟件測試管理軟件接觸,了解了最新的軟件測試管理理念;其次,通過IBM公司對教工的業務培訓,了解了IBM公司的各種軟件測試工具的使用情況;最后,通過本文作者共同努力,將平時用于開發的實際應用軟件例如體育公共課管理軟件等進行整合,用于軟件測試用例的案例教學。

有了以上基礎前提以后,結合以上有利條件,教改的主要做法如下:首先進行案例化教學,通過自己開發的軟件這樣生動的實例向同學們介紹軟件開發過程中的軟件測試的重要性和各種原則,避免了介紹知識的空洞和乏味,提高了同學們的學習興趣;其次,在案例化教學的指導思想下,重新安排各個教學點的教學順序,主要脈絡為依照軟件開發的實際流程,首先介紹系統用例開發技術,然后介紹繼承測試用例開發,到最后介紹單元測試用例開發方法。在運行測試用例的過程中,充分結合IBM公司提供的各種軟件測試用例運行工具,使得學生能夠活學活用。最后,充分利用IBM的軟件平臺,介紹業界領先的軟件管理工具的使用,使得學生學習興趣得到極大提高。

通過以上的教學改革,理順了教學和實踐的關系,使得教學過程緊密聯系實際軟件的開發過程,同學們對軟件測試課程的理解得到了加深。

3 結論及下一步工作

通過上文對教學現狀的總結,以及針對教學現狀的利弊進行分析,本文充分利用外部優勢大膽進行了軟件測試的教學改革,取得了預期的改革目標。同時也注意到改革工作才剛剛開始,還有很多需要完善的地方。接下來的工作主要包括:進一步豐富用于軟件測試教學的案例及密切關注業界測試技術的最新發展以用于教學。總之,本文的教改工作達到了預期的目標,使得同學們對于軟件測試的理解較之以前更加條理化、系統化和實用化。

參考文獻

[1] 匡青.高職院校軟件測試課程教學改革探索[J].現代商貿工業,2010.3.

第8篇

關鍵詞:軟件測試;能力培養;教學理念;培養模式;探索實踐

中圖分類號:TP311 文獻標識碼:A DoI: 10.3969/j.issn.1003-6970.2012.03.009

Explore and Practice of Training the Ability for Software Test Talent

CaI Jian-ping

(School of Software Engineering Beijing University of Technology, Beijing 100101, China)

【Abstract】According to the requirements of Ministry of Education for training software talents, Aim at the software engineering features, and as a breakthrough for shortage of talent on software test, the paper analysis the employing demand of IT enterprises, study the training target of software testing talents and the training demand on the ability, explore a good method of the ability training for software test talents. Based on this, we actively undertake many practice activities about the ability training for software test talents, for example, concise the teaching philosophy of training software testing talent, build the new pattern of training the ability for software test talents, constitute a general outline for software test course, write corresponding book, establish laboratory, etc.

【Key words】software testing; ability training; Teaching Philosophy; Training Pattern; Explore and Practice

0 引 言

軟件測試是軟件工程的一個重要分支,是軟件質量保證的重要基礎。現代軟件測試與傳統的軟件測試不一樣,它是貫穿軟件工程整個生命周期(從需求分析、軟件設計、代碼開發,一直到最后測試、驗收和維護),涉及各種軟件開發技術、應用技術以及測試技術,覆蓋軟件各種應用領域(如桌面軟件、網絡應用、信息系統、電子服務、嵌入式系統、數字娛樂等),面臨不同的專業領域知識,所要求的投入與軟件開發相比規模同等甚至更高。另外,軟件測試是一項需具備較強專業技術、學習和創新能力的工作,軟件測試人員除了需要有一定的軟件測試實踐經驗外,必須要具有縝密的邏輯思維能力、全面的技術能力、各種測試工具的使用能力、敢想敢干的創新能力,要有較強的責任心和團隊合作精神以及出色的溝通能力等專業素質。要成為一名合格的軟件測試人才需要經過嚴格系統化的專業培養,并且在專業培養過程中一定要結合軟件測試專業化的特殊要求,強調軟件測試人員的工程實踐能力。

目前,很多高等學校僅僅是在計算機專業或軟件工程專業中設置一些軟件測試課程,還沒有提高到軟件測試專業化人才培養這個層面。北京工業大學軟件學院率先在這方面進行了探索和實踐,將能力培養作為軟件測試人才培養的重要內容和突破口,提出了“用工具,促能力”的教學理念,積極探索軟件測試課程的改革與實踐,最終建立通過學習和使用軟件測試工具進行軟件測試能力培養的新模式。并在此基礎上,開展課程建設、教材建設、實驗室建設等工作,取得了較好的效果。

1 “用工具,促能力”的教學理念

工程實踐能力是計算機專業,特別是軟件工程專業的基本要求之一。計算機技術或軟件工程技術涉及到大量的知識內容,包含各種開發和應用技術,覆蓋許多應用領域,需要有很強工程實踐能力。對于我們在校的本科學生,由于從高中到大學,一直在學習,缺乏實際項目經歷。如果按照傳統的課堂傳授理論知識的方法進行教學,輔助一般的實驗,會讓學生感到枯燥、乏味,提不起興趣。

為此,北京工業大學軟件學院要求在軟件工程本科專業的培養計劃中加大計算機基礎課程和軟件工程專業核心課程的實踐教學環節(包括配套的課程設計,獨立的實踐課程,以及小學期的集中實訓等),并特別在軟件測試課程的實踐教學上進行了大膽的改革和創新,提出了“用工具,促能力”進行軟件測試人才能力培養的教學理念。該教學理念的核心思想是通過要求學生熟練地使用各種軟件測試工具,來掌握軟件測試相關知識、技術、方法和管理流程,提高軟件測試的工程實踐能力,提升軟件測試的專業化水平。

熟練地使用軟件測試工具能帶來如下好處:

1)提高工作效率。

軟件測試的工作量很大(據統計,測試會占用到40%的開發時間;一些可靠性要求非常高的軟件,甚至會占到60%);另外,測試中的許多操作是重復的、非智力性的和非創造性的,但要求準確細致。最后,那些固定的、重復性的工作,可以由測試工具來完成,這樣就使得測試人員能有更多的時間來計劃測試過程,設計測試用例,使測試進行的更加完善。

2)保證測試的準確性。

手工測試常會犯一些人為錯誤。為此需要投入大量的時間和精力;而工具的特點是能保證測試的準確性,防止人為疏忽造成的錯誤。

3)有些測試很難開展,必須使用工具(如性能測試等)。

測試工具可以執行一些手工難于執行,或者是無法執行的測試。這是因為軟件測試工作相當復雜,要求非常嚴格,很多測試在手工測試環境是無法完成的。

4)測試工具很好地保證測試工作的規范性和一致性。

軟件工程最重要的內容就是管理,軟件測試同樣也是將管理放在第一位。

5)測試工具體現了先進的測試思想、方法和技術。

掌握并熟練地使用軟件測試工具,能夠快速和有效地掌握或鞏固所學的軟件測試的思想、方法和技術;運用軟件測試工具開展軟件測試工作,能夠有效地提升解決軟件測試中遇到的各種問題,增強軟件測試的實戰能力。

事實上,“用工具,促能力”的教學理念非常適合在工程化要求較高的軟件工程核心課程中進行示范,予以推廣。

2 探索軟件測試人才能力培養的新模式

我們在“用工具,促能力”的教學理念指導下,對以軟件測試人才能力培養為目標的教學方法與教學模式進行積極地探索和實踐,確定了軟件測試課程教學的知識體系以及學習和使用軟件測試工具進行軟件測試能力培養的實踐教學體系,制定了軟件測試課程教學大綱和實踐教學課程大綱,從而建立軟件測試課程教學及能力培養的新模式。

我們這里所說的軟件測試人才能力培養新模式主要是指我們在對軟件工程本科學生的軟件測試能力培養過程中,強調“用工具,促能力”的教學理念,以開源軟件測試工具為基礎,結合精選的教學案例,大膽地將測試工具的掌握和測試工具的應用作為實踐教學的重點,強化學生軟件測試專業知識的掌握,促進學生軟件測試實踐能力的培養。這種實踐教學的新模式,通過不斷的探索和實踐,充分得到學生的認可。學生通過軟件測試工具的使用,大大提高了參與實踐的興趣,對軟件測試相關的理論知識有了更深入的理解和掌握,運用工具解決測試項目實際問題的能力得到了加強。

2.1 軟件測試人才能力培養的課程建設

軟件測試人才培養專業性強,人員素質高,這要求我們必須科學地對軟件測試課程體系進行論證,并按照軟件測試人才能力培養新模式的要求制定出教學大綱。目前,學院在軟件測試課程體系的設置上分三個層次:理論課程―軟件測試,實踐課程―軟件測試課程設計,創新學分―軟件協同測試。貫穿這三個層次的主線是軟件測試工具,即通過軟件測試工具在不同軟件測試項目中的使用,強化學生知識的掌握和能力的培養,并按照工具使用流程要求,培養學生專業職業素質。

2.2 基于開源軟件的軟件測試實驗室建設

軟件測試課程對工程實踐要求極高,對學生動手能力要求極強,因此軟件測試實驗室的建設,軟件測試工具的配備除了支撐教學外,還是“用工具,促能力”教學理念的貫徹和通過學習和使用軟件測試工具進行軟件測試人才能力培養新模式的實施最重要的保證。

考慮到軟件測試貫穿軟件工程整個軟件生命周期,涉及各種軟件開發技術、應用技術以及測試技術,覆蓋軟件各種應用領域,需要用到多種測試技術、方法和測試類型。因此要建設能夠讓學生或受訓人員全面參與這些實驗或實踐的軟件測試實驗室,特別是全面配置商用軟件測試工具,這幾乎是不可能的。首先,除一次性投入滿足數十位學生同時上機進行實驗或實踐的要求外,經常性的升級維護費用就會讓條件優越的高校或培訓機構難以承受,更不要說大多數條件不優越的高等院校。另外,如果完全依靠商用軟件測試工具開展軟件測試的實踐教學,除了面太窄、投入太高外,我們很難推廣和普及在這方面取得的實踐教學成果。

為此,我們提出了以主流的開源軟件測試工具為基礎,進行軟件測試實驗室建設的解決方案。該方案覆蓋軟件測試的各個階段和各種類型,保證了國內許多院校在辦學條件不足,實驗教學經費有限,無法全方位引進商用軟件測試工具的情況下,仍然能夠很好地開設軟件測試實踐類課程。

實際上,我們在軟件測試實踐能力培養過程中,一直是要求學生使用開源測試工具。這是因為:

①開源測試工具的使用,特別是測試環境的建立,能夠促使學生接觸各種開源工具,如操作系統、服務器、數據庫、頁面開發語言、繪圖、郵件等,培養他們搭建平臺的綜合能力。

②采用開源測試工具搭建測試環境開展測試工作,更有利于學生學習和理解軟件開發技術和軟件測試原理,提高學習興趣。

③學生通過使用開源測試工具,除了完成課程設計所規定的測試任務外,還能夠清楚地了解這些測試工具對測試技術和測試方法的支持以及這些工具在應用中存在的問題,并可以嘗試自己動手改進這些測試工具。

2.3 軟件測試課程配套的教材建設

為使教學理念真正得到貫徹,能力培養模式真正得到實施,必須解決與之配套的教材問題。為此,我們編寫了《軟件測試大學教程》、《軟件測試實驗指導教程》以及《嵌入式軟件測試實用技術》3本教材。這3本教材不僅是課程的配套教材,而且還是軟件測試課程建設和教學研究及改革等成果的最終表現,也是軟件測試能力培養新模式實施的基石。《軟件測試大學教程》已被北京市教委推薦為“十二五”普通高等教育本科國家級規劃教材(待評審);另外,《軟件測試實驗指導教程》全面介紹了支持各種軟件測試類型的開源軟件測試工具的主要功能、應用流程及實際案例,涉及到測試管理、缺陷管理、代碼分析、單元測試、系統測試、性能測試以及軟件綜合評測等重要實踐內容。該教材配套有近1GB內容的DVD光盤,光盤中存放有覆蓋軟件測試不同階段和不同類型的大量開源軟件測試工具及配套的實踐教學案例,保證了國內許多院校在辦學條件不足,實驗教學經費有限,無法全方位引進商用軟件測試工具的情況下,仍然能夠學習和推廣我們的教學成果;最后,學術專著《嵌入式軟件測試實用技術》對軟件工程應用領域嵌入式軟件的測試活動開展提供了專業支持。

上述教材的出版及使用,能夠使我們的教學理念真正得到貫徹,教學大綱真正得到落實,教學新模式真正得到實施,實踐教學的探索及改革有據可查,有跡可循。

2.4 軟件測試精品課程的建設

精品課程的建設能夠推動優質教育資源的共享、教學理念的宣傳和教學模式的普及與推廣,使學生得到最好的教育,從而全面提高教學質量。

軟件測試課程自2009年評為北京工業大學校級精品課程以來,一直在努力開展精品課程相關內容的建設,積極申報北京市精品課程。通過近幾年的軟件測試精品課程建設,很好地推動了優質教育資源的共享,以及實踐教學理念的宣傳和實踐教學模式的普及與推廣。

軟件測試課程在建設過程中,對教學內容、教學方法進行了如下的改革:

①在整個本科和工程碩士教學計劃和培養方案的基礎上,進行課程體系、教學內容及實驗和實踐環節整體配套和優化的教學改革;

②重視基礎理論,采用案例驅動式教學方式,加強實踐教學環節,注重基本技能訓練與工程能力的培養;

③密切軟件開發技術及測試技術應用最新動態,設計實踐教學案例,增強課程內容的針對性和時效性;

④將軟件測試課程理論教學與軟件測試課程設計、軟件協同測試等實踐教學和創新學分整體考慮,努力達到培養高素質、專業化軟件測試人才的要求;

⑤為使軟件測試課程達到既定目標,開展了配套的教材建設。

總之,精品課程教學內容突出全生命周期軟件測試概念、軟件質量分析手段、現代軟件測試技術、主流測試工具應用以及典型應用測試方法等,幫助學生了解和掌握現代軟件測試的各種原理、方法和技術,并能夠選擇合適的軟件測試工具進行相關測試。這些舉措為培養學生今后成為高素質、專業化的軟件測試人才打下很好的基礎,許多學生畢業后在IT企業能夠很好地從事軟件測試工作。

軟件測試精品課程網站是按照北京市精品課程網站建設要求建設的。網上的內容除了課程概況、課程內容、練習作業、教學課件、參考資料以及全程錄像。由于軟件測試課程包含有實踐性教學,因此本網站包括實踐教學指導等。除此之外,本網站還包括軟件測試課程全面教育教學研究和改革的思路、方案和成果。可以說,本網站內容完整、資源豐富,其成果具有可示范性和可推廣性。

軟件測試課程建設得到北京世紀超星信息技術發展有限責任公司的大力支持,該公司將本課程作為優秀學術成果(超星名師講壇――超星學術視頻)進行了全程的錄像和系統的整理,部分錄像資源可在超星網上觀看或下載,網址是: video.省略/playvideo.aspx?id=31475。另外,超星公司已授權我們可將本課程的完整學術視頻放在學校精品課程網站上,使教師和學生共享其資源。

3 軟件測試人才能力培養模式的實踐

軟件測試課程在不同的院校其設置是不一樣(如理論課或理論課+實驗課,學時、學分等)的,北京工業大學軟件學院在軟件工程專業本科生的教學計劃中將軟件測試課程設為專業必修課,其課程設置包括理論課及實驗課(課程設計)兩部分。理論課32學時,16周完成,每周2學時,最后參加學校考試周的閉卷考試。課程設計是期末小學期2周集中進行,共60學時。

3.1 課程設置情況

軟件測試課程自2005年開設以來,就依據“用工具,促能力”的教學理念開展本文所提到的軟件測試人才能力培養的新模式進行教學,講授了8輪次,學習人數達500多人。

無論是軟件測試理論課實驗、軟件測試課程設計,還是創新學分――軟件協同測試,都是以軟件測試工具為核心,結合精心設計的測試案例,使學生從測試需求、測試環境建立、測試策略、測試技術應用、測試用例設計與執行、測試結果分析,以及缺陷跟蹤管理與測試報告文檔撰寫等方面完成實驗內容和課程設計內容。

3.1.1 軟件測試理論課程的實驗大綱

軟件測試理論課中安排了6個學時的實驗內容,包括三個方面的內容(每部分內容2學時):代碼靜態檢測、Java單元測試Junit、Gtk+界面測試。

3.1.2 軟件測試課程設計大綱

軟件測試課程設計按照《軟件測試實驗指導教程》開設了6大類型的軟件測試項目,每個類型的測試項目要求學生同時使用主流的開源測試工具,體會先進和成熟的軟件測試技術,提高學生的實戰能力。

類型1:以測試過程管理為主,實驗重點是缺陷管理、測試管理以及缺陷管理與測試管理的集成。涉及到的開源工具主要有Mantis、Bugzilla、Testlink、Testopia等。

類型2:以程序的靜態分析為主,實驗內容是程序理解、代碼靜態分析。涉及到的開源工具主要有Oink,Eclipse PTP/ CDT,以及分析Java代碼的多種工具(如Findbugs、PMD、Checkstyle、Valgrind、Prefast等)。

類型3:以單元測試為主,實驗內容是基于支持測試驅動開發(TDD)的單元測試框架xUnit的C/C++功能測試和C/C++及Java的覆蓋測試。涉及到的開源工具主要有CppUnit、EclEmma、Gcov等。

類型4:以圖形界面測試為主,基于單元測試框架對Java GUI進行測試,對網頁進行測試。涉及到的開源工具主要有JFCUnit、HttpUnit、JWebUnit等。

類型5:以性能測試為主,除了繼續在單元測試框架的基礎上對Java應用進行單元性能測試外,重點是對Web應用系統進行整體的性能測試。涉及到的開源工具主要有p-unit、JMeter、WebLoad等。

類型6:以軟件綜合評測為主,對南京大學的EASTT工具進行綜合應用(可輔助使用Panorama++試用版),全面了解軟件評測的思想、方法和要求。

軟件測試課程設計的考核內容包括:建立測試環境,運行測試工具,編寫測試例子,加載被測程序,執行測試用例,分析測試結果,撰寫測試總結報告(報告字數不少于1萬字),最后登臺匯報(PPT演講)。

通過撰寫報告和登臺PPT匯報,培養學生的邏輯思維、歸納總結、論文撰寫、多媒體制作以及登臺演講能力。3.1.3 軟件協同測試創新學分大綱

軟件協同測試創新學分實踐課程主要是由教師布置具體的較大型軟件測試項目,模擬多人異地得測試活動,讓學生體驗軟件測試各個階段進行協同的關鍵要素。包括測試需求分析、測試計劃制定、測試用例設計、測試用例執行、測試結果收集以及測試資源和測試過程管理等各個環節的協同要求,學生通過協同分工完成整個課程任務,并在測試實踐中總結方法,創新性的提出軟件協同測試的解決方案。

3.2 實踐效果

基于“用工具,促能力” 的教學理念下的軟件測試人才能力培養的新模式在內容組織上做到了既能夠調動學生專業興趣,使其感到軟件測試的實用性和挑戰性,又加強了學生軟件測試的實際動手能力。軟件測試課程以主流的開源軟件測試工具應用為基礎,以實戰能力培養為目的,易于教師開展軟件測試的各項實踐教學活動,而且學生對這種形式的實踐教學反映非常好,學生參與實驗的熱情非常高,學生經過實踐后收獲非常大、能力提高非常快,學生為實踐收集或設計的案例非常豐富,部分學生撰寫的實踐總結報告水平也非常高。另外,學生結合分組實踐內容的安排,進行針對性地軟件測試實踐活動,同時也可以方便不同層次的學生根據自己的能力、時間和興趣選擇相關的實踐內容進行自學和實踐,進一步地拓展自己的專業知識和專業技能,為今后的職業生涯規劃打基礎。

企業對我們所取得的成果給予了認可。北京應用軟件產品質量監督檢驗中心與學院簽署了戰略合作協議,確定在軟件測試人才培養(如軟件測試培訓、實訓及實習)、軟件測試科研、軟件協同測試平臺建設以及嵌入式軟件測試等基礎建設方面開展合作。

2009年,北京工業大學軟件學院所獲得的北京市軟件工程實踐教學示范中心其建設內容主要是軟件工程及其相關專業核心課程的實踐教學及其學生的能力培養。按照什么樣的理念和模式開展這些課程的實踐教學,軟件測試課程“用工具,促能力”的教學理念和在該教學理念指導下的軟件測試人才能力培養模式做了一個很好的實踐和回答。

4 結束語

目前計算機學院或軟件學院學生的軟件測試人才培養一直是高等院校計算機人才或軟件人才培養的一個“短板”,一直缺少好的教學理念和教學模式。因此,開展軟件測試人才能力培養的教學理念及培養模式的探索與實踐是一件非常有意義的工作。對于這項工作,有關專家給與了充分的肯定,他們認為:軟件測試人才能力培養的教學理念和新模式強調軟件測試工具使用的重要性,同時重視教學實驗成本和教學的靈活性,所有實驗和實踐活動的內容組織均以開源軟件測試工具為主。通過實際測試項目的開展和工具的使用,能夠使學生掌握軟件測試的基本方法、技術和流程,提高他們的動手能力。而且這種教學理念和培養模式具有示范性和推廣性。

參考文獻

[1] 柳永坡. 讓軟件測試實驗和實訓課程輕松地走進高校或培訓機構――介紹《軟件測試實驗指導教程》[J].計算機教育,2010(13):158.

[2] 柳永坡. 軟件測試大學教程:軟件測試課程專業教材[J].計算機教育,2010(12):158.

[3] 蔡建平. 開源軟件測試實踐教學方案設計[J]. 計算機教育,2011(6):103-108.

[4] 蔡建平. 軟件測試大學教程[M]. 北京:清華大學出版社,2009,09.

第9篇

一、工作數據

我于xx日入職,在這4個月的工作中,我從開始進入公司配置xx安裝環境到xx,再到現在完全測試的xx工作。

二、工作總結

作為一名軟件測試人員,我的工作內容是:主動尋找公司的軟件產品中可能的缺陷以及不合理的地方,并及時反饋給開發同事,保證公司的軟件交給客戶是比較理想沒有明顯缺陷的狀態。

在公司測試的日常工作,思想匯報專題主要由兩部分組成:一是與實施同事交流討論,總結實施同事提交的并提交給開發修改、全程跟蹤,直到關閉。二是按照流程細致的分析軟件可能存在的缺陷,及時反饋給開發同事。在4個月的時間里,我由測試xx轉到測試xx,下面對我的工作做一個總結。

1、xx測試。剛來公司,測試經理給我非配的是一臺惠普的新臺式機,運行速度很快,用起來很舒服,很喜歡。第一個星期主要是學習xx的業務流程和安裝部署xx財政端和單位端的測試環境。在xx的幫助下我配置了6月到8月份,我主要測試的是xx版本,財政端測試的模塊主要有:票據管理、收入管理、基礎資料、單位對賬、統計報表、票據查詢、以及系統管理等模塊;測試單位端主要是與財政端相關模塊。測試的用戶有:省財政廳、xx縣、xx縣。

2、xx測試。到了八月底,由于黃石非稅項目組的xx*的項目任務比價緊,我遍參加進入了xx的測試小組,與xx、xx一起并肩戰斗!由于xx功能不夠穩定,測試工作進度受開發的影像,進度時快時慢,工作狀態也反復無常。我調整好狀態,及時與開發的同事溝通,把沒有及時跟新出現的直接與開發交流,避免了測試工作的反復。測試xx的過程中由于開始業務不熟悉,請教xx,她都耐心的幫我解答。

三、工作中存在的問題以及解決辦法

剛走出校園初次接觸軟件測試這個全新的行業,我就對這份工作產生了極大的好奇,在工作的過程中,不斷的和同事交流,學習工作技巧,工作到今天,工作技能有了很大的進步,但是,隨著工作的日益進展,也出現了些困惑和工作難題。

1、部門間同事交流不是很充分。前期測試xx感覺交流還比較充分,因為xx版本是一個穩定的版本,性能比較穩定,用戶提出的都很深入比較少,實施、測試、開發就有充分的時間討論、分析需求、最終合理的解決。但是轉到測試xx后就明顯感覺交流的時間不夠,我想是因為xx的項目時間趕得太急,這段時間資源有限,整個項目組必須拿寶貴的時間解決最重要的事情,所以需要項目的每個成員做好全心的投入,每個細節和問題及時溝通,這樣才能保證項目開發流程的順暢,最后完成任務。我想我在緊急項目測試的這個方面還要注意方法。

2、由于個剛走出校門的大學生,項目經驗比較少,也很欠缺對行業技術的把握。我要加緊學習,才能更好的滿足不斷變化的深入的測試工作。

四、近期工作計劃及職業規劃

第10篇

 

1 軟件開發和軟件測試

 

軟件開發和軟件測試都是軟件工程定義里的重要階段。軟件開發是根據用戶要求建造出軟件系統或者系統中的軟件部分的過程。軟件開發人員主要工作是對用戶需求進行分析,根據需求分析進行系統設計、程序編碼、單元測試和軟件缺陷的修復。

 

軟件測試是根據軟件開發各階段的規格說明和程序的內部結構而精心設計一批測試用例(包括輸入數據與預期輸出結果),并利用這些測試用例運行軟件,以最少的人力、物力和時間找出軟件中潛在的各種錯誤和缺陷的過程。在軟件投入運行前,軟件測試對軟件需求分析、設計規格說明和編碼最終復審,是軟件質量保證的關鍵步驟。

 

2 軟件開發和軟件測試的關系

 

在軟件項目團隊中,軟件開發和軟件測試都是其重要的項目成員,兩者都有共同的目標就是實現用戶需求,保證軟件高品質的交付到用戶手中。有開發就會有測試,開發人員先實現軟件,測試人員對軟件進行測試找出程序錯誤和缺陷,并提交開發進行修復。軟件開發和軟件測試通過這樣互相合作,逐步解除軟件隱藏的程序錯誤和潛在風險,使軟件產品更逼近于用戶需求。

 

軟件開發和軟件測試的工作交集就是軟件缺陷,在軟件缺陷的定義和處理上往往容易發生意見分歧。在這個時候,作為軟件測試人員,如何處理和應對好和軟件開發的關系,保持高效的團隊協作能力就顯得尤為重要。

 

3 軟件測試對軟件開發關系的處理方法及技巧

 

3.1 尊重開發成果

 

作為測試人員要保持良好的心態,要尊重開發的工作成果。有的測試人員接到開發提交測試的軟件,在開始測試后碰到這樣那樣的問題,有的可能是顯而易見的問題時,就會心生抱怨,甚至言語上抨擊開發人員技術水平低,單元測試沒做好,這樣很容易導致開發人員對測試人員的反感和抵觸,造成兩者關系緊張。其實,你要理解開發人員也是在時間緊,任務重,經過加班加點的情況下開發出來的程序,有錯誤那是肯定的,我們測試人員的職責就是要幫助他們找到軟件里面的 Bug,幫助他們改進軟件質量。所以,測試人員要保持好的心態,理解開發人員的辛勞,盡好測試職責努力幫助他們。

 

3.2 提交缺陷技巧

 

日常工作中測試與開發打交道最多的莫過于在軟件缺陷的定義和處理上了。怎樣能夠讓開發人員更樂于接受測試提交的缺陷并改進它,測試人員要注意以下幾點:

 

3.2.1 換位思考,多站在開發人員的角度想

 

開發人員將軟件提交測試后,他們最焦急等待的測試結果基本上都是系統邏輯跑不跑得通,數據流轉是否正確。測試人員在這方面就要注意測試技巧和提交Bug的優先順序。測試時優先按業務流程測試整個系統邏輯,把影響系統邏輯的錯誤找出來優先提交給開發人員,這時候的開發人員會很喜歡修改這些問題。測試中碰到一些不影響系統邏輯的Bug我們先暫且記錄下來,待第一批都修改完畢,測試才提交如界面美觀、輸入輸出控制等改進型的Bug,這樣有主次的提交 Bug順序,開發更易于接受。

 

3.2.2 Bug描述要清晰準確

 

測試人員發現的BUG是開發人員改進的重要依據,好的Bug描述對于正確的和高效的解決Bug非常重要。測試人員在描述Bug時,語言要簡明準確,杜絕使用“好像、有時、偶爾、幾分鐘、一段時間”等模糊詞語;描述的內容不是越多越好,只要提供有利于開發人員快速定位的必要信息即可。具備一定開發經驗,水平較高的測試人員還能通過錯誤現象,定位程序可能出錯的地方,提出問題查找的方向。

 

3.2.3 避免提交重復和無效的Bug

 

測試人員在遇到Bug時,要先進行問題分析,這個問題是獨立出現還是整個系統都普遍存在,如果是普遍問題,只需要提交一個Bug即可。過多的同一問題根源的Bug會令開發人員厭煩。另外,測試人員不但要熟悉業務需求,還要熟悉軟件系統的操作和使用,提交由于操作錯誤而非程序問題引起的Bug,容易導致開發對測試失去信任。如果測試人員在不確定是否Bug的時候,可先向開發人員進行詢問確認。

 

3.3 注重溝通

 

(1)測試人員與開發人員最容易產生分歧的就是對缺陷的定義,這時候面對面的討論比在即時通訊工具上數十個來回的爭論來得直接、有效、清晰。討論的時候,測試人員應說說自己的測試方法,讓開發明白你的測試內容和做法都是站在用戶的角度去測試和看待問題。

 

(2)不要期望所有的Bug都會被開發人員修復,浪費太多的時間去爭論一些不影響系統本質的非關鍵點反而會得不嘗失,應該允許開發人員保持不同的觀點,問題可留待下個版本完善。

 

(3)平時多與開發人員交流,了解他們負責的模塊和實現方法,這樣有助于自己對系統有更深入的認識,改善測試方法和測試技巧,幫助開發改進軟件質量。

 

4 總結

 

軟件測試與軟件開發保持良好的合作關系,能夠使項目團隊具備更高的凝聚力,極大的提升團隊協作能力,是順利、高效的實施軟件項目的有力保障。

第11篇

關鍵詞:代碼審查;嵌入式軟件;檢查單

0 引言

隨著嵌入式系統軟件功能的日益強大,其規模和復雜性也日益增加,進行專業化的高效的軟件測試的要求越來越迫切,挑戰性也越來越強。軟件測試的目標就是要盡可能早一些找出缺陷,并且確保缺陷得以修復從而保證軟件的質量。

軟件測試按照是否執行軟件代碼分為動態測試和靜態測試,靜態測試方式又分為基于軟件工具的靜態分析和基于人工分析的代碼審查。一般認為代碼審查是一種高效的軟件測試手段,可以比動態測試更有效地發現某些特定類型的缺陷,且實施時無需特別條件,成本較低。工程實踐表明,代碼審查是發現軟件缺陷、提高軟件質量和可靠性的有效手段,該階段發現的軟件缺陷數目占整個軟件測試周期發現缺陷總數的40%~60%[1]。

1 代碼審查概述

1.1 代碼審查定義

代碼審查是一種正式的評定技術。由除作者之外的某人或某一小組仔細檢查軟件代碼,以找出故障和違反開發標準之處以及其他一些問題。軟件代碼審查的目的是檢查代碼和設計的一致性、代碼執行標準的情況、代碼邏輯表達的正確性、代碼結構的合理性以及代碼的可讀性[2]。

1.2 代碼審查過程

1.2.1 個人審查

在進行軟件代碼審查之前我們要求先完成軟件靜態分析,這有利于軟件測試人員在后續代碼審查時對軟件建立宏觀上認識,在審查中容易做到有的放矢,更易于發現軟件代碼中的缺陷。具體表現在:

1)軟件靜態分析是通過專業軟件靜態分析工具對程序結構、數據結構、代碼品質等在非運行狀態下的分析,它提取了軟件大量的靜態內部信息,比如違背編碼規則、子程序模塊、調用/被調用關系、扇入/扇出數等,可以為代碼審查提供輔助參考信息,依據現有的度量模型定量地評價軟件的內在質量[3];靜態分析的查錯功能是編譯系統不能替代的,因此,有必要在編譯通過之后及其它靜態測試開始之前,進行靜態分析。

2)編程準則檢查是靜態分析的重要組成部分,也是以往代碼審查具體檢查項的規范化總結。編程規則的許多條款以前是代碼審查檢查單中的內容,但依據人的檢查工作量大且往往會遺漏,現在上升為專業工具檢查,大大提高了檢查的效率和準確性。軟件中編程準則的違背往往是缺陷引入最可能的地方,但并不是違背住處必定是功能缺陷之處,這還需要再進行分析。代碼審查就要對使用工具所做的靜態分析的結果進行驗證。

個人審查時測試人員要仔細閱讀代碼和相關材料,結合靜態分析的結果對軟件代碼進行審查,同時還要對照代碼檢查單,記錄下發現的問題及明顯缺陷。

1.2.2 會議審查

由組長、資深程序員、程序開發人員與專職測試人員組成測試小組,在一起以會議的形式進行代碼審查。審查首先由程序開發人員逐條語句講述程序的邏想結構。在講述的過程當中,小組的其他成員應提問題、判斷是否存在錯誤,同時對照代碼檢查單進行分析討論,對討論的各個問題形成結論性意見。

利用代碼檢查單對軟件進行審查是代碼審查過程的一個重要部分,如果想發現和改正程序中的每一個缺陷,就必須遵照一個精確的規程。檢查單可以幫助確保遵循這個規程。本文針對C語言代碼的檢查部分,列出檢查單中常見的錯誤類型:

1)一致性錯誤:一致性錯誤主要是檢查設計的所有功能是否都已經編碼,以及所有的代碼是否都可對應到設計文檔。

2)數據引用錯誤:數據引用錯誤是指使用未經正確初始化用法和引用方式的變量、常量、數組、字符串或記錄而導致的軟件錯誤。

3)數據聲明錯誤:數據聲明錯誤是指不正確地聲明或使用變量和常量。

4)運算錯誤:計算錯誤是基本的數學邏輯問題,計算無法得到預期結果。

5)比較錯誤:小于、大于、等于、不等于、真、假。比較和判斷錯誤很可能是邊界條件問題。

6)控制流錯誤:控制流程錯誤的原因是編程語言中循環等控制結構未按預期的方式工作。它們通常由計算或者比較錯誤直接或間接造成。

7)子程序參數錯誤:子程序參數錯誤的來源是軟件子程序不正確地傳遞數據。

代碼審查的目的就是為了產生合格的代碼,代碼審查過程中正確地使用代碼檢查單可以用較少的時間更好的發現程序中的缺陷,同時根據測試經驗和代碼審查中發現的錯誤也可以補充完善檢查單,為后續軟件測試提供有價值的參考。

2 代碼審查實踐

2.1 嵌入式軟件特點

嵌入式軟件是基于嵌入式系統設計的軟件,它是由程序以及文檔組成。嵌入式軟件同通用軟件的區別主要表現在以下幾方面:首先,與通用的軟件有很強的兼容性不同,嵌入式軟件只能運行在特定的目標機上,與其所屬的目標機系統有很強的耦合性,軟件的實現細節和目標機系統的結構、I/O端口配置等都有關系;其次,由于嵌入式系統計算機應用要求,需要在規定的時間內完成處理功能,這就要求嵌入式軟件要有很強的實時性;另外,嵌入式實時系統對外部事件的響應一般都是通過中斷來處理的,其對中斷的處理方式直接影響到系統的實時性能。但在實際應用中,由于中斷的復雜性,不可能進行充分的測試,而只能通過充分的中斷分析來彌補。因此,嵌入式軟件的測試應有別于通用的軟件。

2.2 嵌入式軟件代碼審查實踐

在我院相關產品中,嵌入式軟件占了絕大多數,而嵌入式軟件又是最難測試的一類軟件,表現在其實時性強、I/O通道少、開發工具昂貴、內存不豐富、與硬件緊密相關、CPU種類繁多等[4],且嵌入式軟件比普通軟件對可靠性的要求更高,因此有必要對嵌入式軟件的測試技術做深入的研究。本人結合我院代碼審查工作情況,總結了多個嵌入式產品軟件的測試結果及經驗,歸納出在嵌入式軟件代碼審查中,除常見錯誤類型之外還應著重檢查的內容:

2.2.1 初始化檢查

主要檢查在系統軟件工作開始時,系統的軟件硬件是否都處于一個完備的、正確的初始狀態。檢查項目有:

1)軟件在初始化時是否確保禁止、互鎖和安全邏輯的配置,并保證滿足異常限制條件。

2)加電初始化的系統狀態是否和所有外部接口的初始狀態規定相符合。

3)軟件是否將可置換單元初始化,啟動和置于某個已知的安全狀態。

4)所有不使用的RAM、寄存器(包括可編程邏輯芯片的共享RAM,寄存器)是否初始化。

5)非正常條件下系統是否初始化。

2.2.2 接口檢查

主要檢查是否會因為接口處理不當導致軟件功能的錯誤或損失,甚至硬件的損壞。檢查項目有:

1)接換數據的以下特征:信源、信宿、類型、格式、協議、傳輸速率、分辨率、吞吐量。

2)外部系統來的復雜數據,考慮可能的失效模式。

3)數據采集的頻率和外部數據的變化率是否相適應。

4)數據采集的分辨率和外部數據的精度是否相適應。

5)串行通訊的異常處理的適合性。

2.2.3 中斷處理檢查

主要檢查是否會因為中斷處理不當導致軟件性能下降,死鎖和數據腐敗。檢查項目有:

1)檢查軟件中用到的中斷,分析它們的屬性,比如是屬于定時中斷、周期性中斷還是隨機中斷;是偶發的還是頻繁的;是系統內部的還是系統外部的。

2)檢查中斷之間的關系,中斷的優先級分配;中斷之間是否有約束機制,如A中斷必須在B中斷之后出現等。

3)中斷的處理流程,中斷入口的保護;中斷出口的恢復;中斷執行時間是否合適;開中斷的時機是否恰當。

4)中斷的嵌套,中斷控制初始化是否和硬件電路相容,是否和系統功能要求一致;可能發生的最大嵌套次數;是否有自嵌套的情況;是否會丟失低級中斷;是否會發生死鎖。

5)資源競爭檢查,有無共享的緩沖區、變量和I/O端口存在,讀、寫處理有否沖突;有無同時出現的中斷申請。

6)異常情況的處理,是否采用了防止干擾引起中斷誤觸發的措施,發生誤觸發或丟失中斷對系統功能有什么影響。

7)對中斷信號的確認處理和硬件電路是否一致。

2.2.4 與時間特性有關的檢查

主要檢查是否會因為處理不當導致軟件功能的時間特性下降錯誤或功能紊亂。檢查項目有:

1)在超過正常響應時間時,是否有適合的保護機制。

2)對與時間相關的功能,例如濾波、積分、延遲、迭代等,是否有算法超時保護機制。

3)采樣周期是否考慮了干擾信號的頻率。

4)不使用空操作或空循環來做延時。

5)不使用大的多重if-then-else 和多重case結構。

2.2.5 安全性可靠性的處理檢查

檢查為提高系統安全性和可靠性的處理措施是否合適。檢查項目有:

1)檢查出現硬件失效,導致系統失效的軟件故障的情況下,或者軟件檢測到一個與當前運行模式不一致的配置時,軟件是否有能力將系統置于某個安全狀態。

2)采取的檢錯、防錯、糾錯和容錯措施是否有效,并且沒有副作用。

3)對關鍵功能的所有不期望事件,是否都有處理要求且措施合適。

2.2.6 重用代碼檢查

在有延續性的產品中,代碼或組件重用是很常見的現象,當代碼或組件的重用方式與原來的設計者或開發者的意圖不同時,重用可能就是不恰當的。重用檢查項目有:

1)檢用代碼是否有依賴性,如果代碼要依賴其它完成特定任務的東西,而新的程序不完成那個任務,代碼就不能正常工作。

2)檢用代碼與新程序的集成,如果新的程序中定義的變量、給定的常量或指針,不是被重用的模塊所期望的,也會造成代碼的重用錯誤。

實踐證明,以上這些檢查內容可以有效地發現代碼中存在的缺陷,是常用測試內容的有益補充,能顯著地提升軟件測試的效果。

3 結論

本文介紹了軟件代碼檢查單中的常見錯誤類型,列舉了嵌入式軟件因為其特殊性而應著重檢查的內容,兩者結合對嵌入式軟件進行代碼審查,可在有限的軟件測試周期內對程序的正確性、規范性、一致性、中斷處理、時間特性、安全性可靠性等方面進行有效的檢查。通過使用該方法在實際工程項目中發現了眾多的軟件缺陷,效果顯著,從而提高了整個測試工作的效率。

參考文獻:

[1] Oliver Laitenberger. Studying the Effects of Code Inspection and Structural Testing on Software Quality[J].

[2] 許聚常,朱國慶,尹平等.GJB/Z141軍用軟件測試指南.中國人民總裝備部.2004.

第12篇

【關鍵詞】軟件測試;測試方法;黑盒測試

隨著軟件產業的迅速發展,軟件產品的質量已成為軟件企業生存與發展的關鍵。軟件缺陷自軟件誕生的那一日起就跟隨著出現,軟件測試就應運而生。隨著軟件內容和結構的不斷豐富,軟件缺陷也日趨多樣化,引起更為嚴重的質量問題。軟件測試方法的研究正是本著提高軟件質量,降低軟件缺陷的影響。隨著人們對軟件質量的重視,軟件測試也不斷得到加強和持續發展。

1、軟件測試的定義

軟件測試應該是以查找軟件缺陷為目標的一種過程,測試用例設計和缺陷管理是軟件測試中提高缺陷查找效率和缺陷處理效率的兩個有效手段。軟件測試依靠的是強大的邏輯和條理性來完成工作,也同時存在著一定的風險。軟件的應用形式多樣,輸出和實現功能的方式也不止一種,而產品設計中缺乏客觀的標準,就使得軟件缺陷的標準也變的多樣,沒有任何一種方式能夠對軟件進行完全測試。這樣,就無法通過軟件測試顯示隱藏的軟件缺陷,只能盡量查找軟件缺陷,找到的軟件缺陷越多,說明軟件本身的缺陷就越多,同時尚有在測試過程中被發現和斷定的缺陷,這也是軟件測試的局限性。

2、軟件測試的基本方法

軟件測試過程包含幾個階段:測試需求的分析和確定;測試計劃;測試執行;測試記錄和跟蹤;回歸測試;測試總結和報告。狹義的測試是指在代碼編寫完成后對代碼進行測試,而廣義的測試開始于需求階段,伴隨著設計、實現階段。如測試需求規格說明書,測試設計框架等。可以從不同角度來劃分軟件測試方法。

2.1靜態測試和動態測試

軟件測試從是否需要執行被測軟件的角度,可以將軟件測試分為靜態測試和動態測試。靜態測試是指依據需求規格說明書、軟件設計說明書、源程序做結構分析、流程圖分析、符號執行,對軟件進行分析、檢查和測試,不實際運行被測試的軟件,約可找出30%到70%的邏輯設計錯誤。這種方式不通過程序運行就能夠尋找代碼中的缺陷或對程序中的代碼進行評估,可以由人來操作,發揮了人的邏輯思維的優勢或測試經驗,能夠批量性地發現問題,并直接定位到缺陷或錯誤的具置。靜態測試可以分為靜態分析和代碼走查。靜態分析是一種計算機輔助靜態分析方法。主要對程序進行控制流分析、數據流分析、接口分析和表達式分析等。靜態分析的對象是計算機程序,程序設計語言不同,相應的靜態分析工具也不盡相同。代碼走查是一種人工測試方法,它一般依靠有經驗的程序員根據需求分析、設計規格等來執行。動態測試是指通過運行軟件來檢驗軟件的動態行為和運行結果的正確性。動態測試有兩個基本要素:被測試程序和測試數據。必須生成測試數據來運行被測試程序,取得程序運行的真實情況、動態情況,進而進行分析測試質量依賴于測試數據。

2.2黑盒測試、白盒測試、灰盒測試

從測試是否針對系統的內部結構和具體實現算法來看,可以將軟件測試分為黑盒測試、白盒測試、灰盒測試。

黑盒測試又稱功能測試,數據驅動的測試或者基于規格說明書的測試。黑盒測試可以從軟件的功能為起始,根據功能的需求說明測試所用的方式,并依據該方式的需求來運行被測試的程序。從名字上來解釋,就是將軟件看成是不透明的黑盒子,對于盒子內部的結構不理會,只關注軟件的實用功能,并對這些功能進行測試。

白盒測試又稱結構測試,玻璃盒測試或基于覆蓋的測試。相比較于黑盒測試,它更關注于軟件內部邏輯結構,其測試的重點是測試用例的覆蓋程序結構的程度。白盒測試,是將軟件比作透明可見的盒子,測試人員可以根據程序內部的邏輯結構來設計測試用例,來測試程序的邏輯路徑。

灰盒測試,也稱跟蹤法測試,是指介于白盒測試和黑盒測試之間的一種測試方法,它關注輸出對于輸入的正確性,同時也關注內部結構形式的程度,它跟蹤程序的運行過程,特別是輸入數據在程序中的“流程”。比如,測試人員輸入數據后,軟件會將其轉換為代碼并通信至服務器,服務器經過一系列的處理,將數據傳送給客戶端,并最終顯示給測試者。灰盒測試能夠對整體的過程進行追蹤,對每一步的數據進行測試。。但較白盒測試而言,灰盒測試沒有深入解析程序的結構,但也不像黑盒測試那樣只關注輸入和輸出,它也關心程序中間的某些流程是否正確。

3、軟件測試用例設計

傳統軟件測試用例設計是從軟件的各個模塊的算法細節得出的,而面向對象的軟件測試用例則著眼于適當的操作序列,以實現對類的說明,主要有基于故障的測試、基于腳本的測試和類層次的分割測試等形式。

3.1基于故障的測試

軟件系統最終是以實現用戶的需求為目的的。基于故障的測試是從模型分析開始,逐步來測試軟件可能發生的故障,為了確定故障的類型和存在方式,一般設計用例去執行代碼。基于故障的測試核心問題是測試者怎么來判定錯誤的性質。“可能的錯誤”可以是意料之外的結果,不正當的操作,錯誤的引用等。如果是操作不當引起的錯誤或故障還需要對操作進行檢查,排除操作因素引起的故障。這種方法除用于操作測試外,還可用于屬性測試,確定其對于不同類型對象行為是否賦予了正確的屬性值。

3.2基于腳本的測試

基于腳本的測試主要關注用戶的需求,并從用戶任務中找出用戶要做什么及去執行。這種基于腳本的測試有助于在一個單元測試情況下檢查多重系統,所以基于腳本用例測試比基于故障測試更實際也更復雜。

3.3類層次的分割測試

類層次的分割測試可以減少用完全相同的方式檢查類測試用例的數目,這與傳統測試中的等價類劃分測試很相似。類層次的分割測試主要分為:基于狀態的分割,按類操作是否改變類的狀態來分割;基于屬性的分割,按類操作所用到的屬性來分割;基于類型的分割,按完成的功能分割。

4、結束語

軟件設計中出現的缺陷是無法完全消除的,卻可以通過軟件測試來降低缺陷的發生,隨著市場對軟件質量要求的提高,軟件測試在軟件開發中的地位越來越重要。軟件測試的最終目的不是為了找出軟件設計中的錯誤和故障,而是通過測試來發現缺陷,找出缺陷的分布特征和出現的規律,以期在新的開發項目中尋找更優的方式來避免缺陷的出現,改進設計結構,同時也能夠通過設計有針對性的檢測方法,改善軟件測試的有效性。

參考文獻

亚洲精品无码久久久久久久性色,淫荡人妻一区二区三区在线视频,精品一级片高清无码,国产一区中文字幕无码
中文字幕v亚洲日本在线电影 | 日本午夜啪视频免费 | 亚洲日本视频在线观看 | 亚洲熟女aⅴ一区二区性色 中文字幕无线第一区 | 日本三日本三级少妇三级66 | 亚洲日韩欧美黑人专区 |