標籤:成熟 硬體 使用 終端 工作 筆記 排版 單元測試 視窗
軟體【Software】:
軟體(software)是電腦中與硬體(hardware)相結合的一部分,包括程式(program)和文檔(document)。用一個等式表示為:軟體=程式+文檔。其中,“程式”指的是能夠實現某種功能的指令的集合,如C語言程式,Java程式等;“文檔”指的是在軟體開發、使用和維護過程中產生的圖文集合,如《系統需求規格說明書》、《使用者手冊》、readme,甚至是一些軟體觸達資料,封裝文字和圖形等。
【備忘:軟體測試絕不等同於程式測試,文檔測試也是軟體測試的一個重要組成部分。通常,程式測試主要包括程式邏輯功能、介面、效能、易用性、相容性、安裝等的測試;文檔測試主要包括文檔內容和的校正,排版風格的檢查,錯別字的校正等】
用戶端/伺服器【C/S】:
C指的是用戶端(Client),S指的是伺服器端(Server),這種軟體是基於區域網路或互連網的,需要一台伺服器來安裝伺服器端軟體,每台用戶端都需要安裝用戶端軟體。比如我們經常用的QQ、MSN和各種網路遊戲就屬於C/S結構的軟體。
【備忘:C/S結構的軟體過去比較流行,但是不便於升級和維護,現在逐漸被B/S結構軟體所取代】
瀏覽器/伺服器【B/S】:
B指的是瀏覽器(Browser),S指的是伺服器(Server),這種軟體同樣是基於區域網路或互連網的,它與結C/S構軟體的區別就在於,不需要安裝用戶端(client),只需要有IE等瀏覽器,就可以直接使用。比如搜狐、新浪等門戶網站及163郵箱都屬於B/S結構的軟體。
【備忘:B/S結構軟體是現在軟體的主流,與C/S結構軟體相比,便於升級和維護,是測試的重點】
缺陷【Bug/Defect】:
軟體的Bug指的是軟體中(包括程式和文檔)不符合使用者需求的問題。
【備忘:這個定義是判斷一個軟體問題是否是Bug個唯一標準】
軟體測試【Software Testing】:
使用人工或自動手段,來運行或測試某個系統的過程。其目的在於檢驗它是否滿足規定的需求或弄清預期結果與實際結果之間的差別(1983,IEEE軟體工程標準術語)。
測試環境【Testing Environment(TE)】:
軟體測試環境就是軟體啟動並執行平台,包括軟體、硬體和網路的集合。用一個等式來表示:測試環境=軟體+硬體+網路。其中,“硬體”主要包括PC機(包括品牌機和相容機)、筆記本、伺服器、各種PDA終端等;“軟體”主要指軟體啟動並執行作業系統;“網路”主要針對的是C/S結構和B/S結構的軟體。
【備忘:作為一個合格的軟體測試工程師,不僅要熟悉軟體的知識,也要瞭解硬體和網路的相關知識】
測試案例【Test Case(TC)】:
指的是在測試執行之前設計的一套詳細的測試方案,包括測試環境、測試步驟、測試資料和預期結果。用一個等式來簡單表示:測試案例=輸入+輸出+測試環境。其中,“輸入”包括測試資料和操作步驟;“輸出”指的是期望結果;測試環境指的是系統內容設定。
黑箱測試【Black-Box Testing】:
指的是把被測軟體看作是一個黑盒子,我們不去關心盒子裡面的結構是什麼樣子的,只關心軟體的輸入資料和輸出結果。
備忘:黑箱測試既包括功能測試,也包括效能測試。
白盒測試【White-Box Testing】:
指的是把盒子蓋開啟,去研究裡面的原始碼和程式結構。
灰盒測試【Gray-Box Testing】:
可以把它看作是黑箱測試和白盒測試的一種結合。
靜態測試【Static Testing】:
是指不實際運行被測軟體,而只是靜態地檢查程式碼、介面或文檔中可能存在的錯誤的過程。
代碼走查【Walkthrough】:
靜態測試的一種方法,由開發組內部進行,採用講解、討論和類比啟動並執行方式進行的尋找錯誤的活動。
代碼審查【Inspection】:
靜態測試的一種方法,由開發組內部進行,採用講解、提問並使用編碼模板進行的尋找錯誤的活動。一般有正式的計劃、流程和結果報告。
技術評審【Review】:
靜態測試的一種方法,由開發組、測試組和相關人員(QA、產品經理等)聯合進行,採用講解、提問並使用編碼模板進行的尋找錯誤的活動。一般有正式的計劃、流程和結果報告。
動態測試【Dynamic Testing】:
是指實際運行被測程式,輸入相應的測試資料,檢查實際輸出結果和預期結果是否相符的過程。
單元測試【Unit Testing】:
是指對軟體中的最小可測試單元進行檢查和驗證。例如,在C語言中,單元一般指1個函數;Java裡,單元一般指1個類;在圖形化的軟體中,單元也可以指1個視窗、1個菜單等。
樁模組【Stub】:
是指類比被測模組所調用的模組。
驅動模組【Driver】:
是指類比被測模組的上級模組,驅動模組用來接收測試資料,啟動被測模組,並輸出結果。
整合測試【Integration Testing】:
是指將通過測試的單元模組組裝成系統或子系統,在進行測試,重點測試不同模組的介面部分。
系統測試【System Testing】:
指的是將整個軟體系統看作是一個整體測試,包括對功能、效能的測試,以及對軟體所啟動並執行軟、硬體環境的測試。
驗收測試【Acceptance Testing】:
指的是在系統測試的後期,以使用者測試為主,或有測試人員等品質保障人員共同參與的測試,它也是軟體正式交給使用者使用的最後一道工序。
α測試:
驗收測試的一種,指的是由使用者、測試人員、開發人員等共同參與的自我裝載。
β測試:
驗收測試的一種,指的是內測後的公測,即完全交給終端使用者測試。
功能測試【Function Testing】:
是黑箱測試的一種,它檢查實際軟體的功能是否符合使用者的需求。
介面測試【UI Testing】:
UI是User Interface,即使用者介面的縮寫。一般情況下,都把軟體的介面測試案例同軟體的邏輯功能測試用例分開去寫。
易用性測試【Usability Testing】:
是指從軟體使用的合理性和方便性等角度對軟體系統進行檢查,來發現軟體中不方便使用者使用的地方。
安裝測試【Installation Testing】:
這裡的安裝測試是指廣義上的,包括安裝、卸載。
相容性測試【Compatibility Testing】:
相容性測試包括硬體相容性測試和軟體相容性測試;硬體相容性主要是指軟體啟動並執行不同硬體平台的相容性,如PC機、筆記本、伺服器等;軟體相容性主要是指軟體運行在不同作業系統等軟體平台上的相容性。
效能測試【Performance Testing】:
是指對軟體的運行反饋速度、所消耗系統資源等各種效能指標的測試。
可靠性測試【Reliability Testing】:
也叫穩定性測試,是指連續運行被測系統,檢查系統運行時的穩定程度。人們通常用MTBF(Mean Time Between Failure)來衡量系統的穩定性,MTBF越大,系統的穩定性越強。
負載測試【Load Testing】:
是效能測試的一種,通常是指被測系統在其能忍受的壓力<極限範圍之內連續運行>,來測試系統的穩定性。
壓力測試【Stress Testing】:
是效能測試的一種,通常是指持續<不斷地>給被測系統增加壓力,直到將被測系統<壓跨為止>,用來測試系統所能承受的最大壓力。
迴歸測試【Regression Testing】:
是指對軟體的新版本測試時,重複執行上一個版本測試時的用例。
煙霧測試 (Smoke Test)【Smoke Testing】: 又名:ad-hoc
是指在對一個新版本進行系統大規模地測試之前,先驗證一下軟體的準系統是否實現,是否具備可測性。
隨機測試【Random Testing】:
是指測試中所有的輸入資料都是隨機產生的,其目的是類比使用者的真實操作,並發現一些邊緣性的錯誤。
軟體品質保障【Software Quality Assurance(SQA)】:
為了確保軟體<開發過程和結果符合預期的要求>,而建立的一系列規程,以及依照規程和計劃採取的一系列活動及其結果評價。
軟體能力成熟度等級模型【Capability Maturity Model(CMM)】:
CMM就是SQA用來監督項目的一個標準品質模型,是由卡耐基-梅隆大學於20實際80年代制定的,最初只是應用於本校的軟體項目開發,後來逐漸推廣為主流的行業標準。CMM共為5級:初始級、可重複級、已定義級、已管理級和最佳化級。
有效等價類別【Valid Equivalence Class】:
是指符合《需求規格說明書》,合理地輸入資料集合。
無效等價類別【Invalid Equivalence Class】:
是指不符合《需求規格說明書》,無意義地輸入資料集合。
軟體生命週期【Software Life Cycle】:
是指軟體開發與測試全部過程、活動和任務的結構架構,是從可行性研究到需求分析、軟體設計、編碼、測試、軟體發布維護的過程。
黑箱測試工具【Black-Box Testing Tools】:
是指測試功能或效能的工具,主要用於系統測試和驗收測試;其又可分為功能測試工具和效能測試工具。
白盒測試載入器【White-Box Testing tools】:
是指測試軟體的原始碼的工具,可以實現代碼的靜態分析、動態測試、評審等功能,主要用於單元測試。
測試管理工具【Testing Management Tools】:
是指管理整個測試流程的工具,主要功能有測試計劃的管理、測試案例的管理、缺陷跟蹤、測試報告管理等,一般貫穿於整個軟體生命週期。
測試工作的正確四步曲
What to do 第一步, 確立測試範圍和對象, 如果這一步漏了,後面的品質全打折扣–測試計劃
How to do 第二步, 決定用什麼測試技術或手段來測試這些測試對象 –測試方案
When to do 第三步, 決定先測試哪些測試對象和先應用哪些測試技術 –測試策略
Automation 第四步, 儘可能把how to do的工作都自動化,從而提升執行效率(僅僅是執行效率) –測試效率
產品所有的架構和設計缺陷 :異常處理;功能組合處理;
演算法選取考慮不周全;以及非功能屬性的設計需求。
需求的品質也是有維度: 二義性、可測性、完整性、前後一致性、可實現性、必要性。
軟體測試常用術語