1. 程式人生 > >軟體測試基本方法(六)之整合測試和系統測試

軟體測試基本方法(六)之整合測試和系統測試

在軟體開發中,經常會遇到這樣的情況,單元測試時確認每個模組都能單獨工作,但這些模組整合在一起之後會出現有些模組不能正常工作。例如,在chrome環境下用js寫了一個實時捕捉video中特定區域的模組,正常工作;利用worker執行緒進行webgl場景渲染,也正常;可是當兩個運算合併時,出現一個模組不能正常執行,原因在於兩個模組不適合在worker執行緒中結合,基於worker本身的侷限性,只能有一個模組正常工作。所以,很有必要進行整合測試。

(1)整合測試定義:

整合測試是將軟體整合起來,對模組之間的介面進行測試。

(2)整合種類:

  • 模組內的整合,主要是測試模組內各個介面間的互動整合關係
  • 子系統內的整合,測試子系統內各個模組間的互動關係
  • 系統內的整合,測試系統內各個子系統和模組間的整合關係
(3)兩種整合測試模式:
  • 非漸增式測試模式:先分別測試每個模組,再把所有模組按設計要求放在一起結合成所要的程式,如大棒模式
  • 漸增式測試模式:把下一個要測試的模組同已經測試好的模組結合進來進行測試,測試完後再把下一個應該測試的模組結合起來測試。漸增式測試又可以根據每次新增模組的路線分為自頂向下測試自底向上測試混合測試等方式
優缺點:
  • 漸增式需要編寫的軟體較多,工作量較大,而非漸增式測試開銷小
  • 漸增式測試模式發現模組間介面錯誤早,而非漸增式測試晚
  • 非漸增式測試模式發現錯誤,較難診斷,而使用漸增式測試模式,如果發生錯誤則往往和最近加進來的那個模組有關
  • 漸增式測試模式測試更徹底
  • 漸增式測試模式需要較多的機器時間
  • 使用非漸增式測試模式,可以並行測試
具體方法:
  • 自頂向下法:從主控模組開始,沿著軟體的控制層次向下移動,從而逐漸把各個模組結合起來。(優點:不需要驅動程式,能在早期發現上層錯誤;缺點:需要樁,低層錯誤發現較晚,在早期不能展開人力)
  • 自底向上法:從原子模組開始整合以進行測試。
  • 混合策略:基本使用Top-down,但在早期使用Bottom-up;對中較上層,使用Top-down,中較下層,使用Bottom-up。
  • 大棒法:先是對每一個子模組進行測試(單元測試),然後將所有模組一次性地全部整合起來進行測試。
  • 三明治法:自兩頭向中間整合。
(4)系統測試
  • 定義:檢驗系統所有元素之間協作是否合適,整個系統的效能和功能是否達到要求。其測試內容包括:功能測試非功能測試迴歸測試等。
  • 功能測試:主要是根據產品規格說明書,來檢驗被測試的系統是否滿足各方面功能的使用要求。(黑盒測試也長被稱為功能測試,雖然這不是一種準確的說法)
  • 迴歸測試:在程式有修改的情況下,保證原有功能正常的一種測試方法。
  • 非功能性測試(特徵測試):效能測試、壓力測試、容量測試、安全性測試、可靠性測試和容錯性測試
  • 系統測試依據:需求說明書,概要設計說明書,詳細設計說明書,最重要的是需求說明書。
  • 確認測試:確認測試又稱有效性測試。有效性測試是在模擬的環境下,運用黑盒測試的方法,驗證被測軟體是否滿足需求規格說明書列出的需求。任務是驗證軟體的功能和效能及其他特性是否與使用者的要求一致。對軟體的功能和效能要求在軟體需求規格說明書中已經明確規定,它包含的資訊就是軟體確認測試的基礎。
(5)非功能測試實戰:
  • pagespeed.webkaka.com線上網站效能測試

選取網站首頁和其他幾個有代表性的頁面進行測試。

http://www.sc.sdu.edu.cn/default.do

http://www.sc.sdu.edu.cn/getMoreNews.do?newsType=84

這裡只擷取這三個介面的測試結果


 網頁統計


結果分析

通過測試,我們發現網站首頁的訪問速度比其他頁面慢很多。訪問時間大概在其他網頁的4~6倍。整體上,效能可以滿足學院師生的訪問。

  • Google PageSpeedInsights線上測試工具

結果


問題及解決方案

1)在 HTTP 標頭中為靜態資源設定過期日期或最長存在時間,可指示瀏覽器從本地磁碟中載入以前下載的資源,而不是通過網路載入。
利用瀏覽器快取儲存可快取的資源。

2)清除首屏內容中阻止呈現的 JavaScript 和 CSS。

網頁中有1個阻止呈現的指令碼資源和2個阻止呈現的 CSS 資源。這會導致呈現網頁的過程出現延遲。

3)啟用壓縮。

使用 gzip 或 deflate 壓縮資源可以減少通過網路傳送的位元組數。

壓縮 JavaScript 程式碼可以節省大量資料位元組空間,並提高下載、解析和執行的速度。

適當地設定圖片的格式並進行壓縮可以節省大量的資料位元組空間。
壓縮 HTML 程式碼(包括其中所含的任何內嵌 JavaScript 和 CSS)可以節省大量資料位元組空間,並提高下載和解析的速度。
壓縮 CSS 程式碼可以節省大量資料位元組空間,並提高下載和解析的速度。



  • apache ab工具

結果

This is ApacheBench, Version 2.0.41-dev <$Revision: 1.121.2.12 $> apache-2.0
Copyright (c) 1996 Adam Twiss, Zeus Technology Ltd, http://www.zeustech.net/
Copyright (c) 2006 The Apache Software Foundation, http://www.apache.org/

Server Software:

*****************

Server Hostname:

www.sc.sdu.edu.cn

Server Port:

80

Document Path:

/default.do

Document Length:

21541 bytes

Concurrency Level:

40

Time taken for tests:

0.273954 seconds

Complete requests:

1000

Failed requests:

0

Total transferred:

21757000 bytes

HTML transferred:

21541000 bytes

Requests per second:

3.65

Transfer rate:

79.42 kb/s received

Connnection Times (ms)

min

avg

max

Connect:

0

3

47

Processing:

4521

10830

16780

Total:

4521

10833

16827

This is ApacheBench, Version 2.0.41-dev <$Revision: 1.121.2.12 $> apache-2.0
Copyright (c) 1996 Adam Twiss, Zeus Technology Ltd, http://www.zeustech.net/
Copyright (c) 2006 The Apache Software Foundation, http://www.apache.org/

Server Software:

*****************

Server Hostname:

www.sc.sdu.edu.cn

Server Port:

80

Document Path:

/getNewsDetail.do?newsId=7525

Document Length:

7134 bytes

Concurrency Level:

40

Time taken for tests:

0.5438 seconds

Complete requests:

1000

Failed requests:

0

Total transferred:

7372000 bytes

HTML transferred:

7134000 bytes

Requests per second:

183.89

Transfer rate:

1355.65 kb/s received

Connnection Times (ms)

min

avg

max

Connect:

1

1

23

Processing:

14

212

281

Total:

15

213

304

引數解釋

Document Path             #測試的頁面

Document Length          #頁面大小

Concurrency Level        #測試的併發數

Time taken fortests              #整個測試持續的時間

Complete requests         #完成的請求數量

Failed requests              #失敗的請求數量

Write errors: 0

Total transferred            #整個過程中的網路傳輸量

HTML transferred          #整個過程中的HTML內容傳輸量

Requests persecond       #相當於LR中的每秒事務數,後面括號中的mean表示這是一個平均值

Time per request    #相當於LR中的平均事務響應時間,後面括號中的mean表示這是一個平均值

Time per request    #每個連線請求實際執行時間的平均值

Transfer rate          #平均每秒網路上的流量,可以幫助排除是否存在網路流量過大導致響應時間延長的問題

測試結果

網站首頁的訪問速度比其他頁面慢很多。整體上,效能可以滿足學院師生的訪問。

  • 網站安全性測試——360線上網站安全檢測
輸入網址www.sc.sdu.edu.cn,進行檢測,下面給出綜合結果:


看來網站在設計或製作時存在漏洞,進一步我們得到:


安全漏洞集中在“核心資料被非法更改”和“伺服器配置資訊洩露”上,應該是在設計資料庫和網頁時沒有做好許可權管理。