時(shí)間:2022-12-31 16:06:08
開篇:寫作不僅是一種記錄,更是一種創(chuàng)造,它讓我們能夠捕捉那些稍縱即逝的靈感,將它們永久地定格在紙上。下面是小編精心整理的12篇軟件測試項(xiàng)目總結(jié),希望這些內(nèi)容能成為您創(chuàng)作過程中的良師益友,陪伴您不斷探索和進(jìn)步。
關(guān)鍵詞:軟件測試;軟件工程;認(rèn)識誤區(qū);持續(xù)改進(jìn)
中圖分類號:TP311文獻(xiàn)標(biāo)識碼:A文章編號:1009-3044(34)-1997-02
1 引言
隨著市場對軟件質(zhì)量的不斷提高和國內(nèi)軟件測試行業(yè)的逐漸發(fā)展,軟件測試不斷受到重視,有越來越多的軟件企業(yè)更加重視軟件測試,并已經(jīng)形成了一套基本的軟件測試流程。然而,認(rèn)識誤區(qū)的存在需要我們進(jìn)一步改進(jìn)軟件測試過程。
2 軟件測試概述
軟件測試就是在軟件投入運(yùn)行前,對軟件需求分析、設(shè)計(jì)規(guī)格說明書和編碼的最終復(fù)審,是軟件質(zhì)量保證的關(guān)鍵步驟。一般按四個(gè)步驟進(jìn)行,即單元測試、集成測試、確認(rèn)測試和系統(tǒng)測試及發(fā)版測試。隨著軟件危機(jī)的頻頻出現(xiàn),人們已經(jīng)開始認(rèn)識到測試開始的時(shí)間越早,測試執(zhí)行的越頻繁,所帶來的整個(gè)軟件開發(fā)成本的下降就會越多。所以,軟件測試在軟件項(xiàng)目實(shí)施過程中的重要性日益突出。
3 軟件測試過程中的認(rèn)識誤區(qū)
3.1 軟件開發(fā)完成后進(jìn)行軟件測試
人們一般認(rèn)為,軟件項(xiàng)目要經(jīng)過以下幾個(gè)階段:需求分析,概要設(shè)計(jì),詳細(xì)設(shè)計(jì),軟件編碼,軟件測試,軟件。據(jù)此,認(rèn)為軟件測試只是軟件編碼后的一個(gè)過程,這是不了解軟件測試周期的錯誤認(rèn)識。軟件測試是一個(gè)系列過程活動,包括軟件測試需求分析,測試計(jì)劃設(shè)計(jì),測試用例設(shè)計(jì),執(zhí)行測試。因此,軟件測試貫穿于軟件項(xiàng)目的整個(gè)生命過程。在軟件項(xiàng)目的每一個(gè)階段都要進(jìn)行不同目的和內(nèi)容的測試活動,以保證各個(gè)階段的正確性。軟件開發(fā)與軟件測試應(yīng)該是交互進(jìn)行的,否則,測試的時(shí)間將會很短,測試的覆蓋面將很不全面,測試的效果也將大打折扣。
3.2 測試過程不夠完善
在軟件開發(fā)領(lǐng)域,確實(shí)存在一些東西看起來要比另外一些東西難測試一些,但是遠(yuǎn)非無法測試。只不過這種不可測試性不是由于被測試的軟件內(nèi)部的過緊耦合造成的,而是和外部某些很難測試的部分耦合過緊,從而表現(xiàn)出被測試的軟件本身很難測試。這些很難測試的部分比較常見的有:圖形界面、硬件、數(shù)據(jù)庫等。
3.3 強(qiáng)調(diào)測試用例設(shè)計(jì)得越詳細(xì)越好
在確定測試用例設(shè)計(jì)目標(biāo)時(shí),一些項(xiàng)目管理人員強(qiáng)調(diào)測試用例“越詳細(xì)越好”。這種做法和觀點(diǎn)最大的危害就是耗費(fèi)了很多的測試用例設(shè)計(jì)時(shí)間和資源,可能等到測試用例設(shè)計(jì)、評審?fù)瓿珊螅艚o實(shí)際執(zhí)行測試的時(shí)間所剩無幾了。因?yàn)楫?dāng)前軟件公司的項(xiàng)目團(tuán)隊(duì)在規(guī)劃測試階段,分配給測試的時(shí)間和人力資源是有限的,而軟件項(xiàng)目的成功要堅(jiān)持“質(zhì)量、時(shí)間、成本”的最佳平衡,沒有足夠多的測試執(zhí)行時(shí)間,就無法發(fā)現(xiàn)更多的軟件缺陷,測試質(zhì)量更無從談起了。
3.4 追求測試用例設(shè)計(jì)“一步到位”
現(xiàn)在軟件公司都意識到了測試用例設(shè)計(jì)的重要性了,但是一些人認(rèn)為設(shè)計(jì)測試用例是一次性投入,測試用例設(shè)計(jì)一次就“萬事大吉”了,片面追求測試設(shè)計(jì)的“一步到位”。這種認(rèn)識造成的危害性使設(shè)計(jì)出的測試用例缺乏實(shí)用性,或者誤導(dǎo)測試用例執(zhí)行人員,誤報(bào)很多不是軟件缺陷的“Bug”,這樣的測試用例在測試執(zhí)行過程中“形同虛設(shè)”,難免淪為“垃圾文檔”的地步。
4 軟件測試過程的持續(xù)改進(jìn)
4.1 計(jì)劃與風(fēng)險(xiǎn)
項(xiàng)目計(jì)劃對項(xiàng)目過程的實(shí)施有著直接的指導(dǎo)作用,它的重要性是不言而喻的。對于軟件測試來說,測試計(jì)劃也是指導(dǎo)后續(xù)測試工作的基礎(chǔ),只有對過程中各任務(wù)進(jìn)行更詳細(xì)的計(jì)劃,才有利于在測試過程中對項(xiàng)目進(jìn)度的把握有一個(gè)明確的目標(biāo);同時(shí),風(fēng)險(xiǎn)策略的制定,也有利于對及早對測試過程中可能遇到的問題做出分析,以便在問題出現(xiàn)時(shí)能夠盡可能的減少規(guī)避風(fēng)險(xiǎn)的成本。
4.2 評審
在測試過程中的每個(gè)階段結(jié)束前,都會輸出一些資源,文檔、用例等等,這些資源往往是下一個(gè)測試階段或軟件開發(fā)的下一個(gè)環(huán)節(jié)執(zhí)行的依據(jù)。評和審是結(jié)合在一起的,每個(gè)角色根據(jù)自己對項(xiàng)目的了解,從各自角度來審核測試報(bào)告的充分性,對質(zhì)量風(fēng)險(xiǎn)發(fā)表各種見解。最終,對報(bào)告的規(guī)范性也要進(jìn)行考察。另外,也最好根據(jù)實(shí)際情況組織會議評審來對一定規(guī)模的問題統(tǒng)一評審。
4.3 文檔
文檔的編寫對于測試人員來說是一個(gè)十分重要的任務(wù),深入的、充分的投入測試的測試人員能寫出高質(zhì)量的測試文檔。所以,測試文檔的質(zhì)量,往往反映了測試人員執(zhí)行測試的廣度和深度。而在文檔的編寫方面,首先必須形成統(tǒng)一規(guī)范;另外,針對不同項(xiàng)目的測試,可以適當(dāng)對文檔標(biāo)題、內(nèi)容進(jìn)行簡化。總之,文檔模板一旦形成,必須嚴(yán)格遵守。
4.4 方法與策略
測試方法和測試策略,測試的重中之重。測試的策略一般要求從全局方面對測試的階段、每個(gè)階段的測試類型進(jìn)行考慮、定義。而測試的方法更多是體現(xiàn)在一個(gè)具體的測試中,采取怎樣的測試思路。另外,在測試過程中,對資源的協(xié)調(diào)也非常關(guān)鍵,需要能保證測試資源充分利用,每個(gè)測試人員都有適度并且相當(dāng)?shù)墓ぷ髁俊?/p>
4.5 總結(jié)測試經(jīng)驗(yàn)
在測試的過程中,測試人員應(yīng)該及時(shí)總結(jié)發(fā)現(xiàn)的錯誤并歸類,標(biāo)明經(jīng)常容易出錯的地方,將意見提交項(xiàng)目經(jīng)理,審核后,制定出一份統(tǒng)一標(biāo)準(zhǔn)并提供給開發(fā)人員,這樣就可以提前避免錯誤、避免重復(fù)錯誤和重復(fù)測試,提高測試效率。不僅如此,項(xiàng)目結(jié)束后的各項(xiàng)總結(jié)報(bào)告將是項(xiàng)目的后期維護(hù)或二次開發(fā)的寶貴參考資料。
4.6 缺陷分析、度量
對測試活動過程中發(fā)現(xiàn)的缺陷進(jìn)行分析、度量,尋找軟件開發(fā)過程中存在的問題,并持續(xù)改進(jìn)開發(fā)過程,提高質(zhì)量。缺陷的分析、度量從時(shí)間上分為兩個(gè)方面,首先是在軟件開發(fā)過程中發(fā)現(xiàn)的缺陷進(jìn)行分析、度量;然后就是,對軟件產(chǎn)品后,對用戶提出缺陷進(jìn)行統(tǒng)計(jì)、分析。
5 結(jié)論
測試是用來保證軟件開發(fā)過程的高效性,以及保證開發(fā)出來的軟件產(chǎn)品的高質(zhì)量和可用性的。軟件開發(fā)本身就是一件非常困難的事情,這也決定了有效的測試是非常重要的環(huán)節(jié),我們要加強(qiáng)對軟件測試的關(guān)注,使大家對于測試首先有一個(gè)正確的認(rèn)識,避免誤區(qū)的存在,并積極探索測試方法的持續(xù)改進(jìn)問題,真正使軟件測試真正起到它應(yīng)有的作用。
參考文獻(xiàn):
[1] 鄭人杰.計(jì)算機(jī)軟件測試技術(shù)[M].北京:清華大學(xué)出版社,1992.
[2] Fewster M,Graham D.軟件測試自動化技術(shù)[M].北京:電子工業(yè)出版,2000.
關(guān)鍵詞:軟件測試;分階段教學(xué);案例驅(qū)動教學(xué);雙證教育;校企合作
中圖分類號:G420 文獻(xiàn)標(biāo)識碼:A 文章編號:1009-3044(2012)30-7258-02
近幾年來,計(jì)算機(jī)信息技術(shù)發(fā)展迅速,我國的IT行業(yè)開始向國際化、規(guī)范化邁進(jìn)。以往只重視軟件開發(fā)而忽視軟件測試的情況正在改變,軟件測試行業(yè)開始迅速發(fā)展。
國外小一些的軟件企業(yè),軟件開發(fā)與測試人員之比基本上是1:1,微軟公司更是達(dá)到了1:2,軟測試人員規(guī)模遠(yuǎn)超過開發(fā)人員的規(guī)模[1]。盡管一些國內(nèi)大型軟件企業(yè)開始重視軟件人才的合理配置,但有的企業(yè)其比例也就只有10:1。軟件測試工程師鬧人才荒[2],中高級測試員緊缺的現(xiàn)象已十分明顯。
據(jù)統(tǒng)計(jì),國內(nèi)軟件測試工程師的缺口為20萬人左右,這一點(diǎn)從51JOB的招聘信息中可見一斑。近兩年,軟件測試工程師的需求和待遇都達(dá)到了歷史新高。
然而與當(dāng)前軟件測試行業(yè)如火如荼的現(xiàn)狀極不協(xié)調(diào)的是當(dāng)前軟件測試培訓(xùn)領(lǐng)域的現(xiàn)狀[3],從事軟件測試工程師培訓(xùn)的專業(yè)機(jī)構(gòu)寥寥無幾,而且價(jià)格昂貴。大學(xué)里幾乎沒有軟件測試專業(yè),部分院校開設(shè)《軟件測試》這門課程面臨三方面的問題,一是軟件測試教材知識片面。二是內(nèi)容枯燥,學(xué)生不感興趣。三是教師教學(xué)經(jīng)驗(yàn)嚴(yán)重不足。面對軟件測試人才的社會需求緊迫性,人才培養(yǎng)單位應(yīng)該擴(kuò)大軟件測試人才培養(yǎng)規(guī)模,總結(jié)軟件測試知識點(diǎn),改革教學(xué)方法,培養(yǎng)學(xué)生興趣,提高培養(yǎng)質(zhì)量。
1 軟件測試課程教學(xué)方法探討
針對以上問題,在教學(xué)中應(yīng)采取以下解決方法:
1.1 融合軟件測試知識點(diǎn),分階段教學(xué)
目前,國內(nèi)的軟件測試教材只涉及了部分基本理論知識,不夠全面,介紹的軟件測試工具也相對落后一些。針對這種情況,任課教師首先要融合多本軟件測試書籍內(nèi)容,總結(jié)出軟件測試所涵蓋的知識點(diǎn),更新軟件測試發(fā)展情況。
其次,根據(jù)學(xué)生學(xué)習(xí)過程分階段教學(xué)[4]。第一階段是基礎(chǔ)階段,讓學(xué)生掌握軟件測試基礎(chǔ)理論知識和軟件測試核心技術(shù),以及常用測試工具的操作。第二階段是項(xiàng)目綜合實(shí)訓(xùn)提高階段,在掌握基礎(chǔ)理論的前提下,加強(qiáng)綜合測試技術(shù)在項(xiàng)目實(shí)訓(xùn)中的運(yùn)用,針對不同的開發(fā)階段,撰寫各開發(fā)階段相應(yīng)的文檔,并制定相應(yīng)的測試計(jì)劃,設(shè)計(jì)典型測試用例,使用不同的軟件測試技術(shù)和測試工具,完成不同的測試目標(biāo)。最后是培養(yǎng)學(xué)生自主學(xué)習(xí)階段,介紹軟件測試最新的技術(shù)與發(fā)展方向,引導(dǎo)學(xué)生對基本技術(shù)向縱深方向思考。同時(shí)向?qū)W生提供軟件測試方面重要的會議、雜志、論壇、網(wǎng)站,引導(dǎo)學(xué)生課下查閱學(xué)習(xí)資料,鼓勵學(xué)生自我學(xué)習(xí)。
1.2 改革教學(xué)方法,采用案例驅(qū)動教學(xué)
大部分高職院校學(xué)生基礎(chǔ)差、學(xué)習(xí)積極性主動性不強(qiáng)、自制力不高。在課堂教學(xué)活動中,如果繼續(xù)采用傳統(tǒng)教學(xué)方法,很難激發(fā)學(xué)生學(xué)習(xí)興趣。應(yīng)該采用案例教學(xué)方法[5],將《手機(jī)信息管理系統(tǒng)》、《學(xué)生圖書借閱系統(tǒng)》、《學(xué)生信息管理系統(tǒng)》等案例資料發(fā)給學(xué)生,學(xué)生拿到案例后,在教師的引導(dǎo)下,課下先要進(jìn)行消化,然后查閱各種他認(rèn)為必要的理論知識,理解知識并思考提出解決問題的方法。課上教師答復(fù)學(xué)生的問題,并引導(dǎo)學(xué)生更深層次的思考。通過這種方法充分調(diào)動學(xué)生的學(xué)習(xí)積極性,提高其學(xué)習(xí)興趣,使學(xué)生既學(xué)會理論知識分析又學(xué)會用理論知識解決實(shí)際工程的問題。
1.3 采用軟件測試項(xiàng)目綜合實(shí)訓(xùn)的實(shí)驗(yàn)教學(xué)模式
開設(shè)綜合性的軟件測試課程實(shí)驗(yàn),按軟件企業(yè)項(xiàng)目管理和開發(fā)模式,進(jìn)行軟件測試項(xiàng)目實(shí)訓(xùn)[6],培養(yǎng)學(xué)生的創(chuàng)新意識與實(shí)踐能力。將班內(nèi)學(xué)生分成若干個(gè)測試小組,每小組成員不超過7人,每組分配不同的軟件項(xiàng)目,如工資管理系統(tǒng)、圖書管理系統(tǒng)、學(xué)生信息管理系統(tǒng)、酒店預(yù)訂系統(tǒng)等。小組成員模擬與體驗(yàn)軟件測試工程全過程工作職位和角色,使學(xué)生全過程適應(yīng)工作職位的要求。
各項(xiàng)目小組在測試項(xiàng)目過程中,針對不同的開發(fā)階段,撰寫各開發(fā)階段相應(yīng)的文檔,并制定相應(yīng)的測試計(jì)劃,設(shè)計(jì)典型測試用例,使用不同的軟件測試技術(shù)和測試工具,完成不同的測試目標(biāo),并進(jìn)行回歸測試,以實(shí)現(xiàn)軟件測試各單項(xiàng)專業(yè)知識與技能整合運(yùn)用的目標(biāo)。在整個(gè)測試過程可以體現(xiàn)“學(xué)以致用”的思想,實(shí)現(xiàn)理論與實(shí)踐相結(jié)合。
各項(xiàng)目小組通過演練項(xiàng)目開發(fā),不僅讓同學(xué)們切身體會到軟件開發(fā)的整個(gè)過程,還讓同學(xué)們對軟件開發(fā)中各個(gè)角色有充分的了解,同時(shí)也更深刻的體會到團(tuán)隊(duì)合作的重要性。
1.4 加強(qiáng)校企合作
堅(jiān)持“走出去,引進(jìn)來”的思想,經(jīng)常邀請企事業(yè)、軟件公司里一線軟件測試人員或軟件測試組長和項(xiàng)目經(jīng)理,來學(xué)校為學(xué)生做定期講座,或定期對教師進(jìn)行培訓(xùn)。也可以利用假期或其他時(shí)間,安排教師學(xué)生進(jìn)軟件公司,一起跟進(jìn)項(xiàng)目開發(fā)測試。目前本校已經(jīng)連續(xù)兩年安排教師學(xué)生去齊魯軟件園,進(jìn)公司一起進(jìn)行項(xiàng)目開發(fā)測試工作。效果不錯,參加實(shí)訓(xùn)的軟件項(xiàng)目綜合實(shí)訓(xùn)的教師軟件開發(fā)測試能力有較大提高,并且學(xué)到一些最新最實(shí)用的軟件開發(fā)測試技術(shù)。
1.5 改革課程考核方法
軟件測試這門課程兼具理論與操作,目前大部分院校考核方式與理論考試為主,這種考核方式會促使部分學(xué)生考前抱佛腳,考前死記硬背,降低學(xué)生學(xué)習(xí)的積極性。除了理論考核之外,還應(yīng)注重學(xué)生綜合知識和應(yīng)用能力方面的考核。建議課程考核應(yīng)該包含平時(shí)作業(yè)、課堂表現(xiàn)(發(fā)言與討論)、實(shí)驗(yàn)、綜合實(shí)訓(xùn)、理論考試這幾部分。采用這種考核方式,促使學(xué)生加強(qiáng)對知識的理解和運(yùn)用,課堂踴躍發(fā)言,提高學(xué)習(xí)的主動性和創(chuàng)造性,以及動手操作能力。
1.6 適當(dāng)加入一些最新的游戲測試
高職院校學(xué)生大部分的課余時(shí)間都是泡在網(wǎng)吧里玩游戲,有很多同學(xué)一有時(shí)間就玩手機(jī)游戲。學(xué)生對最新的游戲內(nèi)容比較感興趣,游戲測試也是軟件測試的一方面,教師可以在課堂教學(xué)中加入一些游戲測試內(nèi)容,提高學(xué)生的學(xué)習(xí)興趣。
1.7 采取雙證教育
實(shí)行“雙證教育”模式[7],將學(xué)歷教育與技能學(xué)習(xí)無縫對接,學(xué)生畢業(yè)后不僅能獲得國家勞動部高級職業(yè)技能認(rèn)證證書、擁有扎實(shí)的操作技能,同時(shí)還將獲得國家承認(rèn)大學(xué)學(xué)歷證書。雙證教育使學(xué)生專業(yè)能力更強(qiáng)、職業(yè)素養(yǎng)更高、綜合素質(zhì)更好、更符合企業(yè)用人標(biāo)準(zhǔn)。
測試工程師有高級測試工程師、中級測試工程師、初級測試工程師。根據(jù)高職學(xué)生的能力特點(diǎn),應(yīng)該把高職學(xué)生定位在初級和準(zhǔn)中級測試工程師,具有一定的設(shè)計(jì)方案的編寫能力,能利用測試工具完成一定的測試任務(wù),并能夠執(zhí)行功能測試。
2 總結(jié)
通過在本校近五六年的軟件測試教學(xué)實(shí)踐,發(fā)現(xiàn)軟件測試教學(xué)方法需要不斷改進(jìn),融合軟件測試知識點(diǎn)分階段教學(xué),采用案例驅(qū)動和雙證教育模式,加強(qiáng)校企合作和教學(xué)實(shí)踐這些措施能較好地提高學(xué)生學(xué)習(xí)興趣和動手操作能力,教學(xué)質(zhì)量也有較大提高。軟件測試人才培養(yǎng)剛剛起步,很多工作處于摸索階段,需要學(xué)校、教師和學(xué)生的共同努力,為社會培養(yǎng)出大批合格的軟件測試人才。
參考文獻(xiàn):
[1]程茂,溫靜,吳玉潔.《軟件測試》課程的教學(xué)研究[J].河北師范大學(xué)學(xué)報(bào)/教育科學(xué)版,2010(4):117-120.
[2] .
[3]趙斌.軟件測試技術(shù)經(jīng)典教程[M].北京:科學(xué)出版社,2011(3).
[4]葛漢強(qiáng).高職《軟件測試》課程分層教學(xué)之實(shí)踐[J].職業(yè)教育研究,2011(8):105-107.
[5]邵謹(jǐn)榮.高職院校《軟件測試》課程的案例教學(xué)探討[J].職教論壇,2011(4):53-54.
【關(guān)鍵詞】軟件測試;工作過程;課程設(shè)計(jì)
1.課程的定位與教學(xué)設(shè)計(jì)
1.1 課程定位
《軟件測試》課程作為軟件專業(yè)二年級下學(xué)期的專業(yè)課,它的前導(dǎo)課程是《數(shù)據(jù)庫設(shè)計(jì)》、《數(shù)據(jù)結(jié)構(gòu)》、《軟件工程實(shí)施》,后續(xù)課程是課程實(shí)訓(xùn)及畢業(yè)實(shí)習(xí)。通過本課程的學(xué)習(xí),使學(xué)生加深對軟件測試基本理論和基本方法的理解與應(yīng)用,能熟練使用常用軟件測試工具,并能運(yùn)用軟件測試工具完成應(yīng)用軟件的測試工作,提高學(xué)生對軟件的測試與維護(hù)能力,并進(jìn)一步培養(yǎng)學(xué)生的的團(tuán)隊(duì)協(xié)作能力。
1.2 課程設(shè)計(jì)思路
軟件測試是高職計(jì)算機(jī)軟件專業(yè)學(xué)生在以后的工作崗位上要用到的核心技能。因此,本課程應(yīng)該作為專業(yè)必修課程和核心課程,重點(diǎn)培養(yǎng)學(xué)生在以后的工作崗位上所需的職業(yè)能力:白盒測試、黑盒測試、自動化功能測試與性能測試。
《軟件測試》課程的總體設(shè)計(jì)思路是,轉(zhuǎn)變傳統(tǒng)的學(xué)科課程模式,不再以知識傳授為主,構(gòu)建以工作任務(wù)為中心的企業(yè)培訓(xùn)體系,引入企業(yè)項(xiàng)目,讓學(xué)生在真實(shí)的企業(yè)項(xiàng)目中完成相應(yīng)的工作任務(wù),從而儲備相關(guān)的專業(yè)知識,發(fā)展職業(yè)能力。授課內(nèi)容重點(diǎn)突出對學(xué)生職業(yè)能力的培養(yǎng)。課堂上不再單純地只講授理論知識,而是圍繞實(shí)際工作任務(wù)的需要來選取,這充分考慮了高職學(xué)生動手能力強(qiáng),理論知識薄弱的特點(diǎn)。
2.教學(xué)設(shè)計(jì)
2.1 教學(xué)情境設(shè)計(jì)
本課程小組通過學(xué)院專業(yè)指導(dǎo)委員會、重慶亞德科技、重慶大佳、重慶港澳大家等軟件公司的企業(yè)技術(shù)人員進(jìn)行實(shí)際調(diào)查,制定了適合高職學(xué)生的軟件測試課程體系與職業(yè)能力,確定了軟件測試課程典型的教學(xué)情景與子情景,在教學(xué)情景中給出具體的工作任務(wù)、工作方法以及要求學(xué)生掌握的知識與技能等,在教學(xué)中貫徹理論實(shí)踐一體化的教學(xué)模式,做到教、學(xué)、做三結(jié)合,充分體現(xiàn)工學(xué)結(jié)合的優(yōu)勢,培養(yǎng)學(xué)生的職業(yè)素質(zhì)。本課程的5個(gè)工作過程及11個(gè)典型工作任務(wù)如表1所示。
2.2 教材設(shè)計(jì)
(1)教材應(yīng)充分考慮軟件測試的實(shí)踐特性,以工作任務(wù)為導(dǎo)向,引入必須的軟件測試?yán)碚撝R,讓學(xué)生在實(shí)際測試的過程中,循序漸進(jìn)地掌握必要的理論知識。
(2)編寫的內(nèi)容要以項(xiàng)目驅(qū)動為原則,以企業(yè)的實(shí)際案例、場景模擬、工作過程錄像為載體,增強(qiáng)課后的能力拓展,并根據(jù)高職學(xué)生的職業(yè)能力所需知識的深度和廣度來編寫,并在具體的工作任務(wù)中使學(xué)生逐漸形成團(tuán)隊(duì)協(xié)作意識。
(3)教材應(yīng)突出軟件測試技術(shù)的實(shí)用性、前瞻性和開放性,不能只是簡單地介紹一些技術(shù)上的操作,而忽略了軟件學(xué)生所需的職業(yè)能力,在教材中應(yīng)融入軟件測試技術(shù)中所用到的新規(guī)范、新技術(shù)、新標(biāo)準(zhǔn)、新工具、新知識,讓學(xué)生能系統(tǒng)地掌握軟件測試的前沿知識。
(4)教材應(yīng)充分引領(lǐng)學(xué)生主動、積極地去學(xué)習(xí),因此,文字表述要簡明扼要,內(nèi)容展現(xiàn)應(yīng)圖文并茂,內(nèi)容應(yīng)詳略得到。
2.3 教學(xué)方法設(shè)計(jì)
由于本課程的主要教學(xué)內(nèi)容涉及白盒測試、黑盒測試、自動化功能測試與性能測試等操作性很強(qiáng)的教學(xué)環(huán)節(jié),必須通過課程實(shí)訓(xùn)才能達(dá)到對項(xiàng)目作規(guī)范需求分析的培養(yǎng)目標(biāo)。具體教學(xué)方法設(shè)計(jì)如下:
(1)全班學(xué)生分為N個(gè)項(xiàng)目小組,3人一小組,1人任組長,組長要求協(xié)調(diào)溝通能力比較強(qiáng)。
(2)在教學(xué)過程中應(yīng)加強(qiáng)學(xué)生對軟件總體的測試能力,采用任務(wù)驅(qū)動教學(xué),注重以任務(wù)引領(lǐng),提高學(xué)生學(xué)習(xí)興趣;
(3)組建軟件外包中心,引進(jìn)企業(yè)項(xiàng)目,讓學(xué)生真實(shí)地體驗(yàn)在軟件公司的測試流程。外包中心作為理論實(shí)踐一體化教室,達(dá)到理論和實(shí)際不脫節(jié)。
(4)教學(xué)過程中可參考軟件測試評師考試中規(guī)定的知識要求和技能等級職業(yè)標(biāo)準(zhǔn)。
(5)教師模擬企業(yè)的項(xiàng)目經(jīng)理,必須具有開拓精神,帶領(lǐng)團(tuán)隊(duì)完成工作任務(wù),并在完成工作任務(wù)的過程中,探索基于工作過程的職業(yè)教育新模式,培養(yǎng)學(xué)生的軟件測試能力,構(gòu)建軟件測試知識體系。
2.4 教學(xué)評價(jià)設(shè)計(jì)
(1)突出過程評價(jià),結(jié)合課堂提問、實(shí)作測試、課后拓展、任務(wù)考核等手段,加強(qiáng)實(shí)訓(xùn)教學(xué)環(huán)節(jié)的考核,并注重平時(shí)考核。
(2)強(qiáng)調(diào)目標(biāo)評價(jià)和理論與實(shí)踐一體化評價(jià),注重引導(dǎo)學(xué)生進(jìn)行學(xué)習(xí)方式的改變。
(3)每個(gè)項(xiàng)目小組在完成課程后,要將所學(xué)的內(nèi)容做ppt,匯報(bào)本小組項(xiàng)目完成的情況以及體會。
(4)實(shí)行學(xué)習(xí)過程的過程化考核。平時(shí)作業(yè)、期中與期末考試均采用上機(jī)實(shí)訓(xùn)的方式考核,對于不合格者,在團(tuán)隊(duì)的協(xié)作幫助下持續(xù)練習(xí),直至過關(guān)。這樣可以督促學(xué)生不斷地練習(xí),真正提高動手能力。
(5)課程的學(xué)期成績=平時(shí)作業(yè)(10%)+上課考勤(10%)+小組項(xiàng)目測試情況(30%)+小組ppt總結(jié)情況(10%)+期末成績(40%)
3.課程資源的開發(fā)與利用
(1)圍繞軟件測試課程,收集教師和學(xué)生必備的軟件測試工具,制作適宜教學(xué)的多媒體教學(xué)課件。
(2)組建軟件外包中心,搭建實(shí)訓(xùn)工作平臺,為學(xué)生實(shí)訓(xùn)提供真實(shí)的工作環(huán)境,從而提高其職業(yè)素養(yǎng)。
(3)要充分開發(fā)網(wǎng)絡(luò)課程,讓學(xué)生在課余時(shí)間可以自主學(xué)習(xí),彌補(bǔ)學(xué)生課本知識的不足。
(4)充分利用和開放實(shí)訓(xùn)中心,將教學(xué)與實(shí)訓(xùn)合一,將理論與實(shí)踐合一,滿足學(xué)生綜合能力培養(yǎng)的要求。
(5)積極利用電子書籍、電子期刊、數(shù)字圖書館、校園網(wǎng)、各大網(wǎng)站等網(wǎng)絡(luò)資源,使教學(xué)內(nèi)容從單一化向多元化轉(zhuǎn)變,通過企業(yè)技術(shù)人員的指導(dǎo),課程教師的輔導(dǎo),使學(xué)生知識和能力的拓展成為可能。
4.課程的實(shí)施效果
(1)基于項(xiàng)目化的授課內(nèi)容
建立軟件外包中心,引入企業(yè)項(xiàng)目內(nèi)容,軟件測試的授課內(nèi)容緊緊圍繞企業(yè)項(xiàng)目的典型工作任務(wù)開展,學(xué)生的能力與素質(zhì)參照軟件測試工程師的崗位要求,讓學(xué)生真實(shí)感受企業(yè)環(huán)境,就業(yè)零距離上崗。
(2)基于過程化的授課方式
老師授課不再單純地講解理論,完全按照企業(yè)的軟件測試流程開展,制定規(guī)范的軟件測試計(jì)劃、編寫測試用例、利用測試工具測試、編制測試報(bào)告,有利于學(xué)生養(yǎng)成職業(yè)化的學(xué)習(xí)習(xí)慣與工作習(xí)慣。
(3)基于理論實(shí)踐一體化的教學(xué)設(shè)備
學(xué)生在軟件外包中心上課以及實(shí)驗(yàn),真正實(shí)現(xiàn)了“做中學(xué),學(xué)中做”的企業(yè)工作環(huán)境。
(4)基于能力化的學(xué)習(xí)評價(jià)
學(xué)生的評價(jià)不再單純地以理論考試為依據(jù),而是從學(xué)生的軟件測試專業(yè)能力、利用軟件測試工具的能力、團(tuán)隊(duì)溝通協(xié)調(diào)能力進(jìn)行綜合地評價(jià)。
參考文獻(xiàn)
[1]鄭泳.基于工作過程系統(tǒng)化的高職《軟件測試》課程設(shè)計(jì)[J].漯河職業(yè)技術(shù)學(xué)院學(xué)院,2010(9).
[2]程茂,溫靜,吳玉潔.《軟件測試》課程的教學(xué)研究[J].河北師范大學(xué)學(xué)報(bào),2010(4).
[3]蔡建平.開源軟件測試實(shí)踐教學(xué)方案設(shè)計(jì)[J].計(jì)算機(jī)教育,2011(3).
關(guān)鍵字:軟件測試;實(shí)踐課程體系;項(xiàng)目實(shí)訓(xùn)
0 引言
《軟件測試技術(shù)》是軟件工程本科專業(yè)的一門實(shí)踐性很強(qiáng)的課程,適合采用講練結(jié)合的方式開展相關(guān)教學(xué),即讓學(xué)生多上機(jī)操作,逐漸提高軟件測試用例設(shè)計(jì)、開發(fā)能力以及軟件測試的整體管理能力。然而在實(shí)際實(shí)踐教學(xué)過程中,教師普遍感覺有不少不盡人意的地方,主要表現(xiàn)在理論與應(yīng)用脫節(jié),所學(xué)知識與社會需求差距較大,學(xué)生積極性不高等。
1 軟件測試行業(yè)現(xiàn)狀和學(xué)生認(rèn)知水平
媒體報(bào)道,國內(nèi)開發(fā)人員與測試人員的比例是8∶1,而國際公認(rèn)的行業(yè)標(biāo)準(zhǔn)實(shí)際上是1∶1,這一點(diǎn)上國內(nèi)測試行業(yè)與國外的差距比較大。隨著軟件行業(yè)的蓬勃發(fā)展,用戶對軟件的質(zhì)量要求越來越高,導(dǎo)致軟件開發(fā)企業(yè)軟件測試的工作量也越來越大,因此自動化軟件測試已經(jīng)成為項(xiàng)目測試的一大趨勢[3]。并受到原來越多的重視。
軟件測試課程一般到大三才開設(shè),而大學(xué)高年級學(xué)生往往偏重于對技術(shù)的學(xué)習(xí),因?yàn)榧夹g(shù)往往是可以現(xiàn)學(xué)現(xiàn)用的,對于理論性較強(qiáng)的軟件工程知識反而不太感興趣了。實(shí)際教學(xué)過程中關(guān)于軟件測試流程、團(tuán)隊(duì)等工程化內(nèi)容的描述往往讓學(xué)生覺得比較抽象且教條化,然而這些工程化知識又是學(xué)生畢業(yè)后適應(yīng)當(dāng)下的軟件行業(yè)需求所必要掌握的。
2 現(xiàn)有軟件測試課程體系存在的問題
現(xiàn)有軟件測試技術(shù)課程重點(diǎn)講授的是理論基礎(chǔ)知識,含離散數(shù)學(xué)、圖論和測試基礎(chǔ)知識以及測試用例,開發(fā)各階段的具體應(yīng)用往往被忽視,使用自動化測試工具方面的內(nèi)容尤其缺乏。高校對實(shí)踐課程的重視程度普遍不夠,軟件測試實(shí)踐課開展不足且不規(guī)范。教師大量精力放在講授測試用例設(shè)計(jì)方法上,實(shí)踐中的使用這些測試用例卻較少。實(shí)驗(yàn)案例通常有NextDate問題、三角形問題等,都是一些課本上常見的,設(shè)計(jì)也較單一,缺乏真實(shí)性,難以提升學(xué)生的技能,學(xué)生往往覺得枯燥乏味。畢業(yè)后學(xué)生普遍反映,軟件測試工程理論知識教的很全,但就是不知道怎樣靈活應(yīng)用;相反,在企業(yè)經(jīng)過一段時(shí)間的測試工作實(shí)踐后發(fā)現(xiàn),工作中真正需要的知識并未掌握。
目前,相關(guān)配套的軟件測試實(shí)驗(yàn)教材比較缺乏,實(shí)驗(yàn)內(nèi)容基本是由任課教師自行設(shè)計(jì)。這對于教學(xué)經(jīng)驗(yàn)豐富的教師問題不是很大,但對于沒有實(shí)際項(xiàng)目開發(fā)經(jīng)驗(yàn)作為支撐的年輕教師,就無法把握如何采用恰當(dāng)?shù)挠美齺眚?yàn)證相關(guān)理論知識,也難以設(shè)計(jì)出實(shí)用的實(shí)驗(yàn)內(nèi)容,學(xué)非所用,導(dǎo)致學(xué)生無法掌握今后實(shí)際工作所需的基本技能。即使是教學(xué)經(jīng)驗(yàn)豐富的教師也大多缺乏實(shí)戰(zhàn),盡管能很好的教授理論知識,但由于缺乏合適的實(shí)踐教材,加上實(shí)驗(yàn)條件等各種因素制約,也難以的對學(xué)生進(jìn)行系統(tǒng)全面的實(shí)踐培訓(xùn),導(dǎo)致高校重理論輕實(shí)踐成為普遍現(xiàn)象。因此,軟件測試課程的教學(xué)順應(yīng)社會需求顯得格外迫切,必須面向企業(yè),了解崗位要求,而不是“閉門造車”。讓學(xué)生能學(xué)到適合企業(yè)所需的技能,畢業(yè)后可以以一個(gè)“經(jīng)驗(yàn)者”的身份進(jìn)入人才市場。
3 《軟件測試技術(shù)》實(shí)踐課程體系研究
3.1 課程構(gòu)建原則
高校應(yīng)以軟件測試所需的知識、技能為先導(dǎo)構(gòu)建相應(yīng)的課程體系,充分調(diào)研軟件測試工作的具體內(nèi)涵,仔細(xì)研究對應(yīng)的知識、技能以及素質(zhì)要求,課程內(nèi)容也應(yīng)強(qiáng)調(diào)當(dāng)前以及未來就業(yè)所需掌握的基本知識、技能,體現(xiàn)知識、技能和素質(zhì)三者的結(jié)合[6]。
根據(jù)該專業(yè)人才培養(yǎng)的定位以及行業(yè)內(nèi)需求,在建設(shè)具有特色的軟件測試課程時(shí)建立實(shí)驗(yàn)、實(shí)訓(xùn)和實(shí)習(xí)等不同層次的實(shí)踐課,通過多項(xiàng)目的練習(xí),提高學(xué)生專業(yè)技能及分析、解決問題的能力。
3.2 實(shí)踐課程教學(xué)探究
在軟件測試技術(shù)實(shí)踐課程環(huán)節(jié),引入具有企業(yè)背景項(xiàng)目的實(shí)訓(xùn)。通過這些真實(shí)測試案例的引入,結(jié)合人才市場的需求,充分體現(xiàn)出工學(xué)結(jié)合的特點(diǎn)。通過對實(shí)際項(xiàng)目的操作,使用相關(guān)測試工具,完成對各目標(biāo)的測試,提升學(xué)生的測試能力同時(shí)積累相關(guān)工作經(jīng)驗(yàn)。
我們可以在教學(xué)過程中引入一個(gè)貫穿整個(gè)教學(xué)過程的具體測試案例的教學(xué)法。首先,組織學(xué)生進(jìn)行隨機(jī)分組,每個(gè)小組5~6個(gè)人,給每個(gè)組起一個(gè)名稱。要求每個(gè)小組在課程實(shí)施前完成同一個(gè)模擬軟件“小區(qū)物業(yè)管理系統(tǒng)”的開發(fā)。模擬軟件開發(fā)完成后,由各個(gè)小組交叉測試其它小組開發(fā)的軟件。在測試課程中,要求學(xué)生對軟件系統(tǒng)進(jìn)行單元測試、功能測試、集成測試和系統(tǒng)測試,找出問題并解決問題。
該教學(xué)方法主要有以下明顯的優(yōu)點(diǎn):
1)軟件測試前期的課程有《基于Web的Java開發(fā)設(shè)計(jì)》,同步開設(shè)的課程有《J2EE企業(yè)級應(yīng)用開發(fā)》,所以在實(shí)踐環(huán)節(jié)我們選擇“小區(qū)物業(yè)管理系統(tǒng)”作為測試對象,能讓學(xué)生快速具備軟件開發(fā)的能力,以及掌握軟件系統(tǒng)測試所需的技術(shù)。
2)每個(gè)人都喜歡挑別人的錯誤,相互測試對方所開發(fā)的系統(tǒng),可以形成競賽,有利于發(fā)現(xiàn)問題,能發(fā)揮學(xué)生的積極性,提高效率。同時(shí)也便于組織課堂討論以及對各小組實(shí)踐結(jié)果的評價(jià)。
3)學(xué)生通過一整套測試課程的參與,能夠了解一個(gè)具體項(xiàng)目的完整測試過程是個(gè)什么樣子,真實(shí)展現(xiàn)了實(shí)際工作中軟件測試的方法和要求。
但由于學(xué)時(shí)和學(xué)生能力的制約,在本實(shí)驗(yàn)課程中,主要針對還只是初、中級測試人員,主要是為了幫助畢業(yè)生在踏上崗位后可以順利從事不太復(fù)雜的測試工作打下堅(jiān)實(shí)的基礎(chǔ)。對于高級別測試以及測試管理之類的工作,比如制定測試計(jì)劃、各種設(shè)計(jì)的論證、測試結(jié)果的評估和總結(jié),恐怕還需要經(jīng)相當(dāng)長時(shí)間的實(shí)戰(zhàn),累積足夠的經(jīng)驗(yàn)才能勝任。這些工作經(jīng)歷,仍然不是課堂所能提供的,我們的目標(biāo)就要是培養(yǎng)出具備從事這項(xiàng)工作潛能的新手。有關(guān)這方面的內(nèi)容,我們也只能夠在理論教學(xué)中予以概述,不在實(shí)踐課中安排具體實(shí)驗(yàn)。
為了適應(yīng)實(shí)踐課程需要,我們設(shè)計(jì)了8項(xiàng)實(shí)驗(yàn)內(nèi)容,該設(shè)計(jì)旨在讓學(xué)員通過實(shí)訓(xùn),將來以一個(gè)“經(jīng)驗(yàn)者”的身份進(jìn)入人才市場。該項(xiàng)目模擬“企業(yè)項(xiàng)目管理者”培養(yǎng)“新人”的模式來安排實(shí)驗(yàn)進(jìn)度和內(nèi)容。雖然現(xiàn)實(shí)中軟件測試是始終貫穿于軟件生命周期中的,但對于未參加過工作的大學(xué)生來說,從培養(yǎng)人才的角度出發(fā),模擬“企業(yè)項(xiàng)目管理者”通常還是按如下流程培養(yǎng)人才:單純性測試的實(shí)施、測試環(huán)境建立、測試設(shè)計(jì)等等,按照單元測試集成測試系統(tǒng)測試的順序逐步深入實(shí)踐,并在提供的測試案例中人為的加入一些缺陷,以便學(xué)員在測試時(shí)去發(fā)現(xiàn)、分析、修改這些缺陷[7]。因此,我們專門設(shè)計(jì)了表1所示的實(shí)驗(yàn)內(nèi)容。
通過以上8個(gè)實(shí)驗(yàn)內(nèi)容的實(shí)踐,可以讓學(xué)員掌握單元測試以及集成測試的具體實(shí)現(xiàn)方法,熟悉各種測試工具的運(yùn)用,了解系統(tǒng)測試的實(shí)施。經(jīng)過這些實(shí)際訓(xùn)練,學(xué)生將來以初級測試工程師的身份投入到測試工作中。
4 總結(jié)分析
實(shí)踐證明,軟件測試技術(shù)實(shí)踐課程體系研究針對軟件測試行業(yè)及人才的特點(diǎn)要求,把行業(yè)、企業(yè)對人才的要求轉(zhuǎn)化為教學(xué)中的具體目標(biāo)。從知識、能力、素質(zhì)多方面全方位提升學(xué)生的就業(yè)競爭力,設(shè)置合適的實(shí)踐教學(xué)內(nèi)容和方法,一定程度上改變了教師的教學(xué)狀態(tài)和學(xué)生的學(xué)習(xí)狀態(tài),達(dá)到了預(yù)期目標(biāo)。
參考文獻(xiàn)
[1]2007首屆中國軟件測試從業(yè)人員調(diào)查報(bào)告[DB/0L],2007
[2] 鐘素芬, 葉明芷. 軟件測試應(yīng)用性人才培養(yǎng)模式的探索與實(shí)踐[J]. 北京聯(lián)合大學(xué)學(xué)報(bào)(自然科學(xué)版),2007(9).
[3] 鐘元生. 軟件測試實(shí)踐教學(xué)特色的構(gòu)建實(shí)踐[J]. 電化教育研究,2006(10):62-65.
[4] 胡宏銀. 軟件測試課程教學(xué)方法探討與實(shí)踐[J]. 計(jì)算機(jī)教育,2007(6):11-12.
[5] 李繪卓,唐峻,范勇.基于案例的軟件測試實(shí)驗(yàn)教學(xué)[J].電腦知識與技術(shù),2009,27(5):7820-7821.
【關(guān)鍵詞】軟件測試 技術(shù) 管理
隨著經(jīng)濟(jì)社會的不斷進(jìn)步和信息技術(shù)產(chǎn)業(yè)的持續(xù)發(fā)展,我國的軟件業(yè)逐步成為了信息技術(shù)產(chǎn)業(yè)的靈魂與核心。然而與同屬于亞洲的印度相比,我國在全球軟件業(yè)的整體地位還遠(yuǎn)遠(yuǎn)落后,印度目前位列全世界的前五個(gè)軟件方面供應(yīng)大國之一,在計(jì)算機(jī)的軟件出口方面地位僅在美國之后、位列世界第二。在促使印度的軟件業(yè)得以快速成長和發(fā)展的原因當(dāng)中,注重軟件的質(zhì)量是印度軟件業(yè)能夠攻取成功的一個(gè)關(guān)鍵性因素,印度的軟件企業(yè)在世界上所獲得的質(zhì)量認(rèn)證也是全球最多的。所以,提升軟件的質(zhì)量能夠大大地推動我國的軟件業(yè)的快速發(fā)展。而軟件的測試是把好軟件的質(zhì)量關(guān)口的一個(gè)重要的環(huán)節(jié),屬于軟件的開發(fā)周期當(dāng)中占據(jù)較大比重的一項(xiàng)內(nèi)容。然而在開發(fā)時(shí)間延續(xù)中,對軟件的缺陷修復(fù)的代價(jià)會十倍速地增長。所以,加強(qiáng)軟件的測試工作研究,對于提升軟件產(chǎn)品項(xiàng)目的質(zhì)量,推動我國軟件行業(yè)和企業(yè)持續(xù)健康發(fā)展具有十分重要的意義和作用。本文簡要介紹了軟件測試的目的和分類,深入闡述了促進(jìn)軟件測試技術(shù)自動化的措施,研究提出了加強(qiáng)軟件測試管理的對策和建議,希望對于推進(jìn)軟件測試的研究和實(shí)踐工作能夠起到一定的幫助和借鑒作用。
1 軟件測試概述
軟件測試指的是軟件產(chǎn)品在投放市場前,對于軟件產(chǎn)品所進(jìn)行的需求的分析,設(shè)計(jì)的規(guī)格和編碼等內(nèi)容的復(fù)審,是確保軟件產(chǎn)品質(zhì)量的關(guān)鍵性步驟。
1.1 軟件測試的具體目的
軟件測試的具體目的決定著如何來組織進(jìn)行測試工作。通常情況下軟件測試工作的目的主要有:一是為發(fā)現(xiàn)程序的錯誤從而進(jìn)行測試,二是測試用以證明軟件的程序存在錯誤,并非證明該程序不存在錯誤;三是好測試其功能在于可以發(fā)現(xiàn)以前沒有發(fā)現(xiàn)的一些錯誤等等。因此,必須關(guān)注測試的具體目的,進(jìn)行測試用例的選擇時(shí)要遵循經(jīng)濟(jì)性原則。
1.2 軟件測試分類
軟件測試通常可以分為黑盒式測試與白盒式測試兩種類型。黑盒式測試就是將軟件系統(tǒng)當(dāng)作黑盒子而不去考慮相關(guān)程序內(nèi)在的邏輯,按照需求規(guī)格的說明書要求對程序功能進(jìn)行檢查,看能否達(dá)到功能說明的要求。白盒式測試就是允許實(shí)施測試的人員根據(jù)程序內(nèi)部的邏輯結(jié)構(gòu)和相關(guān)信息進(jìn)行測試用例的設(shè)計(jì)與選擇,測試程序邏輯的路徑。按照前后的過程分類,測試步驟可分成:單元測試,組裝(集成)測試,確認(rèn)測試及系統(tǒng)測試等。
2 促進(jìn)軟件測試技術(shù)自動化的措施
2.1 軟件傳統(tǒng)測試方法的主要問題
一是重復(fù)性較強(qiáng)。在功能增加及缺陷修復(fù)時(shí)均可能修改程序的代碼,對改變過的代碼進(jìn)行測試就要反復(fù)地執(zhí)行測試用例,用手工進(jìn)行重復(fù)操作會增加出錯率;二是測試的周期過長,手工重復(fù)測試將會使軟件的測試周期延長;三是測試內(nèi)容不夠全面,修改代碼之后,手工進(jìn)行測試會忽略對關(guān)聯(lián)內(nèi)容的相應(yīng)測試;四是不能測試不可視的組件,服務(wù)器端重要的程序代碼均處于邏輯層,而采取手工進(jìn)行測試的方法無法判斷邏輯層相應(yīng)內(nèi)容。
2.2 軟件測試自動化技術(shù)措施
一是生成測試個(gè)案,采用相應(yīng)的編程語言編制短小程序用以形成測試的輸入,以使自動化的測試和結(jié)果的核對程序更易于控制與操作。二是對測試進(jìn)行寫控制,對單元的測試及集成的測試會采取單機(jī)運(yùn)行的方式,然而對系統(tǒng)的測試及回歸式測試,則可會用到多臺設(shè)備在網(wǎng)絡(luò)環(huán)境下運(yùn)行,以節(jié)省時(shí)間。 三是對測試的結(jié)果和標(biāo)準(zhǔn)化輸出進(jìn)行對比,輸出的數(shù)據(jù)量情況和數(shù)據(jù)的格式對于對比速度有著直接的影響,應(yīng)當(dāng)編制特殊軟件將測試的結(jié)果和標(biāo)準(zhǔn)化輸出進(jìn)行對比。四是利用對比軟件,分類、分析記錄及通報(bào)不符合的測試工作結(jié)果。五是產(chǎn)生測試總體統(tǒng)計(jì)報(bào)表,以增強(qiáng)過程管理工作的質(zhì)量,節(jié)省數(shù)據(jù)統(tǒng)計(jì)時(shí)間。
3 加強(qiáng)軟件測試管理的對策和建議
3.1 強(qiáng)化軟件測試的過程管理
測試需求階段中,就明確軟件測試的對象與范圍,測試負(fù)責(zé)與項(xiàng)目組成員應(yīng)充分溝通,對各種資料進(jìn)行收集整理,對各階段測試工作需求進(jìn)行分析,把測試內(nèi)容細(xì)分成測試的需求,并保證其測試的可行性。測試計(jì)劃階段中,主要的任務(wù)就是按照測試需求來制定測試的計(jì)劃,計(jì)劃內(nèi)容應(yīng)包括:測試的環(huán)境、進(jìn)度、用例及風(fēng)險(xiǎn)的分析等等。測試執(zhí)行的階段中,應(yīng)完成測試的實(shí)施與過程的監(jiān)控。在缺陷跟蹤的階段中,主要是及時(shí)報(bào)告軟件的缺陷,跟蹤修改的進(jìn)展情況。
3.2 強(qiáng)化對軟件測試突出問題的管理
一是防范思維定勢的問題。克服測試人員由于太過熟悉測試的軟件,從而建立起慣性的思維,造成測試的次數(shù)越是多,其發(fā)現(xiàn)缺陷機(jī)會反而越少的情況;防范方法是:測試人員不斷編制測試新程序及測試的用例,從而發(fā)現(xiàn)更多缺陷;還可用新人進(jìn)行軟件的測試。二是防范定位效應(yīng)的問題。測試人員的定位效應(yīng)就是對于已測試功能不能進(jìn)行認(rèn)真的測試,由于疏于防范,可能會使缺陷一起存在;解決此問題方法為完整地實(shí)施測試用例,或者組織測試的人員進(jìn)行交叉式的測試。
3.3 強(qiáng)化測試團(tuán)隊(duì)的管理
嚴(yán)格員工考核,測試負(fù)責(zé)人定期組織項(xiàng)目組成員談話,定期評定做過什么和怎樣去做,做好測試人員的績效考核。加大培訓(xùn)力度,系統(tǒng)學(xué)習(xí)相關(guān)領(lǐng)域的基礎(chǔ)和業(yè)務(wù)知識,強(qiáng)化日常培訓(xùn),深入學(xué)習(xí)特定的項(xiàng)目及技術(shù),全面提升測試團(tuán)隊(duì)的整體素質(zhì)和能力。針對測試人員流動帶來的影響,建立相應(yīng)的健全培訓(xùn)工作機(jī)制,促進(jìn)新任員工可以盡快地適應(yīng)測試工作。
4 結(jié)語
綜上所述,軟件測試工作是軟件在投放市場使用前,對于軟件產(chǎn)品編碼的實(shí)現(xiàn),設(shè)計(jì)的規(guī)格及需求的分析等內(nèi)容所進(jìn)行的最后一次審查,是軟件項(xiàng)目開發(fā)的一個(gè)重要的環(huán)節(jié),對于軟件質(zhì)量發(fā)揮著基礎(chǔ)保障的作用。因此,必須高度重視和加強(qiáng)軟件測試工作,不斷總結(jié)技術(shù)經(jīng)驗(yàn),持續(xù)完善管理措施和辦法,以提升軟件產(chǎn)品的質(zhì)量、推動軟件研發(fā)企業(yè)持續(xù)健康發(fā)展。
參考文獻(xiàn)
[1]楊亞南,孫忠林,李艷.軟件自動化測試淺談[J].科技信息,2007(24).
[2]肖新鳳.Web應(yīng)用程序性能測試技術(shù)的研究及應(yīng)用[J].科技信息,2010(27).
[3]張軍威.淺談如何以軟件測試推動軍工軟件工程化[J].硅谷,2011(14).
【關(guān)鍵詞】激勵教學(xué)法 軟件測試 教學(xué)改革
【項(xiàng)目基金】北京師范大學(xué)珠海分校教學(xué)改革項(xiàng)目(項(xiàng)目編號:201245)。
【中圖分類號】G642 【文獻(xiàn)標(biāo)識碼】A 【文章編號】2095-3089(2013)12-0247-02
軟件質(zhì)量是一個(gè)直接影響軟件產(chǎn)業(yè)應(yīng)用發(fā)展的關(guān)鍵因素,軟件測試作為一個(gè)提高軟件質(zhì)量的重要手段和衡量軟件質(zhì)量的唯一標(biāo)準(zhǔn),得到了越來越多的重視。然而,目前我國軟件測試人才匱乏,其中主要的原因是這個(gè)行業(yè)對從業(yè)人員,尤其是對軟件測試工程師的要求很高。目前我國軟件測試人才主要依靠企業(yè)、IT培訓(xùn)機(jī)構(gòu)和高校培養(yǎng)三方面,靠企業(yè)和IT培訓(xùn)機(jī)構(gòu)突擊培養(yǎng)出來的人才往往基礎(chǔ)理論知識不夠扎實(shí),在向高層次人才發(fā)展的過程中會碰到難以突破的瓶頸。
鑒于這種情況,許多高校都開設(shè)了軟件測試的課程,有的學(xué)校還開設(shè)了軟件測試方向或軟件測試專業(yè)。以我們信息學(xué)院為例,2008年開設(shè)了獨(dú)立的軟件測試的課程,2010年將軟件測試作為軟件工程專業(yè)的一個(gè)專業(yè)方向,其專業(yè)課程包括“軟件測試方法與技術(shù)”、“軟件測試自動化”、“軟件測試管理”和“軟件質(zhì)量保證”。這些軟件測試專業(yè)課程的實(shí)踐性和綜合性都很強(qiáng),尤其是“軟件測試自動化”這門課程,除了要熟悉相關(guān)的測試?yán)碚摚私鈹?shù)據(jù)庫、網(wǎng)頁設(shè)計(jì)、程序設(shè)計(jì)等軟件開發(fā)方面的基礎(chǔ)知識,還要求掌握先進(jìn)的開發(fā)及測試的方法和技術(shù),并能熟練運(yùn)用常用的自動化測試工具。這些特點(diǎn)使得常規(guī)的教學(xué)方法和手段難以取得良好的教學(xué)效果,因此高等學(xué)校培養(yǎng)出來的軟件測試人員存在著理論和實(shí)踐脫節(jié)、獨(dú)立解決問題能力和綜合應(yīng)用能力不足等問題。
1.軟件測試專業(yè)課程教學(xué)存在的問題
目前,高校的軟件測試專業(yè)課程的教學(xué)大都采用課堂教學(xué)輔助以上機(jī)練習(xí)的方法,培養(yǎng)出的學(xué)生雖然有著較強(qiáng)的理論根底,但對于如何將這些理論運(yùn)用到千變?nèi)f化的實(shí)際工作中去卻知之甚少,理論和實(shí)踐嚴(yán)重脫節(jié),學(xué)生的獨(dú)立解決問題能力和綜合應(yīng)用能力不足。
許多教學(xué)研究人員和專業(yè)教師也注意到了測試專業(yè)課程教學(xué)中存在的問題,并針對這些問題提出了一系列教學(xué)改革的方法。其中項(xiàng)目驅(qū)動的方法是[1]在教學(xué)的過程中師生共同實(shí)施一個(gè)完整的項(xiàng)目,使學(xué)生的綜合應(yīng)用能力得到了提高,因而在軟件測試專業(yè)課程教學(xué)中得到了廣泛的應(yīng)用[2],也取得了不錯的效果。但是,這種課堂授課+上機(jī)實(shí)驗(yàn)+課程項(xiàng)目的教學(xué)方法對軟件測試專業(yè)課程來講,還存在著一定的局限性,主要表現(xiàn)在以下幾個(gè)方面:
1.1缺乏真實(shí)的被測對象
在教學(xué)中使用的項(xiàng)目和案例中,被測對象通常是一些簡單模擬的應(yīng)用軟件,測試場景,測試用例和bug也往往是模擬的。使用這類模擬的軟件、測試用例和bug對學(xué)生進(jìn)一步理解概念和方法有一定的幫助,但往往不利于學(xué)生體會真實(shí)測試工作的復(fù)雜性和測試工作的價(jià)值,學(xué)生綜合應(yīng)用能力的提高受到了很大的限制,學(xué)習(xí)興趣也難以調(diào)動。
1.2缺乏對新知識的掌握
軟件開發(fā)和測試技術(shù)日新月異,在就業(yè)壓力日益增加的今天,學(xué)生不僅需要學(xué)習(xí)基礎(chǔ)知識,還要掌握行業(yè)的最新發(fā)展趨勢。對于軟件測試這種高應(yīng)用性的學(xué)科來說,最新的、最實(shí)用的技術(shù)和方法是在不斷的實(shí)踐中總結(jié)出來的,課堂授課+上機(jī)實(shí)驗(yàn)+課程項(xiàng)目這種局限于校園的教學(xué)方法很難滿足學(xué)生和老師對新知識的掌握,也難以激發(fā)學(xué)生的學(xué)習(xí)熱情,更不利于開拓學(xué)生的視野,培養(yǎng)他們獨(dú)立解決問題的能力。
1.3缺乏對測試工作的熱情
目前,軟件行業(yè)里流傳著軟件測試工作的門檻低、收入低,經(jīng)過簡單的培訓(xùn)就可勝任的錯誤言論。其實(shí),在軟件測試行業(yè)剛剛興起,軟件測試還是手工進(jìn)行的時(shí)候,這種情況是存在的。但隨著軟件開發(fā)技術(shù)的發(fā)展,軟件變得越來越復(fù)雜,測試的方法和技術(shù)也有了進(jìn)一步提高,低技術(shù)含量的單純手工測試已經(jīng)不能滿足需求了,測試工作的回報(bào)也有了大幅度地提高。然而,這種低門檻低收入的說法卻一直流傳了下來,加上前面提到的過于簡單的被測對象和沒能及時(shí)更新的測試技術(shù),都使得學(xué)生對軟件測試工作認(rèn)識不足,進(jìn)而缺乏足夠的熱情。
2.改革措施
根據(jù)上一節(jié)提出的當(dāng)前軟件測試專業(yè)課程教學(xué)方法的局限性,我們提出了將激勵教學(xué)法應(yīng)用到軟件測試專業(yè)課程教學(xué)工作中的解決方案。具體的說,就是在課程中引入企業(yè)發(fā)起的校園競賽。
2.1激勵教學(xué)法
激勵教學(xué)法,就是教師根據(jù)學(xué)生的不同情況,運(yùn)用各種有效手段,激發(fā)、鼓勵學(xué)生的進(jìn)取精神、競爭精神和創(chuàng)造精神,提高學(xué)生的學(xué)習(xí)積極性、主動性,使其思想行為朝著教學(xué)計(jì)劃所期望的方向發(fā)展的方法[3]。然而,對大學(xué)高年級的同學(xué)來講,一般的方法和手段并不能對他們起到真正的激勵作用,為此,我們采用“校園競賽”這種與所學(xué)課程和未來職業(yè)規(guī)劃聯(lián)系密切的方式來激發(fā)同學(xué)們學(xué)習(xí)的積極性,同時(shí)也能提高他們獨(dú)立解決問題和綜合應(yīng)用的能力。
2.2校園競賽
在軟件測試專業(yè)課程的教學(xué)中,校園競賽是激勵教學(xué)法中的激勵機(jī)制,因此校園競賽設(shè)計(jì)的好壞,直接影響到激勵教學(xué)法實(shí)施的效果。
和大多數(shù)校園競賽不同,激勵教學(xué)法中的校園競賽是和某一軟件測試課程緊密聯(lián)系的,但競賽內(nèi)容卻不失實(shí)用性,參賽者也不僅僅局限于學(xué)習(xí)課程的學(xué)生。這樣,不但對課程的學(xué)習(xí)有很大的幫助,也能更多地吸引其他同學(xué)。最重要的是,競賽的優(yōu)勝者可以獲得進(jìn)入企業(yè)實(shí)習(xí)和工作的機(jī)會,這種激勵方式可以有效地激發(fā)同學(xué)們學(xué)習(xí)的興趣。
為了使激勵教學(xué)法在軟件測試專業(yè)課程的教學(xué)中取得良好的效果,在競賽的設(shè)計(jì)方面,應(yīng)著重注意以下幾點(diǎn):
2.2.1真實(shí)的被測對象
競賽中使用的被測對象應(yīng)該是企業(yè)中正在開發(fā)或運(yùn)營的真實(shí)產(chǎn)品,在競賽的過程中,企業(yè)一線的軟件測試工程師應(yīng)親自指導(dǎo),使學(xué)生猶如置身于一個(gè)實(shí)際的工作環(huán)境中。這從根本上解決了高校培養(yǎng)的軟件測試人員理論和實(shí)踐脫節(jié)、缺乏實(shí)戰(zhàn)經(jīng)驗(yàn)的問題,極大地提高了學(xué)生的綜合應(yīng)用能力。
2.2.2及時(shí)更新技術(shù)知識
在競賽的過程中應(yīng)定期地舉辦一系列技術(shù)講座,邀請企業(yè)的專家學(xué)者來學(xué)校和同學(xué)們面對面地交流。這些業(yè)內(nèi)專家不僅會帶來國內(nèi)外最先進(jìn)的測試技術(shù),還可對如何將這些技術(shù)應(yīng)用到實(shí)際工作中去做詳細(xì)的講解。這不僅讓學(xué)生加深對理論學(xué)習(xí)重要性的認(rèn)識,激發(fā)他們的學(xué)習(xí)興趣,更從另一個(gè)側(cè)面強(qiáng)化他們把理論應(yīng)用到實(shí)踐中去的能力,并且使同學(xué)們對企業(yè)的管理和工作方式有更深入、更具體的了解,為今后走向社會打下堅(jiān)實(shí)的基礎(chǔ)。
2.2.3競賽題目的難度要適中
對學(xué)生專業(yè)興趣的培養(yǎng)和鼓勵不能僅僅靠真實(shí)被測對象和新技術(shù)的更新,還要注意競賽題目的難易程度,要根據(jù)學(xué)生的整體知識水平和能力做相應(yīng)調(diào)整。太簡單了會失去挑戰(zhàn)性,太困難了會使他們產(chǎn)生畏懼心理,兩者都不利于激發(fā)他們對測試工作和測試課程學(xué)習(xí)的熱情。
3.方案實(shí)施
激勵教學(xué)法首先在“軟件測試自動化”課程上進(jìn)行了實(shí)施。“軟件測試自動化”是軟件測試方向的必修課、其他方向的選修課,參加課程學(xué)習(xí)的同學(xué)主要為大三軟件工程專業(yè)的學(xué)生,他們一般至少學(xué)過一門軟件測試課程,具備一定的軟件測試的基本知識,同時(shí)對數(shù)據(jù)庫、網(wǎng)頁設(shè)計(jì)、程序設(shè)計(jì)等軟件開發(fā)方面的基礎(chǔ)知識有一定的了解。
根據(jù)“軟件測試自動化”課程的特點(diǎn),結(jié)合腳本程序在測試工作中應(yīng)用越來越廣泛的趨勢,校園競賽的主題定為“自動化測試腳本編程”,被測試的對象為公司正在開發(fā)運(yùn)行的一個(gè)性能監(jiān)控工具。
競賽分三個(gè)階段進(jìn)行:
第一階段為熱身運(yùn)動。企業(yè)提供詳細(xì)的操作步驟與說明,幫助參賽者了解比賽進(jìn)行的方式與完成的步驟,也了解被測試對象的功能。
第二階段為實(shí)際演練。在這個(gè)階段,參賽者需要運(yùn)用所學(xué)到的技能,結(jié)合自動化測試的理論及工具,來完成精細(xì)的自動化代碼設(shè)計(jì)任務(wù)。
第三階段為實(shí)戰(zhàn)考驗(yàn)。參賽者需要完成實(shí)際的軟件測試自動化編碼工作,編寫真正的自動化測試腳本,搭建自動化測試框架,并讓其跑在真正的被測產(chǎn)品上。
為了擴(kuò)大校園競賽的影響,專家講座以課外科技講座的形式進(jìn)行,競賽結(jié)果的評定由企業(yè)和教師共同進(jìn)行。
4.結(jié)語
激勵教學(xué)法針對高等學(xué)校培養(yǎng)的軟件測試人員存在的理論和實(shí)踐脫節(jié)、獨(dú)立解決問題能力和綜合應(yīng)用能力不足等問題,克服了當(dāng)前軟件測試專業(yè)課程教學(xué)經(jīng)常出現(xiàn)的缺乏真實(shí)測試對象、知識更新不及時(shí)和對測試工作熱情不高帶來了弊端,對培養(yǎng)應(yīng)用型、外向型、復(fù)合型的專門測試人才起到了積極的作用。經(jīng)過對“軟件測試自動化”課程教學(xué)的實(shí)施,證明了該方法是切實(shí)可行、效果顯著的,不但可以在軟件測試專業(yè)課程中進(jìn)行應(yīng)用,經(jīng)過改進(jìn),完全有可能在其他類似的課程(如軟件工程)中加以推廣。
參考文獻(xiàn):
[1]焦瑞.項(xiàng)目導(dǎo)向法初探[J].中國科技創(chuàng)新導(dǎo)刊,2010(13):36 - 36.
[2]趙曉君,黃艷,鄧璐娟. 項(xiàng)目驅(qū)動法在“軟件測試?yán)碚摗闭n程教學(xué)中的應(yīng)用[J]. 中國電力教育,2013(7): 101-102.
關(guān)鍵詞 軟件測試 實(shí)踐教學(xué) 測試工具
中圖分類號:TP311.53 文獻(xiàn)標(biāo)識碼:A
1 軟件測試課程教學(xué)現(xiàn)狀及分析
1.1 軟件測試課程教學(xué)現(xiàn)狀介紹
軟件測試是軟件工程專業(yè)本科生的一門重要的必修課程。在本校的課程設(shè)置中為56學(xué)時(shí),其中理論教學(xué)為32學(xué)時(shí),上機(jī)實(shí)踐為24學(xué)時(shí),由于軟件測試的各個(gè)環(huán)節(jié)分別對應(yīng)于軟件工程的相應(yīng)環(huán)節(jié),使得軟件測試課程的內(nèi)容龐雜,而其實(shí)踐環(huán)節(jié)也相應(yīng)地具有內(nèi)容雜,任務(wù)重的特點(diǎn)。
軟件測試的教學(xué)目標(biāo)是通過理論及實(shí)踐教學(xué),讓本科生熟悉軟件測試的工作流程、常用軟件測試方法及常用工具的使用及軟件測試過程管理。
教學(xué)過程中的主要參考書目為機(jī)械工業(yè)出版社出版,原著為Paul C.Jorgensen,韓柯等譯的《軟件測試(原書第2版)》,原書的英文名為《Software Testing A Craftsman''s Approach(Second Edition》。授課基本流程基本也是依據(jù)以上教材的流程,首先介紹軟件測試的概論,介紹什么是軟件測試,軟件測試的意義、軟件測試的基本流程和基本概念等內(nèi)容。接著介紹貫穿全書的軟件測試需要的示例以及軟件測試所需要的基本理論知識,包括測試人員使用的離散數(shù)學(xué)及圖論相關(guān)知識。介紹完以上知識以后,按照軟件測試流程依次介紹單元測試、集成測試和系統(tǒng)測試的測試用例開發(fā)方法和技術(shù)。其中在單元測試部分分別介紹單元測試部分的黑盒測試和白盒測試內(nèi)容,黑盒測試部分包括邊界值測試、等價(jià)類測試和基于決策表的測試,在白盒測試部分介紹路徑測試、數(shù)據(jù)流測試等結(jié)構(gòu)性測試方法的測試用例開發(fā)技術(shù)。介紹完以上內(nèi)容以后,又介紹了面向?qū)ο蟮能浖y試方法。
課程的上機(jī)實(shí)踐基本上也是配合上課的流程進(jìn)行安排,在相應(yīng)的知識點(diǎn)介紹以后,安排學(xué)生按照指定的技術(shù)開發(fā)測試用例以進(jìn)行測試活動,附帶掌握相應(yīng)的軟件測試的各種管理和自動化工具。
1.2 軟件測試課程教學(xué)現(xiàn)狀分析
通過以上教學(xué)流程的描述結(jié)合以往畢業(yè)生工作以后反饋,可以總結(jié)其教學(xué)過程的特點(diǎn)為:通過系統(tǒng)的學(xué)習(xí),同學(xué)們基本上能掌握軟件測試用例開發(fā)的各種技術(shù)要點(diǎn),對所有的知識點(diǎn)都有所觸及,通過學(xué)習(xí)同學(xué)們基本上能夠掌握各種實(shí)用的軟件測試用例的開發(fā)方法,也能將各種方法應(yīng)用于實(shí)際軟件測試中。
而在實(shí)際軟件測試實(shí)踐中,軟件測試工作具有以下特點(diǎn):
首先,依據(jù)測試工作越早開展越有利的原則,軟件測試一般從開發(fā)的初期就開始介入。例如在開發(fā)初期,需要編制測試計(jì)劃進(jìn)行時(shí)間人員和物力上的計(jì)劃;在需求分析階段需要進(jìn)行軟件測試的系統(tǒng)測試用例的開發(fā);在設(shè)計(jì)階段需要進(jìn)行集成測試用例的開發(fā),隨著設(shè)計(jì)粒度越來越細(xì),相應(yīng)的路徑及數(shù)據(jù)流集成測試用例也向下擴(kuò)展;到達(dá)軟件編碼階段,主要依據(jù)相應(yīng)白盒技術(shù)進(jìn)行單元測試用例的開發(fā)。其次,現(xiàn)代化的測試管理技術(shù)需要利用軟件全面管理軟件測試過程中的環(huán)節(jié),包括測試計(jì)劃的建立及管理、測試用例的管理、測試過程評價(jià)管理等。最后,因?yàn)槿肆Y源成本的提高及各種技術(shù)限制,各種自動化的軟件用例的運(yùn)行軟件的使用越來越多等。
通過比較教學(xué)過程及實(shí)際軟件測試的開發(fā)過程很容易發(fā)現(xiàn)以往教學(xué)過程具有以下限制:
首先,沒有將軟件測試作為軟件開發(fā)的有機(jī)部分進(jìn)行介紹,而是將軟件測試過程從軟件開發(fā)過程中割裂開來。知識點(diǎn)沒有按照實(shí)際應(yīng)用過程展開,容易造成同學(xué)們掌握各個(gè)知識點(diǎn),卻無法形成知識實(shí)際應(yīng)用能力。其次,缺少相應(yīng)的測試管理軟件的介紹和實(shí)踐,影響了同學(xué)們對軟件測試管理的重要性的認(rèn)識。最后,教學(xué)課程缺乏同學(xué)們比較感興趣的各種軟件測試自動化工具的介紹。降低了同學(xué)們的學(xué)習(xí)興趣。
2 軟件測試課程教學(xué)改革方法探討
通過上文的現(xiàn)狀介紹和分析,針對以上教學(xué)方法進(jìn)行改造,同時(shí)本著揚(yáng)長避短的原則,在中國石油大學(xué)(華東)軟件工程專業(yè)2009級軟件測試課程教學(xué)過程中進(jìn)行了教學(xué)改革。
教學(xué)改革的契機(jī)為本校軟件工程專業(yè)和IBM公司開展教材合作編寫項(xiàng)目,軟件測試作為軟件開發(fā)的重要部分獲得了空前的發(fā)展良機(jī)。
具體的有利因素可以概括為:首先,學(xué)校向IBM公司購買JAZZ開發(fā)平臺及相應(yīng)的專業(yè)軟件測試管理軟件。通過和業(yè)界領(lǐng)先的最新的軟件測試管理軟件接觸,了解了最新的軟件測試管理理念;其次,通過IBM公司對教工的業(yè)務(wù)培訓(xùn),了解了IBM公司的各種軟件測試工具的使用情況;最后,通過本文作者共同努力,將平時(shí)用于開發(fā)的實(shí)際應(yīng)用軟件例如體育公共課管理軟件等進(jìn)行整合,用于軟件測試用例的案例教學(xué)。
有了以上基礎(chǔ)前提以后,結(jié)合以上有利條件,教改的主要做法如下:首先進(jìn)行案例化教學(xué),通過自己開發(fā)的軟件這樣生動的實(shí)例向同學(xué)們介紹軟件開發(fā)過程中的軟件測試的重要性和各種原則,避免了介紹知識的空洞和乏味,提高了同學(xué)們的學(xué)習(xí)興趣;其次,在案例化教學(xué)的指導(dǎo)思想下,重新安排各個(gè)教學(xué)點(diǎn)的教學(xué)順序,主要脈絡(luò)為依照軟件開發(fā)的實(shí)際流程,首先介紹系統(tǒng)用例開發(fā)技術(shù),然后介紹繼承測試用例開發(fā),到最后介紹單元測試用例開發(fā)方法。在運(yùn)行測試用例的過程中,充分結(jié)合IBM公司提供的各種軟件測試用例運(yùn)行工具,使得學(xué)生能夠活學(xué)活用。最后,充分利用IBM的軟件平臺,介紹業(yè)界領(lǐng)先的軟件管理工具的使用,使得學(xué)生學(xué)習(xí)興趣得到極大提高。
通過以上的教學(xué)改革,理順了教學(xué)和實(shí)踐的關(guān)系,使得教學(xué)過程緊密聯(lián)系實(shí)際軟件的開發(fā)過程,同學(xué)們對軟件測試課程的理解得到了加深。
3 結(jié)論及下一步工作
通過上文對教學(xué)現(xiàn)狀的總結(jié),以及針對教學(xué)現(xiàn)狀的利弊進(jìn)行分析,本文充分利用外部優(yōu)勢大膽進(jìn)行了軟件測試的教學(xué)改革,取得了預(yù)期的改革目標(biāo)。同時(shí)也注意到改革工作才剛剛開始,還有很多需要完善的地方。接下來的工作主要包括:進(jìn)一步豐富用于軟件測試教學(xué)的案例及密切關(guān)注業(yè)界測試技術(shù)的最新發(fā)展以用于教學(xué)。總之,本文的教改工作達(dá)到了預(yù)期的目標(biāo),使得同學(xué)們對于軟件測試的理解較之以前更加條理化、系統(tǒng)化和實(shí)用化。
參考文獻(xiàn)
[1] 匡青.高職院校軟件測試課程教學(xué)改革探索[J].現(xiàn)代商貿(mào)工業(yè),2010.3.
關(guān)鍵詞:軟件測試;能力培養(yǎng);教學(xué)理念;培養(yǎng)模式;探索實(shí)踐
中圖分類號:TP311 文獻(xiàn)標(biāo)識碼: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 引 言
軟件測試是軟件工程的一個(gè)重要分支,是軟件質(zhì)量保證的重要基礎(chǔ)。現(xiàn)代軟件測試與傳統(tǒng)的軟件測試不一樣,它是貫穿軟件工程整個(gè)生命周期(從需求分析、軟件設(shè)計(jì)、代碼開發(fā),一直到最后測試、驗(yàn)收和維護(hù)),涉及各種軟件開發(fā)技術(shù)、應(yīng)用技術(shù)以及測試技術(shù),覆蓋軟件各種應(yīng)用領(lǐng)域(如桌面軟件、網(wǎng)絡(luò)應(yīng)用、信息系統(tǒng)、電子服務(wù)、嵌入式系統(tǒng)、數(shù)字娛樂等),面臨不同的專業(yè)領(lǐng)域知識,所要求的投入與軟件開發(fā)相比規(guī)模同等甚至更高。另外,軟件測試是一項(xiàng)需具備較強(qiáng)專業(yè)技術(shù)、學(xué)習(xí)和創(chuàng)新能力的工作,軟件測試人員除了需要有一定的軟件測試實(shí)踐經(jīng)驗(yàn)外,必須要具有縝密的邏輯思維能力、全面的技術(shù)能力、各種測試工具的使用能力、敢想敢干的創(chuàng)新能力,要有較強(qiáng)的責(zé)任心和團(tuán)隊(duì)合作精神以及出色的溝通能力等專業(yè)素質(zhì)。要成為一名合格的軟件測試人才需要經(jīng)過嚴(yán)格系統(tǒng)化的專業(yè)培養(yǎng),并且在專業(yè)培養(yǎng)過程中一定要結(jié)合軟件測試專業(yè)化的特殊要求,強(qiáng)調(diào)軟件測試人員的工程實(shí)踐能力。
目前,很多高等學(xué)校僅僅是在計(jì)算機(jī)專業(yè)或軟件工程專業(yè)中設(shè)置一些軟件測試課程,還沒有提高到軟件測試專業(yè)化人才培養(yǎng)這個(gè)層面。北京工業(yè)大學(xué)軟件學(xué)院率先在這方面進(jìn)行了探索和實(shí)踐,將能力培養(yǎng)作為軟件測試人才培養(yǎng)的重要內(nèi)容和突破口,提出了“用工具,促能力”的教學(xué)理念,積極探索軟件測試課程的改革與實(shí)踐,最終建立通過學(xué)習(xí)和使用軟件測試工具進(jìn)行軟件測試能力培養(yǎng)的新模式。并在此基礎(chǔ)上,開展課程建設(shè)、教材建設(shè)、實(shí)驗(yàn)室建設(shè)等工作,取得了較好的效果。
1 “用工具,促能力”的教學(xué)理念
工程實(shí)踐能力是計(jì)算機(jī)專業(yè),特別是軟件工程專業(yè)的基本要求之一。計(jì)算機(jī)技術(shù)或軟件工程技術(shù)涉及到大量的知識內(nèi)容,包含各種開發(fā)和應(yīng)用技術(shù),覆蓋許多應(yīng)用領(lǐng)域,需要有很強(qiáng)工程實(shí)踐能力。對于我們在校的本科學(xué)生,由于從高中到大學(xué),一直在學(xué)習(xí),缺乏實(shí)際項(xiàng)目經(jīng)歷。如果按照傳統(tǒng)的課堂傳授理論知識的方法進(jìn)行教學(xué),輔助一般的實(shí)驗(yàn),會讓學(xué)生感到枯燥、乏味,提不起興趣。
為此,北京工業(yè)大學(xué)軟件學(xué)院要求在軟件工程本科專業(yè)的培養(yǎng)計(jì)劃中加大計(jì)算機(jī)基礎(chǔ)課程和軟件工程專業(yè)核心課程的實(shí)踐教學(xué)環(huán)節(jié)(包括配套的課程設(shè)計(jì),獨(dú)立的實(shí)踐課程,以及小學(xué)期的集中實(shí)訓(xùn)等),并特別在軟件測試課程的實(shí)踐教學(xué)上進(jìn)行了大膽的改革和創(chuàng)新,提出了“用工具,促能力”進(jìn)行軟件測試人才能力培養(yǎng)的教學(xué)理念。該教學(xué)理念的核心思想是通過要求學(xué)生熟練地使用各種軟件測試工具,來掌握軟件測試相關(guān)知識、技術(shù)、方法和管理流程,提高軟件測試的工程實(shí)踐能力,提升軟件測試的專業(yè)化水平。
熟練地使用軟件測試工具能帶來如下好處:
1)提高工作效率。
軟件測試的工作量很大(據(jù)統(tǒng)計(jì),測試會占用到40%的開發(fā)時(shí)間;一些可靠性要求非常高的軟件,甚至?xí)嫉?0%);另外,測試中的許多操作是重復(fù)的、非智力性的和非創(chuàng)造性的,但要求準(zhǔn)確細(xì)致。最后,那些固定的、重復(fù)性的工作,可以由測試工具來完成,這樣就使得測試人員能有更多的時(shí)間來計(jì)劃測試過程,設(shè)計(jì)測試用例,使測試進(jìn)行的更加完善。
2)保證測試的準(zhǔn)確性。
手工測試常會犯一些人為錯誤。為此需要投入大量的時(shí)間和精力;而工具的特點(diǎn)是能保證測試的準(zhǔn)確性,防止人為疏忽造成的錯誤。
3)有些測試很難開展,必須使用工具(如性能測試等)。
測試工具可以執(zhí)行一些手工難于執(zhí)行,或者是無法執(zhí)行的測試。這是因?yàn)檐浖y試工作相當(dāng)復(fù)雜,要求非常嚴(yán)格,很多測試在手工測試環(huán)境是無法完成的。
4)測試工具很好地保證測試工作的規(guī)范性和一致性。
軟件工程最重要的內(nèi)容就是管理,軟件測試同樣也是將管理放在第一位。
5)測試工具體現(xiàn)了先進(jìn)的測試思想、方法和技術(shù)。
掌握并熟練地使用軟件測試工具,能夠快速和有效地掌握或鞏固所學(xué)的軟件測試的思想、方法和技術(shù);運(yùn)用軟件測試工具開展軟件測試工作,能夠有效地提升解決軟件測試中遇到的各種問題,增強(qiáng)軟件測試的實(shí)戰(zhàn)能力。
事實(shí)上,“用工具,促能力”的教學(xué)理念非常適合在工程化要求較高的軟件工程核心課程中進(jìn)行示范,予以推廣。
2 探索軟件測試人才能力培養(yǎng)的新模式
我們在“用工具,促能力”的教學(xué)理念指導(dǎo)下,對以軟件測試人才能力培養(yǎng)為目標(biāo)的教學(xué)方法與教學(xué)模式進(jìn)行積極地探索和實(shí)踐,確定了軟件測試課程教學(xué)的知識體系以及學(xué)習(xí)和使用軟件測試工具進(jìn)行軟件測試能力培養(yǎng)的實(shí)踐教學(xué)體系,制定了軟件測試課程教學(xué)大綱和實(shí)踐教學(xué)課程大綱,從而建立軟件測試課程教學(xué)及能力培養(yǎng)的新模式。
我們這里所說的軟件測試人才能力培養(yǎng)新模式主要是指我們在對軟件工程本科學(xué)生的軟件測試能力培養(yǎng)過程中,強(qiáng)調(diào)“用工具,促能力”的教學(xué)理念,以開源軟件測試工具為基礎(chǔ),結(jié)合精選的教學(xué)案例,大膽地將測試工具的掌握和測試工具的應(yīng)用作為實(shí)踐教學(xué)的重點(diǎn),強(qiáng)化學(xué)生軟件測試專業(yè)知識的掌握,促進(jìn)學(xué)生軟件測試實(shí)踐能力的培養(yǎng)。這種實(shí)踐教學(xué)的新模式,通過不斷的探索和實(shí)踐,充分得到學(xué)生的認(rèn)可。學(xué)生通過軟件測試工具的使用,大大提高了參與實(shí)踐的興趣,對軟件測試相關(guān)的理論知識有了更深入的理解和掌握,運(yùn)用工具解決測試項(xiàng)目實(shí)際問題的能力得到了加強(qiáng)。
2.1 軟件測試人才能力培養(yǎng)的課程建設(shè)
軟件測試人才培養(yǎng)專業(yè)性強(qiáng),人員素質(zhì)高,這要求我們必須科學(xué)地對軟件測試課程體系進(jìn)行論證,并按照軟件測試人才能力培養(yǎng)新模式的要求制定出教學(xué)大綱。目前,學(xué)院在軟件測試課程體系的設(shè)置上分三個(gè)層次:理論課程―軟件測試,實(shí)踐課程―軟件測試課程設(shè)計(jì),創(chuàng)新學(xué)分―軟件協(xié)同測試。貫穿這三個(gè)層次的主線是軟件測試工具,即通過軟件測試工具在不同軟件測試項(xiàng)目中的使用,強(qiáng)化學(xué)生知識的掌握和能力的培養(yǎng),并按照工具使用流程要求,培養(yǎng)學(xué)生專業(yè)職業(yè)素質(zhì)。
2.2 基于開源軟件的軟件測試實(shí)驗(yàn)室建設(shè)
軟件測試課程對工程實(shí)踐要求極高,對學(xué)生動手能力要求極強(qiáng),因此軟件測試實(shí)驗(yàn)室的建設(shè),軟件測試工具的配備除了支撐教學(xué)外,還是“用工具,促能力”教學(xué)理念的貫徹和通過學(xué)習(xí)和使用軟件測試工具進(jìn)行軟件測試人才能力培養(yǎng)新模式的實(shí)施最重要的保證。
考慮到軟件測試貫穿軟件工程整個(gè)軟件生命周期,涉及各種軟件開發(fā)技術(shù)、應(yīng)用技術(shù)以及測試技術(shù),覆蓋軟件各種應(yīng)用領(lǐng)域,需要用到多種測試技術(shù)、方法和測試類型。因此要建設(shè)能夠讓學(xué)生或受訓(xùn)人員全面參與這些實(shí)驗(yàn)或?qū)嵺`的軟件測試實(shí)驗(yàn)室,特別是全面配置商用軟件測試工具,這幾乎是不可能的。首先,除一次性投入滿足數(shù)十位學(xué)生同時(shí)上機(jī)進(jìn)行實(shí)驗(yàn)或?qū)嵺`的要求外,經(jīng)常性的升級維護(hù)費(fèi)用就會讓條件優(yōu)越的高校或培訓(xùn)機(jī)構(gòu)難以承受,更不要說大多數(shù)條件不優(yōu)越的高等院校。另外,如果完全依靠商用軟件測試工具開展軟件測試的實(shí)踐教學(xué),除了面太窄、投入太高外,我們很難推廣和普及在這方面取得的實(shí)踐教學(xué)成果。
為此,我們提出了以主流的開源軟件測試工具為基礎(chǔ),進(jìn)行軟件測試實(shí)驗(yàn)室建設(shè)的解決方案。該方案覆蓋軟件測試的各個(gè)階段和各種類型,保證了國內(nèi)許多院校在辦學(xué)條件不足,實(shí)驗(yàn)教學(xué)經(jīng)費(fèi)有限,無法全方位引進(jìn)商用軟件測試工具的情況下,仍然能夠很好地開設(shè)軟件測試實(shí)踐類課程。
實(shí)際上,我們在軟件測試實(shí)踐能力培養(yǎng)過程中,一直是要求學(xué)生使用開源測試工具。這是因?yàn)椋?/p>
①開源測試工具的使用,特別是測試環(huán)境的建立,能夠促使學(xué)生接觸各種開源工具,如操作系統(tǒng)、服務(wù)器、數(shù)據(jù)庫、頁面開發(fā)語言、繪圖、郵件等,培養(yǎng)他們搭建平臺的綜合能力。
②采用開源測試工具搭建測試環(huán)境開展測試工作,更有利于學(xué)生學(xué)習(xí)和理解軟件開發(fā)技術(shù)和軟件測試原理,提高學(xué)習(xí)興趣。
③學(xué)生通過使用開源測試工具,除了完成課程設(shè)計(jì)所規(guī)定的測試任務(wù)外,還能夠清楚地了解這些測試工具對測試技術(shù)和測試方法的支持以及這些工具在應(yīng)用中存在的問題,并可以嘗試自己動手改進(jìn)這些測試工具。
2.3 軟件測試課程配套的教材建設(shè)
為使教學(xué)理念真正得到貫徹,能力培養(yǎng)模式真正得到實(shí)施,必須解決與之配套的教材問題。為此,我們編寫了《軟件測試大學(xué)教程》、《軟件測試實(shí)驗(yàn)指導(dǎo)教程》以及《嵌入式軟件測試實(shí)用技術(shù)》3本教材。這3本教材不僅是課程的配套教材,而且還是軟件測試課程建設(shè)和教學(xué)研究及改革等成果的最終表現(xiàn),也是軟件測試能力培養(yǎng)新模式實(shí)施的基石。《軟件測試大學(xué)教程》已被北京市教委推薦為“十二五”普通高等教育本科國家級規(guī)劃教材(待評審);另外,《軟件測試實(shí)驗(yàn)指導(dǎo)教程》全面介紹了支持各種軟件測試類型的開源軟件測試工具的主要功能、應(yīng)用流程及實(shí)際案例,涉及到測試管理、缺陷管理、代碼分析、單元測試、系統(tǒng)測試、性能測試以及軟件綜合評測等重要實(shí)踐內(nèi)容。該教材配套有近1GB內(nèi)容的DVD光盤,光盤中存放有覆蓋軟件測試不同階段和不同類型的大量開源軟件測試工具及配套的實(shí)踐教學(xué)案例,保證了國內(nèi)許多院校在辦學(xué)條件不足,實(shí)驗(yàn)教學(xué)經(jīng)費(fèi)有限,無法全方位引進(jìn)商用軟件測試工具的情況下,仍然能夠?qū)W習(xí)和推廣我們的教學(xué)成果;最后,學(xué)術(shù)專著《嵌入式軟件測試實(shí)用技術(shù)》對軟件工程應(yīng)用領(lǐng)域嵌入式軟件的測試活動開展提供了專業(yè)支持。
上述教材的出版及使用,能夠使我們的教學(xué)理念真正得到貫徹,教學(xué)大綱真正得到落實(shí),教學(xué)新模式真正得到實(shí)施,實(shí)踐教學(xué)的探索及改革有據(jù)可查,有跡可循。
2.4 軟件測試精品課程的建設(shè)
精品課程的建設(shè)能夠推動優(yōu)質(zhì)教育資源的共享、教學(xué)理念的宣傳和教學(xué)模式的普及與推廣,使學(xué)生得到最好的教育,從而全面提高教學(xué)質(zhì)量。
軟件測試課程自2009年評為北京工業(yè)大學(xué)校級精品課程以來,一直在努力開展精品課程相關(guān)內(nèi)容的建設(shè),積極申報(bào)北京市精品課程。通過近幾年的軟件測試精品課程建設(shè),很好地推動了優(yōu)質(zhì)教育資源的共享,以及實(shí)踐教學(xué)理念的宣傳和實(shí)踐教學(xué)模式的普及與推廣。
軟件測試課程在建設(shè)過程中,對教學(xué)內(nèi)容、教學(xué)方法進(jìn)行了如下的改革:
①在整個(gè)本科和工程碩士教學(xué)計(jì)劃和培養(yǎng)方案的基礎(chǔ)上,進(jìn)行課程體系、教學(xué)內(nèi)容及實(shí)驗(yàn)和實(shí)踐環(huán)節(jié)整體配套和優(yōu)化的教學(xué)改革;
②重視基礎(chǔ)理論,采用案例驅(qū)動式教學(xué)方式,加強(qiáng)實(shí)踐教學(xué)環(huán)節(jié),注重基本技能訓(xùn)練與工程能力的培養(yǎng);
③密切軟件開發(fā)技術(shù)及測試技術(shù)應(yīng)用最新動態(tài),設(shè)計(jì)實(shí)踐教學(xué)案例,增強(qiáng)課程內(nèi)容的針對性和時(shí)效性;
④將軟件測試課程理論教學(xué)與軟件測試課程設(shè)計(jì)、軟件協(xié)同測試等實(shí)踐教學(xué)和創(chuàng)新學(xué)分整體考慮,努力達(dá)到培養(yǎng)高素質(zhì)、專業(yè)化軟件測試人才的要求;
⑤為使軟件測試課程達(dá)到既定目標(biāo),開展了配套的教材建設(shè)。
總之,精品課程教學(xué)內(nèi)容突出全生命周期軟件測試概念、軟件質(zhì)量分析手段、現(xiàn)代軟件測試技術(shù)、主流測試工具應(yīng)用以及典型應(yīng)用測試方法等,幫助學(xué)生了解和掌握現(xiàn)代軟件測試的各種原理、方法和技術(shù),并能夠選擇合適的軟件測試工具進(jìn)行相關(guān)測試。這些舉措為培養(yǎng)學(xué)生今后成為高素質(zhì)、專業(yè)化的軟件測試人才打下很好的基礎(chǔ),許多學(xué)生畢業(yè)后在IT企業(yè)能夠很好地從事軟件測試工作。
軟件測試精品課程網(wǎng)站是按照北京市精品課程網(wǎng)站建設(shè)要求建設(shè)的。網(wǎng)上的內(nèi)容除了課程概況、課程內(nèi)容、練習(xí)作業(yè)、教學(xué)課件、參考資料以及全程錄像。由于軟件測試課程包含有實(shí)踐性教學(xué),因此本網(wǎng)站包括實(shí)踐教學(xué)指導(dǎo)等。除此之外,本網(wǎng)站還包括軟件測試課程全面教育教學(xué)研究和改革的思路、方案和成果。可以說,本網(wǎng)站內(nèi)容完整、資源豐富,其成果具有可示范性和可推廣性。
軟件測試課程建設(shè)得到北京世紀(jì)超星信息技術(shù)發(fā)展有限責(zé)任公司的大力支持,該公司將本課程作為優(yōu)秀學(xué)術(shù)成果(超星名師講壇――超星學(xué)術(shù)視頻)進(jìn)行了全程的錄像和系統(tǒng)的整理,部分錄像資源可在超星網(wǎng)上觀看或下載,網(wǎng)址是: video.省略/playvideo.aspx?id=31475。另外,超星公司已授權(quán)我們可將本課程的完整學(xué)術(shù)視頻放在學(xué)校精品課程網(wǎng)站上,使教師和學(xué)生共享其資源。
3 軟件測試人才能力培養(yǎng)模式的實(shí)踐
軟件測試課程在不同的院校其設(shè)置是不一樣(如理論課或理論課+實(shí)驗(yàn)課,學(xué)時(shí)、學(xué)分等)的,北京工業(yè)大學(xué)軟件學(xué)院在軟件工程專業(yè)本科生的教學(xué)計(jì)劃中將軟件測試課程設(shè)為專業(yè)必修課,其課程設(shè)置包括理論課及實(shí)驗(yàn)課(課程設(shè)計(jì))兩部分。理論課32學(xué)時(shí),16周完成,每周2學(xué)時(shí),最后參加學(xué)校考試周的閉卷考試。課程設(shè)計(jì)是期末小學(xué)期2周集中進(jìn)行,共60學(xué)時(shí)。
3.1 課程設(shè)置情況
軟件測試課程自2005年開設(shè)以來,就依據(jù)“用工具,促能力”的教學(xué)理念開展本文所提到的軟件測試人才能力培養(yǎng)的新模式進(jìn)行教學(xué),講授了8輪次,學(xué)習(xí)人數(shù)達(dá)500多人。
無論是軟件測試?yán)碚撜n實(shí)驗(yàn)、軟件測試課程設(shè)計(jì),還是創(chuàng)新學(xué)分――軟件協(xié)同測試,都是以軟件測試工具為核心,結(jié)合精心設(shè)計(jì)的測試案例,使學(xué)生從測試需求、測試環(huán)境建立、測試策略、測試技術(shù)應(yīng)用、測試用例設(shè)計(jì)與執(zhí)行、測試結(jié)果分析,以及缺陷跟蹤管理與測試報(bào)告文檔撰寫等方面完成實(shí)驗(yàn)內(nèi)容和課程設(shè)計(jì)內(nèi)容。
3.1.1 軟件測試?yán)碚撜n程的實(shí)驗(yàn)大綱
軟件測試?yán)碚撜n中安排了6個(gè)學(xué)時(shí)的實(shí)驗(yàn)內(nèi)容,包括三個(gè)方面的內(nèi)容(每部分內(nèi)容2學(xué)時(shí)):代碼靜態(tài)檢測、Java單元測試Junit、Gtk+界面測試。
3.1.2 軟件測試課程設(shè)計(jì)大綱
軟件測試課程設(shè)計(jì)按照《軟件測試實(shí)驗(yàn)指導(dǎo)教程》開設(shè)了6大類型的軟件測試項(xiàng)目,每個(gè)類型的測試項(xiàng)目要求學(xué)生同時(shí)使用主流的開源測試工具,體會先進(jìn)和成熟的軟件測試技術(shù),提高學(xué)生的實(shí)戰(zhàn)能力。
類型1:以測試過程管理為主,實(shí)驗(yàn)重點(diǎn)是缺陷管理、測試管理以及缺陷管理與測試管理的集成。涉及到的開源工具主要有Mantis、Bugzilla、Testlink、Testopia等。
類型2:以程序的靜態(tài)分析為主,實(shí)驗(yàn)內(nèi)容是程序理解、代碼靜態(tài)分析。涉及到的開源工具主要有Oink,Eclipse PTP/ CDT,以及分析Java代碼的多種工具(如Findbugs、PMD、Checkstyle、Valgrind、Prefast等)。
類型3:以單元測試為主,實(shí)驗(yàn)內(nèi)容是基于支持測試驅(qū)動開發(fā)(TDD)的單元測試框架xUnit的C/C++功能測試和C/C++及Java的覆蓋測試。涉及到的開源工具主要有CppUnit、EclEmma、Gcov等。
類型4:以圖形界面測試為主,基于單元測試框架對Java GUI進(jìn)行測試,對網(wǎng)頁進(jìn)行測試。涉及到的開源工具主要有JFCUnit、HttpUnit、JWebUnit等。
類型5:以性能測試為主,除了繼續(xù)在單元測試框架的基礎(chǔ)上對Java應(yīng)用進(jìn)行單元性能測試外,重點(diǎn)是對Web應(yīng)用系統(tǒng)進(jìn)行整體的性能測試。涉及到的開源工具主要有p-unit、JMeter、WebLoad等。
類型6:以軟件綜合評測為主,對南京大學(xué)的EASTT工具進(jìn)行綜合應(yīng)用(可輔助使用Panorama++試用版),全面了解軟件評測的思想、方法和要求。
軟件測試課程設(shè)計(jì)的考核內(nèi)容包括:建立測試環(huán)境,運(yùn)行測試工具,編寫測試?yán)樱虞d被測程序,執(zhí)行測試用例,分析測試結(jié)果,撰寫測試總結(jié)報(bào)告(報(bào)告字?jǐn)?shù)不少于1萬字),最后登臺匯報(bào)(PPT演講)。
通過撰寫報(bào)告和登臺PPT匯報(bào),培養(yǎng)學(xué)生的邏輯思維、歸納總結(jié)、論文撰寫、多媒體制作以及登臺演講能力。3.1.3 軟件協(xié)同測試創(chuàng)新學(xué)分大綱
軟件協(xié)同測試創(chuàng)新學(xué)分實(shí)踐課程主要是由教師布置具體的較大型軟件測試項(xiàng)目,模擬多人異地得測試活動,讓學(xué)生體驗(yàn)軟件測試各個(gè)階段進(jìn)行協(xié)同的關(guān)鍵要素。包括測試需求分析、測試計(jì)劃制定、測試用例設(shè)計(jì)、測試用例執(zhí)行、測試結(jié)果收集以及測試資源和測試過程管理等各個(gè)環(huán)節(jié)的協(xié)同要求,學(xué)生通過協(xié)同分工完成整個(gè)課程任務(wù),并在測試實(shí)踐中總結(jié)方法,創(chuàng)新性的提出軟件協(xié)同測試的解決方案。
3.2 實(shí)踐效果
基于“用工具,促能力” 的教學(xué)理念下的軟件測試人才能力培養(yǎng)的新模式在內(nèi)容組織上做到了既能夠調(diào)動學(xué)生專業(yè)興趣,使其感到軟件測試的實(shí)用性和挑戰(zhàn)性,又加強(qiáng)了學(xué)生軟件測試的實(shí)際動手能力。軟件測試課程以主流的開源軟件測試工具應(yīng)用為基礎(chǔ),以實(shí)戰(zhàn)能力培養(yǎng)為目的,易于教師開展軟件測試的各項(xiàng)實(shí)踐教學(xué)活動,而且學(xué)生對這種形式的實(shí)踐教學(xué)反映非常好,學(xué)生參與實(shí)驗(yàn)的熱情非常高,學(xué)生經(jīng)過實(shí)踐后收獲非常大、能力提高非常快,學(xué)生為實(shí)踐收集或設(shè)計(jì)的案例非常豐富,部分學(xué)生撰寫的實(shí)踐總結(jié)報(bào)告水平也非常高。另外,學(xué)生結(jié)合分組實(shí)踐內(nèi)容的安排,進(jìn)行針對性地軟件測試實(shí)踐活動,同時(shí)也可以方便不同層次的學(xué)生根據(jù)自己的能力、時(shí)間和興趣選擇相關(guān)的實(shí)踐內(nèi)容進(jìn)行自學(xué)和實(shí)踐,進(jìn)一步地拓展自己的專業(yè)知識和專業(yè)技能,為今后的職業(yè)生涯規(guī)劃打基礎(chǔ)。
企業(yè)對我們所取得的成果給予了認(rèn)可。北京應(yīng)用軟件產(chǎn)品質(zhì)量監(jiān)督檢驗(yàn)中心與學(xué)院簽署了戰(zhàn)略合作協(xié)議,確定在軟件測試人才培養(yǎng)(如軟件測試培訓(xùn)、實(shí)訓(xùn)及實(shí)習(xí))、軟件測試科研、軟件協(xié)同測試平臺建設(shè)以及嵌入式軟件測試等基礎(chǔ)建設(shè)方面開展合作。
2009年,北京工業(yè)大學(xué)軟件學(xué)院所獲得的北京市軟件工程實(shí)踐教學(xué)示范中心其建設(shè)內(nèi)容主要是軟件工程及其相關(guān)專業(yè)核心課程的實(shí)踐教學(xué)及其學(xué)生的能力培養(yǎng)。按照什么樣的理念和模式開展這些課程的實(shí)踐教學(xué),軟件測試課程“用工具,促能力”的教學(xué)理念和在該教學(xué)理念指導(dǎo)下的軟件測試人才能力培養(yǎng)模式做了一個(gè)很好的實(shí)踐和回答。
4 結(jié)束語
目前計(jì)算機(jī)學(xué)院或軟件學(xué)院學(xué)生的軟件測試人才培養(yǎng)一直是高等院校計(jì)算機(jī)人才或軟件人才培養(yǎng)的一個(gè)“短板”,一直缺少好的教學(xué)理念和教學(xué)模式。因此,開展軟件測試人才能力培養(yǎng)的教學(xué)理念及培養(yǎng)模式的探索與實(shí)踐是一件非常有意義的工作。對于這項(xiàng)工作,有關(guān)專家給與了充分的肯定,他們認(rèn)為:軟件測試人才能力培養(yǎng)的教學(xué)理念和新模式強(qiáng)調(diào)軟件測試工具使用的重要性,同時(shí)重視教學(xué)實(shí)驗(yàn)成本和教學(xué)的靈活性,所有實(shí)驗(yàn)和實(shí)踐活動的內(nèi)容組織均以開源軟件測試工具為主。通過實(shí)際測試項(xiàng)目的開展和工具的使用,能夠使學(xué)生掌握軟件測試的基本方法、技術(shù)和流程,提高他們的動手能力。而且這種教學(xué)理念和培養(yǎng)模式具有示范性和推廣性。
參考文獻(xiàn)
[1] 柳永坡. 讓軟件測試實(shí)驗(yàn)和實(shí)訓(xùn)課程輕松地走進(jìn)高校或培訓(xùn)機(jī)構(gòu)――介紹《軟件測試實(shí)驗(yàn)指導(dǎo)教程》[J].計(jì)算機(jī)教育,2010(13):158.
[2] 柳永坡. 軟件測試大學(xué)教程:軟件測試課程專業(yè)教材[J].計(jì)算機(jī)教育,2010(12):158.
[3] 蔡建平. 開源軟件測試實(shí)踐教學(xué)方案設(shè)計(jì)[J]. 計(jì)算機(jī)教育,2011(6):103-108.
[4] 蔡建平. 軟件測試大學(xué)教程[M]. 北京:清華大學(xué)出版社,2009,09.
一、工作數(shù)據(jù)
我于xx日入職,在這4個(gè)月的工作中,我從開始進(jìn)入公司配置xx安裝環(huán)境到xx,再到現(xiàn)在完全測試的xx工作。
二、工作總結(jié)
作為一名軟件測試人員,我的工作內(nèi)容是:主動尋找公司的軟件產(chǎn)品中可能的缺陷以及不合理的地方,并及時(shí)反饋給開發(fā)同事,保證公司的軟件交給客戶是比較理想沒有明顯缺陷的狀態(tài)。
在公司測試的日常工作,思想?yún)R報(bào)專題主要由兩部分組成:一是與實(shí)施同事交流討論,總結(jié)實(shí)施同事提交的并提交給開發(fā)修改、全程跟蹤,直到關(guān)閉。二是按照流程細(xì)致的分析軟件可能存在的缺陷,及時(shí)反饋給開發(fā)同事。在4個(gè)月的時(shí)間里,我由測試xx轉(zhuǎn)到測試xx,下面對我的工作做一個(gè)總結(jié)。
1、xx測試。剛來公司,測試經(jīng)理給我非配的是一臺惠普的新臺式機(jī),運(yùn)行速度很快,用起來很舒服,很喜歡。第一個(gè)星期主要是學(xué)習(xí)xx的業(yè)務(wù)流程和安裝部署xx財(cái)政端和單位端的測試環(huán)境。在xx的幫助下我配置了6月到8月份,我主要測試的是xx版本,財(cái)政端測試的模塊主要有:票據(jù)管理、收入管理、基礎(chǔ)資料、單位對賬、統(tǒng)計(jì)報(bào)表、票據(jù)查詢、以及系統(tǒng)管理等模塊;測試單位端主要是與財(cái)政端相關(guān)模塊。測試的用戶有:省財(cái)政廳、xx縣、xx縣。
2、xx測試。到了八月底,由于黃石非稅項(xiàng)目組的xx*的項(xiàng)目任務(wù)比價(jià)緊,我遍參加進(jìn)入了xx的測試小組,與xx、xx一起并肩戰(zhàn)斗!由于xx功能不夠穩(wěn)定,測試工作進(jìn)度受開發(fā)的影像,進(jìn)度時(shí)快時(shí)慢,工作狀態(tài)也反復(fù)無常。我調(diào)整好狀態(tài),及時(shí)與開發(fā)的同事溝通,把沒有及時(shí)跟新出現(xiàn)的直接與開發(fā)交流,避免了測試工作的反復(fù)。測試xx的過程中由于開始業(yè)務(wù)不熟悉,請教xx,她都耐心的幫我解答。
三、工作中存在的問題以及解決辦法
剛走出校園初次接觸軟件測試這個(gè)全新的行業(yè),我就對這份工作產(chǎn)生了極大的好奇,在工作的過程中,不斷的和同事交流,學(xué)習(xí)工作技巧,工作到今天,工作技能有了很大的進(jìn)步,但是,隨著工作的日益進(jìn)展,也出現(xiàn)了些困惑和工作難題。
1、部門間同事交流不是很充分。前期測試xx感覺交流還比較充分,因?yàn)閤x版本是一個(gè)穩(wěn)定的版本,性能比較穩(wěn)定,用戶提出的都很深入比較少,實(shí)施、測試、開發(fā)就有充分的時(shí)間討論、分析需求、最終合理的解決。但是轉(zhuǎn)到測試xx后就明顯感覺交流的時(shí)間不夠,我想是因?yàn)閤x的項(xiàng)目時(shí)間趕得太急,這段時(shí)間資源有限,整個(gè)項(xiàng)目組必須拿寶貴的時(shí)間解決最重要的事情,所以需要項(xiàng)目的每個(gè)成員做好全心的投入,每個(gè)細(xì)節(jié)和問題及時(shí)溝通,這樣才能保證項(xiàng)目開發(fā)流程的順暢,最后完成任務(wù)。我想我在緊急項(xiàng)目測試的這個(gè)方面還要注意方法。
2、由于個(gè)剛走出校門的大學(xué)生,項(xiàng)目經(jīng)驗(yàn)比較少,也很欠缺對行業(yè)技術(shù)的把握。我要加緊學(xué)習(xí),才能更好的滿足不斷變化的深入的測試工作。
四、近期工作計(jì)劃及職業(yè)規(guī)劃
1 軟件開發(fā)和軟件測試
軟件開發(fā)和軟件測試都是軟件工程定義里的重要階段。軟件開發(fā)是根據(jù)用戶要求建造出軟件系統(tǒng)或者系統(tǒng)中的軟件部分的過程。軟件開發(fā)人員主要工作是對用戶需求進(jìn)行分析,根據(jù)需求分析進(jìn)行系統(tǒng)設(shè)計(jì)、程序編碼、單元測試和軟件缺陷的修復(fù)。
軟件測試是根據(jù)軟件開發(fā)各階段的規(guī)格說明和程序的內(nèi)部結(jié)構(gòu)而精心設(shè)計(jì)一批測試用例(包括輸入數(shù)據(jù)與預(yù)期輸出結(jié)果),并利用這些測試用例運(yùn)行軟件,以最少的人力、物力和時(shí)間找出軟件中潛在的各種錯誤和缺陷的過程。在軟件投入運(yùn)行前,軟件測試對軟件需求分析、設(shè)計(jì)規(guī)格說明和編碼最終復(fù)審,是軟件質(zhì)量保證的關(guān)鍵步驟。
2 軟件開發(fā)和軟件測試的關(guān)系
在軟件項(xiàng)目團(tuán)隊(duì)中,軟件開發(fā)和軟件測試都是其重要的項(xiàng)目成員,兩者都有共同的目標(biāo)就是實(shí)現(xiàn)用戶需求,保證軟件高品質(zhì)的交付到用戶手中。有開發(fā)就會有測試,開發(fā)人員先實(shí)現(xiàn)軟件,測試人員對軟件進(jìn)行測試找出程序錯誤和缺陷,并提交開發(fā)進(jìn)行修復(fù)。軟件開發(fā)和軟件測試通過這樣互相合作,逐步解除軟件隱藏的程序錯誤和潛在風(fēng)險(xiǎn),使軟件產(chǎn)品更逼近于用戶需求。
軟件開發(fā)和軟件測試的工作交集就是軟件缺陷,在軟件缺陷的定義和處理上往往容易發(fā)生意見分歧。在這個(gè)時(shí)候,作為軟件測試人員,如何處理和應(yīng)對好和軟件開發(fā)的關(guān)系,保持高效的團(tuán)隊(duì)協(xié)作能力就顯得尤為重要。
3 軟件測試對軟件開發(fā)關(guān)系的處理方法及技巧
3.1 尊重開發(fā)成果
作為測試人員要保持良好的心態(tài),要尊重開發(fā)的工作成果。有的測試人員接到開發(fā)提交測試的軟件,在開始測試后碰到這樣那樣的問題,有的可能是顯而易見的問題時(shí),就會心生抱怨,甚至言語上抨擊開發(fā)人員技術(shù)水平低,單元測試沒做好,這樣很容易導(dǎo)致開發(fā)人員對測試人員的反感和抵觸,造成兩者關(guān)系緊張。其實(shí),你要理解開發(fā)人員也是在時(shí)間緊,任務(wù)重,經(jīng)過加班加點(diǎn)的情況下開發(fā)出來的程序,有錯誤那是肯定的,我們測試人員的職責(zé)就是要幫助他們找到軟件里面的 Bug,幫助他們改進(jìn)軟件質(zhì)量。所以,測試人員要保持好的心態(tài),理解開發(fā)人員的辛勞,盡好測試職責(zé)努力幫助他們。
3.2 提交缺陷技巧
日常工作中測試與開發(fā)打交道最多的莫過于在軟件缺陷的定義和處理上了。怎樣能夠讓開發(fā)人員更樂于接受測試提交的缺陷并改進(jìn)它,測試人員要注意以下幾點(diǎn):
3.2.1 換位思考,多站在開發(fā)人員的角度想
開發(fā)人員將軟件提交測試后,他們最焦急等待的測試結(jié)果基本上都是系統(tǒng)邏輯跑不跑得通,數(shù)據(jù)流轉(zhuǎn)是否正確。測試人員在這方面就要注意測試技巧和提交Bug的優(yōu)先順序。測試時(shí)優(yōu)先按業(yè)務(wù)流程測試整個(gè)系統(tǒng)邏輯,把影響系統(tǒng)邏輯的錯誤找出來優(yōu)先提交給開發(fā)人員,這時(shí)候的開發(fā)人員會很喜歡修改這些問題。測試中碰到一些不影響系統(tǒng)邏輯的Bug我們先暫且記錄下來,待第一批都修改完畢,測試才提交如界面美觀、輸入輸出控制等改進(jìn)型的Bug,這樣有主次的提交 Bug順序,開發(fā)更易于接受。
3.2.2 Bug描述要清晰準(zhǔn)確
測試人員發(fā)現(xiàn)的BUG是開發(fā)人員改進(jìn)的重要依據(jù),好的Bug描述對于正確的和高效的解決Bug非常重要。測試人員在描述Bug時(shí),語言要簡明準(zhǔn)確,杜絕使用“好像、有時(shí)、偶爾、幾分鐘、一段時(shí)間”等模糊詞語;描述的內(nèi)容不是越多越好,只要提供有利于開發(fā)人員快速定位的必要信息即可。具備一定開發(fā)經(jīng)驗(yàn),水平較高的測試人員還能通過錯誤現(xiàn)象,定位程序可能出錯的地方,提出問題查找的方向。
3.2.3 避免提交重復(fù)和無效的Bug
測試人員在遇到Bug時(shí),要先進(jìn)行問題分析,這個(gè)問題是獨(dú)立出現(xiàn)還是整個(gè)系統(tǒng)都普遍存在,如果是普遍問題,只需要提交一個(gè)Bug即可。過多的同一問題根源的Bug會令開發(fā)人員厭煩。另外,測試人員不但要熟悉業(yè)務(wù)需求,還要熟悉軟件系統(tǒng)的操作和使用,提交由于操作錯誤而非程序問題引起的Bug,容易導(dǎo)致開發(fā)對測試失去信任。如果測試人員在不確定是否Bug的時(shí)候,可先向開發(fā)人員進(jìn)行詢問確認(rèn)。
3.3 注重溝通
(1)測試人員與開發(fā)人員最容易產(chǎn)生分歧的就是對缺陷的定義,這時(shí)候面對面的討論比在即時(shí)通訊工具上數(shù)十個(gè)來回的爭論來得直接、有效、清晰。討論的時(shí)候,測試人員應(yīng)說說自己的測試方法,讓開發(fā)明白你的測試內(nèi)容和做法都是站在用戶的角度去測試和看待問題。
(2)不要期望所有的Bug都會被開發(fā)人員修復(fù),浪費(fèi)太多的時(shí)間去爭論一些不影響系統(tǒng)本質(zhì)的非關(guān)鍵點(diǎn)反而會得不嘗失,應(yīng)該允許開發(fā)人員保持不同的觀點(diǎn),問題可留待下個(gè)版本完善。
(3)平時(shí)多與開發(fā)人員交流,了解他們負(fù)責(zé)的模塊和實(shí)現(xiàn)方法,這樣有助于自己對系統(tǒng)有更深入的認(rèn)識,改善測試方法和測試技巧,幫助開發(fā)改進(jìn)軟件質(zhì)量。
4 總結(jié)
軟件測試與軟件開發(fā)保持良好的合作關(guān)系,能夠使項(xiàng)目團(tuán)隊(duì)具備更高的凝聚力,極大的提升團(tuán)隊(duì)協(xié)作能力,是順利、高效的實(shí)施軟件項(xiàng)目的有力保障。
關(guān)鍵詞:代碼審查;嵌入式軟件;檢查單
0 引言
隨著嵌入式系統(tǒng)軟件功能的日益強(qiáng)大,其規(guī)模和復(fù)雜性也日益增加,進(jìn)行專業(yè)化的高效的軟件測試的要求越來越迫切,挑戰(zhàn)性也越來越強(qiáng)。軟件測試的目標(biāo)就是要盡可能早一些找出缺陷,并且確保缺陷得以修復(fù)從而保證軟件的質(zhì)量。
軟件測試按照是否執(zhí)行軟件代碼分為動態(tài)測試和靜態(tài)測試,靜態(tài)測試方式又分為基于軟件工具的靜態(tài)分析和基于人工分析的代碼審查。一般認(rèn)為代碼審查是一種高效的軟件測試手段,可以比動態(tài)測試更有效地發(fā)現(xiàn)某些特定類型的缺陷,且實(shí)施時(shí)無需特別條件,成本較低。工程實(shí)踐表明,代碼審查是發(fā)現(xiàn)軟件缺陷、提高軟件質(zhì)量和可靠性的有效手段,該階段發(fā)現(xiàn)的軟件缺陷數(shù)目占整個(gè)軟件測試周期發(fā)現(xiàn)缺陷總數(shù)的40%~60%[1]。
1 代碼審查概述
1.1 代碼審查定義
代碼審查是一種正式的評定技術(shù)。由除作者之外的某人或某一小組仔細(xì)檢查軟件代碼,以找出故障和違反開發(fā)標(biāo)準(zhǔn)之處以及其他一些問題。軟件代碼審查的目的是檢查代碼和設(shè)計(jì)的一致性、代碼執(zhí)行標(biāo)準(zhǔn)的情況、代碼邏輯表達(dá)的正確性、代碼結(jié)構(gòu)的合理性以及代碼的可讀性[2]。
1.2 代碼審查過程
1.2.1 個(gè)人審查
在進(jìn)行軟件代碼審查之前我們要求先完成軟件靜態(tài)分析,這有利于軟件測試人員在后續(xù)代碼審查時(shí)對軟件建立宏觀上認(rèn)識,在審查中容易做到有的放矢,更易于發(fā)現(xiàn)軟件代碼中的缺陷。具體表現(xiàn)在:
1)軟件靜態(tài)分析是通過專業(yè)軟件靜態(tài)分析工具對程序結(jié)構(gòu)、數(shù)據(jù)結(jié)構(gòu)、代碼品質(zhì)等在非運(yùn)行狀態(tài)下的分析,它提取了軟件大量的靜態(tài)內(nèi)部信息,比如違背編碼規(guī)則、子程序模塊、調(diào)用/被調(diào)用關(guān)系、扇入/扇出數(shù)等,可以為代碼審查提供輔助參考信息,依據(jù)現(xiàn)有的度量模型定量地評價(jià)軟件的內(nèi)在質(zhì)量[3];靜態(tài)分析的查錯功能是編譯系統(tǒng)不能替代的,因此,有必要在編譯通過之后及其它靜態(tài)測試開始之前,進(jìn)行靜態(tài)分析。
2)編程準(zhǔn)則檢查是靜態(tài)分析的重要組成部分,也是以往代碼審查具體檢查項(xiàng)的規(guī)范化總結(jié)。編程規(guī)則的許多條款以前是代碼審查檢查單中的內(nèi)容,但依據(jù)人的檢查工作量大且往往會遺漏,現(xiàn)在上升為專業(yè)工具檢查,大大提高了檢查的效率和準(zhǔn)確性。軟件中編程準(zhǔn)則的違背往往是缺陷引入最可能的地方,但并不是違背住處必定是功能缺陷之處,這還需要再進(jìn)行分析。代碼審查就要對使用工具所做的靜態(tài)分析的結(jié)果進(jìn)行驗(yàn)證。
個(gè)人審查時(shí)測試人員要仔細(xì)閱讀代碼和相關(guān)材料,結(jié)合靜態(tài)分析的結(jié)果對軟件代碼進(jìn)行審查,同時(shí)還要對照代碼檢查單,記錄下發(fā)現(xiàn)的問題及明顯缺陷。
1.2.2 會議審查
由組長、資深程序員、程序開發(fā)人員與專職測試人員組成測試小組,在一起以會議的形式進(jìn)行代碼審查。審查首先由程序開發(fā)人員逐條語句講述程序的邏想結(jié)構(gòu)。在講述的過程當(dāng)中,小組的其他成員應(yīng)提問題、判斷是否存在錯誤,同時(shí)對照代碼檢查單進(jìn)行分析討論,對討論的各個(gè)問題形成結(jié)論性意見。
利用代碼檢查單對軟件進(jìn)行審查是代碼審查過程的一個(gè)重要部分,如果想發(fā)現(xiàn)和改正程序中的每一個(gè)缺陷,就必須遵照一個(gè)精確的規(guī)程。檢查單可以幫助確保遵循這個(gè)規(guī)程。本文針對C語言代碼的檢查部分,列出檢查單中常見的錯誤類型:
1)一致性錯誤:一致性錯誤主要是檢查設(shè)計(jì)的所有功能是否都已經(jīng)編碼,以及所有的代碼是否都可對應(yīng)到設(shè)計(jì)文檔。
2)數(shù)據(jù)引用錯誤:數(shù)據(jù)引用錯誤是指使用未經(jīng)正確初始化用法和引用方式的變量、常量、數(shù)組、字符串或記錄而導(dǎo)致的軟件錯誤。
3)數(shù)據(jù)聲明錯誤:數(shù)據(jù)聲明錯誤是指不正確地聲明或使用變量和常量。
4)運(yùn)算錯誤:計(jì)算錯誤是基本的數(shù)學(xué)邏輯問題,計(jì)算無法得到預(yù)期結(jié)果。
5)比較錯誤:小于、大于、等于、不等于、真、假。比較和判斷錯誤很可能是邊界條件問題。
6)控制流錯誤:控制流程錯誤的原因是編程語言中循環(huán)等控制結(jié)構(gòu)未按預(yù)期的方式工作。它們通常由計(jì)算或者比較錯誤直接或間接造成。
7)子程序參數(shù)錯誤:子程序參數(shù)錯誤的來源是軟件子程序不正確地傳遞數(shù)據(jù)。
代碼審查的目的就是為了產(chǎn)生合格的代碼,代碼審查過程中正確地使用代碼檢查單可以用較少的時(shí)間更好的發(fā)現(xiàn)程序中的缺陷,同時(shí)根據(jù)測試經(jīng)驗(yàn)和代碼審查中發(fā)現(xiàn)的錯誤也可以補(bǔ)充完善檢查單,為后續(xù)軟件測試提供有價(jià)值的參考。
2 代碼審查實(shí)踐
2.1 嵌入式軟件特點(diǎn)
嵌入式軟件是基于嵌入式系統(tǒng)設(shè)計(jì)的軟件,它是由程序以及文檔組成。嵌入式軟件同通用軟件的區(qū)別主要表現(xiàn)在以下幾方面:首先,與通用的軟件有很強(qiáng)的兼容性不同,嵌入式軟件只能運(yùn)行在特定的目標(biāo)機(jī)上,與其所屬的目標(biāo)機(jī)系統(tǒng)有很強(qiáng)的耦合性,軟件的實(shí)現(xiàn)細(xì)節(jié)和目標(biāo)機(jī)系統(tǒng)的結(jié)構(gòu)、I/O端口配置等都有關(guān)系;其次,由于嵌入式系統(tǒng)計(jì)算機(jī)應(yīng)用要求,需要在規(guī)定的時(shí)間內(nèi)完成處理功能,這就要求嵌入式軟件要有很強(qiáng)的實(shí)時(shí)性;另外,嵌入式實(shí)時(shí)系統(tǒng)對外部事件的響應(yīng)一般都是通過中斷來處理的,其對中斷的處理方式直接影響到系統(tǒng)的實(shí)時(shí)性能。但在實(shí)際應(yīng)用中,由于中斷的復(fù)雜性,不可能進(jìn)行充分的測試,而只能通過充分的中斷分析來彌補(bǔ)。因此,嵌入式軟件的測試應(yīng)有別于通用的軟件。
2.2 嵌入式軟件代碼審查實(shí)踐
在我院相關(guān)產(chǎn)品中,嵌入式軟件占了絕大多數(shù),而嵌入式軟件又是最難測試的一類軟件,表現(xiàn)在其實(shí)時(shí)性強(qiáng)、I/O通道少、開發(fā)工具昂貴、內(nèi)存不豐富、與硬件緊密相關(guān)、CPU種類繁多等[4],且嵌入式軟件比普通軟件對可靠性的要求更高,因此有必要對嵌入式軟件的測試技術(shù)做深入的研究。本人結(jié)合我院代碼審查工作情況,總結(jié)了多個(gè)嵌入式產(chǎn)品軟件的測試結(jié)果及經(jīng)驗(yàn),歸納出在嵌入式軟件代碼審查中,除常見錯誤類型之外還應(yīng)著重檢查的內(nèi)容:
2.2.1 初始化檢查
主要檢查在系統(tǒng)軟件工作開始時(shí),系統(tǒng)的軟件硬件是否都處于一個(gè)完備的、正確的初始狀態(tài)。檢查項(xiàng)目有:
1)軟件在初始化時(shí)是否確保禁止、互鎖和安全邏輯的配置,并保證滿足異常限制條件。
2)加電初始化的系統(tǒng)狀態(tài)是否和所有外部接口的初始狀態(tài)規(guī)定相符合。
3)軟件是否將可置換單元初始化,啟動和置于某個(gè)已知的安全狀態(tài)。
4)所有不使用的RAM、寄存器(包括可編程邏輯芯片的共享RAM,寄存器)是否初始化。
5)非正常條件下系統(tǒng)是否初始化。
2.2.2 接口檢查
主要檢查是否會因?yàn)榻涌谔幚聿划?dāng)導(dǎo)致軟件功能的錯誤或損失,甚至硬件的損壞。檢查項(xiàng)目有:
1)接換數(shù)據(jù)的以下特征:信源、信宿、類型、格式、協(xié)議、傳輸速率、分辨率、吞吐量。
2)外部系統(tǒng)來的復(fù)雜數(shù)據(jù),考慮可能的失效模式。
3)數(shù)據(jù)采集的頻率和外部數(shù)據(jù)的變化率是否相適應(yīng)。
4)數(shù)據(jù)采集的分辨率和外部數(shù)據(jù)的精度是否相適應(yīng)。
5)串行通訊的異常處理的適合性。
2.2.3 中斷處理檢查
主要檢查是否會因?yàn)橹袛嗵幚聿划?dāng)導(dǎo)致軟件性能下降,死鎖和數(shù)據(jù)腐敗。檢查項(xiàng)目有:
1)檢查軟件中用到的中斷,分析它們的屬性,比如是屬于定時(shí)中斷、周期性中斷還是隨機(jī)中斷;是偶發(fā)的還是頻繁的;是系統(tǒng)內(nèi)部的還是系統(tǒng)外部的。
2)檢查中斷之間的關(guān)系,中斷的優(yōu)先級分配;中斷之間是否有約束機(jī)制,如A中斷必須在B中斷之后出現(xiàn)等。
3)中斷的處理流程,中斷入口的保護(hù);中斷出口的恢復(fù);中斷執(zhí)行時(shí)間是否合適;開中斷的時(shí)機(jī)是否恰當(dāng)。
4)中斷的嵌套,中斷控制初始化是否和硬件電路相容,是否和系統(tǒng)功能要求一致;可能發(fā)生的最大嵌套次數(shù);是否有自嵌套的情況;是否會丟失低級中斷;是否會發(fā)生死鎖。
5)資源競爭檢查,有無共享的緩沖區(qū)、變量和I/O端口存在,讀、寫處理有否沖突;有無同時(shí)出現(xiàn)的中斷申請。
6)異常情況的處理,是否采用了防止干擾引起中斷誤觸發(fā)的措施,發(fā)生誤觸發(fā)或丟失中斷對系統(tǒng)功能有什么影響。
7)對中斷信號的確認(rèn)處理和硬件電路是否一致。
2.2.4 與時(shí)間特性有關(guān)的檢查
主要檢查是否會因?yàn)樘幚聿划?dāng)導(dǎo)致軟件功能的時(shí)間特性下降錯誤或功能紊亂。檢查項(xiàng)目有:
1)在超過正常響應(yīng)時(shí)間時(shí),是否有適合的保護(hù)機(jī)制。
2)對與時(shí)間相關(guān)的功能,例如濾波、積分、延遲、迭代等,是否有算法超時(shí)保護(hù)機(jī)制。
3)采樣周期是否考慮了干擾信號的頻率。
4)不使用空操作或空循環(huán)來做延時(shí)。
5)不使用大的多重if-then-else 和多重case結(jié)構(gòu)。
2.2.5 安全性可靠性的處理檢查
檢查為提高系統(tǒng)安全性和可靠性的處理措施是否合適。檢查項(xiàng)目有:
1)檢查出現(xiàn)硬件失效,導(dǎo)致系統(tǒng)失效的軟件故障的情況下,或者軟件檢測到一個(gè)與當(dāng)前運(yùn)行模式不一致的配置時(shí),軟件是否有能力將系統(tǒng)置于某個(gè)安全狀態(tài)。
2)采取的檢錯、防錯、糾錯和容錯措施是否有效,并且沒有副作用。
3)對關(guān)鍵功能的所有不期望事件,是否都有處理要求且措施合適。
2.2.6 重用代碼檢查
在有延續(xù)性的產(chǎn)品中,代碼或組件重用是很常見的現(xiàn)象,當(dāng)代碼或組件的重用方式與原來的設(shè)計(jì)者或開發(fā)者的意圖不同時(shí),重用可能就是不恰當(dāng)?shù)摹V赜脵z查項(xiàng)目有:
1)檢用代碼是否有依賴性,如果代碼要依賴其它完成特定任務(wù)的東西,而新的程序不完成那個(gè)任務(wù),代碼就不能正常工作。
2)檢用代碼與新程序的集成,如果新的程序中定義的變量、給定的常量或指針,不是被重用的模塊所期望的,也會造成代碼的重用錯誤。
實(shí)踐證明,以上這些檢查內(nèi)容可以有效地發(fā)現(xiàn)代碼中存在的缺陷,是常用測試內(nèi)容的有益補(bǔ)充,能顯著地提升軟件測試的效果。
3 結(jié)論
本文介紹了軟件代碼檢查單中的常見錯誤類型,列舉了嵌入式軟件因?yàn)槠涮厥庑远鴳?yīng)著重檢查的內(nèi)容,兩者結(jié)合對嵌入式軟件進(jìn)行代碼審查,可在有限的軟件測試周期內(nèi)對程序的正確性、規(guī)范性、一致性、中斷處理、時(shí)間特性、安全性可靠性等方面進(jìn)行有效的檢查。通過使用該方法在實(shí)際工程項(xiàng)目中發(fā)現(xiàn)了眾多的軟件缺陷,效果顯著,從而提高了整個(gè)測試工作的效率。
參考文獻(xiàn):
[1] Oliver Laitenberger. Studying the Effects of Code Inspection and Structural Testing on Software Quality[J].
[2] 許聚常,朱國慶,尹平等.GJB/Z141軍用軟件測試指南.中國人民總裝備部.2004.
【關(guān)鍵詞】軟件測試;測試方法;黑盒測試
隨著軟件產(chǎn)業(yè)的迅速發(fā)展,軟件產(chǎn)品的質(zhì)量已成為軟件企業(yè)生存與發(fā)展的關(guān)鍵。軟件缺陷自軟件誕生的那一日起就跟隨著出現(xiàn),軟件測試就應(yīng)運(yùn)而生。隨著軟件內(nèi)容和結(jié)構(gòu)的不斷豐富,軟件缺陷也日趨多樣化,引起更為嚴(yán)重的質(zhì)量問題。軟件測試方法的研究正是本著提高軟件質(zhì)量,降低軟件缺陷的影響。隨著人們對軟件質(zhì)量的重視,軟件測試也不斷得到加強(qiáng)和持續(xù)發(fā)展。
1、軟件測試的定義
軟件測試應(yīng)該是以查找軟件缺陷為目標(biāo)的一種過程,測試用例設(shè)計(jì)和缺陷管理是軟件測試中提高缺陷查找效率和缺陷處理效率的兩個(gè)有效手段。軟件測試依靠的是強(qiáng)大的邏輯和條理性來完成工作,也同時(shí)存在著一定的風(fēng)險(xiǎn)。軟件的應(yīng)用形式多樣,輸出和實(shí)現(xiàn)功能的方式也不止一種,而產(chǎn)品設(shè)計(jì)中缺乏客觀的標(biāo)準(zhǔn),就使得軟件缺陷的標(biāo)準(zhǔn)也變的多樣,沒有任何一種方式能夠?qū)浖M(jìn)行完全測試。這樣,就無法通過軟件測試顯示隱藏的軟件缺陷,只能盡量查找軟件缺陷,找到的軟件缺陷越多,說明軟件本身的缺陷就越多,同時(shí)尚有在測試過程中被發(fā)現(xiàn)和斷定的缺陷,這也是軟件測試的局限性。
2、軟件測試的基本方法
軟件測試過程包含幾個(gè)階段:測試需求的分析和確定;測試計(jì)劃;測試執(zhí)行;測試記錄和跟蹤;回歸測試;測試總結(jié)和報(bào)告。狹義的測試是指在代碼編寫完成后對代碼進(jìn)行測試,而廣義的測試開始于需求階段,伴隨著設(shè)計(jì)、實(shí)現(xiàn)階段。如測試需求規(guī)格說明書,測試設(shè)計(jì)框架等。可以從不同角度來劃分軟件測試方法。
2.1靜態(tài)測試和動態(tài)測試
軟件測試從是否需要執(zhí)行被測軟件的角度,可以將軟件測試分為靜態(tài)測試和動態(tài)測試。靜態(tài)測試是指依據(jù)需求規(guī)格說明書、軟件設(shè)計(jì)說明書、源程序做結(jié)構(gòu)分析、流程圖分析、符號執(zhí)行,對軟件進(jìn)行分析、檢查和測試,不實(shí)際運(yùn)行被測試的軟件,約可找出30%到70%的邏輯設(shè)計(jì)錯誤。這種方式不通過程序運(yùn)行就能夠?qū)ふ掖a中的缺陷或?qū)Τ绦蛑械拇a進(jìn)行評估,可以由人來操作,發(fā)揮了人的邏輯思維的優(yōu)勢或測試經(jīng)驗(yàn),能夠批量性地發(fā)現(xiàn)問題,并直接定位到缺陷或錯誤的具置。靜態(tài)測試可以分為靜態(tài)分析和代碼走查。靜態(tài)分析是一種計(jì)算機(jī)輔助靜態(tài)分析方法。主要對程序進(jìn)行控制流分析、數(shù)據(jù)流分析、接口分析和表達(dá)式分析等。靜態(tài)分析的對象是計(jì)算機(jī)程序,程序設(shè)計(jì)語言不同,相應(yīng)的靜態(tài)分析工具也不盡相同。代碼走查是一種人工測試方法,它一般依靠有經(jīng)驗(yàn)的程序員根據(jù)需求分析、設(shè)計(jì)規(guī)格等來執(zhí)行。動態(tài)測試是指通過運(yùn)行軟件來檢驗(yàn)軟件的動態(tài)行為和運(yùn)行結(jié)果的正確性。動態(tài)測試有兩個(gè)基本要素:被測試程序和測試數(shù)據(jù)。必須生成測試數(shù)據(jù)來運(yùn)行被測試程序,取得程序運(yùn)行的真實(shí)情況、動態(tài)情況,進(jìn)而進(jìn)行分析測試質(zhì)量依賴于測試數(shù)據(jù)。
2.2黑盒測試、白盒測試、灰盒測試
從測試是否針對系統(tǒng)的內(nèi)部結(jié)構(gòu)和具體實(shí)現(xiàn)算法來看,可以將軟件測試分為黑盒測試、白盒測試、灰盒測試。
黑盒測試又稱功能測試,數(shù)據(jù)驅(qū)動的測試或者基于規(guī)格說明書的測試。黑盒測試可以從軟件的功能為起始,根據(jù)功能的需求說明測試所用的方式,并依據(jù)該方式的需求來運(yùn)行被測試的程序。從名字上來解釋,就是將軟件看成是不透明的黑盒子,對于盒子內(nèi)部的結(jié)構(gòu)不理會,只關(guān)注軟件的實(shí)用功能,并對這些功能進(jìn)行測試。
白盒測試又稱結(jié)構(gòu)測試,玻璃盒測試或基于覆蓋的測試。相比較于黑盒測試,它更關(guān)注于軟件內(nèi)部邏輯結(jié)構(gòu),其測試的重點(diǎn)是測試用例的覆蓋程序結(jié)構(gòu)的程度。白盒測試,是將軟件比作透明可見的盒子,測試人員可以根據(jù)程序內(nèi)部的邏輯結(jié)構(gòu)來設(shè)計(jì)測試用例,來測試程序的邏輯路徑。
灰盒測試,也稱跟蹤法測試,是指介于白盒測試和黑盒測試之間的一種測試方法,它關(guān)注輸出對于輸入的正確性,同時(shí)也關(guān)注內(nèi)部結(jié)構(gòu)形式的程度,它跟蹤程序的運(yùn)行過程,特別是輸入數(shù)據(jù)在程序中的“流程”。比如,測試人員輸入數(shù)據(jù)后,軟件會將其轉(zhuǎn)換為代碼并通信至服務(wù)器,服務(wù)器經(jīng)過一系列的處理,將數(shù)據(jù)傳送給客戶端,并最終顯示給測試者。灰盒測試能夠?qū)φw的過程進(jìn)行追蹤,對每一步的數(shù)據(jù)進(jìn)行測試。。但較白盒測試而言,灰盒測試沒有深入解析程序的結(jié)構(gòu),但也不像黑盒測試那樣只關(guān)注輸入和輸出,它也關(guān)心程序中間的某些流程是否正確。
3、軟件測試用例設(shè)計(jì)
傳統(tǒng)軟件測試用例設(shè)計(jì)是從軟件的各個(gè)模塊的算法細(xì)節(jié)得出的,而面向?qū)ο蟮能浖y試用例則著眼于適當(dāng)?shù)牟僮餍蛄校詫?shí)現(xiàn)對類的說明,主要有基于故障的測試、基于腳本的測試和類層次的分割測試等形式。
3.1基于故障的測試
軟件系統(tǒng)最終是以實(shí)現(xiàn)用戶的需求為目的的。基于故障的測試是從模型分析開始,逐步來測試軟件可能發(fā)生的故障,為了確定故障的類型和存在方式,一般設(shè)計(jì)用例去執(zhí)行代碼。基于故障的測試核心問題是測試者怎么來判定錯誤的性質(zhì)。“可能的錯誤”可以是意料之外的結(jié)果,不正當(dāng)?shù)牟僮鳎e誤的引用等。如果是操作不當(dāng)引起的錯誤或故障還需要對操作進(jìn)行檢查,排除操作因素引起的故障。這種方法除用于操作測試外,還可用于屬性測試,確定其對于不同類型對象行為是否賦予了正確的屬性值。
3.2基于腳本的測試
基于腳本的測試主要關(guān)注用戶的需求,并從用戶任務(wù)中找出用戶要做什么及去執(zhí)行。這種基于腳本的測試有助于在一個(gè)單元測試情況下檢查多重系統(tǒng),所以基于腳本用例測試比基于故障測試更實(shí)際也更復(fù)雜。
3.3類層次的分割測試
類層次的分割測試可以減少用完全相同的方式檢查類測試用例的數(shù)目,這與傳統(tǒng)測試中的等價(jià)類劃分測試很相似。類層次的分割測試主要分為:基于狀態(tài)的分割,按類操作是否改變類的狀態(tài)來分割;基于屬性的分割,按類操作所用到的屬性來分割;基于類型的分割,按完成的功能分割。
4、結(jié)束語
軟件設(shè)計(jì)中出現(xiàn)的缺陷是無法完全消除的,卻可以通過軟件測試來降低缺陷的發(fā)生,隨著市場對軟件質(zhì)量要求的提高,軟件測試在軟件開發(fā)中的地位越來越重要。軟件測試的最終目的不是為了找出軟件設(shè)計(jì)中的錯誤和故障,而是通過測試來發(fā)現(xiàn)缺陷,找出缺陷的分布特征和出現(xiàn)的規(guī)律,以期在新的開發(fā)項(xiàng)目中尋找更優(yōu)的方式來避免缺陷的出現(xiàn),改進(jìn)設(shè)計(jì)結(jié)構(gòu),同時(shí)也能夠通過設(shè)計(jì)有針對性的檢測方法,改善軟件測試的有效性。
參考文獻(xiàn)