
版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請進(jìn)行舉報(bào)或認(rèn)領(lǐng)
文檔簡介
1、軟件測試基礎(chǔ)一、概述 信息技術(shù)的飛速發(fā)展,使軟件產(chǎn)品應(yīng)用到社會(huì)的各個(gè)領(lǐng)域,軟件產(chǎn)品的質(zhì)量自然成了人們共同關(guān)注的焦點(diǎn)。不論是軟件的生產(chǎn)者還是軟件的使用者,均生存在競爭的環(huán)境中,軟件生產(chǎn)商為了占有市場,必須把產(chǎn)品質(zhì)量作為企業(yè)的重要目標(biāo)之一,以免在激烈的競爭中被淘汰出局。用戶為了保證自己業(yè)務(wù)的順利完成,當(dāng)然希望選用優(yōu)秀的軟件。質(zhì)量不佳的軟件產(chǎn)品不僅會(huì)使生產(chǎn)商的維護(hù)費(fèi)用和用戶的使用成本大幅增加,還可能產(chǎn)生其他的責(zé)任風(fēng)險(xiǎn),造成公司信譽(yù)降,進(jìn)而沖擊股票市場。在一些關(guān)鍵應(yīng)用 (如民航訂票系統(tǒng)、銀行結(jié)算系統(tǒng)、證券交易系統(tǒng)、自動(dòng)飛行控制軟件、軍事防御和核電站安全控制系統(tǒng)等) 中使用質(zhì)量有問題的軟件,還可能造成災(zāi)
2、難性的后果。軟件危機(jī)曾經(jīng)是軟件界甚至整個(gè)計(jì)算機(jī)界最熱門的話題。為了解決這場危機(jī),軟件從業(yè)人員、專家和學(xué)者做出了大量的努力?,F(xiàn)在人們已經(jīng)逐步認(rèn)識到所謂的軟件危機(jī)實(shí)際上僅是一種狀況,那就是軟件中有錯(cuò)誤,正是這些錯(cuò)誤導(dǎo)致了軟件開發(fā)在成本、進(jìn)度和質(zhì)量上的失控。有錯(cuò)是軟件的屬性,而且是無法改變的,因?yàn)檐浖怯扇藖硗瓿傻?,所有由人做的工作都不?huì)是完美無缺的。問題在于我們?nèi)绾稳ケ苊忮e(cuò)誤的產(chǎn)生和消除已經(jīng)產(chǎn)生的錯(cuò)誤,使程序中的錯(cuò)誤密度達(dá)到盡可能低的程度。 給軟件帶來錯(cuò)誤的原因很多,具體地說,主要有如下幾點(diǎn): 、交流不夠、交流上有誤解或者根本不進(jìn)行交流在應(yīng)用應(yīng)該做什么或不應(yīng)該做什么的細(xì)節(jié) (應(yīng)用的需求)不清晰的情
3、況下進(jìn)行開發(fā)。 、軟件復(fù)雜性圖形用戶界面 (GUI),客戶/服務(wù)器結(jié)構(gòu),分布式應(yīng)用,數(shù)據(jù)通信,超大型關(guān)系型數(shù)據(jù)庫以及龐大的系統(tǒng)規(guī)模,使得軟件及系統(tǒng)的復(fù)雜性呈指數(shù)增長,沒有現(xiàn)代軟件開發(fā)經(jīng)驗(yàn)的人很難理解它。 、程序設(shè)計(jì)錯(cuò)誤向所有的人一樣,程序員也會(huì)出錯(cuò)。 、需求變化需求變化的影響是多方面的,客戶可能不了解需求變化帶來的影響,也可能知道但又不得不那么做。需求變化的后果可能是造成系統(tǒng)的重新設(shè)計(jì),設(shè)計(jì)人員的日程的重新安排,已經(jīng)完成的工作可能要重做或者完全拋棄,對其他項(xiàng)目產(chǎn)生影響,硬件需求可能要因此改變,等等。如果有許多小的改變或者一次大的變化,項(xiàng)目各部分之間已知或未知的依賴性可能會(huì)相互影響而導(dǎo)致更多問題
4、的出現(xiàn),需求改變帶來的復(fù)雜性可能導(dǎo)致錯(cuò)誤,還可能影響工程參與者的積極性。 、時(shí)間壓力軟件項(xiàng)目的日程表很難做到準(zhǔn)確,很多時(shí)候需要預(yù)計(jì)和猜測。當(dāng)最終期限迫近和關(guān)鍵時(shí)刻到來之際,錯(cuò)誤也就跟著來了。 、自負(fù)人更喜歡說 :沒問題這事情很容易幾個(gè)小時(shí)我就能拿出來太多不切實(shí)際的沒問題,結(jié)果只能是引入錯(cuò)誤。 、代碼文檔貧乏貧乏或者差勁的文檔使得代碼維護(hù)和修改變的異常艱辛,其結(jié)果是帶來許多錯(cuò)誤。事實(shí)上,在許多機(jī)構(gòu)并不鼓勵(lì)其程序員為代碼編寫文檔,也不鼓勵(lì)程序員將代碼寫得清晰和容易理解,相反他們認(rèn)為少寫文檔可以更快的進(jìn)行編碼,無法理解的代碼更易于工作的保密 (“寫得艱難必定讀的痛苦”)。 、軟件開發(fā)工具可視化工具,
5、類庫,編譯器,腳本工具,等等,它們常常會(huì)將自身的錯(cuò)誤帶到應(yīng)用軟件中。就象我們所知道的,沒有良好的工程化作為基礎(chǔ),使用面向?qū)ο蟮募夹g(shù)只會(huì)使項(xiàng)目變得更復(fù)雜。 為了更好地解決這些問題,軟件界做出了各種各樣的努力。 二、軟件測試的目的 軟件測試的目的決定了如何去組織測試。如果測試的目的是為了盡可能多地找出錯(cuò)誤,那么測試就應(yīng)該直接針對軟件比較復(fù)雜的部分或是以前出錯(cuò)比較多的位置。如果測試目的是為了給最終用戶提供具有一定可信度的質(zhì)量評價(jià),那么測試就應(yīng)該直接針對在實(shí)際應(yīng)用中會(huì)經(jīng)常用到的商業(yè)假設(shè)。 不同的機(jī)構(gòu)會(huì)有不同的測試目的;相同的機(jī)構(gòu)也可能有不同測試目的,可能是測試不同區(qū)域或是對同一區(qū)域的不同層次的測試。
6、在談到軟件測試時(shí),許多人都引用 Grenford J. Myers在The Art of Software Testing一書中的觀點(diǎn): 、軟件測試是為了發(fā)現(xiàn)錯(cuò)誤而執(zhí)行程序的過程; 、測試是為了證明程序有錯(cuò),而不是證明程序無錯(cuò)誤。 、一個(gè)好的測試用例是在于它能發(fā)現(xiàn)至今未發(fā)現(xiàn)的錯(cuò)誤;、一個(gè)成功的測試是發(fā)現(xiàn)了至今未發(fā)現(xiàn)的錯(cuò)誤的測試。這種觀點(diǎn)可以提醒人們測試要以查找錯(cuò)誤為中心,而不是為了演示軟件的正確功能。但是僅憑字面意思理解這一觀點(diǎn)可能會(huì)產(chǎn)生誤導(dǎo),認(rèn)為發(fā)現(xiàn)錯(cuò)誤是軟件測試的唯一目,查找不出錯(cuò)誤的測試就是沒有價(jià)值的,事實(shí)并非如此。 首先,測試并不僅僅是為了要找出錯(cuò)誤。通過分析錯(cuò)誤產(chǎn)生的原因和錯(cuò)誤的分布
7、特征,可以幫助項(xiàng)目管理者發(fā)現(xiàn)當(dāng)前所采用的軟件過程的缺陷,以便改進(jìn)。同時(shí),這種分析也能幫助我們設(shè)計(jì)出有針對性地檢測方法,改善測試的有效性。 其次,沒有發(fā)現(xiàn)錯(cuò)誤的測試也是有價(jià)值的,完整的測試是評定測試質(zhì)量的一種方法。詳細(xì)而嚴(yán)謹(jǐn)?shù)目煽啃栽鲩L模型可以證明這一點(diǎn)。例如 Bev Littlewood發(fā)現(xiàn)一個(gè)經(jīng)過測試而正常運(yùn)行了n小時(shí)的系統(tǒng)有繼續(xù)正常運(yùn)行n小時(shí)的概率。 三、軟件測試的基本方法 軟件測試的方法和技術(shù)是多種多樣的。對于軟件測試技術(shù),可以從不同的角度加以分類:從是否需要執(zhí)行被測軟件的角度,可分為靜態(tài)測試和動(dòng)態(tài)測試。從測試是否針對系統(tǒng)的內(nèi)部結(jié)構(gòu)和具體實(shí)現(xiàn)算法的角度來看,可分為白盒測試和黑盒測試;1、
8、黑盒測試黑盒測試也稱功能測試或數(shù)據(jù)驅(qū)動(dòng)測試,它是在已知產(chǎn)品所應(yīng)具有的功能,通過測試來檢測每個(gè)功能是否都能正常使用,在測試時(shí),把程序看作一個(gè)不能打開的黑盆子,在完全不考慮程序內(nèi)部結(jié)構(gòu)和內(nèi)部特性的情況下,測試者在程序接口進(jìn)行測試,它只檢查程序功能是否按照需求規(guī)格說明書的規(guī)定正常使用,程序是否能適當(dāng)?shù)亟邮蛰斎霐?shù)鋸而產(chǎn)生正確的輸出信息,并且保持外部信息(如數(shù)據(jù)庫或文件)的完整性。黑盒測試方法主要有等價(jià)類劃分、邊值分析、因果圖、錯(cuò)誤推測等,主要用于軟件確認(rèn)測試。 “黑盒”法著眼于程序外部結(jié)構(gòu)、不考慮內(nèi)部邏輯結(jié)構(gòu)、針對軟件界面和軟件功能進(jìn)行測試。“黑盒”法是窮舉輸入測試,只有把所有可能的輸入都作為測試情況
9、使用,才能以這種方法查出程序中所有的錯(cuò)誤。實(shí)際上測試情況有無窮多個(gè),人們不僅要測試所有合法的輸入,而且還要對那些不合法但是可能的輸入進(jìn)行測試。2、白盒測試白盒測試也稱結(jié)構(gòu)測試或邏輯驅(qū)動(dòng)測試,它是知道產(chǎn)品內(nèi)部工作過程,可通過測試來檢測產(chǎn)品內(nèi)部動(dòng)作是否按照規(guī)格說明書的規(guī)定正常進(jìn)行,按照程序內(nèi)部的結(jié)構(gòu)測試程序,檢驗(yàn)程序中的每條通路是否都有能按預(yù)定要求正確工作,而不顧它的功能,白盒測試的主要方法有邏輯驅(qū)動(dòng)、基路測試等,主要用于軟件驗(yàn)證。 “白盒”法全面了解程序內(nèi)部邏輯結(jié)構(gòu)、對所有邏輯路徑進(jìn)行測試?!鞍缀小狈ㄊ歉F舉路徑測試。在使用這一方案時(shí),測試者必須檢查程序的內(nèi)部結(jié)構(gòu),從檢查程序的邏輯著手,得出測試數(shù)
10、據(jù)。貫穿程序的獨(dú)立路徑數(shù)是天文數(shù)字。但即使每條路徑都測試了仍然可能有錯(cuò)誤。第一,窮舉路徑測試決不能查出程序違反了設(shè)計(jì)規(guī)范,即程序本身是個(gè)錯(cuò)誤的程序。第二,窮舉路徑測試不可能查出程序中因遺漏路徑而出錯(cuò)。第三,窮舉路徑測試可能發(fā)現(xiàn)不了一些與數(shù)據(jù)相關(guān)的錯(cuò)誤。 ALAC測試是一種基于客戶使用產(chǎn)品的知識開發(fā)出來的測試方法。ALAC測試是基于復(fù)雜的軟件產(chǎn)品有許多錯(cuò)誤的原則。最大的受益者是用戶,缺陷查找和改正將針對哪些客戶最容易遇到的錯(cuò)誤。 四、軟件測試的復(fù)雜性與經(jīng)濟(jì)性 人們常常以為,開發(fā)一個(gè)程序是困難的,測試一個(gè)程序則比較容易。這其實(shí)是誤解。設(shè)計(jì)測試用例是一項(xiàng)細(xì)致并需要高度技巧的工作,稍有不慎就會(huì)顧此失彼
11、,發(fā)生不應(yīng)有的疏漏。 不論是黑盒測試方法還是白盒測試方法,由于測試情況數(shù)量巨大,都不可能進(jìn)行徹底的測試。所謂徹底測試,就是讓被測程序在一切可能的輸入情況下全部執(zhí)行一遍。通常也稱這種測試為“窮舉測試”。 “黑盒”法是窮舉輸入測試,只有把所有可能的輸入都作為測試情況使用,才能以這種方法查出程序中所有的錯(cuò)誤。實(shí)際上測試情況有無窮多個(gè),人們不僅要測試所有合法的輸入,而且還要對那些不合法但是可能的輸入進(jìn)行測試。 “白盒”法是窮舉路徑測試,貫穿程序的獨(dú)立路徑數(shù)是天文數(shù)字,但即使每條路徑都測試了仍然可能有錯(cuò)誤。第一,窮舉路徑測試決不能查出程序違反了設(shè)計(jì)規(guī)范,即程序本身是個(gè)錯(cuò)誤的程序。第二,窮舉路徑測試不可能
12、查出程序中因遺漏路徑而出錯(cuò)。第三,窮舉路徑測試可能發(fā)現(xiàn)不了一些與數(shù)據(jù)相關(guān)的錯(cuò)誤。 EWDijkstra的一句名言對測試的不徹底性作了很好的注解:“程序測試只能證明錯(cuò)誤的存在,但不能證明錯(cuò)誤不存在”。在實(shí)際測試中,窮舉測試工作量太大,實(shí)踐上行不通,這就注定了一切實(shí)際測試都是不徹底的。當(dāng)然就不能夠保證被測試程序中不存在遺留的錯(cuò)誤。軟件工程的總目標(biāo)是充分利用有限的人力和物力資源,高效率、高質(zhì)量地完成測試。為了降低測試成本,選擇測試用例時(shí)應(yīng)注意遵守“經(jīng)濟(jì)性”的原則。第一,要根據(jù)程序的重要性和一旦發(fā)生故障將造成的損失來確定它的測試等級;第二,要認(rèn)真研究測試策略,以便能使用盡可能少的測試用例,發(fā)現(xiàn)盡可能多
13、的程序錯(cuò)誤。掌握好測試量是至關(guān)重要的,一位有經(jīng)驗(yàn)的軟件開發(fā)管理人員在談到軟件測試時(shí)曾這樣說過:“不充分的測試是愚蠢的,而過度的測試是一種罪孽”。測試不足意味著讓用戶承擔(dān)隱藏錯(cuò)誤帶來的危險(xiǎn),過度測試則會(huì)浪費(fèi)許多寶貴的資源。 測試是軟件生存期中費(fèi)用消耗最大的環(huán)節(jié)。測試費(fèi)用除了測試的直接消耗外,還包括其它的相關(guān)費(fèi)用。能夠決定需要做多少次測試的主要影響因素如下: 、系統(tǒng)的目的系統(tǒng)的目的的差別在很大程度上影響所需要進(jìn)行的測試的數(shù)量。那些可能產(chǎn)生嚴(yán)重后果的系統(tǒng)必須要進(jìn)行更多的測試。一臺在 Boeing 757上的系統(tǒng)應(yīng)該比一個(gè)用于公共圖書館中檢索資料的系統(tǒng)需要更多的測試。一個(gè)用來控制密封燃?xì)夤艿赖南到y(tǒng)應(yīng)該
14、比一個(gè)與有毒爆炸物品無關(guān)的系統(tǒng)有更高的可信度。一個(gè)安全關(guān)鍵軟件的開發(fā)組比一個(gè)游戲軟件開發(fā)組要有苛刻得多的查找錯(cuò)誤方面的要求。 、潛在的用戶數(shù)量一個(gè)系統(tǒng)的潛在用戶數(shù)量也在很大程度上影響了測試必要性的程度。這主要是由于用戶團(tuán)體在經(jīng)濟(jì)方面的影響。一個(gè)在全世界范圍內(nèi)有幾千個(gè)用戶的系統(tǒng)肯定比一個(gè)只在辦公室中運(yùn)行的有兩三個(gè)用戶的系統(tǒng)需要更多的測試。如果不能使用的話,前一個(gè)系統(tǒng)的經(jīng)濟(jì)影響肯定比后一個(gè)系統(tǒng)大。除此而外,在分配處理錯(cuò)誤的時(shí)候,所花的代價(jià)的差別也很大。如果在內(nèi)部系統(tǒng)中發(fā)現(xiàn)了一個(gè)嚴(yán)重的錯(cuò)誤,在處理錯(cuò)誤的時(shí)候的費(fèi)用就相對少一些,如果要處理一個(gè)遍布全世界的錯(cuò)誤就需要花費(fèi)相當(dāng)大的財(cái)力和精力。 、信息的價(jià)值
15、在考慮測試的必要性時(shí),還需要將系統(tǒng)中所包含的信息的價(jià)值考慮在內(nèi),一個(gè)支持許多家大銀行或眾多證券交易所的客戶機(jī) /服務(wù)器系統(tǒng)中含有經(jīng)濟(jì)價(jià)值非常高的內(nèi)容。很顯然這一系統(tǒng)需要比一個(gè)支持鞋店的系統(tǒng)要進(jìn)行更多的測試。這兩個(gè)系統(tǒng)的用戶都希望得到高質(zhì)量、無錯(cuò)誤的系統(tǒng),但是前一種系統(tǒng)的影響比后一種要大得多。因此我們應(yīng)該從經(jīng)濟(jì)方面考慮,投入與經(jīng)濟(jì)價(jià)值相對應(yīng)的時(shí)間和金錢去進(jìn)行測試。 、開發(fā)機(jī)構(gòu)一個(gè)沒有標(biāo)準(zhǔn)和缺少經(jīng)驗(yàn)的開發(fā)機(jī)構(gòu)很可能開發(fā)出充滿錯(cuò)誤的系統(tǒng)。在一個(gè)建立了標(biāo)準(zhǔn)和有很多經(jīng)驗(yàn)的開發(fā)機(jī)構(gòu)中開發(fā)出來的系統(tǒng)中的錯(cuò)誤不會(huì)很多,因此,對于不同的開發(fā)機(jī)構(gòu)來說,所需要的測試的必要性也就截然的不同。 然而,那些需要進(jìn)行大幅度
16、改善的機(jī)構(gòu)反而不大可能認(rèn)識到自身的弱點(diǎn)。那些需要更加嚴(yán)格的測試過程的機(jī)構(gòu)往往是最不可能進(jìn)行這一活動(dòng)的,在許多情況下,機(jī)構(gòu)的管理部門并不能真正地理解開發(fā)一個(gè)高質(zhì)量的系統(tǒng)的好處。 、測試的時(shí)機(jī)測試量會(huì)隨時(shí)間的推移發(fā)生改變。在一個(gè)竟?fàn)幒芗ち业氖袌隼?,爭取時(shí)間可能是制勝的關(guān)鍵,開始可能不會(huì)在測試上花多少時(shí)間,但幾年后如果市場分配格局已經(jīng)建立起來了,那么產(chǎn)品的質(zhì)量就變得更重要了,測試量就要加大。測試量應(yīng)該針對合適的目標(biāo)進(jìn)行調(diào)整。五、軟件測試的心理學(xué)問題 1、程序測試的過程具有破壞性人類的活動(dòng)具有高度的目的性,建立適當(dāng)?shù)哪繕?biāo)具有重要的心理作用。如果我們的目的是要證明程序中沒有錯(cuò)誤,那我們就會(huì)不自覺地朝這個(gè)
17、方向去做;也就是說,我們會(huì)傾向于挑選那些使程序出錯(cuò)的可能性較小的測試數(shù)據(jù)。另一方面,如果我們的目標(biāo)是要證明程序中有錯(cuò),那就會(huì)選擇一些易于發(fā)現(xiàn)程序所含錯(cuò)誤的測試數(shù)據(jù)。而后一種態(tài)度會(huì)比前者給程序增添更多的價(jià)值。 測試的定義意味著程序測試的過程是具有破壞性的,其程度甚至達(dá)到了不可容忍的地步。社會(huì)上大多數(shù)人的人生觀是建設(shè)性的,而不是破壞性的。人們傾向 于創(chuàng)造一個(gè)物品,而不是輕易毀壞個(gè)物品。因此,程序壞個(gè)物品。因此,程序 測試的破壞性的定義使人們對程序測試工作望而生畏。程序測試定義還隱含著如何設(shè)計(jì)測試情況(測過數(shù)據(jù)),以及應(yīng)該由誰和不應(yīng)由誰來測試一個(gè)給定程序等等觀點(diǎn)。 心理學(xué)研究還告訴我們,當(dāng)人在干一件
18、已經(jīng)知道是不合適的或不可能做到的事時(shí),往往做得不好。例如:如果讓一個(gè)人在 15分鐘解出一個(gè)刊登在星期曰紐約時(shí)報(bào)上的交叉填字字謎,10分鐘后我們會(huì)看到這人幾乎沒一點(diǎn)進(jìn)展,因?yàn)樗麜?huì)感到實(shí)際上不可能做到而放棄自已的努力。然而,如果我們要求花4小時(shí)解出這題,那也許就會(huì)看到他在開頭的10分鐘內(nèi)有較大的進(jìn)展了。把程序測試定義為在程序中找出錯(cuò)誤的過程,就使測試成了可以做到的任務(wù),從而克服了心理上存在的問題。另一個(gè)令人煩躁的問題是即使程序完成了預(yù)期要求,仍可能含有錯(cuò)誤。也就是說,如果程序不按要求工作,它顯然有錯(cuò),但是如果程序做了不要它做的事,它也有錯(cuò)。 2、程序員應(yīng)避免測試自己的程序開發(fā)者被指定測試自己的代碼
19、是一件很糟糕的事。開發(fā)和測試生來就是不同的活動(dòng)。開發(fā)是創(chuàng)造或者建立什么東西的行為,一個(gè)模塊或者整個(gè)系統(tǒng)。而測試的唯一目的是證明一個(gè)模塊或者系統(tǒng)工作不正常。這兩個(gè)活動(dòng)之間有著本質(zhì)的矛盾。一個(gè)人不太可能把兩個(gè)截然對立的角色都扮演的很好?;谶@個(gè)想法,應(yīng)該限制開發(fā)者在測試中的參與。給他們比較合適的任務(wù)是進(jìn)行有可能的最低層的測試 -單元測試。不同當(dāng)一個(gè)程序員在完成了設(shè)計(jì),編寫程序的建設(shè)性工作后,要一夜之間突然改變他的觀點(diǎn),設(shè)法對程序形成一個(gè)完全否定的態(tài)度,那是非常困難的。許多戶主都知道,揭掉糊墻紙(破壞性過程是不容易的,若糊墻紙?jiān)仁怯伤皇莿e人貼上的,他幾平會(huì)感到難以忍受的沮喪。所以,大部分程序員
20、都由于不能使自己進(jìn)入必要的精神狀態(tài)(不是抱著要揭露出自己程序中錯(cuò)誤的態(tài)度),因而不能有效地測試自己的程序。除了這個(gè)心理學(xué)問題之外,還有一個(gè)重要的問題:程序中可能包含由于程序員對問題的敘述或說明的誤解而產(chǎn)生的錯(cuò)誤。如果是這種情況,當(dāng)程序員測試自己的程序時(shí),往往還會(huì)帶著同樣的誤解致使問題難以發(fā)現(xiàn)。 再者,可以把測試看做是對一篇論文或本書作校對,或與寫評論相類似的工作。正如許多作者所知,校對或批評自己的著作是非常困難的。也就是說,在自已的工作中找出缺陷往往是人的心理狀態(tài)所不容的。 以上看法并不意味著程序員不可能測試自已的程序。不過相比之下如果由另外些人來進(jìn)行程序測試,就會(huì)更有效、更成功。注意:這個(gè)論
21、斷并不適用于糾錯(cuò)(改正已知錯(cuò)誤),由原來程序的作者糾錯(cuò)肯定效率更高。 3、程庫設(shè)計(jì)機(jī)構(gòu)不應(yīng)測試自己的程序在許多意義上來說,一項(xiàng)工程或一程序設(shè)計(jì)機(jī)構(gòu)是個(gè)有生命的有機(jī)體,它同樣有心理學(xué)問題。再者,在大多數(shù)情況下,人們都是以在給定日期內(nèi),以一定代價(jià)編制程序的能力來衡量程序設(shè)計(jì)機(jī)構(gòu)和項(xiàng)目管理人員的。這祥做的一個(gè)理由是時(shí)間和成本指標(biāo)便于衡量,而程序的可靠性卻很難度量。要程序設(shè)計(jì)機(jī)構(gòu)在測試自己的程序時(shí)持客觀態(tài)度是困難的,因?yàn)槿绻谜_的定義看待測試,就不大可能按預(yù)定計(jì)劃完成測試也不大可能把耗費(fèi)的代價(jià)限制在要求的范圍以內(nèi)。 軟件生產(chǎn)的三個(gè)最重要的因素是:質(zhì)量、進(jìn)度和費(fèi)用。 計(jì)算技術(shù)的進(jìn)步,意味著在經(jīng)濟(jì)領(lǐng)域中
22、信息系統(tǒng)更新的速度更快。新的硬件技術(shù)的發(fā)展,均會(huì)使軟件過時(shí),系統(tǒng)交付使用的時(shí)間變得日益重要,新產(chǎn)品在其性能和費(fèi)用上被其他產(chǎn)品取代之前的推銷時(shí)間,即市場窗口就已經(jīng)縮小了。 由于費(fèi)用和進(jìn)度的限制,要開發(fā)一種高質(zhì)量、快速交付和低成本的軟件產(chǎn)品變得越來越困難,也就是說要同時(shí)達(dá)到三個(gè)目標(biāo)是困難的。因此在軟件產(chǎn)品的開發(fā)中就要權(quán)衡它們之間的關(guān)系,使軟件的特性能滿足用戶的要求,這意味著軟件產(chǎn)品特性的度量和預(yù)計(jì)是必要的。 軟件測試由獨(dú)立測試機(jī)構(gòu)承擔(dān)有許多好處。獨(dú)立測試是指軟件測試工作由在經(jīng)濟(jì)上和管理上獨(dú)立于開發(fā)機(jī)構(gòu)的組織進(jìn)行。獨(dú)立測試可以避免軟件開發(fā)者測試自己開發(fā)的軟件,由于心理學(xué)上的問題,軟件開發(fā)者難以客觀、
23、有效地測試自己的軟件,而找出那些因?yàn)閷栴}的誤解而產(chǎn)生的錯(cuò)誤就更加困難。獨(dú)立測試還可以避免軟件開發(fā)機(jī)構(gòu)測試自己的軟件,軟件產(chǎn)品的開發(fā)過程受到時(shí)間、成本和質(zhì)量三者的制約,時(shí)間和成本指標(biāo)便于衡量,而質(zhì)量卻很難度量,因此在軟件開發(fā)過程中,當(dāng)時(shí)間、成本和質(zhì)量三者發(fā)生矛盾時(shí),質(zhì)量最容易被忽視,如果測試組織與開發(fā)組織來自相同的機(jī)構(gòu),測試過程就會(huì)面臨來自與開發(fā)組織同一來源的管理方面的壓力,使測試過程受到干擾。 采用獨(dú)立測試方式,無論在技術(shù)上還是管理上,對提高軟件測試的有效性都具有重要意義。 、客觀性對軟件測試和軟件中的錯(cuò)誤抱著客觀的態(tài)度,這種客觀的態(tài)度可以解決測試中的心理學(xué)問題,既能夠以揭露軟件中錯(cuò)誤的態(tài)度
24、工作,也能不受發(fā)現(xiàn)的錯(cuò)誤的影響。經(jīng)濟(jì)上的獨(dú)立性使其工作有更充分的條件按測試要求去完成。 、專業(yè)性獨(dú)立測試作為一種專業(yè)工作,在長期的工作過程中勢必能夠積累大量實(shí)踐經(jīng)驗(yàn),形成自己的專業(yè)優(yōu)勢。同時(shí)軟件測試也是技術(shù)含量很高的工作,需要有專業(yè)隊(duì)伍加以研究,并進(jìn)行工程實(shí)踐。專業(yè)化分工是提高測試水平,保證測試質(zhì)量,充分發(fā)揮測試效用的必然途徑。 、權(quán)威性由于專業(yè)優(yōu)勢,獨(dú)立測試工作形成的測試結(jié)果更具信服力,而測試結(jié)果常常和對軟件的質(zhì)量評價(jià)聯(lián)系在一起,由專業(yè)化的獨(dú)立測試機(jī)構(gòu)的評價(jià),更客觀、公正和具有權(quán)威性。 、資源有保證獨(dú)立測試機(jī)構(gòu)的主要任務(wù)是進(jìn)行獨(dú)立測試工作,這使得測試工作在經(jīng)費(fèi)、人力和計(jì)劃方面更有保證,不會(huì)因
25、為開發(fā)的壓力減少對測試的投入,降低測試的有效性,可以避免開發(fā)單位側(cè)重軟件開發(fā)而對測試工作產(chǎn)生不利的影響。六、好的測試工程師應(yīng)具備的素質(zhì) 人是測試工作中最有價(jià)值也是最重要的資源,沒有一個(gè)合格的、積極的測試小組,測試就不可能實(shí)現(xiàn)。然而,在軟件開發(fā)產(chǎn)業(yè)中有一種非常普遍習(xí)慣,那就是讓那些經(jīng)驗(yàn)最少的新手、沒有效率的開發(fā)者或不適合干其他工作的人去做測試工作。這絕對是一種目光短淺的行為,對一個(gè)系統(tǒng)進(jìn)行有效的測試所需要的技能絕對不比進(jìn)行軟件開發(fā)需要的少,事實(shí)上,測試者將獲得極其廣泛的經(jīng)驗(yàn),他們將遇到許多開發(fā)者不可能遇到的問題。、溝通能力。 一名理想的測試者必須能夠同測試涉及到的所有人進(jìn)行溝通,具有與技術(shù)(開發(fā)者)和非技術(shù)人員(客戶,管理人員)的交流能力。既要可以和用戶談得來,又能同開發(fā)人員說得上話,不幸的是這兩類人沒有共同語言。和用戶談話的重點(diǎn)必須放在系統(tǒng)可以正確地處理什么和不可以處理什么上。而和開發(fā)者談相同的信息時(shí),就必須將這些活重新組織以另一種方式表達(dá)出來,測試小組的成員必須能夠同等地同用戶和開發(fā)者溝通。、移情能力。 和系統(tǒng)開發(fā)有關(guān)的所有人員都處在一種既關(guān)心又擔(dān)心的狀態(tài)之中。用戶擔(dān)心將來使用一個(gè)不符合自己要求的系統(tǒng),開發(fā)者則擔(dān)心由于系統(tǒng)要求不正確而使他不得不重新開發(fā)整個(gè)系統(tǒng),管理部門則擔(dān)心這個(gè)系統(tǒng)突然崩潰而使它的聲譽(yù)受
溫馨提示
- 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請下載最新的WinRAR軟件解壓。
- 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
- 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁內(nèi)容里面會(huì)有圖紙預(yù)覽,若沒有圖紙預(yù)覽就沒有圖紙。
- 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
- 5. 人人文庫網(wǎng)僅提供信息存儲空間,僅對用戶上傳內(nèi)容的表現(xiàn)方式做保護(hù)處理,對用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對任何下載內(nèi)容負(fù)責(zé)。
- 6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請與我們聯(lián)系,我們立即糾正。
- 7. 本站不保證下載資源的準(zhǔn)確性、安全性和完整性, 同時(shí)也不承擔(dān)用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。
最新文檔
- 成長記錄袋小學(xué)生課件
- 2025年環(huán)保廁所項(xiàng)目合作計(jì)劃書
- 2025年重鉻酸鈉項(xiàng)目建議書
- 加強(qiáng)網(wǎng)絡(luò)信息安全保障條例
- 公司股份制實(shí)施方案
- 金融投資顧問投資風(fēng)險(xiǎn)提示書
- 小王子電影故事解讀
- StA-IFN-1-生命科學(xué)試劑-MCE
- 石油庫區(qū)員工年終總結(jié)
- 2025年太陽能熱發(fā)電系統(tǒng)項(xiàng)目合作計(jì)劃書
- 【立高食品公司的償債能力現(xiàn)狀及問題分析(論文9000字)】
- 銷量返點(diǎn)合同范本
- 裝飾施工圖審查要點(diǎn)
- 幼兒園中班下學(xué)期語言繪本-沙灘上
- 家庭生活中的安全隱患及預(yù)防方法
- 食堂炊事員聘用合同
- 電氣工程師生涯人物訪談報(bào)告
- 水力學(xué)電子教案
- 信用信息平臺建設(shè)方案
- 大地保險(xiǎn)理賠標(biāo)準(zhǔn)
- 車險(xiǎn)經(jīng)營情況分析報(bào)告模板
評論
0/150
提交評論