軟件質量:
功能性菠劝、可靠性、易用性睁搭、效率闸英、可維護性、可移植性
軟件測試類型:
GUI測試
功能測試
性能測試
負載測試
壓力測試
容量測試
安全性測試
兼容性測試
穩(wěn)定性測試
可用性測試
異常測試
文檔測試
安裝卸載測試
接口測試
-------------------------測試類型的具體介紹--------------------------
1介袜、功能測試:
概念: 功能測試是根據(jù)產(chǎn)品的需求規(guī)格說明書甫何、或概要、詳細設計文檔遇伞,驗證被測試對象的功能實現(xiàn)是否符合預期辙喂。
目標:功能測試主要是為了發(fā)現(xiàn)以下幾類錯誤:
?是否有不正確或遺漏了的功能?
?功能實現(xiàn)是否滿足用戶需求和系統(tǒng)設計的隱藏需求?
?輸入能否正確接受?能否正確輸出結果缩膝?
例如:
???????? 單元測試中的某個函數(shù)功能是否正確魏铅。
???????? 系統(tǒng)測試中的登錄功能是否正常。
2魂务、性能測試:
?性能測試(PerformanceTesting)就是用來測試軟件在集成系統(tǒng)中的運行性能的,驗證被測試對象的性能是否符合預期。
?性能測試有時需要有工具支持亲族,市面上有一些專門用于性能測試的工具,如Loadrunner,Jmeter等 可缚。
?例如:
???? 單元測試時測試加法函數(shù)完成加法運算消耗的時間
???? 系統(tǒng)測試時測試大量用戶使用淘寶系統(tǒng)時霎迫,確認系統(tǒng)的響應時間
性能測試關注的指標:
響應時間
業(yè)務成功率
CPU占用情況
內存占用情況
硬盤讀寫情況
并發(fā)用戶量
3、負載測試:
?負載測試是通過給被測試系統(tǒng)施加不同的符合帘靡,觀察被測試系統(tǒng)在不同的負載下的性能表現(xiàn)知给。
目標:
驗證系統(tǒng)在不同用戶壓力下,性能的相關指標和表現(xiàn)。
找到系統(tǒng)處理能力的極限和臨界點涩赢。
例子:
-分別測試50個用戶戈次、100個用戶、500個用戶同時去登陸系統(tǒng)筒扒,驗證在不同的用戶負載下系統(tǒng)的性能指標
4朝扼、壓力測試:
?壓力測試(Stress Testing)的目的是調查系統(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)可以處理目標內確定的數(shù)據(jù)容量工碾。
例子:
-使用編譯器編譯一個極其龐大的源程序弱睦;
-一個操作系統(tǒng)的任務隊列被充滿;
-龐大的Email信息和文件充滿了Internet渊额。
6况木、穩(wěn)定性測試
???系統(tǒng)穩(wěn)定性測試目的是評價系統(tǒng)在一定負荷情況下、長時間的運行情況旬迹。包括系統(tǒng)在一定負荷下火惊,再增加新的業(yè)務,原有的業(yè)務是否受影響奔垦,新的業(yè)務是否能正常工作屹耐,系統(tǒng)資源有無泄漏,數(shù)據(jù)有無不一致的情況椿猎,系統(tǒng)性能是否會降下來惶岭,關鍵點是長時間的運行后,系統(tǒng)的狀況如何鸵贬,系統(tǒng)平均無故障時間MTBF(MeanTimeBetweenFailure)是否滿足系統(tǒng)設計要求俗他。
7、安全性測試
?安全測試(Security Testing)用來驗證集成在系統(tǒng)內的保護機制是否能夠在實際中保護系統(tǒng)不受到非法的侵入阔逼。 用來保證系統(tǒng)本身數(shù)據(jù)的完整性和保密性。如當受到惡意攻擊時地沮,設備的自我保護能力嗜浮,病毒防護能力羡亩,自定義通信協(xié)議安全性等。
一些功能性的安全性問題:
-沒有口令是否可以登錄到系統(tǒng)中危融?
-各級用戶權限劃分是否合理畏铆?
-錯誤和文件訪問是否適當?shù)乇挥涗洠?/p>
-系統(tǒng)配置數(shù)據(jù)是否能正確保存,系統(tǒng)故障時是否能恢復吉殃?
-----------------------安全性測試內容-------------------------
一般可以從以下方面考慮安全性測試
?系統(tǒng)的登錄
?用戶管理
?防火墻
?系統(tǒng)數(shù)據(jù)
?WEB安全性辞居,如WEB的加密,解密蛋勺,數(shù)字簽名等
?數(shù)據(jù)庫的安全性
?內部通信協(xié)議
?系統(tǒng)防病毒測試
8瓦灶、兼容性測試
兼容性測試是指測試軟件在特定的硬件平臺上、不同的應用軟件之間抱完、不同的操作系統(tǒng)平臺上贼陶、不同的網(wǎng)絡等環(huán)境中是否能夠很友好的運行的測試
例如:app在不同的Android系統(tǒng)版本上運行
?????????? app軟件軟件在不同的分辨率的手機上運行
?????????? 使用不同的瀏覽器訪問網(wǎng)站
? ? ? ? ? ?不同分辨率大小
? ? ? ? ? ? 不同品牌手機
9、GUI測試(GraphicalUserInterface)
?GUI測試是針對軟件系統(tǒng)GUI界面進行的測試
?GUI測試主要包括兩方面的內容:
???? 界面實現(xiàn)與界面設計的吻合情況巧娱;
???? 確認界面處理的正確性碉怔。
???? 界面是否美觀
10、可用性測試
?? 可用性測試(UsabilityTesting)是為了檢測用戶在理解和使用系統(tǒng)方面到底有多好禁添。主要考慮產(chǎn)品是否符合實際應用情況撮胧,是否符合用戶習慣或特殊要求,操作方式是否方便合理老翘、設備和用戶間的交互信息是否準確易于理解趴樱、是否遵從行業(yè)習慣、外觀/界面是否美觀等酪捡。應涉及到所有和用戶有交互的功能或子系統(tǒng)叁征。這包括系統(tǒng)功能、系統(tǒng)發(fā)布逛薇、幫助文本和過程捺疼,以保證用戶能夠舒適地和系統(tǒng)交互。
一些測試人員應當關注的可用性問題:
-過分復雜的功能或者指令永罚;
-困難的安裝過程啤呼;
-錯誤信息不準確或者過于簡單;
-用戶被迫去記住太多的信息呢袱;
-語法官扣、格式和定義不一致。
11羞福、安裝卸載測試
定義: 系統(tǒng)的可安裝性測試惕蹄,主要是根據(jù)軟件的測試特性列表、軟件安裝、配置文檔卖陵,設計安裝過程的測試用例遭顶,發(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)的指標測試有關系,當系統(tǒng)需要提供的服務能力大于系統(tǒng)的設計指標時卿吐,也屬于系統(tǒng)異常的情況旁舰,因此應該結合起來加以考慮
?系統(tǒng)的可靠性是設計出來的,而不是測試出來的嗡官。測試出來的數(shù)據(jù)有助于為我們進行進一步的系統(tǒng)優(yōu)化設計積累經(jīng)驗箭窜,設計和測試是一個互為反饋的過程
13、文檔測試
?文檔測試(DocumentationTesting)的目標是驗證用戶文檔是正確的并且保證操作手冊的過程能夠正確工作衍腥。
14磺樱、接口測試
概念:接口測試是測試系統(tǒng)組件間接口的一種測試。接口測試主要用于檢測外部系統(tǒng)與系統(tǒng)之間以及內部各個子系統(tǒng)之間的交互點婆咸。測試的重點是要檢查數(shù)據(jù)的交換竹捉,傳遞和控制管理過程,以及系統(tǒng)間的相互邏輯依賴關系等尚骄。
?現(xiàn)在很多系統(tǒng)前后端架構是分離的块差,從安全層面來說,只依賴前端進行限制已經(jīng)完全不能滿足系統(tǒng)的安全要求(繞過前端太容易了)倔丈,
需要后端同樣進行控制憨闰,在這種情況下就需要從接口層面進行驗證。
如今系統(tǒng)越來越復雜需五,傳統(tǒng)的靠前端測試已經(jīng)大大降低了效率鹉动,而且現(xiàn)在我們都推崇測試前移,希望測試能更早的介入測試宏邮,那接口測試就是一種及早介入的方式泽示。例如傳統(tǒng)測試缸血,你是不是得等前后端都完成你才能進行測試,才能進行自動化代碼編寫边琉。 而如果是接口測試属百,只需要前后端定義好接口记劝,那這時自動化就可以介入編寫接口自動化測試代碼变姨,手工測試只需要后端代碼完成就可以介入測試后端邏輯而不用等待前端工作完成。
可用性與功能性的區(qū)別:功能性體現(xiàn)在應用的功能 可用性體現(xiàn)在用戶角度的體現(xiàn)