软件质量特性及测试类别梳理
一、軟件測試質(zhì)量
ISO9126質(zhì)量模型:軟件質(zhì)量模型的6大特性和27個子特性。
ISO9126軟件質(zhì)量模型是評價軟件質(zhì)量的國際標(biāo)準,由6個特性和27個子特性組成,建議大家深入理解各特性、子特性的含義和區(qū)別,在測試工作需要從這6個特性和27個子特性去測試、評價一個軟件。這個模型是軟件質(zhì)量標(biāo)準的核心,對于大部分的軟件,都可以考慮從這幾個方面著手進行測評。
1、 軟件質(zhì)量的概念:
軟件質(zhì)量是許多質(zhì)量屬性的綜合體現(xiàn),各種質(zhì)量屬性反映了軟件質(zhì)量的方方面面。通過改善軟件的各種質(zhì)量屬性,從而進一步提高軟件的整體質(zhì)量。
2、軟件質(zhì)量模型圖:
(1)功能性
1、適合性:是否提供了相應(yīng)的功能
2、準確性:是不是正確(是不是滿足用戶需要的)
3、互操作性:產(chǎn)品與產(chǎn)品之間交互數(shù)據(jù)的能力
4、保密安全性:允許經(jīng)過授權(quán)的用戶和系統(tǒng)能夠正常的訪問相應(yīng)的數(shù)據(jù)和信息,禁止未授權(quán)的用戶訪問.......
5、功能性的依從性:國際/國家/行業(yè)/企業(yè) 標(biāo)準規(guī)范一致性
(2)可靠性:產(chǎn)品在規(guī)定的條件下,在規(guī)定的時間內(nèi)完成規(guī)定功能的能力
1、成熟性:防止內(nèi)部錯誤導(dǎo)致軟件失效的能力
2、容錯性:軟件出現(xiàn)故障(包含外部錯誤),自我處理能力(能否自行解決)。
3、易恢復(fù)性:失效情況下的恢復(fù)能力,能否恢復(fù)到出錯之前的應(yīng)用
4、可靠性的依從性
(3)易用性:在指定使用條件下,產(chǎn)品被理解、 學(xué)習(xí)、使用和吸引用戶的能力
1、易理解性(是不是容易被用戶理解)
2、易學(xué)性(是不是容易學(xué)習(xí))
3、易操作性(好不好操作)
4、吸引性(是不是吸引用戶)
5、易用性的依從性
(4)效率性:在規(guī)定臺條件下,相對于所用資源的數(shù)量,軟件產(chǎn)品可提供適當(dāng)性能的能力
1、時間特性:平均事務(wù)響應(yīng)時間,吞吐率,TPS(每秒事務(wù)數(shù))--對事物的處理能力好不好, 反應(yīng)快不快,相同的時間內(nèi)能夠處理多少數(shù)據(jù),每一次能夠處理多少個請求。
2、資源利用性:軟件運行的時候,占用服務(wù)器的資源有多少(主要是對CPU、 內(nèi)存 、磁盤 、IO、 網(wǎng)絡(luò)帶寬、 隊列、 共享內(nèi)存的占用),如果占用資源很大,會影響到用戶其他的軟件使用,不容易接受。
3、效率依從性
(5)軟件維護性:"四規(guī)", 在規(guī)定條件下,規(guī)定的時間內(nèi),使用規(guī)定的工具或方法修復(fù)規(guī)定功能的能力
1、易分析性:分析定位問題的難易程度(是否容易對問題進行分析和定位)
2、易改變性:軟件產(chǎn)品使指定的修改可以被實現(xiàn)的能力(是不是容易被修改,添加一些可實現(xiàn)的功能)
3、穩(wěn)定性:防止意外修改導(dǎo)致程序失效(能不能夠防止一些誤操作導(dǎo)致程序失效)。
4、易 測試性:使已修改軟件能被確認的能力(已經(jīng)修改的軟件功能,好不好檢測及確認正確與否)
5、維護性的依從性
(6)軟件可移植性:從一種環(huán)境遷移到另一種環(huán)境的能力
1、適應(yīng)性:適應(yīng)不同平臺(能不能適應(yīng)不同的操作系統(tǒng)OS,linux、mac、windows等)
2、易安裝性:被安裝的能力(軟件是不是容易被安裝)
3、共存性(與其他的軟件能否共存,如果安裝了這個軟件,其他的軟件就使用不了,勢必會被淘汰)
4、易替換性(軟件是不是容易被其他的產(chǎn)品替代,不易替換更好)
5、可移植性的依從性
軟件質(zhì)量實例:
榨汁機
?功能:能夠榨豆?jié){、水果汁(蘋果、梨、西瓜……)
?性能:榨一公斤黃豆需要多長時間?
?耗能:榨一公斤黃豆耗電量多少?
?安全性:榨汁過程中有無人體安全防護措施?有無漏電保護?
?可靠性:榨汁機能持續(xù)穩(wěn)定運轉(zhuǎn)多長時間?
?易用性:榨汁機的操作是否簡單方便?
….
酒店:
?建筑:客房、西餐廳、宴會廳、酒吧、健身房……
?設(shè)施:配套設(shè)施的品牌、檔次
?環(huán)境:交通、風(fēng)景……
?服務(wù):服務(wù)品種、服務(wù)態(tài)度、響應(yīng)客戶要求的及時性……
……
3、軟件測試與QA的區(qū)別
a.從性質(zhì)上來看——QA屬于管理的工作。
b.從對象上來看——測試的對象是軟件研產(chǎn)品,大多數(shù)工作是對研發(fā)領(lǐng)域的檢驗。QA的對象是整個軟件過程,覆蓋各個領(lǐng)域。
c.從手段上來看——測試以事后檢查為主,QA強調(diào)的是缺陷預(yù)防。
4、質(zhì)量保證活動與軟件測試的關(guān)系:
二、軟件測試的類型:
1、功能測試
概念:功能測試時根據(jù)產(chǎn)品的需求規(guī)格說明書,和測試需求列表,驗證產(chǎn)品的功能實現(xiàn)是否符合產(chǎn)品的需求規(guī)格
目標(biāo):功能測試主要是為了發(fā)現(xiàn)以下幾類錯誤---(1)是否有不正確或者遺漏了的功能?(2)功能實現(xiàn)是否滿足用戶的需求和系統(tǒng)設(shè)計的隱藏需求?(3)輸入能否正確接受?能否正確輸出結(jié)果
2、性能測試
(1)性能測試(Performance Testing)就是用來測試軟件在集成系統(tǒng)中的運行性能的。
(2)目標(biāo):度量系統(tǒng)相對于預(yù)定義目標(biāo)的差距(實際結(jié)果目標(biāo)與預(yù)期是否一致及差距有多少)。
(3)性能測試必須要有工具的支持,市面上有一些專門用于GUI或者Web的性能測試工具,如:Loadrunner Jmeter SilkPerformer WebLoad。
(4)性能測試收集的情況有哪些?
a.CPU的使用情況(占用百分之多少)
b.IO的使用情況(IO讀寫的使用情況)
c.信道占用
d.每個模塊執(zhí)行時間百分比
e.一個模塊等待IO完工的時間百分比
f.指令隨著時間的跟蹤路徑
g.每一組指令頁換入和換出的次數(shù)
h.系統(tǒng)的反應(yīng)時間(對輸入結(jié)果多久能夠響應(yīng))。
I.系統(tǒng)吞吐量—每個時間單元的處理數(shù)量是多少
J.所有主要指令的單元執(zhí)行時間。
3、負載測試
概念:是超過被測對象標(biāo)準性能負荷指標(biāo)下,驗證系統(tǒng)的負載承受能力。并要求超負荷情況下、依然正常實現(xiàn)業(yè)務(wù)能力。
負載測試通過不斷對被測對象施加負荷,觀察被測對象在不同負載下的性能表現(xiàn)(強調(diào)運行速度如何)。
4、壓力測試(Stress Testing)--關(guān)注運行的速度有多快
目的:調(diào)查系統(tǒng)在其資源超負荷的情況下的表現(xiàn)。尤其感興趣的是這些對系統(tǒng)處理時間有什么影響。這類測試在一中需要反常數(shù)量、頻率或者資源的方式下執(zhí)行系統(tǒng)。
目標(biāo):通過極限測試方法,發(fā)現(xiàn)系統(tǒng)在極限或惡劣環(huán)境中自我保護能力。主要驗證系統(tǒng)的可靠性,找到系統(tǒng)薄弱環(huán)節(jié)。
成千上萬的用戶在同一時間登錄到Internet;
同時引入大量的操作。
5、容量測試(Volume Testing)--面向數(shù)據(jù)的一個測試,關(guān)注能夠承受多少數(shù)據(jù)。
目的:使系統(tǒng)承受超額的數(shù)據(jù)容量來發(fā)現(xiàn)它是否能夠正確處理。
容量測試時面向數(shù)據(jù)的,并且它的目的是顯示系統(tǒng)可以處理目標(biāo)內(nèi)確定的數(shù)據(jù)容量。
容量測試實例:
使用編譯器編譯一個極其龐大的源程序;
一個操作系統(tǒng)的任務(wù)隊列被充滿。
龐大的Email信息和文件充滿Internet。
6、安全性測試(security Testing)
安全測試用來驗證集成在系統(tǒng)內(nèi)的保護機制是否能夠在實際中保護系統(tǒng)不受非法的侵入,用來保證系統(tǒng)本身數(shù)據(jù)的完整性和保密性。如當(dāng)系統(tǒng)受到惡意攻擊(黑客)時,設(shè)備的自我保護能力,病毒防護 能力,自定義通信協(xié)議安全性(別人使用相同的通信協(xié)議,是不是會連接到你的系統(tǒng),攻擊你的系統(tǒng))等。廣義的還包括物理安全性測試、業(yè)務(wù)安全性測試。
一些功能性的安全性問題:
(1)沒有口令是否可以登錄到系統(tǒng)?
(2)各級用戶權(quán)限劃分是否合理?
(3)錯誤和文件訪問是否適當(dāng)?shù)乇挥涗洝罩竟芾恚?/p>
(4)系統(tǒng)配置數(shù)據(jù)是否能正確保存,系統(tǒng)故障時是否能恢復(fù)?
安全性測試內(nèi)容(從哪些方面來考慮安全性測試):
(1) 系統(tǒng)的登錄
(2) 用戶管理(分級管理權(quán)限,該你看的給你看,不該你看的,你就看不到,普通用戶和VIP的操作模塊不同,數(shù)據(jù)保密)
(3) 防火墻(防自己、防別人—黑客)
(4) 系統(tǒng)數(shù)據(jù)的承載及穩(wěn)定性
(5) WEB安全性,如WEB加密,解密,數(shù)字簽名等(用戶數(shù)據(jù)保密性,密碼顯示一般不會明文顯示,用“*”顯示,保存時也是經(jīng)過一些算法對其加密后存儲在文檔內(nèi),防止別人找到你的文件就找到你的密碼)。
(6) 數(shù)據(jù)庫的安全性。
(7) 內(nèi)部通信協(xié)議(測內(nèi)部通信協(xié)議是否正確實現(xiàn))
(8) 系統(tǒng)防病毒測試
7、GUI(Graphical User Interface)測試—針對軟件系統(tǒng)GUI界面進行的測試,主要包含兩個方面內(nèi)容:
(1)界面實現(xiàn)和界面設(shè)計的吻合情況。
(2)確認界面處理是否正確。
常用的GUI自動化工具:QTP、SilkTest、QARun、QuickTestProfessional、selenium等。
GUI測試對象:
a. 簡單界面元素—界面區(qū)域(功能和屬性相對比較單一的),通常指各種控件(按鈕等)。重點檢查
b. 組合類界面元素—主要是指一些復(fù)雜的界面元素(工具欄、組合框、表格、菜單欄)等。
c. 完整界面(窗口)--由一系列界面元素通過適當(dāng)?shù)男问浇M合而成的界面形式,最為常見的就是各種窗口(各種對話框、單文檔窗口、多文檔父窗口、多文檔子窗口等)。
8、可用性測試(Usability Testing)--為了檢測用戶在理解和使用系統(tǒng)方面到底有多好,主要考慮產(chǎn)品是否符合實際應(yīng)用的情況,是否符合用戶的使用習(xí)慣和特殊要求,軟件的操作方式是否方便合理,設(shè)備和用戶之間的交互信息是否準確易于理解,有沒有遵從行業(yè)習(xí)慣,外觀界面是否美觀等。應(yīng)該要涉及到所有和用戶有交互的功能和子系統(tǒng)。包括系統(tǒng)功能、系統(tǒng)發(fā)布、幫助文檔和過程,用來保證用戶能夠舒適地和系統(tǒng)進行交互。
一些測試人員應(yīng)當(dāng)關(guān)注的可用性問題:
a. 過分復(fù)雜的功能或者指令;
b.困難的安裝過程;
c.錯誤信息不準確或者過于簡單;
d.用戶被迫去記住太多的信息;
e.語法、格式和定義不一致
9、安裝卸載測試:
定義:系統(tǒng)的可安裝性測試,主要是根據(jù)軟件的測試特性列表、軟件安裝、配置文檔,設(shè)計安裝過程的測試用例,發(fā)現(xiàn)軟件在安裝過程中的錯誤
目的:系統(tǒng)可安裝性測試的目的不僅是找安裝軟件本身的錯誤,而且還要找安裝文檔的錯誤。在安裝軟件系統(tǒng)時,會有多種選擇,要分配和裝入文件與程序,布置適當(dāng)?shù)呐渲茫M行程序的聯(lián)結(jié)。而安裝測試就要找出這些安裝過程中出現(xiàn)的錯誤
10、異常測試
概念:系統(tǒng)異常測試又叫系統(tǒng)容錯和可恢復(fù)性測試,它是通過人工干預(yù)手段使系統(tǒng)產(chǎn)生軟、硬件異常,通過驗證系統(tǒng)異常前后的功能和運行狀態(tài),達到檢驗系統(tǒng)的容錯、排錯和恢復(fù)的能力。它是系統(tǒng)可靠性評價的重要手段
容錯處理:
? 系統(tǒng)自動處理
? 人工干預(yù)處理
注意:
? 系統(tǒng)異常測試還與系統(tǒng)的指標(biāo)測試有關(guān)系,當(dāng)系統(tǒng)需要提供的服務(wù)能力大于系統(tǒng)的設(shè)計指標(biāo)時,也屬于系統(tǒng)異常的情況,因此應(yīng)該結(jié)合起來加以考慮
? 系統(tǒng)的可靠性是設(shè)計出來的,而不是測試出來的。測試出來的數(shù)據(jù)有助于為我們進行進一步的系統(tǒng)優(yōu)化設(shè)計積累經(jīng)驗,設(shè)計和測試是一個互為反饋的過程。
11、文檔測試(Documentation Testing)
目標(biāo)----驗證用戶文檔是正確的,并且保證操作手冊的過程能夠正確工作。
12、網(wǎng)絡(luò)測試(接口測試)
概念:網(wǎng)絡(luò)測試是在網(wǎng)絡(luò)環(huán)境下和其他設(shè)備對接,進行系統(tǒng)功能、性能與指標(biāo)方面的測試,保證設(shè)備對接正常
內(nèi)容:網(wǎng)絡(luò)測試考察系統(tǒng)的處理能力、系統(tǒng)兼容性、系統(tǒng)穩(wěn)定可靠性及用戶使用等方面。
如通信產(chǎn)品,主要進行協(xié)議測試:
? 一致性測試:檢測所實現(xiàn)的系統(tǒng)與協(xié)議規(guī)范符合程度
? 性能測試:檢測協(xié)議實體或系統(tǒng)的性能指標(biāo)(數(shù)據(jù)傳輸率、聯(lián)接時間,執(zhí)行速度、吞吐量、并發(fā)數(shù)等)
? 互操作性測試:檢測同一協(xié)議不同實現(xiàn)廠商之間,同一協(xié)議不同實現(xiàn)版本之間、或同一類協(xié)議不同實現(xiàn)版本之間互通能力和互連操作能力
? 堅固性測試:檢測協(xié)議實體或系統(tǒng)在各種惡劣環(huán)境下運行的能力(信道被切斷、通信設(shè)備掉電、注入干擾報文等)
13、穩(wěn)定性測試
系統(tǒng)穩(wěn)定性測試目的是評價系統(tǒng)在一定負荷情況下、長時間的運行情況。包括系統(tǒng)在一定負荷下,再增加新的業(yè)務(wù),原有的業(yè)務(wù)是否受影響,新的業(yè)務(wù)能不能正常工作,系統(tǒng)資源有沒有泄漏,數(shù)據(jù)有沒有不一致的情況,系統(tǒng)性能是否會降下來,關(guān)鍵點是長時間的運行后,系統(tǒng)的狀況如何,系統(tǒng)平均無故障時間MTBF是否滿足系統(tǒng)設(shè)計要求
14、兼容性測試
兼容性測試驗證被測對象與硬件、其他軟件之間的兼容情況。不同的瀏覽器,不同的設(shè)備、不同的操作系統(tǒng)之間的兼容
三、軟件的測試方法
1、主要軟件測試方法:
a. 黑盒測試、白盒測試、灰盒測試
b. 靜態(tài)測試、動態(tài)測試。
c. 人工測試、自動化測試
2、 軟件測試的兩種極端情況:
第一種:知道產(chǎn)品的需求規(guī)格,但是不知道其內(nèi)部邏輯實現(xiàn),可以進行測試證明每個需求是否實現(xiàn)—黑盒測試—關(guān)心業(yè)務(wù)需求
第二種:知道產(chǎn)品的內(nèi)部邏輯實現(xiàn)功能,可以通過測試證明每種內(nèi)部操作是否符合設(shè)計規(guī)格的要求,所有內(nèi)部成分是否通過檢查—白盒測試,--早期介入進行,龐大的測試系統(tǒng)在現(xiàn)實中不太現(xiàn)實。
現(xiàn)實中大多用黑盒測試。
灰盒測試是白盒測試和黑盒測試兩種相結(jié)合測試。
白盒測試:依據(jù)被測軟件分析程序內(nèi)部構(gòu)造,并根據(jù)內(nèi)部構(gòu)造設(shè)計用例,來對內(nèi)部控制流程進行測試,可完全不顧程序的整體功能實現(xiàn)情況。
白盒測試是基于程序結(jié)構(gòu)的邏輯驅(qū)動測試。
白盒測試又可以被稱為玻璃盒測試、透明盒測試、開放盒測試、結(jié)構(gòu)化測試、
邏輯驅(qū)動測試
白盒測試常用技術(shù):
? 靜態(tài)分析:控制流分析、數(shù)據(jù)流分析、信息流分析等
? 動態(tài)分析:邏輯覆蓋測試(分支測試、路徑測試等)、程序插裝等
白盒測試中常見的覆蓋有六種:語句覆蓋、判定覆蓋、條件覆蓋、判定/條件覆蓋、組合覆蓋和路徑覆蓋(測試力度逐漸增強,最常用的是組合覆蓋法,路徑覆蓋法對大型的測試用例來講,太復(fù)雜,時間過長)
黑盒測試:發(fā)現(xiàn)問題,解決成本比較高。
? 功能性測試,一種是順序測試每個程序特性或功能,另一種途徑是一個模塊一個模塊的測試,即每個功能在其最先調(diào)用的地方被測試;
? 容量測試,檢測軟件在處理海量數(shù)據(jù)時的局限性,能發(fā)現(xiàn)系統(tǒng)效率方面的問題;
? 負載測試,檢測系統(tǒng)在一個很短時間內(nèi)處理一個巨大的數(shù)據(jù)量或執(zhí)行許多功能調(diào)用上的能力;
? 恢復(fù)性測試,主要保證系統(tǒng)在崩潰后能夠恢復(fù)外部數(shù)據(jù)的能力;
黑盒測試特點:
? 對于更大的代碼單元來說(子系統(tǒng)甚至系統(tǒng)級)比白盒測試效率要高;
? 測試人員不需要了解實現(xiàn)的細節(jié),包括特定的編程語言;
? 從用戶的視角進行測試,很容易被大家理解和接受;
? 有助于暴露任何規(guī)格不一致或有歧義的問題;
靜態(tài)測試:(是否運行被測軟件,分為靜態(tài)測試和動態(tài)試)
不運行被測試的軟件系統(tǒng),而是采用其他手段和技術(shù)對被測試軟件進行檢測的一種測試技術(shù)。例如:代碼走讀、文檔評審、程序分析等都是靜態(tài)測試的范疇。常用技術(shù)有靜態(tài)分析技術(shù)。
動態(tài)測試:
按照預(yù)先設(shè)計的數(shù)據(jù)和步驟去運行被測軟件系統(tǒng),從而對被測軟件系統(tǒng)進行檢測的一種測試技術(shù)。常用技術(shù)有動態(tài)分析技術(shù)。
人工測試:
測試活動(如評審、測試設(shè)計、測試執(zhí)行等)由人來完成,狹義上是指測試執(zhí)行由人工完成,這是最基本的測試形式
自動化測試:
一般是指通過計算機模擬人的測試行為,替代人的測試活動,狹義上是指測試執(zhí)行由計算機來完成(主要是回歸測試中使用,就是一些重復(fù)性的功能的測試,新功能不建議使用自動化測試,手工測試發(fā)現(xiàn)bug能力強。)
四、測試階段及各階段的輸出:
1、測試階段主要有:
A.測試計劃階段 – 測試計劃
B.測試設(shè)計階段 – 測試方案(設(shè)計方法的細節(jié)文檔)
C.測試實現(xiàn)階段 – 測試用例、測試規(guī)程
D.測試執(zhí)行階段 – 測試報告
2、測試各階段的工作內(nèi)容及輸出文檔:
(1) 測試計劃:指明測試范圍、方法、資源,以及相應(yīng)測試活動的時間進度安排表的文檔。--(測試的范圍是多大,使用什么測試方法,資源的分配,項目測試時間進度的安排等)
(2) 測試方案:指明為完成軟件或軟件集成特性的測試而進行的設(shè)計測試方法的細節(jié)文檔。
(3) 測試用例:指明為完成一個測試項的測試輸入、預(yù)期結(jié)果、測試執(zhí)行條件等因素的文檔。
(4) 測試規(guī)程:指明執(zhí)行測試時測試活動序列的文檔。
(5) 測試報告:指明執(zhí)行測試結(jié)果的文檔。
(6) 測試日報:每天測試執(zhí)行情況的記錄和總結(jié)。
3、測試工程師系統(tǒng)測試各階段任務(wù):
軟件需求階段:評審軟件需求規(guī)格說明書
軟件設(shè)計階段:評審軟件概要設(shè)計說明書、軟件詳細設(shè)計說明書、協(xié)助編寫系統(tǒng)測試計劃
軟件編碼階段:設(shè)計系統(tǒng)測試用例、準備測試資源(測試工具、測試環(huán)境等)、開發(fā)測試腳本、開發(fā)測試工具、準備測試數(shù)據(jù)
軟件測試階段:執(zhí)行測試用例、提交缺陷單、跟蹤缺陷、回歸測試、提交測試報告
QA和測試的區(qū)別:
1. 從性質(zhì)上看:
測試----屬于技術(shù)的工作
QA----屬于管理的工作
2. 從對象上看:
測試的對象----軟件研發(fā)產(chǎn)品,大多數(shù)工作是對研發(fā)領(lǐng)域的檢驗
QA的對象----整個軟件過程,覆蓋各個領(lǐng)域
3.從手段上看:
測試----事后檢查為主
QA----強調(diào)的是缺陷預(yù)防(提前預(yù)防)
總結(jié)
以上是生活随笔為你收集整理的软件质量特性及测试类别梳理的全部內(nèi)容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: 服务器设备日常维护与管理论文,浅谈设备管
- 下一篇: Python下载M3U8小鹅通回放视频代