1.軟件測試定義:
軟件測試(Software Testing),在規定的條件下對程序進行操作,以發現程序錯誤,衡量軟件質量,並對其是否能滿足設計要求進行評估的過程。
2.軟件測試工程師的素質:
3.軟件的分類:
軟件 = 程序 + 數據 + 文檔。
按照功能划分:
系統軟件:如操作系統、數據庫管理系統,各種驅動軟件等
應用軟件:如Office、金山詞霸、QQ等
按照技術結構划分:
單機版本:如Office,畫圖工具等
C/S結構軟件:如QQ、MSN等
B/S結構軟件:如新浪、搜狐、google等
按照用戶划分:
產品軟件:Office、財務處理軟件、金山毒霸等
項目軟件:如為企業定制的OA系統等
按照開發規模划分:
類別 參與人數 開發時間
小型 10人以下 1-4個月
中型 10-100人 1年以下
大型 100人以上 1年
4.軟件測試的對象:
① 源程序/目標代碼
② 各開發階段的文檔(需求規格說明、概要設計說明、詳細設計說明及其它相關文檔)
5.軟件測試的目的:
軟件測試的目的是盡可能多的發現軟件缺陷。檢查系統是否滿足需求,站在用戶角度思考產品或項目功能實現的正確性。
測試並不僅僅是為了要找出錯誤。通過分析錯誤產生的原因和錯誤的分布特征。可以幫助項目管理者發現當前所采用的軟件過程的缺陷,以便改進。同時,通過分析也能幫助我們設計出有針對性的檢測方法,改善測試的有效性。
6.軟件測試的原則
0)所有測試的都應以軟件設計需求規格說明書為標准進行。
1)應當把“盡早地不斷地進行軟件測試“作為軟件開發者的座右銘。
2)程序員應避免檢查自己的程序。
3)充分注意測試中的群集現象。
4)嚴格執行測試計划,排除測試的隨意性。
8)妥善保存測試計划、測試用例、出錯統計和最終分析報告,為維護提供方便。
5)完全測試是不可能的
7.軟件測試分類

單元測試:
單元測試又稱模塊測試,針對軟件設計中的最小單位——程序模塊,進行正確性檢查的測試工作。單元測試需要從程序的內部結構出發設計測試用例。多個模塊可以平行地獨立進行單元測試。
單元定義:
C中指一個函數,Java中指一個類,在圖形化的軟件中,單元一般指1個窗口,1個菜單。
如何進行單元測試:
單元測試主要用白盒測試,先靜態地檢查代碼是否符合規范,然后動態運行代碼,檢查其實際運行結果,檢查程序的運行結果是否正確是一個最基本的要求,還要關注容錯處理,程序的邊界值處理等。
集成測試:
集成測試又叫組裝測試,通常在單元測試的基礎上,將所有程序模塊進行
有序的、遞增的測試。重點測試不同模塊的接口部分。
系統測試:
指將整個軟件系統看為一個整體進行測試,包括對功能、性能、以及軟件所運行的軟硬件環境進行測試。
驗收測試:
驗收測試指按照項目任務書或合同、供需雙方約定的驗收依據文檔進行的對整個系統的測試與評審,決定是否接收或拒收系統。在系統測試的后期,以用戶測試為主或有測試人員等質量保證人員共同參與的測試。
α測試:指的是指的是由用戶,測試人員、開發人員等共同參與的內部測試。
β測試:指的是內測后的公測,即完全交給最終用戶測試
驗收測試的重要性:驗收簽字,收錢。

靜態測試:
指不實際運行被測軟件,而只是靜態地檢查程序代碼、界面和文檔中可能存在的錯誤的過程。
動態測試:
指實際運行被測程序,輸入相應的測試數據,檢查實際輸出結果與預期結果是否相符。(動態測試方法為結構和正確性測試;動態測試工具Robot、QTP等)
黑盒測試:
指的是把被測的軟件看做一個黑盒子,我們不關心盒子里面的結構是什么樣子的,只關心軟件的輸入數據和輸出
白盒測試:
指的是把盒子打來,去研究里面的源代碼和程序結構。
軟件公司中,往往采用黑盒測試&白盒測試相結合的方式。
(靜態黑盒測試:看文檔,看頁面等
靜態白盒測試:看源代碼等
動態黑盒測試:使用軟件等
動態白盒測試:運行源代碼等)
灰盒測試:
是介於白盒測試與黑盒測試之間的一種測試,灰盒測試多用於集成測試階段,不僅關注輸出、輸入的正確性,同時也關注程序內部的情況。
功能測試:
是黑盒測試的一方面,它檢查實際軟件的功能是否符合用戶的需求。
邏輯功能測試(functiontesting)
界面測試(UItesting)
易用性測試(usability testing)
安裝測試(installationtesting)
兼容性測試(compatibilitytesting)
性能測試:
是軟件測試的高端領域,通常我們所說的高級軟件測試工程師一般就是指性能測試或是白盒測試工程師。
時間性能(事務響應時間等)
空間性能(系統資源消耗)
一般性能測試
可靠性測試
負載測試
壓力測試
回歸測試:
指對軟件的新版本測試時,重復執行上一個版本測試時的用例。
冒煙測試:
是指在對一個新版本進行系統大規模的測試之前,先驗證一下軟件的基本功能是否實現,是否具備可測試性。
隨機測試:
是指測試中所有的輸入數據都是隨機生成的,其目的是模擬用戶的真實操作,並發現一些邊緣性的錯誤。
