軟件測試是保證軟件產品質量的重要手段之一。它是測量、評估軟件產品特點和能力的活動,F在,國內一些軟件企業對于軟件測試的重視程度還很不夠,認為測試工作非常簡單,只是簡單地操作所測的軟件產品而已。這種錯誤的思想嚴重影響了國內軟件質量,應該引起我們的高度重視。
軟件測試階段可以分為若干個小的階段,階段的劃分有多種,我現在按流程順序將其分為四個階段:
·單元測試:由項目小組完成
·集成測試:由項目小組完成
·系統測試:由專業測試小組完成
·交接測試:用戶和開發商共同完成。
測試的四個階段完全逆向檢測了軟件開發的各個階段。單元測試主要是測試程序代碼,集成測試主要是對設計的檢測,系統測試主要測試了軟件的功能,交接測試主要是對用戶需求的一種檢測。但是每個測試階段仍要對其它測試階段的測試內容加以測試,只是測試重點不同。
在這篇文章中,我只對單元測試流程加以闡述,而不涉及具體的測試方法。關于測試方法(如:使用手工測試還是自動測試)若有機會將在其它文章中進行闡述。
在單元測試前,先讓我們明白以下幾個問題,這可以使我們對單元測試更加清晰。
·單元測試的目標: 確保模塊被正確地編碼
·由誰去做: 通常由程序人員測試
·怎樣去測試: 功能測試可以用黑匣測試方法,代碼測試可用白匣測試方法
·記錄: 通常沒有記錄
我們在清楚以上問題后就可以編寫測試用例了。測試用例是輸入、執行條件和一個特殊目標所開發的預期結果集合。它按測試目的不同可分為以下幾種類型:
·需求測試用例:測試是否符合需求規范
·設計測試用例:測試是否符合系統邏輯結構
·代碼測試用例:測試代碼的邏輯結構和使用的數據
需求測試用例通常是按照需求執行的功能逐條地編寫輸入數據和期望輸出。一個好的需求用例是可以用少量的測試用例就能夠覆蓋所有的程序功能。
設計測試用例檢測的是代碼和設計是否完全相符。是對底層設計和基本結構上的測試。設計測試用例可以涉及到需求測試用例沒有覆蓋到的代碼空間(例如界面的設計)。
代碼測試用例是基于運行軟件和數據結構上的。它要保證可以覆蓋所有的程序分支、最小的語句和輸出。
以上三種用例所用的數據又可分為正常數據、邊緣數據和錯誤數據。
·正常數據:在測試中所用的正常數據的量是最大的,而且也是最關鍵的。少量的測試數據不能完全覆蓋需求,但我們要從中提取出一些具有高度代表性的數據作為測試數據,以減少測試時間。
·邊緣數據:邊緣測試是界于正常數據和錯誤數據之間的一種數據。它可以針對某一種編程語言、編程環境或特定的數據庫而專門設定。例如若使用SQL Server數據庫,則可把SQL Server關鍵字(如:';AS;Join等)設為邊緣數據。其它邊緣數據還有:HTML的HTML;<>等關鍵字以及空格、@、負數、超長字符等。邊緣數據要靠測試人員的豐富經驗來制定。
·錯誤數據:顯而易見,錯誤數據就是編寫與程序輸入規范不符的數據從而檢測輸入篩選、錯誤處理等程序的分支。
由于執行測試用例的數據量巨大以及還要進行回歸測試,所以可以考慮使用自動測試工具,但提取測試數據仍要依靠編寫測試用例人員的經驗。并且,我們還要注意到自動測試也許不能找到程序中所有錯誤,手動測試所找到的錯誤會比自動測試所找到的要多。
有了測試用例,我們就可以進行測試了吧?許多公司也是這樣做的,但在這里我建議大家最好要先進行代碼的審議。通過代碼審議找到的錯誤可以比測試用例測試所能找到的錯誤更加深入,并且發現錯誤的時間也比測試用例要早。代碼審議要以代碼標準(根各公司具體情況自行制定)為依據,一般情況下要檢查以下幾點:
·代碼風格和規則審核
·程序設計和結構的審核
·業務邏輯的審核
文章來源于領測軟件測試網 http://www.k11sc111.com/