在軟體開發中,經常會遇到這樣的情況,單元測試時確認每個模塊都能單獨工作,但這些模塊集成在一起之後會出現有些模塊不能正常工作。例如,在chrome環境下用js寫了一個實時捕捉video中特定區域的模塊,正常工作;利用worker線程進行webgl場景渲染,也正常;可是當兩個運算合併時,出現一個模塊不能正常運行,原因在於兩個模塊不適合在worker線程中結合,基於worker本身的局限性,只能有一個模塊正常工作。所以,很有必要進行集成測試。
(1)集成測試定義:
集成測試是將軟體集成起來,對模塊之間的接口進行測試。
(2)集成種類:
(3)兩種集成測試模式:
優缺點:
漸增式需要編寫的軟體較多,工作量較大,而非漸增式測試開銷小
漸增式測試模式發現模塊間接口錯誤早,而非漸增式測試晚
非漸增式測試模式發現錯誤,較難診斷,而使用漸增式測試模式,如果發生錯誤則往往和最近加進來的那個模塊有關
漸增式測試模式測試更徹底
漸增式測試模式需要較多的機器時間
使用非漸增式測試模式,可以並行測試
具體方法:
自頂向下法:從主控模塊開始,沿著軟體的控制層次向下移動,從而逐漸把各個模塊結合起來。(優點:不需要驅動程序,能在早期發現上層錯誤;缺點:需要樁,低層錯誤發現較晚,在早期不能展開人力)
自底向上法:從原子模塊開始集成以進行測試。
混合策略:基本使用Top-down,但在早期使用Bottom-up;對中較上層,使用Top-down,中較下層,使用Bottom-up。
大棒法:先是對每一個子模塊進行測試(單元測試),然後將所有模塊一次性地全部集成起來進行測試。
三明治法:自兩頭向中間集成。
(4)系統測試
定義:檢驗系統所有元素之間協作是否合適,整個系統的性能和功能是否達到要求。其測試內容包括:功能測試,非功能測試與回歸測試等。
功能測試:主要是根據產品規格說明書,來檢驗被測試的系統是否滿足各方面功能的使用要求。(黑盒測試也長被稱為功能測試,雖然這不是一種準確的說法)
回歸測試:在程序有修改的情況下,保證原有功能正常的一種測試方法。
非功能性測試(特徵測試):性能測試、壓力測試、容量測試、安全性測試、可靠性測試和容錯性測試
系統測試依據:需求說明書,概要設計說明書,詳細設計說明書,最重要的是需求說明書。
確認測試:確認測試又稱有效性測試。有效性測試是在模擬的環境下,運用黑盒測試的方法,驗證被測軟體是否滿足需求規格說明書列出的需求。任務是驗證軟體的功能和性能及其他特性是否與用戶的要求一致。對軟體的功能和性能要求在軟體需求規格說明書中已經明確規定,它包含的信息就是軟體確認測試的基礎。
(5)非功能測試實戰:
選取網站首頁和其他幾個有代表性的頁面進行測試。
http://www.sc.sdu.edu.cn/default.do
http://www.sc.sdu.edu.cn/getMoreNews.do?newsType=84
http://www.sc.sdu.edu.cn/getNewsDetail.do?newsId=7581
這裡只截取這三個界面的測試結果
網頁統計
結果分析
通過測試,我們發現網站首頁的訪問速度比其他頁面慢很多。訪問時間大概在其他網頁的4~6倍。整體上,性能可以滿足學院師生的訪問。
結果
問題及解決方案
1)在 HTTP 標頭中為靜態資源設置過期日期或最長存在時間,可指示瀏覽器從本地磁碟中加載以前下載的資源,而不是通過網絡加載。
利用瀏覽器緩存存儲可緩存的資源。
2)清除首屏內容中阻止呈現的 JavaScript 和 CSS。
網頁中有1個阻止呈現的腳本資源和2個阻止呈現的 CSS 資源。這會導致呈現網頁的過程出現延遲。
3)啟用壓縮。
使用 gzip 或 deflate 壓縮資源可以減少通過網絡發送的字節數。
壓縮 JavaScript 代碼可以節省大量數據字節空間,並提高下載、解析和執行的速度。
適當地設置圖片的格式並進行壓縮可以節省大量的數據字節空間。
壓縮 HTML 代碼(包括其中所含的任何內嵌 JavaScript 和 CSS)可以節省大量數據字節空間,並提高下載和解析的速度。
壓縮 CSS 代碼可以節省大量數據字節空間,並提高下載和解析的速度。
結果
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 #平均每秒網絡上的流量,可以幫助排除是否存在網絡流量過大導致響應時間延長的問題
測試結果
網站首頁的訪問速度比其他頁面慢很多。整體上,性能可以滿足學院師生的訪問。
輸入網址www.sc.sdu.edu.cn,進行檢測,下面給出綜合結果:
看來網站在設計或製作時存在漏洞,進一步我們得到:
安全漏洞集中在「核心數據被非法更改」和「伺服器配置信息洩露」上,應該是在設計資料庫和網頁時沒有做好權限管理。
軟體測試免費視頻觀看連結:https://ke.qq.com/course/159919#tuin=ba4122
松勤網:www.songqinnet.com
微信公眾號:松勤軟體學院
軟體測試交流QQ群:642067188
軟體自動化測試交流QQ群:398140461
軟體性能測試交流QQ群:348074292
打開微信掃一掃 關注松勤軟體學院