軟體測試基本方法之集成測試和系統測試

2021-02-13 松勤軟體學院

在軟體開發中,經常會遇到這樣的情況,單元測試時確認每個模塊都能單獨工作,但這些模塊集成在一起之後會出現有些模塊不能正常工作。例如,在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


打開微信掃一掃  關注松勤軟體學院

相關焦點

  • 軟體測試基礎 (三): 系統測試
    大家好,我是BugBear,一個專注於分享軟體測試乾貨的測試開發。我們已經學習了 單元測試 和 集成測試,今天我們來學習系統測試。一、系統測試定義系統測試是針對整個產品系統進行的測試,目的是驗證系統是否滿足了需求規格的定義,找出與需求規格不符或與之矛盾的地方,從而提出更加完善的方案。系統測試發現問題之後要經過調試找出錯誤原因和位置,然後進行改正,是基於系統整體需求說明書的黑盒類測試,應覆蓋系統所有聯合的部件。
  • 聊聊軟體系統測試
    當測試工程師測試軟體時,從測試單元測試開始,單元測試需要測試每個功能和每行代碼。然後,通過測試整個子系統(多個軟體單元組合到一起),然後整個系統,最後每個功能逐漸進行。圖1顯示了V型模型的右側,側重於測試階段。
  • 系統測試的方法
    功能測試:功能測試屬於黑盒測試,是系統測試中最基本的測試。功能測試主要根據產品的需求規格說明和測試需求列表,驗證產品是否符合需求規格說明。
  • 測試理論——SIT測試 和 UAT測試概念
    下面簡單介紹一下SIT和UAT的基本情況。  SIT(SystemIntegrationTesting)系統集成測試,也叫做集成測試,是軟體測試的一個術語,在其中單獨的軟體模塊被合併和作為一個組測試。它在單元測試以後和在系統測試之前。
  • Spring Boot 的單元測試和集成測試
    學習如何使用本教程中提供的工具,並在 Spring Boot 環境中編寫單元測試和集成測試。1. 概覽 本文中,我們將了解如何編寫單元測試並將其集成在 Spring Boot 環境中。你可在網上找到大量關於這個主題的教程,但很難在一個頁面中找到你需要的所有信息。我經常注意到初級開發人員混淆了單元測試和集成測試的概念,特別是在談到 Spring 生態系統時。
  • 系統軟體測試計劃書Word模板
    測試技術和方法6.7評價準則和方法7關鍵資源7.1硬體環境7.2軟體環境7.3網絡環境8角色和職責9測試活動和進度計劃5應交付的測試成果文檔軟體測試計劃、軟體測試說明(含測試用例)、軟體測試報告。6.4.2測試終端標準l各個模塊集成之後,30%的功能出現一二級缺陷,測試終止,重新進行編碼;l出現重大需求變更(包括影響系統的體系結構,主要功能模塊的流程變動),測試需要終止。
  • 軟體測試江湖的神兵利器
    經集成測試後,已經按照設計把所有的模塊組裝成一個完整的軟體系統,接口錯誤也已經基本排除了,接著就應該進一步驗證軟體的有效性,這就是確認測試的任務,即軟體的功能和性能如同用戶所合理期待的那樣。 系統測試
  • 證監會發布實施《證券期貨業軟體測試指南 軟體安全測試》等三項...
    摘要 近日,證監會發布《證券期貨業軟體測試指南軟體安全測試》《證券期貨業移動網際網路應用程式安全規範》《證券期貨業於銀行間業務數據交換協議第1部分:三方存管、銀期轉帳和結售匯業務》等三項金融行業標準,自公布之日起施行。
  • 軟體測試課程教與學(教學大綱)
    本課程與培養目標的關係是:軟體測試工作要求學生具備軟體測試基本理論、技術方法和項目測試實施及項目測試管理等職業能力,使學生能夠設計測試用例、使用自動化工具完成完整的項目測試和項目測試管理,使學生能基本承擔起軟體測試的工作任務,具備軟體測試崗位必備的職業能力,同時為學生獲取軟體測試工程師職業資格證書奠定基礎。
  • 軟體測試工程師具體工作內容是什麼?
    使用各種測試技術和方法來測試和發現軟體中存在的軟體缺陷。測試技術主要分為黑盒測試和白盒測試兩大類。
  • 未名企鵝極客|軟體單元測試的基本原則
    本期未名企鵝極客欄目,研發工程師給大家分享的是一些單元測試的基本原則。 單元測試的粒度要根據實際情況判定,可能是類、方法等,在面向對象編程中,通常認為最小的單元就是方法。
  • 軟體的生命&測試的流程
    2 、軟體生命周期模型    瀑布型、V模型、敏捷開發模型2.1、   特點具有順序性和依賴性。每個階段定義文檔需進行文檔評審。  問題定義及規劃↔需求分析↔設計↔編碼↔測試↔運行維護接口測試不同於集成測試。
  • 凡貓軟體測試——軟體測試理論
    介紹軟體測試相關理論,軟體測試的定義、目的,軟體測試的原則,軟體質量模型,軟體測試的基本流程等。
  • (轉)《Google軟體測試之道》讀書筆記(大綱)
    《Google軟體測試之道》這本書想必很多做測試的人都聽過
  • 【ITA】談談汽車ECU軟體測試
    無論你是從事汽車軟體工程的哪一個職位,都應該對軟體測試的基本概念和流程有一定的了解。所以我想感興趣的同學應該會不少吧。我們就以ISO26262軟體部分描述的V型開發流程為線索,舉一個實際例子來說明。1假設現在我寫了一個系統級的需求(System Requirement),也就是圖1裡的「Technical Safety Concept」:(這裡多說一句和測試無關的話,所有的Techincal Safety Concept都是系統級需求,不是軟體需求,面試的時候別搞混了)The Adaptive Cruise Control (ACC) function shall only be
  • 軟體測試基礎理論知識,你確定不來圍觀?
    軟體測試的IEEE定義:使用人工或自動的手段來運行或測量軟體系統的過程,目的是檢驗軟體系統是否滿足規定的需求,並找出與預期結果之間的差異。軟體測試的發展趨勢:  ① 測試工作將進一步前移。軟體測試不僅僅是單元測試、集成測試、系統測試和驗收測試,還對需求的精確性和完整性的測試技術、對系統設計的測試技術將成為新的研究熱點。
  • 軟體測試溝通基礎話術(一)
    比如python的變量和基本數據類型,輸入輸出語句,集合和元組操作,以及循環和條件判斷操作,還有python中的字典和set集合操作,以及python中面向對象編程,異常,單元測試這些內容,比較熟悉。自動化測試軟體:selenium和appium這兩個軟體我也使用的比較熟悉,當然也算不上精通,基本的操作,寫一些自動化測試腳本是沒有問題的。
  • alpha測試和beta測試
    尤其注重產品的界面和特色。α測試可以從軟體產品編碼結束之時開始,或在模塊(子系統)測試完成之後開始,也可以在確認測試過程中產品達到一定的穩定和可靠程度之後再開始。本文引用地址:http://www.eepw.com.cn/article/201706/347764.htm  基本概述  α測試是指軟體開發公司組織內部人員模擬各類用戶行對即將面市軟體產品(稱為α版本)進行測試,試圖發現錯誤並修正。α測試的關鍵在於儘可能逼真地模擬實際運行環境和用戶對軟體產品的操作並盡最大努力涵蓋所有可能的 用戶操作方式。
  • 計算機四級軟體測試工程師考前預測試題及解析(2)
    (A)在設計測試用例時不能將這兩種方法結合在一起同時使用     (B)不同輸入變量之間可能存在約束關係,它們不能處理這類約束關係     (C)不能用於大型信息系統的測試用例的設計     (D)不能用於單元測試和集成測試     11.下列關於測試方法
  • 單元測試常用的方法
    單元測試的基本策略   1.概述   當設計一個單元測試的策略時,可以採用三種基本的組織方法。它們分別是自上而下法、自下而上法和分離法。在接下來的第二、第三和第四部分將對上述三種方法的詳細內容、各自的優點和缺點分別進行介紹。在文章中要一直用到測試驅動和樁模塊這兩個概念。