系統實現與測試

總述:這部分簡單描述了軟件測試部分需要完成的活動,這些活動需要遵循一些規則。系統實現是項目管理重點關注的地方,系統測試一方面是爲了檢查實際情況和要求之間的差距提供糾錯的基礎信息,另一方面是爲了最後的系統交付做準備。

 

1、系統實現

答:系統實現階段是將設計的系統實施的過程。程序設計方法是軟件工程方法學的主要內容之一,主要有結構化程序設計、面向對象程序設計、面向方面的程序設計、可視化程序設計。程序設計語言的具體選擇需要基於系統設計的基礎上進行考慮。

 

2、軟件測試

答:軟件測試是發現軟件錯誤(缺陷)的主要手段,它是軟件交付客戶之前必須完成的重要步驟。

自動化測試主要實現方法包括代碼的靜態和動態分析、測試過程的捕獲與回放、測試腳本技術、虛擬用戶技術、測試管理技術等。自動化測試的優點:提高測試執行速度、提高工作效率、保證測試結果的準確性、連續運行測試腳本、可模擬現實環境下受約束的情況。自動化測試也有缺點,如測試數據變動需要重新調試、只能重複以前測試的不能對未自動化部分測試等。當前流程的自動化測試工具主要使用腳本技術來生成測試用例。腳本的基本結構有:線性腳本、結構化腳本、共享腳本、數據驅動腳本、關鍵字驅動腳本。常用的自動化測試工具有單元測試工具、負載和性能測試工具、GUI功能測試工具、基於Web應用的測試工具,其他方面的測試工具等。

軟件調試屬於技術方面的問題,對於技術人員來說,此處跳過。

 

3、軟件測試方法

答:軟件測試方法分爲靜態測試和動態測試,動態測試一般採用白盒測試和黑盒測試。

靜態測試採用人工檢測和計算機輔助靜態分析的方式進行檢測。靜態測試包括文檔的靜態測試和代碼的靜態測試。絕對文檔的靜態測試主要以檢查單的形式進行;對代碼的靜態測試一般採用桌前檢查(Desk Checking)、代碼審查、代碼走查。靜態測試可以有效發現30%-70%的邏輯設計錯誤和編碼錯誤。桌前檢查是由程序員自己檢查自己編寫的程序。代碼審查是若干程序員和測試人員組成一個會審小組,通過閱讀、討論、爭議,對程序進行靜態分析的過程。代碼走查基本與代碼審查類似,卻別在於代碼走查是需要挑選一批代表性測試案例沿程序邏輯運行一遍,記錄軌跡供分析和討論。在靜態測試中,主要對程序代碼進行靜態分析,包括控制流分析、數據流分析、接口分析、表達式分析。

白盒測試也稱爲結構測試,主要用於軟件的單元測試。白盒測試主要有控制流測試、數據流測試、程序變異測試等。

黑盒測試也稱爲功能測試,主要用於集成測試、確認測試、系統測試階段。黑盒測試根據SRS所規定的功能來設計測試用例,一般包括功能分解、等價類劃分、邊界值分析、判定表、因果圖、狀態圖、隨機測試、錯誤測試、正交實驗法等。

 

4、測試的類型

答:根據國標,軟件測試分爲單元測試、集成測試、配置項測試、系統測試、驗收測試、迴歸測試等。

單元測試也稱爲模塊測試,測試的對象是可獨立編譯或彙編的程序模塊、軟件構件或OO軟件中的類,檢查其是否符合設計說明中的要求。單元測試的技術依據是軟件詳細設計說明書。單元測試的策略主要包括自頂向下、自底向上、孤立測試、綜合測試。單元測試分析一般採用靜態測試分析和動態測試分析結合的方法。

集成測試是檢查模塊之間、模塊和已集成軟件之間的接口關係,並驗證已集成的軟件是否符合設計要求。集成測試的技術依據是軟件的概要設計文檔。集成測試的策略主要包括基於分級的集成策略、基於功能的集成策略、基於調用圖的集成策略等。集成測試分析既包括對被測軟件本身的分析,也包括對測試可行性和測試策略的分析。

系統測試的對象是完整的、集成的計算機系統,系統測試的目的是在真實系統工作環境下,驗證完整的軟件配置項能否和系統正確連接,並滿足系統/子系統設計文檔和軟件開發合同規定的要求。系統測試的技術依據是用戶需求或開發合同。一般來說,系統測試的主要內容包括功能測試、健壯性測試、性能測試、用戶界面測試、安全測試、安裝與反安裝測試等,其中最重要的是功能測試和性能測試。功能測試使用的是黑盒測試。。性能測試主要包括壓力測試、負載測試、併發測試、可靠性測試等。壓力測試通用模型(PTGM)是關於性能測試過程的模型,主要步驟包括測試前期的準備、引入測試工具、制定測試計劃、測試設計與開發、測試執行與管理、測試結果分析。性能測試分析包括性能下降曲線的分析和性能計數器分析。性能計數器分析重點觀察參數,包括內存、處理器、磁盤I/O和進程等;性能下降曲線是性能指標隨用戶數增加的曲線,重點觀察性能平坦區、性能輕微下降區、性能急劇下降區。

其他測試類型有配置項測試、確認測試、迴歸測試。配置項測試的對象是軟件配置項,配置項測試目的是檢驗軟件配置項與SRS的一致性。配置項測試的技術依據是SRS。確認測試主要用於驗證軟件的功能、性能和其他特性是否與用戶需求一致。根據用戶參與程度,確認測試有內部確認測試、阿爾法測試、貝塔測試、驗收測試四種類型。迴歸測試的目的是測試軟件變更後,變更部分的正確性和對變更的符合性,以及軟件原有、正確的功能、性能和其他規定要求的不損害性。

 

5、面向對象系統的測試

答:OO系統的測試分爲單元測試、集成測試、系統測試。從測試活動來看,OO系統的測試可以分爲OOA測試、OOD測試、OOP測試。OOA直接映射問題空間,將問題空間中實例抽象爲對象,用對象的結構反映問題空間的複雜實例和複雜關係,用屬性和操作表示實例的特性和行爲。OOD是以OOA爲基礎,建立類結構或進一步構造類庫,實現分析結構對問題空間的抽象。OOA和OOD測試的方式與軟件分析設計模型的形式密切相關,如果分析模型是紙面的,測試就以文檔審查方式進行;如果分析設計模型的整體或部分可以模擬運行,測試可以建立在模擬運行的基礎上。OOP測試要完成OO系統的封裝性、繼承性、多態性檢測。

OO系統的單元測試包括方法層次的測試、類層次的測試、類樹層次的測試。OO系統的集成測試策略除了借鑑以前的測試策略,產生了大突擊集成、自底向上集成和自頂向下集成、夾層式集成。大突擊集成是先測試所有類,然後把所有類一次集成一起測試。大突擊集成優點是提高測試效率,缺點是測試難以充分進行,增加了調試難度。夾層式集成是先從頂層和底層開始,逐漸向中層靠攏,需要開發大量的測試驅動代碼和測試樁代碼。協作集成是在集成測試是針對系統完成的功能,將可以相互協作完成特定系統功能的類集成到一起進行測試,優點是開銷較小,缺點是協作關係比較複雜。基於使用的集成首先測試幾乎不使用其他類的類並開始構造系統,在獨立類測試完成之後再測試下一層使用獨立類的類,優缺點參考自底向上的集成。 集成策略確定之後,還需要關注如何充分測試類之間的各種連接,包括類關係的多重性測試、受控異常測試、往返場景測試、模態機測試。

 

6、軟件測試的組織

答:根據國標的標準來看,單元測試一般由軟件開發方、供方、第三方進行;集成測試由軟件供方會第三方組織實施,測試和開發應相對獨立;軟件配置項測試一般有供方組織,由獨立於開發之外的人員實施,如果是第三方則應是國家認可的第三方;系統測試有軟件的需方或軟件開發方組織,獨立於開發的人員進行實施,如第三方則是國家認可的第三方;驗收測試由軟件的需方組織,獨立於開發的人員實施,如第三方則應是國家認可的第三方;迴歸測試參考以上測試的環節。

軟件測試的過程一般包括測試策劃、測試設計、測試執行、測試總結等四項活動。軟件測試的管理包括過程管理、配置管理、評審工作。過程管理包括測試活動管理和測試資源管理。測試過程中的評審包括測試就緒評審和測試評審。

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章