軟件測試基礎 - 系統測試


      系統測試(System Testing),是將已經確認的軟件、計算機硬件、外設、網絡等其他元素結合在一起,進行信息系統的各種組裝測試和確認測試。系統測試是針對整個產品系統進行的測試,目的是驗證系統是否滿足了需求規格的定義,找出與需求規格不符或與之矛盾的地方,從而提出更加完善的方案。

 

一、系統測試的常用類型

  

 

1.功能測試(Functionality Testing)***

概念:根據產品的需求規格說明書和功能測試需求列表,驗證產品的功能實現是否符合產品的需求規格。

測試思路:a.確定功能需求列表;

              b.分析功能測試項得出功能測試子項;

              c.根據測試子項分析輸入(個數、類型、范圍、長度)、處理(有效-計算方式,公式,無效)和輸出(結果格式、用戶接口)

              d.采用測試用例方法設計用例——等價類,邊界值,因果圖,判定表...

案例:對下面網站的注冊功能進行測試

首先,確定功能需求列表:用戶名  密碼  確認密碼  Email 

其次,確定功能需求子項:由於只有一種注冊方式  因而沒有注冊子項(若可以通過郵箱、QQ、微信等其它多種方式注冊,可以列出子項)

然后,根據需求列進行輸入:用戶名(6~20字母數字特殊字符組合),密碼,確認密碼(6~20字母數字特殊字符組合),郵箱(字母或者數字組合,同時包含@)(知道每個需求的范圍、類型、長度)

處理過程:系統會進行用戶名唯一性檢查;有效性檢查;密碼和確認密碼一致性檢查等等;

輸出提示:可能會提示“用戶名不唯一”;格式不正確;密碼和確認密碼不一致等等;

最后,設計測試用例:例如用戶名:w0_men1 密碼:w0_men1 確認密碼:w0_men1  郵箱:womenoo@126.com

 

2.GUI測試(Graphical User Interface)

概念:GUI測試是針對軟件系統GUI界面進行的測試,主要包括兩方面:一是界面實現與界面設計的吻合情況;二是確認界面處理的正確性——控件的功能(結合業務功能關注控件功能)。

測試對象:

              a.簡單界面元素:指功能和屬性相對比較單一的界面區域,即通常所指的各種控件;

              b.組合類界面元素:主要指一些復雜的界面元素,如工具欄,組合框,表格,菜單欄等;

              c.完整界面(窗口):由一系列界面元素通過適當的形式組合而成的界面形式,最為常見的為各種窗口。包括各種對話框、單文檔窗口、多文檔父窗口,多文檔子窗口等;

測試內容:外觀、界面元素行為、布局、友好功能;

測試方法:

              ---對於簡單界面元素,主要關注它的外觀、表現的行為;

              ---對於組合類界面元素:可以將其分解為一系列的簡單界面元素,然后再進行處理;

              ---對於完整界面:需要關注他的外觀、布局以及行為

 

3.易用性測試(Usability Testing)

概念:驗證產品是否符合實際應用情況,是否符合用戶習慣或特殊要求,操作方式是否方便合理、設備和用戶間的交互信息是否准確易於理解、是否遵從行業習慣、外觀/界面是否美觀等。

測試內容:涉及到所有和用戶有交互的功能或子系統。這包括系統功能、系統發布、幫助文本和過程,以保證用戶能夠舒適的和系統交互。

 

4.國際化測試(Internationalization Testing)

     簡稱l18N測試,使產品或軟件具有不同國際市場的普遍適應性,從而無需重新設計就可以適應多種語言和文化習俗的過程;真正的國際化要在軟件設計和文檔開發過程中,使產品或軟件的功能和代碼設計能處理多種語言和文化習俗,具有良好的本地化能力。

 

5.本地化測試(Localization Testing)

    簡稱L10N,是指將產品或軟件針對特定國際語言和文化進行加工,使之符合特定區域市場的過程,真正的本地化要考慮目標區域市場的語言、文化、習俗、特征和標准。通常包括改變軟件的書寫系統(輸入法)、鍵盤使用、字體、日期、時間和貨幣等。

 

6.可訪問性測試(Accessibility Testing)

    是指允許聽力、視力或行動有障礙的用戶能夠訪問正常人能夠訪問的相同信息,例如:

         ---支持鍵盤操作(Tab/Enter)

         ---對比度(色弱人群)

         ---屏幕閱讀器可以讀取到的文本標記

         ---大字體/放大縮小(不同的瀏覽器有相關的設置)

         ---工具:Cytnhia Says

 

7.性能測試(Performance Testing)***

概念:驗證系統在不同的業務場景下的響應時間和資源利用率等性能指標是否符合預期定義的標准。

目的:驗證系統的性能指標是否符合要求;發現系統的性能瓶頸和性能調優;

性能指標:

---CPU使用情況

---內存使用情況

---系統響應時間

---系統吞吐量,即每個時間單元的處理數量(例如:系統必須在不超過10s的響應時間,處理20起登錄任務)

測試思路:

           a.根據SRS確定性能需求;

           b.構造業務場景,確定其性能測試指標;

           c.測試設計(腳本設計開發、調試和優化)

           d.確定並執行測試場景;

           e.測試結果分析;

           f.分析性能問題或者瓶頸;

           h.進行性能調優 ;     

 

8.壓力測試(Stress Testing)*

概念:測試在一定負載下系統長時間運行的穩定性,尤其關注大業務量情況下長時間運行系統性能的變化。通過極限測試方法,發現系統在極限或惡劣環境中自我保護能力,主要驗證系統的可靠性。壓力測試的目的是調查系統在其資源超負荷的情況下的表現。尤其感興趣的是這些對系統的處理時間有什么影響。這類測試在一種需要反常數量、頻率或資源的方式下執行系統。

分類:

a.穩定性壓力測試

      在選定的壓力值下,長時間持續運行。通過這種壓力測試,可以考察各項性能指標是否在指定范圍內,有無內存泄漏、有無功能性故障等;

b.破壞性壓力測試

       在穩定性壓力測試中可能會出現一些問題,如系統性能明顯降低,但很難暴露出其真實的原因。通過破壞性不斷加壓的手段,往往能快速造成系統的崩潰或讓問題明顯的暴露出來;

 

9.負載測試(Load Testing)*

      測試在一定負載情況下系統性能(不關注穩定性,也就是說不關注長時間運行,只是得到不同負載下相關性能指標即可);實際中通常從比較小的負載開始,逐漸增加模擬用戶的數量(增加負載),觀察不同負載下應用程序響應時間、所耗資源,直到超時或關鍵資源耗盡,這就是所說的負載測試,它是測試系統的不同負載情況下的性能指標;

 

10.容量測試(Volume Testing)*

     目的是使系統承受超額的數據容量來發現它是否能夠正確處理。容量測試是面向數據的,並且它的目的是顯示系統可以處理目標內確定的數據容量。容量測試可以確定整個系統能夠處理的業務容量,包括不同配置、不同場景下的最大用戶數、最大處理數據記錄數、最大處理文件容量、最大事務量等。它測試的是系統的極限容量

 

11.安全性測試(Security Testing)***

     用來驗證集成在系統內的保護機制是否能夠在實際中保護系統不受到非法的侵入。用來保證系統本身數據的完整性和保密性。如當受到惡意攻擊時,設備的自我保護能力,病毒防護能力,自定義通信協議安全性等。廣義的還包括物理安全性測試、業務安全性測試。

主要是邏輯安全性→業務數據安全性,一般可以從以下方面考慮安全性:權限管理、信息保存、數據庫、協議、其他。

認證和權限

認證:a.注冊登錄才可以訪問;

      b.注冊密碼加密;

      c.密碼的復雜度;

信息保存:

---Log日志

---cookie(類似會員卡) session(類似手機號)

數據庫:

-----默認用戶名和密碼:禁用

Oracle:  Scott, Tiger

-----SQL注入,利用用戶在前端輸入的數據信息和后台的sql語句進行拼接。

協議

http: 透明的,不加密的協議,默認端口:80

https:加密的,安全的http+ssl  默認端口:443     網銀、支付寶

Tcp/IP:三次握手協議  DDOS

安全性測試策略:

      ---分析該功能所有步驟

      ---根據步驟列出所有需要的組件-處理用戶數據部分

      ---畫出組件之間數據是如何傳遞的

      ---確定數據流的傳輸路徑

      ---審核潛在的風險,創建測試用例

 

12.安裝性測試(Installability Testing)

概念:系統的可安裝性測試,主要是根據軟件的測試特性列表,軟件安裝、配置文檔,設計安裝過程的測試用例,發現軟件在安裝過程中的錯誤。

目的:系統可安裝性測試的目的不僅是找安裝軟件本身的錯誤,而且還要找安裝文檔的錯誤。在安裝軟件系統時,會有多種選擇,要分配和裝入文件與程序,布置適當的配置,進行程序的聯結。而安裝測試就要找出這些安裝過程中出現的錯誤。

安裝測試前檢查工作:

---檢查安裝文檔是否齊全;

---檢查被測試軟件的安裝文件是否齊全;

---檢查軟件的文件格式是否與安裝指導中要求的文件格式相符;

安裝過程中的檢查工作:

---所有的預置數據是否齊全;

---軟件環境配置是否合理;

---硬件環境配置是否合理;

---用戶選擇的一套任選方案是否相容;

---安裝的過程測試:安裝過程中,系統要提供缺省的參數值,測試過程中要對缺省的參數值得情況進行安裝測試;指定由人工完成的安裝過程,要列出每一安裝步驟所需的工作,並仔細檢查每一安裝步驟所完成工作的正確性;在安裝測試過程中要設計異常的安裝測試用例,包括配置參數的異常,安裝選項和安裝路徑的異常

---安裝文檔的測試

安裝后要做的檢查工作:

---所有文件是否都已產生並確認有所需的內容;

    程序文件的目錄及子目錄是否正確產生

    各目錄及子目錄下的程序文件是否都正確產生

    是否存在無用的目錄、子目錄、程序文件和無用的臨時文件

    程序文件的目錄及子目錄,以及程序文件本身的權限是否正確

    對於PC Windows下的軟件,還要檢查與應用軟件相配套的動態聯接庫文件是否齊全

---安裝日志的檢查;

---在安裝完成后,要進行程序的運行聯接驗證;

---軟件的卸載測試;

 

13.配置測試(Configuration Testing)

概念:配置測試主要測試系統在各種軟硬件配置、不同的參數配置下系統具有的功能和性能。

目標:驗證全部配置的可操作性和有效性。特別需要對最大配置、最小配置或特殊配置進行測試。一般包括:

a.軟件在不同主機平台上的運行情況;

b.軟件在不同的組件是運行的情況;

c.在不同的外設和不同的接口下的運行情況;

d.不同的可選項的運行情況;

 

14.兼容性測試(Compatibility Testing)

概念:兼容性測試是測試軟件能否與不同的軟件正確協作。

目標:測試軟件能否在不同的操作系統上兼容,或者在同一操作系統的不同版本上兼容;

         軟件本身能否向前向后兼容;

         軟件能否與其他軟件兼容;

 

15.異常測試(Exception Testing)***

概念:系統異常測試又叫系統容錯和可恢復性測試,它是通過人工干預手段使系統產生軟、硬件異常,通過驗證系統異常前后的功能和運行狀態,達到檢驗系統的容錯排錯和恢復能力。它是系統可靠性評價的重要手段。

容錯處理:系統自動處理;人工干預處理

注意:

---系統異常測試還與系統的指標測試有關系,當系統需要提供的服務能力大於系統的設計指標時,也屬於系統異常的情況,因此應該結合起來加以考慮;

---系統的可靠性是設計出來的,而不是測試出來的。測試出來的數據有助於為我們進行進一步的系統優化設計積累經驗,設計和測試時一個互為反饋的過程;

系統可靠性指標和設計技術:

a.系統可靠性指標

系統平均失效時間間隔(MTBF)---Mean Time Between Failure:兩個失效點之間的時間
系統平均恢復時間(MTTR)---Mean Time To Restore   越短系統可靠性越好
平均無故障時間 (MTTF)---Mean Time To Failure  越長越好

b.設計技術

1)避開錯誤:主動規避錯誤,對可以預見的錯誤通過程序進行主動的出錯處理,避免操作系統干預。

測試點:故意構造錯誤的異常的輸入數據;

           邊界條件;

           壓力測試;---發現功能性故障

2)容錯技術(冗余技術)

---結構冗余:對整機進行備份(動態備份---熱備份,上電;靜態備份---冷備份,不上電)

等同於人才儲備

    測試點: 強制斷電; 接入新設備;

---信息冗余:對數據信息進行備份,數據庫備份和恢復;

     測試點: 構造數據庫癱瘓;

                  構造不完整的事務;  復制或剪貼中途故意取消,看數據是否會恢復

---時間冗余:對出現故障的某個時間點,針對該時間點以后的操作,待系統恢復之后,重新再執行一遍。

    測試點:在某個時間點去構造異常

---硬件冗余:對整機中的某個組件進行備份;

 

 16.備份測試(Backup Testing)

         備份測試是恢復性測試的一個補充,目的是驗證系統在軟件或者硬件失敗的事件中備份它數據的能力。

 

17.健壯性測試(Robustness Testing)

        用戶測試系統在出現故障時,是否能夠自動恢復或者忽略故障繼續運行。

 

18.穩定性測試(Stability Testing)

        評價系統在一定負荷情況下,長時間的運行情況。包括系統在一定負荷下,再增加新的業務,原有的業務是否受影響,新的業務是否能正常工作,系統資源有無泄漏,數據有無不一致的情況,系統性能是夠會降下來,關鍵點是長時間的運行后,系統的狀況如何,系統平均無故障時間MTBF是否滿足系統設計要求。(不變的負載:變化的負載)

 

19.文檔測試(Documentation Testing)

        目標是驗證用戶文檔是正確的並且保證操作手冊的過程能夠正確工作。

 

20.在線幫助測試(Online Help Testing)

         主要用戶驗證系統的實時在線幫助的可用性和正確性。

 

二、系統測試的四個階段

系統測試計划階段:完成系統測試計划;

系統測試設計階段:完成系統測試方案;

系統測試實現階段:完成系統測試用例、系統測試教程、系統測試預測試項;

系統測試執行階段:執行系統測試預測試項、系統測試用例,修改發現的問題並進行回歸測試,提交系統預測試報告、系統測試報告、缺陷報告;

 

三、系統環境測試要素

1.硬件環境

         指測試必須的服務器、客戶端、網絡連接設備,以及測試儀器、打印機/掃描儀等輔助硬件設備所構成的環境。

2.軟件環境

         指被測軟件運行時的操作系統、數據庫、共享軟件、測試工具及相關手冊給等其他應用軟件構成的環境。

---在實際測試中,軟件環境又可分為主測試環境和輔測試環境;

---主測試環境是測試軟件功能、安全可靠性、性能、易用性等大多數指標的主要環境;

---輔測試環境常常用來滿足不同的測試需求或特殊測試項目。

3.主測試環境配置原則

a.符合軟件運行的最低要求。測試環境首先要保證能支撐軟件正常運行。

b.選用比較普及的操作系統和平台;

c.營造相對簡單、獨立的測試環境。除了操作系統,測試機上只安裝軟件運行和測試必須的軟件,以免不相關的軟件影響測試實施;

d.無毒的環境:利用有效的正版殺毒軟件檢測軟件環境,保證測試環境中沒有病毒;

 

4.輔測試環境配置原則

a.兼容性測試:在滿足軟件運行要求的范圍內,可選擇一些典型的操作系統和常用應用軟件對其安裝卸載和主要功能進行驗證;

b.模擬真實環境測試:有些軟件,特別是面向大眾的商品化軟件,在測試時常常需要考察在真實環境中的表現;

c.橫向對比測試:利用輔助測試環境“克隆”出完全一致的測試環境,從而保證各個被測軟件平等對比;

 


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM