軟體測試基本方法(六)之整合測試和系統測試
在軟體開發中,經常會遇到這樣的情況,單元測試時確認每個模組都能單獨工作,但這些模組整合在一起之後會出現有些模組不能正常工作。例如,在chrome環境下用js寫了一個實時捕捉video中特定區域的模組,正常工作;利用worker執行緒進行webgl場景渲染,也正常;可是當兩個運算合併時,出現一個模組不能正常執行,原因在於兩個模組不適合在worker執行緒中結合,基於worker本身的侷限性,只能有一個模組正常工作。所以,很有必要進行整合測試。
(1)整合測試定義:
整合測試是將軟體整合起來,對模組之間的介面進行測試。
(2)整合種類:
- 模組內的整合,主要是測試模組內各個介面間的互動整合關係
- 子系統內的整合,測試子系統內各個模組間的互動關係
- 系統內的整合,測試系統內各個子系統和模組間的整合關係
- 非漸增式測試模式:先分別測試每個模組,再把所有模組按設計要求放在一起結合成所要的程式,如大棒模式
- 漸增式測試模式:把下一個要測試的模組同已經測試好的模組結合進來進行測試,測試完後再把下一個應該測試的模組結合起來測試。漸增式測試又可以根據每次新增模組的路線分為自頂向下測試、自底向上測試和混合測試等方式
- 漸增式需要編寫的軟體較多,工作量較大,而非漸增式測試開銷小
- 漸增式測試模式發現模組間介面錯誤早,而非漸增式測試晚
- 非漸增式測試模式發現錯誤,較難診斷,而使用漸增式測試模式,如果發生錯誤則往往和最近加進來的那個模組有關
- 漸增式測試模式測試更徹底
- 漸增式測試模式需要較多的機器時間
- 使用非漸增式測試模式,可以並行測試
- 自頂向下法:從主控模組開始,沿著軟體的控制層次向下移動,從而逐漸把各個模組結合起來。(優點:不需要驅動程式,能在早期發現上層錯誤;缺點:需要樁,低層錯誤發現較晚,在早期不能展開人力)
- 自底向上法:從原子模組開始整合以進行測試。
- 混合策略:基本使用Top-down,但在早期使用Bottom-up;對中較上層,使用Top-down,中較下層,使用Bottom-up。
- 大棒法:先是對每一個子模組進行測試(單元測試),然後將所有模組一次性地全部整合起來進行測試。
- 三明治法:自兩頭向中間整合。
- 定義:檢驗系統所有元素之間協作是否合適,整個系統的效能和功能是否達到要求。其測試內容包括:功能測試,非功能測試與迴歸測試等。
- 功能測試:主要是根據產品規格說明書,來檢驗被測試的系統是否滿足各方面功能的使用要求。(黑盒測試也長被稱為功能測試,雖然這不是一種準確的說法)
- 迴歸測試:在程式有修改的情況下,保證原有功能正常的一種測試方法。
- 非功能性測試(特徵測試):效能測試、壓力測試、容量測試、安全性測試、可靠性測試和容錯性測試
- 系統測試依據:需求說明書,概要設計說明書,詳細設計說明書,最重要的是需求說明書。
- 確認測試:確認測試又稱有效性測試。有效性測試是在模擬的環境下,運用黑盒測試的方法,驗證被測軟體是否滿足需求規格說明書列出的需求。任務是驗證軟體的功能和效能及其他特性是否與使用者的要求一致。對軟體的功能和效能要求在軟體需求規格說明書中已經明確規定,它包含的資訊就是軟體確認測試的基礎。
- 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線上網站安全檢測
看來網站在設計或製作時存在漏洞,進一步我們得到:
安全漏洞集中在“核心資料被非法更改”和“伺服器配置資訊洩露”上,應該是在設計資料庫和網頁時沒有做好許可權管理。