登錄

軟件測試

百科 > 軟件 > 軟件測試

1.什么是軟件測試

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

2.軟件測試的特點[1]

  在實際的操作過程當中軟件測試難度比較大,而且環(huán)節(jié)也比較復雜。同時它還具有比較可觀的經(jīng)濟性。隨著軟件的大規(guī)?;瘯胁粩嘣鲩L的復雜的測試要求等待測試工程師去完成。

  它是一個微妙的、高技術含量的測試工作。測試過程中出現(xiàn)差錯就會考慮不周到產(chǎn)生不必要的誤差。這種誤差可能造成軟件徹底的崩潰。常見的問題根源可以有以下兩種分析。

  1.完全測試是不現(xiàn)實的

  測試軟件的過程中。不可能完完全全的檢測到所有的漏洞和不足,在實際工作中,往往不能做到全面而且徹底的檢測。我們采取相應的手段和方法來完成盡可能多的測試數(shù)據(jù)和軟件結構。

  在人們考慮的所有情況下,為了保證其穩(wěn)定性,就會讓所有執(zhí)行的代碼全部進行測試,但是這種方式也存在一定的問題,比如大量的輸入,大量的輸出以及執(zhí)行的路程比較復雜,都會引起最終的測試效果。

  2.軟件測試的風險性

  軟件測試的具體目的合理的軟件測試可以節(jié)省大量的時間人員和資源,但是軟件測試過程中存在著很大的困難和風險。盡人皆知,軟件測試有很多種風險??梢苑譃榄h(huán)境不達標、人員技術不夠和管理時間混亂。風險表現(xiàn)為測試環(huán)境不到位和測試時間和人員冗余太多。在控制軟件測試的風險時候,開發(fā)人員采取以下方法:與用戶相互協(xié)商,降低對優(yōu)先級不高的特性和功能,將以后的冗余的功能去除,增加測試人員和測試工具;控制軟件發(fā)布的時間,時間允許的情況下,推遲軟件發(fā)布的時間,刪除影響風險發(fā)生的不必要的功能和環(huán)境;增加測試資源,通過事先準備好的所有條目,設置好測試環(huán)境,按照列出的條目逐個逐個的進行檢查和測試。要想真正的回避風險是不能的,必須制定一個合理的測試項目的管理方案,針對常見的風險進行分類匯總,建立防患于未然和預防為主的管理意識。

3.軟件測試的目的

  軟件測試的具體目的決定著如何來組織進行測試工作。通常情況下軟件測試工作的目的主要有:

  一是為發(fā)現(xiàn)程序的錯誤從而進行測試,

  二是測試用以證明軟件的程序存在錯誤,并非證明該程序不存在錯誤;

  三是好測試其功能在于可以發(fā)現(xiàn)以前沒有發(fā)現(xiàn)的一些錯誤等等。因此,必須關注測試的具體目的,進行測試用例的選擇時要遵循經(jīng)濟性原則。

4.軟件測試的分類

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

5.軟件測試的要求[2]

  1.客觀性

  對軟件測試和軟件中的錯誤必須持客觀的態(tài)度,避免先入為主,盡量讓第三方或者獨立的部門進行測試,這樣既能以揭露軟件中錯誤的態(tài)度工作,也能不受發(fā)現(xiàn)的錯誤的影響。經(jīng)濟上的獨立性使測試有更充分的條件按測試要求去完成。

  2.專業(yè)性

  軟件測試是技術含量很高的工作,既要有軟件相關知識,還要具備相關管理能力,這就需要有專業(yè)隊伍,并經(jīng)過大量的測試實踐。專業(yè)化分工是提高測試水平、保證測試質(zhì)量、充分發(fā)揮測試效應的必然途徑。

  3.權威性

  由于專業(yè)優(yōu)勢,獨立測試工作形成的測試結果更具信服力,而測試結果常常與軟件的質(zhì)量評價聯(lián)系在一起,專業(yè)化的獨立測試機構的評價更客觀、公正和具有權威性。

  4.資源保證

  獨立測試機構的主要任務是進行獨立測試工作,這使得測試工作在經(jīng)費、人力和時間等方面更有保證,不會因為開發(fā)的壓力而減少對測試的投入,進而降低測試的有效性??梢员苊忾_發(fā)單位側重軟件開發(fā)而對測試工作產(chǎn)生不利的影響。

6.軟件測試的內(nèi)容[2]

  軟件測試主要工作內(nèi)容是驗證和確認。驗證是保證軟件正確地實現(xiàn)了一些特定功能的一系列活動,即保證軟件做了你所期望的事情。驗證確定軟件生存周期中的一個給定階段的產(chǎn)品是否達到前階段確立的需求的過程;驗證程序正確性的形式證明,即采用形式理論證明程序符號設計規(guī)約規(guī)定的過程;評市、審查、測試、檢查、審計等各類活動,或對某些服務或文件等是否和規(guī)定的需求相一致進行判斷和提出報告。

  確認是一系列的活動和過程,目的是想證實在一個給定的外部環(huán)境中軟件的邏輯正確性。即保證軟件以正確的方式來做了這個事件:靜態(tài)確認,不在計算機上實際執(zhí)行程序,通過人工或程序分析來證明軟件的正確性;動態(tài)確認,通過執(zhí)行程序做分析,測試程序的動態(tài)行為,以證實軟件是否存在問題。軟件測試的對象不僅僅是程序測試,軟件測試應該包括整個軟件開發(fā)期間各個階段所產(chǎn)生的文檔,如需求規(guī)格說明、概要設計文檔、詳細設計文檔,當然軟件測試的主要對象還是源程序。

  軟件測試,按照測試過程可分為單元測試、集成測試、確認測試及系統(tǒng)測試等;按照測試內(nèi)容分可分為功能測試、性能測試、界面測試、鏈接測試等。

7.軟件測試的步驟[2]

  (1)測試計劃。根據(jù)用戶需求報告中關于功能要求和性能指標的規(guī)格說明書,定義相應的測試需求報告,即制訂黑盒測試的最高標準;同時,適當選擇測試內(nèi)容,合理安排測試人員、測試時間及測試資源等。

  (2)測試設計。將測試計劃階段制訂的測試需求分解、細化為若干個可執(zhí)行的測試過程,并為每個測試過程選擇適當?shù)?a href="/wiki/%E6%B5%8B%E8%AF%95%E7%94%A8%E4%BE%8B" title="測試用例">測試用例。

  (3)測試開發(fā)。建立可重復使用的自動測試過程。

  (4)測試執(zhí)行。執(zhí)行測試開發(fā)階段建立的自動測試過程,并對所發(fā)現(xiàn)的缺陷進行跟蹤管理。測試人員應本著科學負責的態(tài)度,一步一個腳印地進行測試。

  (5)測試評估。結合量化的測試覆蓋域及缺陷跟蹤報告,對于應用軟件的質(zhì)量和開發(fā)團隊的工作進度及工作效率進行綜合評價。

8.軟件測試的過程[1]

  軟件的測試過程根據(jù)階段的不同可以分為以下幾種測試階段:

  (1)單元測試:這個測試過程是測試的最初階段,測試的主要對象就是單元。通過單元的測試可以將每個模塊的的性能摸查清楚。在實際的操作過程中為了提高測試的有效性,一般采用多種單元測試的方式,比如最常使用的就是選取白盒的測試方法。

  (2)集成測試:也稱組裝測試。這一步測試是在單元測試過程之后來進行,屬于測試的關鍵環(huán)節(jié)。各個測試結束的模塊進行綜合分析,組裝成比較大的模塊進行系統(tǒng)集成分析測試。各個系統(tǒng)之間的接口和連接代碼可以被檢測和分析,最常見的方式就是黑盒測試。

  (3)確認測試:這個測試階段是軟件測試的比較核心的一個模塊,這一測試過程是發(fā)生在集成測試之后的測試過程,這一測試過程被用來仿真軟件的功能和參數(shù)以及某些特點能不能實現(xiàn)使用者的特殊要求通過確認測試可以確定用戶的工作開展與否。

  (4)系統(tǒng)測試:也稱為產(chǎn)品測試。確認測試在滿足用戶的要求之后,系統(tǒng)測試要進行檢測實際環(huán)境和軟件能夠很好的結合協(xié)調(diào)工作。這種測試過程,有必要進行相應的硬件平臺搭建和模擬仿真實驗。與此同時,相應的軟件系統(tǒng)和客戶應該參與進來進行測試和評估。綜合可以說,如果軟件測試通過以上幾種測試最終達到了系統(tǒng)測試,那么這個產(chǎn)品基本就符合要求了。

  (5)驗收測試:測試過程的最后一個階段。這一階段主要檢測軟件安裝之后,用戶能否使用該軟件以及軟件的所有功能。軟件和硬件能夠使用戶放心使用和持續(xù)運行是檢驗驗收效果的關鍵。軟件設計者也應該參與這一步的測試和分析。

評論  |   0條評論