
軟件質(zhì)量:
功能性、可靠性、易用性、效率、可維護性、可移植性
軟件測試類型:
GUI測試
功能測試
性能測試
負載測試
壓力測試
容量測試
安全性測試
兼容性測試
穩(wěn)定性測試
可用性測試
異常測試
文檔測試
安裝卸載測試
接口測試
-------------------------測試類型的具體介紹--------------------------
1、功能測試:
概念: 功能測試是根據(jù)產(chǎn)品的需求規(guī)格說明書、或概要、詳細設(shè)計文檔,驗證被測試對象的功能實現(xiàn)是否符合預期。
目標:功能測試主要是為了發(fā)現(xiàn)以下幾類錯誤:
?是否有不正確或遺漏了的功能?
?功能實現(xiàn)是否滿足用戶需求和系統(tǒng)設(shè)計的隱藏需求?
?輸入能否正確接受?能否正確輸出結(jié)果?
例如:
???????? 單元測試中的某個函數(shù)功能是否正確。
???????? 系統(tǒng)測試中的登錄功能是否正常。
2、性能測試:
?性能測試(PerformanceTesting)就是用來測試軟件在集成系統(tǒng)中的運行性能的,驗證被測試對象的性能是否符合預期。
?性能測試有時需要有工具支持,市面上有一些專門用于性能測試的工具,如Loadrunner,Jmeter等 。
?例如:
???? 單元測試時測試加法函數(shù)完成加法運算消耗的時間
???? 系統(tǒng)測試時測試大量用戶使用淘寶系統(tǒng)時,確認系統(tǒng)的響應(yīng)時間
性能測試關(guān)注的指標:
響應(yīng)時間
業(yè)務(wù)成功率
CPU占用情況
內(nèi)存占用情況
硬盤讀寫情況
并發(fā)用戶量
3、負載測試:
?負載測試是通過給被測試系統(tǒng)施加不同的符合,觀察被測試系統(tǒng)在不同的負載下的性能表現(xiàn)。
目標:
驗證系統(tǒng)在不同用戶壓力下,性能的相關(guān)指標和表現(xiàn)。
找到系統(tǒng)處理能力的極限和臨界點。
例子:
-分別測試50個用戶、100個用戶、500個用戶同時去登陸系統(tǒng),驗證在不同的用戶負載下系統(tǒng)的性能指標
4、壓力測試:
?壓力測試(Stress Testing)的目的是調(diào)查系統(tǒng)在其資源超負荷的情況下的表現(xiàn)。尤其感興趣的是這些對系統(tǒng)的處理時間有什么影響。這類測試在一種需要反常數(shù)量、頻率或資源的方式下執(zhí)行系統(tǒng)。
目標:
???通過極限測試方法,發(fā)現(xiàn)系統(tǒng)在極限或惡劣環(huán)境中自我保護能力。主要驗證系統(tǒng)的可靠性,找到系統(tǒng)薄弱環(huán)節(jié)。
例子:
-模擬1000個用戶同時去購物,讓cpu占用率達到100%,運行一段時間看系統(tǒng)哪個節(jié)點先崩潰
5、容量測試:
?容量測試(VolumeTesting)的目的是使系統(tǒng)承受超額的數(shù)據(jù)容量來發(fā)現(xiàn)它是否能夠正確處理。容量測試是面向數(shù)據(jù)的,并且它的目的是顯示系統(tǒng)可以處理目標內(nèi)確定的數(shù)據(jù)容量。
例子:
-使用編譯器編譯一個極其龐大的源程序;
-一個操作系統(tǒng)的任務(wù)隊列被充滿;
-龐大的Email信息和文件充滿了Internet。
6、穩(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(MeanTimeBetweenFailure)是否滿足系統(tǒng)設(shè)計要求。
7、安全性測試
?安全測試(Security Testing)用來驗證集成在系統(tǒng)內(nèi)的保護機制是否能夠在實際中保護系統(tǒng)不受到非法的侵入。 用來保證系統(tǒng)本身數(shù)據(jù)的完整性和保密性。如當受到惡意攻擊時,設(shè)備的自我保護能力,病毒防護能力,自定義通信協(xié)議安全性等。
一些功能性的安全性問題:
-沒有口令是否可以登錄到系統(tǒng)中?
-各級用戶權(quán)限劃分是否合理?
-錯誤和文件訪問是否適當?shù)乇挥涗洠?/p>
-系統(tǒng)配置數(shù)據(jù)是否能正確保存,系統(tǒng)故障時是否能恢復?
-----------------------安全性測試內(nèi)容-------------------------
一般可以從以下方面考慮安全性測試
?系統(tǒng)的登錄
?用戶管理
?防火墻
?系統(tǒng)數(shù)據(jù)
?WEB安全性,如WEB的加密,解密,數(shù)字簽名等
?數(shù)據(jù)庫的安全性
?內(nèi)部通信協(xié)議
?系統(tǒng)防病毒測試
8、兼容性測試
兼容性測試是指測試軟件在特定的硬件平臺上、不同的應(yīng)用軟件之間、不同的操作系統(tǒng)平臺上、不同的網(wǎng)絡(luò)等環(huán)境中是否能夠很友好的運行的測試
例如:app在不同的Android系統(tǒng)版本上運行
?????????? app軟件軟件在不同的分辨率的手機上運行
?????????? 使用不同的瀏覽器訪問網(wǎng)站
? ? ? ? ? ?不同分辨率大小
? ? ? ? ? ? 不同品牌手機
9、GUI測試(GraphicalUserInterface)
?GUI測試是針對軟件系統(tǒng)GUI界面進行的測試
?GUI測試主要包括兩方面的內(nèi)容:
???? 界面實現(xiàn)與界面設(shè)計的吻合情況;
???? 確認界面處理的正確性。
???? 界面是否美觀
10、可用性測試
?? 可用性測試(UsabilityTesting)是為了檢測用戶在理解和使用系統(tǒng)方面到底有多好。主要考慮產(chǎn)品是否符合實際應(yīng)用情況,是否符合用戶習慣或特殊要求,操作方式是否方便合理、設(shè)備和用戶間的交互信息是否準確易于理解、是否遵從行業(yè)習慣、外觀/界面是否美觀等。應(yīng)涉及到所有和用戶有交互的功能或子系統(tǒng)。這包括系統(tǒng)功能、系統(tǒng)發(fā)布、幫助文本和過程,以保證用戶能夠舒適地和系統(tǒng)交互。
一些測試人員應(yīng)當關(guān)注的可用性問題:
-過分復雜的功能或者指令;
-困難的安裝過程;
-錯誤信息不準確或者過于簡單;
-用戶被迫去記住太多的信息;
-語法、格式和定義不一致。
11、安裝卸載測試
定義: 系統(tǒng)的可安裝性測試,主要是根據(jù)軟件的測試特性列表、軟件安裝、配置文檔,設(shè)計安裝過程的測試用例,發(fā)現(xiàn)軟件在安裝過程中的錯誤。安裝測試同時測試安裝文檔的正確性。
??? 另外驗證通過程序提供的方式進行卸載,能否正常卸載,另外卸載后還可以成功的安裝。
12、異常測試
概念:系統(tǒng)異常測試又叫系統(tǒng)容錯和可恢復性測試,它是通過人工干預手段使系統(tǒng)產(chǎn)生軟、硬件異常,通過驗證系統(tǒng)異常前后的功能和運行狀態(tài),達到檢驗系統(tǒng)的容錯、排錯和恢復的能力。它是系統(tǒng)可靠性評價的重要手段
容錯處理:
?系統(tǒng)自動處理
?人工干預處理
注意:
?系統(tǒng)異常測試還與系統(tǒng)的指標測試有關(guān)系,當系統(tǒng)需要提供的服務(wù)能力大于系統(tǒng)的設(shè)計指標時,也屬于系統(tǒng)異常的情況,因此應(yīng)該結(jié)合起來加以考慮
?系統(tǒng)的可靠性是設(shè)計出來的,而不是測試出來的。測試出來的數(shù)據(jù)有助于為我們進行進一步的系統(tǒng)優(yōu)化設(shè)計積累經(jīng)驗,設(shè)計和測試是一個互為反饋的過程
13、文檔測試
?文檔測試(DocumentationTesting)的目標是驗證用戶文檔是正確的并且保證操作手冊的過程能夠正確工作。
14、接口測試
概念:接口測試是測試系統(tǒng)組件間接口的一種測試。接口測試主要用于檢測外部系統(tǒng)與系統(tǒng)之間以及內(nèi)部各個子系統(tǒng)之間的交互點。測試的重點是要檢查數(shù)據(jù)的交換,傳遞和控制管理過程,以及系統(tǒng)間的相互邏輯依賴關(guān)系等。
?現(xiàn)在很多系統(tǒng)前后端架構(gòu)是分離的,從安全層面來說,只依賴前端進行限制已經(jīng)完全不能滿足系統(tǒng)的安全要求(繞過前端太容易了),
需要后端同樣進行控制,在這種情況下就需要從接口層面進行驗證。
如今系統(tǒng)越來越復雜,傳統(tǒng)的靠前端測試已經(jīng)大大降低了效率,而且現(xiàn)在我們都推崇測試前移,希望測試能更早的介入測試,那接口測試就是一種及早介入的方式。例如傳統(tǒng)測試,你是不是得等前后端都完成你才能進行測試,才能進行自動化代碼編寫。 而如果是接口測試,只需要前后端定義好接口,那這時自動化就可以介入編寫接口自動化測試代碼,手工測試只需要后端代碼完成就可以介入測試后端邏輯而不用等待前端工作完成。
可用性與功能性的區(qū)別:功能性體現(xiàn)在應(yīng)用的功能 可用性體現(xiàn)在用戶角度的體現(xiàn)