天天看點

軟體測試的一些定義/性能測試的一些定義

軟體測試的一些定義

1. 什麼是軟體測試?

為了發現程式中的錯誤而執行程式的過程。--> 弄清預期結果與實際結果之間的差别。

2.  軟體測試分類:

根據項目流程階段:

單元測試:子產品接口(輸入參數與形式參數個數屬性順序是否比對);路徑;錯誤處理;邊界條件(某程式的規格要求說明書計算出每月保險金扣除額為0-1165.25元--邊界值可取0.00,1165.25,-0.01,1165.26)

內建測試:穿越子產品接口的資料是否丢失;功能;影響其他功能;

系統測試:功能;性能;安全;相容

驗收測試:功能确認;安全可靠性;易用性(ie支援多個頁籤并存為浏覽多個網頁提供了快捷途徑);可擴充性;相容性(對css解釋不統一;特效使用發生誤差;函數解釋不同);資源占用率測試;使用者文檔資料驗收(如關注文檔正确性,完備性,一緻性,易了解性等)

功能與性能:

功能測試:邏輯功能;界面測試(整體界面風格--如兒童活潑;不同界面圖示統一--如标記x一樣;窗體界面--如放大控件也大);易用性;安裝測試;相容性測試(ietest;不同系統可安裝虛拟機)

性能測試:時間性能;空間性能

功能測試與非功能測試

功能測試:功能指的是系統能做什麼。安全性測試(對安全性相關的功能如防火牆進行測試。檢測系統和資料能否抵禦外部惡意威脅如病毒);互操作性--評估軟體産品與其他一個或多個元件或系統互動能力。

非功能測試:測試系統運作的表現如何。性能--以性能預期目标為前提不斷施加壓力,驗證系統在資源可接受範圍内,是否能達到性能預期;負載--不斷增加壓力或增加一定壓力下的持續時間,直到系統的某項或多項性能名額達到極限如某種資源已經飽和狀态;壓力--超過安全負載情況下,對系統不斷施加壓力,通過确定一個系統的瓶頸或不能接受的使用者請求的性能點的最大服務級别;可用性;可維護性;可靠性;可移植性;穩定性--使系統運作較長一段時間

根據測試工作對軟體代碼的可見程度劃分(按測試技術分:黑盒;白盒):

黑盒測試:

白盒測試:

灰盒測試

測試技術:

黑盒測試:設計技術(基于規格說明的技術)是分析測試基礎文檔來選擇測試條件、測試用例或測試資料的技術。包括了功能和非功能;等價類劃分;邊界值分析;決策表測試;狀态轉換測試;用例測試

白盒測試:設計技術(結構化或基于結構的測試技術)基于分析被測元件或系統的結構的測試技術。語句覆寫和覆寫率;判定覆寫和覆寫率;基于結構的覆寫-如條件覆寫和多重條件覆寫。

基于經驗的技術:錯誤推測法;探索性測試

Alpha 和 Beta 測試

Alpha:工廠驗收測試

Beta:現場驗收測試

手工測試與自動化測試:

手工測試:

自動化測試: 功能自動化;性能自動化

其他測試:

冒煙測試:對一個新版本進行大規模測試之前

回歸測試:修改了舊代碼後

随機測試:放在測試的最後執行--更新版是探索性測試

安全測試:産品開發基本完成。工具:Nmap主要包括四個方面的掃描功能,分别是主機發現、端口掃描、應用與版本偵測、作業系統偵測。這四項功能之間,又存在大緻的依賴關系。通常情況下順序關系。指定的目标可以是一個IP位址,也可以是主機名(Nmap會自動解析其主機名)如nmap 192.168.1.105 從輸出資訊中,可以看到目标主機192.168.1.105上開啟的端口有21、22、23、111、445,及這些端口所對應的服務。而且,還可以看到該目标主機的MAC位址為00:0C:29:31:02:17。從最後一行資訊,可以看出目标主機是活動的(up),并且掃描該目标主機共用了0.87秒。nmap -A 192.168.1.105可以明顯看出比前面例子掃描結果更詳細。在以上輸出資訊中,可以看到目标主機上開啟的端口、伺服器、版本、作業系統版本、核心、系統類型等。根據分析輸出的資訊,可知目标主機上運作了FTP、SSH、Telnet等服務,并且可以看到各服務的版本及權限資訊。而且,還可以知道目标主機的作業系統是Linux,核心版本為2.6.32等

維護測試:移植測試(轉換測試);資料移植測試;存檔測試;

測試原則:

殺蟲劑悖論:為了克服“殺蟲劑悖論”,測試用例需要經常的評審和修改,不斷增加新的不同的測試用例來測試軟體或系統的不同部分,保證測試用例永遠是最新的,即包含着最後一次程式代碼或說明文檔的更新資訊。這樣軟體中未被測試過的部分或者先前沒有被使用過的輸入組合就會重新執行,進而發現更多的缺陷。軟體測試人員必須不斷地編寫新的不同的測試來檢驗程式的不同部分進而找出更多的bug。讓其他的人來測試你的程式将有助于打破”殺蟲劑悖論”。

軟體錯誤:

軟體錯誤:軟體生存期内的人為錯誤,導緻軟體缺陷産生。

         是人為過程,相對于軟體本身是外部行為。

軟體缺陷:存在于軟體(文檔、資料、程式)中的偏差,導緻軟體在某個特定條件下出現故障,這時稱軟體       缺陷被激活。

軟體故障:軟體運作過程中出現的不希望或不可接收的内部狀态。是動态行為。

軟體失效:軟體運作時産生的不希望或不可接受的外部行為結果。

   綜上:軟體錯誤是一種人為錯誤。一個軟體錯誤必定産生一個或多個軟體缺陷。當一個軟體缺陷被激活時,便産生一個軟體故障;同一個軟體缺陷在不同條件下被激活,可能産生不同的軟體故障。軟體故障如果沒有集市的容錯措施加以處理,便不可避免地導緻軟體失效;同一個軟體故障在不同條件下可能産生不同的軟體失效。

軟體缺陷的分類:

  • 按問題引出不同
  • 按功能(子產品)
  • 按缺陷的嚴重程度:影響進度的問題;當機;功能問題;界面問題;建議性問題
  • 按修複缺陷的優先級:高 應立即修複的問題;中 可排隊處理的問題;低 可滞後處理的問題

性能測試的一些定義

1. 什麼是軟體性能?

軟體性能應該是一種名額,通過這個名額可以衡量,系統或構件性能達到的程度。也是對軟體性能需求的一個測試和評估,用來驗收或評估軟體達到的性能程度。

2.性能測試相關術語

a) 響應時間

是使用者送出一個請求,系統從開始呈現到将所有資訊都呈現到用戶端所需要的時間

b) 并發使用者數

指同一時刻與伺服器進行資料互動的所有使用者數量。如a系統期望使用者1000個,使用系統使用者數量*(5%-20%)隻要測出能支援100個并發使用者就可以了

c) 吞吐量

吞吐量是伺服器發給用戶端的流量,不包括用戶端發給伺服器的流量

d) 吞吐率

指機關時間内的資料傳輸量,即吞吐量/傳輸時間,也可以是機關時間内處理的客戶請求數。它是衡量網絡性能一個重要名額。通常情況下吞吐量越大,吞吐率的值也越大。以不同的方式表達的吞吐量可以說明不同層次的問題。例如,以位元組數/秒方式表示的吞吐率主要受網絡基礎設定、伺服器架構、應用伺服器制約;以請求數/秒方式(tps-transaction per second)

衡量系統處理能力的重要名額,它表示的吞吐率主要受應用伺服器和應用代碼的制約。吞吐率越大表示系統的負載能力越強。

吞吐率作為性能測試時主要關注的一個名額,與虛拟使用者數之間存在一定的關系,當系統沒有遇到性的瓶頸時,可以采用下面這個公式來計算。

如下表:吞吐率為(1*4)/2.392s=1.67  個request/sec  

e) 點選率 指每秒鐘使用者向 Web 伺服器送出的 HTTP 的數量

g) 資源使用率

指的是系統資源被占用的情況,主要包括CPU使用率、記憶體使用率、磁盤使用率、網絡等

h) 性能計數器

是描述伺服器或作業系統性能的一些資料名額。主要是通過添加計數器來觀察系統資源的使用情況

i) 思考時間 (ThinkTime)

也稱為“休眠時間”,從業務層面來說,這個時間是指使用者在進行操作時,每個請求之間的時間間隔

3. 性能測試劃分

a) 負載測試

是通過對被測試系統不斷的加壓,直到超過預定的名額或者是部分資源已經達到了一種飽和狀态不能再加壓為止。

流程: 

  1. 計劃負載測試:計劃哪些準備:如并發使用者數,主要業務流程,需要的相應次數。
  2. 建立Vuser腳本
  3. 設計場景--用controler建立一個負載測試的環境
  4. 運作場景--用controler驅動,管理并監控這個負載測試。
  5. 分析結果--用analysis生成圖表與報表,對系統性能進行評估。

loadrunner監控器:監控每一層次的結構性能:loadrunner 提供了許多主要的背景系統的元件(包括web,application,database,以及erp/crm伺服器)的監控器如确定負載對你cpu(處理器)disk()

b) 壓力測試

指當系統已經達到一定的飽和程度(如CPU、磁盤等已經處于一種飽和狀态),系統處理業務的能力,系統是否會出現崩潰等

c) 配置測試

配置測試 (ConfigurationTesting)是通過調整系統軟/硬體環境,了解在不同環境下系統性能名額的情況,進而找到系統的最優配置。

d)并發測試

并發測試(ConcurrencyTesting)是通過模拟使用者并發通路,測試多使用者同時通路同一應用、子產品或資料,觀察系統是否存在死鎖、系統處理速度明顯下降等其它的一些性能問題

e) 可靠性測試

是當系統在一定的業務壓力下,讓系統持續運作一段時間,看系統是否達到我們要求的穩定性,這裡強調在一定業務壓力下持續運作的能力,一定都會有一個明确的要求,例如:持續運作多少天系統不能出現問題

4. 性能測試應用領域

a) 能力驗證

能力驗證是性能測試最常用的一個領域。一般能力驗證采用這樣的描述方式:“某系統能否在條件A下具備B性能”

b) 規劃能力

規劃能力與能力驗證有相似之處,但還是有不一樣的地方,能力驗證強調的是在某個條件下具備什麼樣的能力,而規劃能力展現在系統如何才能達到要求的性能名額

c) 性能調優

性能調優是通過測試來調整系統的環境,最終使系統性能達到最優的狀态。這是一個持續調優的過程,主要調優的對象有資料參數、應用伺服器、系統的硬體資源等--确定基準環境,負載,性能名額-調整系統運作環境實作方法執行測試-記錄測試結果進行分析

d) 發現缺陷

性能測試應用領域的主要目标是通過性能測試的手段來發現系統存在的缺陷

手機App測試

1: 中斷:來電中斷;短信中斷;其他(藍牙,充電,鬧鐘,插拔資料線,手機鎖定,斷電,當機重新開機)

2 :安裝新版本

3: 相容性:不同型号,廠家,分辨率,螢幕大小

軟硬體:

指資訊系統運作的環境,主要包括硬體(伺服器,存儲,網絡裝置等)和軟體(作業系統,資料庫,中間件,通訊協定等)部分。 

可擴充性原則:

硬體平台能夠根據業務需要進行動态設定,如處理器、記憶體網絡和I/o卡能夠滿足業務需求:為不确定的業務需求迅速作出反應。如軟體平台能夠支援系統處理節點的擴充,例如應用伺服器,web伺服器,資料庫伺服器節點數的擴充。網卡具有多個pci-e,pci-x插槽,伺服器機箱設有多個硬碟托架,能放置更多的硬碟。