Hello柑贞!大家好皿渗,我是BugBear樊拓,一個專注于分享軟件測試干貨的測試開發(fā)洁闰。我們已經(jīng)學習了 單元測試 和 集成測試搂赋,今天我們來學習系統(tǒng)測試赘阀。
一、系統(tǒng)測試定義
系統(tǒng)測試(System Testing)脑奠,是將已經(jīng)確認的軟件基公、計算機硬件、外設(shè)宋欺、網(wǎng)絡(luò)等其他元素結(jié)合在一起轰豆,進行信息系統(tǒng)的各種組裝測試和確認測試。
系統(tǒng)測試是針對整個產(chǎn)品系統(tǒng)進行的測試齿诞,目的是驗證系統(tǒng)是否滿足了需求規(guī)格的定義酸休,找出與需求規(guī)格不符或與之矛盾的地方,從而提出更加完善的方案祷杈。
系統(tǒng)測試發(fā)現(xiàn)問題之后要經(jīng)過調(diào)試找出錯誤原因和位置斑司,然后進行改正,是基于系統(tǒng)整體需求說明書的黑盒類測試,應覆蓋系統(tǒng)所有聯(lián)合的部件。
對象不僅僅包括需測試的軟件眉反,還要包含軟件所依賴的硬件、外設(shè)甚至包括某些數(shù)據(jù)僵缺、某些支持軟件及其接口等。比較常見的踩叭、典型的系統(tǒng)測試包括恢復測試磕潮、安全測試容贝、壓力測試自脯。
二冤今、系統(tǒng)測試與集成測試
在單元上執(zhí)行集成測試后屋谭,這些單元將組合到各個模塊中,然后必須將其作為一個完整的系統(tǒng)進行測試我擂,因此需要進行系統(tǒng)測試。
下面我們來看看集成測試與系統(tǒng)測試之間的區(qū)別
集成測試 | 系統(tǒng)測試 |
---|---|
測試各個單元的協(xié)同工作效果 | 測試單元和模塊作為整個系統(tǒng)(即整個產(chǎn)品)的一部分如何協(xié)同工作 |
與提供預期結(jié)果的模塊有關(guān) | 與符合指定要求的最終產(chǎn)品有關(guān) |
僅執(zhí)行功能測試 | 執(zhí)行功能和非功能測試缓艳,例如可用性校摩,性能,負載等 |
是黑盒測試還是白盒測試阶淘,都需要了解單元和界面 | 一種黑盒測試技術(shù)衙吩,不需要了解內(nèi)部結(jié)構(gòu)或代碼 |
由開發(fā)人員和測試工程師執(zhí)行 | 僅由測試工程師執(zhí)行 |
在單元或模塊而不是整個系統(tǒng)之間尋找缺陷 | 尋找并發(fā)現(xiàn)與影響整個系統(tǒng)的內(nèi)部和外部接口有關(guān)的缺陷和問題 |
模擬兩個單元之間的交互 | 模擬真實的測試用例 |
三、系統(tǒng)測試過程
系統(tǒng)測試過程分為四個階段:測試計劃階段溪窒、測試設(shè)計階段坤塞、測試實現(xiàn)階段、測試執(zhí)行階段
【測試計劃階段】
測試計劃階段主要是定義測試目標澈蚌、測試過程中人力資源的安排摹芙、測試準入準出條件、每個迭代版本的測試時間宛瞄、里程碑點浮禾、風險分析等信息。測試計劃最核心的目的就是控制風險坛悉。
【測試設(shè)計階段】
測試設(shè)計階段主要是完成測試方案伐厌,當測試計劃和需求規(guī)格說明書完成評審后即開始設(shè)計測試方案。測試方案主要包括測試策略(功能裸影、性能或自動化測試的策略)、測試環(huán)境搭建军熏、測試數(shù)據(jù)準備轩猩、測試工具使用、優(yōu)先級等信息荡澎;測試方案的核心是測試策略的設(shè)計均践,為測試用例設(shè)計做準備。
【測試實現(xiàn)階段】
測試實現(xiàn)階段主要是完成測試用例摩幔、測試規(guī)程彤委、測試的預測試項。測試實現(xiàn)階段最主要的是完成測試用例的設(shè)計與測試用例的評審或衡。
【測試執(zhí)行階段】
測試執(zhí)行階段主要是執(zhí)行系統(tǒng)測試預測試項焦影、系統(tǒng)測試用例车遂,修改發(fā)現(xiàn)的問題并進行回歸測試,提交系統(tǒng)預測試報告斯辰、系統(tǒng)測試報告舶担、缺陷報告。
四彬呻、系統(tǒng)測試分析
用戶層:圍繞用戶界面的規(guī)范性衣陶、友好性、可操作性闸氮、系統(tǒng)對用戶的支持剪况,以及數(shù)據(jù)的安全性等方面展開。另外蒲跨,用戶層的測試通常還應注意可維護性測試和安全性測試拯欧。
應用層:主要是針對產(chǎn)品工程應用或行業(yè)應用的測試。從應用軟件系統(tǒng)的角度出發(fā)财骨,模擬實際應用環(huán)境镐作,對系統(tǒng)的兼容性、可靠性等進行測試隆箩。針對整個系統(tǒng)的應用層測試该贾,包含并發(fā)性能測試、負載測試捌臊、壓力測試杨蛋、強度測試、破壞性測試理澎。
功能層:檢測系統(tǒng)是否已經(jīng)實現(xiàn)需求規(guī)格說明中定義的功能逞力,以及系統(tǒng)功能之間是否存在類似共享資源訪問沖突的情況。
子系統(tǒng)層:針對產(chǎn)品內(nèi)部結(jié)構(gòu)性能的測試糠爬。
協(xié)議/指標層:針對系統(tǒng)所支持的協(xié)議寇荧,進行協(xié)議一致性測試和協(xié)議互通測試。
五执隧、系統(tǒng)測試方法
【功能測試】
功能測試屬于黑盒測試揩抡,是系統(tǒng)測試中最基本的測試。功能測試主要根據(jù)產(chǎn)品的需求規(guī)格說明和測試需求列表镀琉,驗證產(chǎn)品是否符合需求規(guī)格說明峦嗤。
【協(xié)議一致性測試】
主要用于分布式系統(tǒng)。在分布式系統(tǒng)中屋摔,很多功能的實現(xiàn)是通過多臺計算機相互協(xié)作來完成的烁设,這要求計算機之間能相互交換信息,所以需要制定一些規(guī)則(協(xié)議)钓试。對協(xié)議進行測試装黑,通常包括:
協(xié)議一致性測試
協(xié)議性能測試
協(xié)議互操作性測試
協(xié)議健壯性測試副瀑。
【性能測試】
主要用于實時系統(tǒng)和嵌入式系統(tǒng),性能測試是指測試軟件在集成系統(tǒng)中的運行性能曹体,目標是量度系統(tǒng)的性能和預先定義的目標有多大差距俗扇。
一種典型的性能測試是壓力測試,當系統(tǒng)同時接收極大數(shù)量的用戶和用戶請求時箕别,需要測量系統(tǒng)的應對能力铜幽。性能測試要有工具的支持,在某種情況下串稀,測試人員必須自己開發(fā)專門的接口工具除抛。
【壓力測試】
又稱強度測試,是在各種超負荷的情況下觀察系統(tǒng)的運行情況的測試母截。
【容量測試】
在系統(tǒng)正常運行的范圍內(nèi)測試并確定系統(tǒng)能夠處理的數(shù)據(jù)容量到忽。容量測試是面向數(shù)據(jù)的,主要目的就是檢測系統(tǒng)可以處理目標內(nèi)確定的數(shù)據(jù)容量清寇。
【安全性測試】
要驗證系統(tǒng)的保護機制是否抵御入侵者的攻擊喘漏。保護測試是安全性測試中一種常見的測試,主要用于測試系統(tǒng)的信息保護機制华烟。評價安全機制的性能與安全功能本身一樣重要翩迈,其中安全性的性能主要包括:有效性、生存性盔夜、精確性负饲、反應時間、吞吐量喂链。
【失效恢復測試】
驗證系統(tǒng)從軟件或者硬件失效中恢復的能力返十。失效恢復測試采用各種人為干預方式使軟件出錯,造成人為的系統(tǒng)失效椭微,進而檢測系統(tǒng)的恢復能力洞坑。如果恢復需要人為干預,則應考慮平均修復時間是否在限定的范圍內(nèi)赏表。
【備份測試】
備份測試是失效恢復測試的補充检诗,目的是驗證系統(tǒng)在軟件或者硬件失效的實踐中備份其數(shù)據(jù)的能力。
【GUI測試】
GUI測試與用戶友好性測試和可操作性測試有重復瓢剿,但GUI測試更關(guān)注對圖形界面的測試。
GUI測試分為兩個部分悠轩,一方面是界面實現(xiàn)與界面設(shè)計的情況要符合间狂;另一方面是要確認界面能夠正確處理事件。
GUI測試設(shè)計測試用例一般要從以下4方面考慮:
劃分界面元素火架,并根據(jù)界面的復雜性進行分層鉴象。通常把界面劃分為三個層次忙菠,第一層是界面原子層;第二層是界面組合元素層纺弊;第三層是一個完整的窗口牛欢。
在不同的界面層次確定不同的測試策略。
進行測試數(shù)據(jù)分析淆游,提取測試用例傍睹。
使用自動化測試工具進行腳本化工作。
【健壯性測試】
又稱容錯測試犹菱,用于測試系統(tǒng)在出故障時拾稳,是否能夠自動恢復或者忽略故障繼續(xù)運行。健壯性測試的一般方法是軟件故障插入測試腊脱,在軟件故障插入測試中访得,需要關(guān)注三個方面:目標系統(tǒng)、故障類型和插入故障的方法陕凹。
【兼容性測試】
檢驗被測的應用系統(tǒng)對其他系統(tǒng)的兼容性悍抑。
【易用性測試】
與可操作性類似。檢測用戶在理解和使用系統(tǒng)方面是否方便杜耙。易用性測試是面向用戶的系統(tǒng)測試搜骡,包括對被測系統(tǒng)的系統(tǒng)功能、系統(tǒng)發(fā)布泥技、幫助文本和過程等的測試浆兰。最好在開發(fā)階段就開始進行。
【安裝測試】
安裝測試驗證成功安裝系統(tǒng)的能力珊豹。
【文檔測試】
主要是針對系統(tǒng)提交給用戶的文檔進行驗證簸呈。文檔測試的目標是驗證用戶文檔的正確性并保證操作手冊的過程能正常工作。
【在線幫助測試】
用于檢驗系統(tǒng)的實時在線幫助的可操作性和準確性店茶。
【數(shù)據(jù)轉(zhuǎn)換測試】
目標是驗證已存在數(shù)據(jù)的轉(zhuǎn)換并載入一個新的數(shù)據(jù)庫是否有效蜕便。
六、系統(tǒng)測試的實施
系統(tǒng)測試實施分為確認測試贩幻、Alpha和Beta測試轿腺、驗收測試、回歸測試丛楚,下面我們來具體學習:
【確認測試】
又稱有效性測試族壳。其任務就是確認軟件的有效性,即確認軟件的功能和性能及其它特性是否與用戶的要求一致趣些。這一階段要做的主要工作是進行功能測試和軟件配置復審仿荆。
【Alpha和Beta測試】
Alpha測試是用戶在開發(fā)環(huán)境下進行的測試,也可以是產(chǎn)品供應商內(nèi)部的用戶在模擬實際操作環(huán)境下進行的測試。軟件在一個自然設(shè)置狀態(tài)下使用拢操,開發(fā)者坐在用戶旁邊锦亦,隨時記下錯誤情況和使用中的問題。這是在受控制環(huán)境下進行的測試令境。
Beta測試是由多個用戶在一個或多個用戶的實際使用環(huán)境下進行的測試杠园。通常是在不受控制的環(huán)境下進行的測試,開發(fā)者通常不在現(xiàn)場舔庶。用戶記錄在測試過程中遇到的一切問題(真實的或想象的)抛蚁,并且定期把這些問題報告給開發(fā)者。
【驗收測試】
是以用戶為主的測試栖茉,軟件開發(fā)人員和質(zhì)量保證人員也應參加篮绿,由用戶參加設(shè)計測試用例,使用用戶界面輸入測試數(shù)據(jù)吕漂,并分析測試的輸出結(jié)果亲配。
【回歸測試】
在軟件變更之后,對軟件重新進行的測試惶凝。其目標是檢驗對軟件進行的修改是否正確吼虎,保證改動不會帶來不可預料的行為或者另外的錯誤。
問題嚴重級別劃分如下:
致命問題——對應于系統(tǒng)的可用性苍鲜。
嚴重問題——用于分析系統(tǒng)版本穩(wěn)定性思灰。
一般問題——用于評估測試效率。
提示問題——用于產(chǎn)品的完善性指標混滔。
文末結(jié)語
BugBear軟件測試洒疚,專注于分享測試干貨,歡迎關(guān)注坯屿,交流成長
歡迎加入軟件測試技術(shù)交流QQ群:1136224273