軟件【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 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的工做都自動化,從而提高執行效率(僅僅是執行效率) --測試效率
產品全部的架構和設計缺陷 :異常處理;功能組合處理;
算法選取考慮不周全;以及非功能屬性的設計需求。
需求的質量也是有維度的: 二義性、可測性、完整性、先後一致性、可實現性、必要性。算法