軟件工程師評職稱論文(2)
軟件工程師評職稱論文
軟件工程師評職稱論文篇二
軟件工程測試淺析
摘要:軟件工程的目的是開發(fā)出具有可修改性、可靠性、有效性、可適應(yīng)性、可移植性、可重用軟件工程性、可追蹤性和可互操作性并且滿足用戶需求的軟件產(chǎn)品。但是為了保證軟件產(chǎn)品的質(zhì)量和開發(fā)效率,同時(shí)也為了減少維護(hù)的困難。我們一定要重視軟件測試。本文就軟件工程測試進(jìn)行一個(gè)探討分析。
關(guān)鍵詞:軟件工程 軟件測試 產(chǎn)品 質(zhì)量 測試工具 需求
在軟件測試日新月異發(fā)展的今天,自動(dòng)化測試正在成為軟件測試領(lǐng)域里的一個(gè)非常矚目的趨勢和潮流,軟件測試在軟件工程中是極其重要的過程,在軟件測試組織中,對測試過程中的知識進(jìn)行有效的管理,是提升組織整體測試水平的關(guān)鍵。一個(gè)重要的研究問題是怎樣將知識管理過程與軟件測試過程有效集成,從而促進(jìn)知識資產(chǎn)在軟件測試組織中的傳播與重用。首先我們來了解一下軟件測試的概念,目前軟件測試的定義比較多,如果想要找一個(gè)比較清晰的定義:軟件測試主要是為了發(fā)現(xiàn)錯(cuò)誤而執(zhí)行程序的過程,也就是說,軟件測試是根據(jù)軟件開發(fā)各階段的規(guī)格說明和程序的內(nèi)部結(jié)構(gòu)而精心設(shè)計(jì)的一批測試用例(即輸入數(shù)據(jù)及其預(yù)期的輸出結(jié)果),并利用這些測試用例去運(yùn)行程序,以發(fā)現(xiàn)程序錯(cuò)誤的過程。所以,我們知道,軟件測試其實(shí)是為了發(fā)現(xiàn)程序中的錯(cuò)誤,是一個(gè)找錯(cuò)的過程。
同時(shí),我們知道,軟件測試是一個(gè)知識密集型的活動(dòng),軟件測試人員的工作不僅僅是依據(jù)測試計(jì)劃對軟件進(jìn)行測試,與測試相關(guān)的知識、技巧、經(jīng)驗(yàn)和靈感在測試過程中有著重要的作用,但是隨著軟件技術(shù)的快速發(fā)展,不斷出現(xiàn)的新的待測軟件產(chǎn)品,常使軟件測試人員感到壓力重重,力不從心,他們有探尋新的測試知識和技術(shù)的緊迫需求。而軟件測試的自動(dòng)化的出現(xiàn)為我們提供了一種新思路和解決問題的新方法,下面對軟件測試幾個(gè)方面進(jìn)行探討。
1 軟件測試的目標(biāo)
1.1 軟件測試員的基本目標(biāo)是發(fā)現(xiàn)軟件缺陷。這個(gè)是軟件測試的終極目標(biāo),之所以再次強(qiáng)調(diào)。是因?yàn)橛袝r(shí)軟件開發(fā)團(tuán)隊(duì)進(jìn)行軟件測試只是為了證實(shí)軟件不存在錯(cuò)誤的過程,證明該軟件滿足了用戶的要求,而不是找缺陷。在這樣的情況下,測試人員也就缺乏不懈努力發(fā)現(xiàn)缺陷的探索精神和熱情,不會(huì)希望在軟件測試中暴露軟件中隱藏的錯(cuò)誤和缺陷。所以做好測試的首要條件是明確軟件測試員的基本目標(biāo)是發(fā)現(xiàn)軟件缺陷。
1.2 軟件測試員追求的是盡可能早地找出軟件缺陷。根據(jù)調(diào)查和實(shí)踐,軟件的修復(fù)費(fèi)用,隨著時(shí)間的推移,將數(shù)十倍的增長,所以軟件測試員應(yīng)盡可能早地找出軟件缺陷。這樣,在測試中,就不要選擇那些導(dǎo)致程序失效概率小的測試用例,因?yàn)檫@樣的測試對于完善和提高軟件質(zhì)量是沒有任何價(jià)值的。同時(shí),應(yīng)當(dāng)把軟件測試貫穿到整個(gè)軟件開發(fā)的過程中,因?yàn)楹芏囝A(yù)料不到的錯(cuò)誤,往往只在特定的環(huán)境下才會(huì)暴露出來,不然一些隱藏的錯(cuò)誤和問題查不出來,就可能會(huì)出現(xiàn)在運(yùn)行階段中去。
1.3 軟件測試人員必需確保找出的軟件缺陷得以關(guān)閉。在軟件工程測試的過程中,主要目的是發(fā)現(xiàn)至今未發(fā)現(xiàn)的錯(cuò)誤,從用戶的角度出發(fā),替用戶著想,將更深層次可能的問題都測試出來。但是,因?yàn)楦鞣N原因并不是每個(gè)軟件缺陷都是必須要修復(fù)的。如:沒有足夠時(shí)間、風(fēng)險(xiǎn)太大等。但是,測試人員必需確保找出的軟件缺陷得以關(guān)閉, 因?yàn)檐浖y試的目標(biāo)就是揭示不同類型的錯(cuò)誤,并且修正它,使得用戶能夠順利使用軟件。
2 軟件測試的基本原則
2.1 軟件開發(fā)人員應(yīng)當(dāng)避免測試自己的程序
軟件測試時(shí)一項(xiàng)復(fù)雜、富有創(chuàng)造性和高度挑戰(zhàn)性的工作,在軟件測試中,如果讓開發(fā)人員來測試自己的代碼,那是一件非常不妥當(dāng)?shù)氖虑?。因?yàn)殚_發(fā)和測試生來就是不同的活動(dòng)。所以,不管是程序員還是開發(fā)團(tuán)隊(duì)都應(yīng)當(dāng)避免測試自己的程序或者本團(tuán)隊(duì)開發(fā)的功能模塊。如果有條件的話,應(yīng)當(dāng)由獨(dú)立于開發(fā)組和客戶的第三方測試組或測試機(jī)構(gòu)來進(jìn)行軟件測試。因?yàn)槿祟惖幕顒?dòng)具有高度的目的性,建立適當(dāng)?shù)哪繕?biāo)具有重要的心理作用。如果我們的目的是要證明程序中沒有錯(cuò)誤,那我們就會(huì)不自覺地朝這個(gè)方向去做;也就是說,我們會(huì)傾向于挑選那些使程序出錯(cuò)的可能性較小的測試數(shù)據(jù)。或者由于程序員對問題的敘說和說明有誤解而產(chǎn)生的錯(cuò)誤,這種情況讓程序員測試自己的程序是不可能發(fā)現(xiàn)問題的。
2.2 在軟件測試中,確定預(yù)期輸出或結(jié)果是測試必要的,不可缺少的一部分,如果事先無法肯定預(yù)期的測試結(jié)果,往往會(huì)把看起來似是而非的結(jié)果當(dāng)成正確的。同時(shí)還要注意各種輸入條件,無論合理與否。因?yàn)樵趯?shí)際使用中各種情況都有。
2.3 一定嚴(yán)格執(zhí)行軟件測試計(jì)劃,禁止軟件測試的隨意性,這樣就可以避免軟件交付后出現(xiàn)問題,這樣也可以改善測試的效率和有效性。
2.4 軟件測試并不等于程序測試,軟件測試貫穿于軟件定義和開發(fā)的整個(gè)過程,因此,需求分析、概要設(shè)計(jì)和程序編碼等各階段所得到的文檔都是軟件測試的對象。
2.5 必須檢查每一個(gè)測試結(jié)果,事實(shí)上在最終發(fā)現(xiàn)的錯(cuò)誤中,有相當(dāng)一部分在前邊的測試中已經(jīng)顯露了出來,但是由于人們沒有認(rèn)真檢查先前的測試結(jié)果而遺漏了。
2.6 為了提高對程序重新測試的效率,尤其是在對程序作了修改后,為了減少測試工作量和成本,除了對真正沒有用的程序外,一定不要扔掉測試用例,測試用例代表了一定的價(jià)值投資。
3 軟件測試自動(dòng)化工具的選擇
隨著軟件規(guī)模不斷擴(kuò)大,軟件的復(fù)雜度不斷加大,采用手工測試軟件已經(jīng)不能適應(yīng)要求。采用電子自動(dòng)化測試技術(shù)對于人工而言,能更好地保證測試的準(zhǔn)確度,而且大大提高了測試的效率,加快軟件的開發(fā)速度。因此,軟件自動(dòng)化測試應(yīng)用越來越廣泛,目前,自動(dòng)測試是軟件測試的一個(gè)重要組成部分,它能完成許多手工測試無法實(shí)現(xiàn)或難以實(shí)現(xiàn)的測試,從而提高軟件質(zhì)量,節(jié)省經(jīng)費(fèi),縮短軟件發(fā)布周期。在自動(dòng)化測試中,首先我們要根據(jù)要求來合理選擇測試工具,測試工具的價(jià)格在開發(fā)資金中占有較高的比例,從成本角度必須考慮,而且它參加了測試的大部分活動(dòng),影響測試的準(zhǔn)確性和效率。根據(jù)測試方法不同,測試工具有黑盒和白盒兩種;而從測試目的和對象的角度區(qū)分亦可分為:單元測試、性能測試、功能測試、負(fù)載測試等。
在測試中,對于測試工具的選擇,并非測試功能越強(qiáng)大越好,有一個(gè)前提,那就是必須適用,而且必須滿足兼容性,能夠支持不同的運(yùn)行平臺,能對不同的腳本進(jìn)行測試,同時(shí)對待測試的腳本具有追蹤報(bào)道、錯(cuò)誤定位的功能;再次,擁有測試結(jié)果總結(jié)功能,能夠?qū)y試結(jié)果以圖表的形式展示出來,相對于一般的結(jié)果表述形式,圖標(biāo)表示更直觀。更容易讓人理解、信服,可以及時(shí)對測試結(jié)果進(jìn)行分析。一般還要從功能、價(jià)格、測試工具的集成能力、測試工具的易用性、側(cè)重點(diǎn)、技術(shù)支持等多方面考慮。
4 結(jié)束語
軟件測試有其自身的特點(diǎn)。軟件測試的目的不是為了僅僅找出錯(cuò)誤,而是通過它發(fā)現(xiàn)錯(cuò)誤、分析錯(cuò)誤,找到錯(cuò)誤的分布特征和規(guī)律,從而幫助項(xiàng)目管理人員發(fā)現(xiàn)當(dāng)前所采用的軟件開發(fā)過程的缺陷,以便改進(jìn);同時(shí)也能夠通過設(shè)計(jì)有針對性的檢測方法,改善軟件測試的有效性。即使測試沒有發(fā)現(xiàn)任何錯(cuò)誤,也是十分有價(jià)值的,因?yàn)橥暾臏y試不僅可以給軟件質(zhì)量進(jìn)行一個(gè)正確的評價(jià),而且是提高軟件質(zhì)量的重要方法之一。并以此來最終提高軟件產(chǎn)品的質(zhì)量和企業(yè)的經(jīng)濟(jì)效益,加強(qiáng)軟件企業(yè)的核心競爭力。
參考文獻(xiàn):
[1]史濟(jì)民.軟件工程原理方法與應(yīng)用[M].北京:高等教育出版社,2001.
[2]張海藩.軟件工程導(dǎo)論[M].北京:清華大學(xué)出版社,1997.
[3]佘健明,等編著.工程咨詢概論.中國計(jì)劃出版社,2007,11轉(zhuǎn)
[4]Sam Guckenheimer.The Revolution in Software Testing. Rational Software.2002.
[5]James Newkirk Robot C.Martin. Extreme Programming in practice中文版.人民郵電出版,2002年6月出版.
[6] Ron Patton 著.軟件測試.周予檳,姚靜等譯.機(jī)械工業(yè)出版社,2002.
[7]崔啟亮著.國際化軟件測試.電子工業(yè)出版社.2006.4.
[8]孫建.軟件測試工具的研究與建立.浙江大學(xué),2006.
[9]Ann Scblosser.The experience and Web site success[J].The E_business Review,2003,41(6):20.
看了“軟件工程師評職稱論文”的人還看: