一、軟件測試的定義和意義
軟件測試是伴隨著軟件工程的重要組成部分,是軟件質量保證的重要前提。軟件測試是為了盡快盡早地發現在軟件產品中所存在的各種軟件缺陷而展開的貫穿整個軟件開發生命周期,對軟件產品進行驗證和確認的活動過程。在開發大型系統的過程中,面對復雜的現實情況,軟件生存周期的各個階段都有可能產生差錯。
(一)軟件測試的目標和原則
1.軟件測試目標
以最少的時間和人力,盡可能多地發現程序中的錯誤和缺陷。測試還要證明,軟件的功能和性能與需求說明相符合。
2.軟件測試原則
測試既不要不充分,也不要過分。在通常情況下,在分析,設計、實驗階段的復審和測試工作能夠發現和避免80%的bug,而系統的軟件測試能找到其余bug的80%,最后約4%的bug只有在用戶大范圍、長時間的使用后才會暴露出來。應該把“盡早和不斷地進行測試”作為開發者的座右銘,問題發現的越早,解決問題的代價就越小。徹底的測試是不可能的,但充分覆蓋程序邏輯,并確保軟件的所有條件是有可能的。所有的測試都應該追溯到用戶需求。測試應從“小規模”開始,逐步轉向“大規模”,應針對每個測試結果做全面檢查。
二、軟件測試的方法
軟件測試的方法和技術是多種多樣的,從大的分類上來說,分為白盒測試和黑盒測試。對于不同的項目和不同的階段來說,往往需要用到不同的測試手段。
(一) 白盒測試
白盒測試是把軟件看成一個白盒子,在完全知道軟件結果的情況下,通過分析程序內部的邏輯與執行路徑來設計測試用戶,并對用例進行測試的方法,所以也稱結構測試或者數據驅動測試。白盒測試主要用于單元測試,方法有邏輯覆蓋和路徑測試。其中邏輯覆蓋包括:語句覆蓋、判定覆蓋、條件覆蓋、點覆蓋、邊覆蓋等。白盒測試的缺點是投入人力資源的難度很大,執行白盒測試的測試人員要有不亞于開發人員的技術背景和對代碼的熟悉程度。
(二)黑盒測試
黑盒測試是把軟件開成一個黑盒子,不考慮程序的內部結構與執行路徑如何,根據輸入/輸出數據條件來設計測試用例,查看程序的功能是否正確或滿足用戶要求,因此也稱作功能驅動或數據驅動測試方法。黑盒測試主要用于軟件確認測試,方法有等價類劃分、邊界值分析、錯誤推測法、因果圖法等。黑盒測試對和數要求不高,如何在對系統結構不了解的情況下,設計測試過程才是黑盒測試最核心的部分。
(三)自動測試
在業務量很大的情況下,需要測試數據或者測試輸入時,自動測試就是一個最佳的選擇。自動測試是可重復性的測試并目有著很高的速度與效率,但是自動測試也有一些缺點。前期要花費購買工具,并且測試腳本的開發需要投入很多時間和人力。
(四)壓力測試
壓力測試指為了某個單一的目的,大強度地重復性的使用軟件的某一功能,以發現該功能在壓力條件下的性能指標。軟件上市前對不夠自信的功能進行專項的,不顧邏輯的,無所不用其極的對待待測軟件。或者是軟件上市后對客戶反饋的模糊信息進行集中的測試以精確定位問題。
(五) 功能測試
功能測試是指測試軟件各個功能模塊是否正確,邏輯是否正確。對測試對象的功能測試應側重于所有可直接追蹤到用例或業務功能和業務規則的測試需求。這種測試的目標是核實數據的接受,外理和檢索是否正確以及業務規則的實施是否恰當。此類測試基于黑盒技術,該技術通過圖形用戶(GUI)與應用程序進行交互,并對交互的輸出或結果進行分析,以此來核實應用程序及其內部進程。
(六)性能測試
性能測試主要測試軟件的性能指標是否達到預期要求。包括負載測試,強度測試,數據庫容量測試,以及基準測試。
(七)用戶界面測試(UI測試)
UI測試是對用戶界面的風格、圖片、背景、文字的測試。用戶界面測試用于合適用戶與軟件之間的交互。一般有這樣一些指標,第一是界面的有效性,第二是界面的連貫性,第三是界面傳統型。主要包括用戶界面的友好性,人性化,易操作性等方面的測試。
(八)文檔測試
文檔測試是對伴隨軟件同事提供給用戶的各種使用手冊,說明書,須知等進行的測試。文檔測試是為了避免文檔描述和軟件系統實際不一致的情況發生。
三、軟件測試過程
(一)單元測試
單元測試也稱模塊測試,是針對軟件設計的最小單元程序模塊進行測試的工作。目的是檢查出模塊內部的錯誤,修改這些錯誤使得程序正確運行。
(二) 集成測試
集成測試也稱組裝測試,就是按照一定的策略對單元測試的模塊進行組裝,并在組裝過程中進行模塊接口與系統功能測試。集成測試的策略主要有兩種方式,分為一次性組裝方式和增值式組裝方式。
(三)確認測試
確認測試也稱為有效性測試,目的是驗證軟件的功能和性能是否滿足客戶的要求,確認測試是用戶參加的測試討程,采用的測試方法是黑盒測試,為了盡可能多的發現你只有用戶在使用系統過程中才能發現的問題。
(四)系統測試
系統測試是經過了前面的測試過程之后,軟件系統已經基本符合要求,進行系統測試的目的是測試軟件安裝之后,能否與系統的其余部分協調工作,以及對系統運行可能出現的各種情況的處理能力。系統測試主要是有恢復測試,安全測試,強度測試,性能測試等。
四、軟件測試執行標準
1.GB/T 25000.51-2016《系統與軟件工程 系統與軟件質量要求和評價(SQuaRE) 第51部分:就緒可用軟件產品(RUSP)的質量要求和測試細則》;
2.GB/T 15532-2008《計算機軟件測試規范》;
3.GB/T 34943-2017《C/C++語言源代碼漏洞測試規范》 ;
4.GB/T 34944-2017《Java 語言源代碼漏洞測試規范》;
5.GJB/Z 141-2004《專用軟件測試指南》。
我們秉承科學嚴謹的工作態度,以客戶為中心,高效統籌安排測試計劃,竭力縮短測試時間的周期,為客戶提供快捷、公正的第三方咨詢檢測等服務。服務區域遍布廣東廣州、深圳、東莞、佛山、中山、珠海、清遠、惠州、茂名、揭陽、梅州、江門、肇慶、汕頭、潮州、河源、韶關及全國各地如您有相關產品需要咨詢,歡迎您直接來電咨詢我司工作人員,獲得詳細的費用報價與周期方案等信息,深圳訊科期待您的光臨!