軟件測試理論和實踐
我們用電腦的每個人,不都是 軟件測試 人員,但都是某些軟件的用戶。一般情況用戶都會覺得買到的軟件是沒有問題的,不會去想這樣的軟件可能會有問題,用戶只要使用這些軟件來解決他們需要解決的問題就可以了。當他們發現問題的時候,甚至會感到震驚。存在的
我們用電腦的每個人,不都是
軟件測試人員,但都是某些軟件的用戶。一般情況用戶都會覺得買到的軟件是沒有問題的,不會去想這樣的軟件可能會有問題,用戶只要使用這些軟件來解決他們需要解決的問題就可以了。當他們發現問題的時候,甚至會感到震驚。存在的問題很多都和測試的成效有關系,一般的軟件產品存在的問題確實比較少,但我覺得即使是以前買的正版的金山快譯2000都有著一些顯而易見的
bug。如果測試不充分,那么這些問題會潛伏在軟件中,等到用戶發現以后,再有
開發人員進行維護,改正錯誤的費用一般是開發階段的40倍到60倍。
人們對測試存在著一些誤區,例如:
1 測試是想象到可能出現的問題,然后試圖驗證這些問題。
實際上能想象到的只是一部分的情況,隨意性太大,還要取決于開發人員的經驗,對業務的熟悉程度和他想象到的程度。
2 讓時間有富裕的員工去做一些測試
表面上看這體現了管理的效率和靈活性,但實際上也體現了管理者對測試的輕視。測試和測試的人有很大關系。測試工作人員應該是勤奮并富有耐心,善于學習、思考和發現問題,細心有條理,總結問題,如果具備這樣的優點,做其它工作同樣也會很出色,因此這里還有一個要求,就是要喜歡測試這項工作。如果他是專職的,那么肯定更有經驗和信心。國內的小伙子好象都喜歡做
程序員,兩者工作性質不同,待遇不同,地位不同,對自我實現的價值的認識也不同,這是行業的一個需要改善的問題。如果只是為了完成任務而完成任務,或者發現了幾個問題就覺得滿意了,這在任何其它工作中都是不行的。
3 測試是相對簡單的工作。
實際上并非如此,要真正做好一件事都不容易。測試也有很多相關技術和工具。而對測試的輕視問題,也許要通過痛苦的經歷和結果才可能確切體會到。很多專家都在對測試的理論進行深入的探討和研究。
測試的基本
知識讓我們一起快速過一遍:
什么是軟件測試:在軟件投入運行前,對軟件
需求分析、設計規格說明和編碼的最終復審,是軟件
質量保證的關鍵步驟。
測試的目標:以較少的用例、時間和人力找出軟件中潛在的各種錯誤和
缺陷,以確保系統的質量。
從測試的類型來看,測試分為2種:
黑盒測試和
白盒測試。
黑盒測試又稱為
功能測試或數據驅動測試,把系統看成一個黑盒子,不考慮程序的內在邏輯,只根據需求規格說明書的要求來檢查程序的功能是否符合它的功能說明。
白盒測試又稱為結構測試和邏輯驅動測試,允許
測試人員對程序內部邏輯結構及有關信息來設計和選擇
測試用例,對程序的邏輯路徑進行測試。
測試用例由測試輸入數據以及與之對應的輸出結果組成。測試
用例設計的好壞直接決定了測試的效果和結果。
從測試實際的前后過程來看,軟件測試上是由一系列的不同測試所組成,這些軟件測試的步驟分為:
單元測試、組裝測試(
集成測試)、
確認測試和
系統測試。軟件開發的過程是自頂向下的,測試則正好相反,以上這些過程就是自底向上,逐步集成的。
單元測試(模塊測試):針對每個模塊進行的測試,可從程序的內部結構出發設計測試用例,多個模塊可以平行地對立地測試。通常在編碼階段進行,必要的時候要制作驅動模塊和樁模塊。
集成測試:在單元測試的基礎上,將所有模塊按照設計要求組裝成為系統,必須精心計劃,應提交集成
測試計劃、集成測試規格說明和集成測試分析報告。
確認測試:驗證軟件的功能和
性能及其它特性是否與用戶的要求一致。
系統測試:將軟件放在整個計算機環境下,包括軟硬件平臺、某些支持軟件、數據和人員等,在實際運行環境下進行一系列的測試。
測試工作的文檔主要有:測試計劃、測試模型和用例設計或規格說明、測試分析報告等。從
軟件工程上說,這是屬于軟件配置的一部分。(我不知道,如果什么報告都沒有,只是不斷地擺弄執行程序,看到錯誤和問題就記下來,算不算真正的測試?)
測試需要一定的技術和工具
在用例設計過程中,可以考慮到很多方面,并且也有很多的指導方法和技術。
黑盒測試用例設計包括:
等價類劃分:劃分等價類--確立測試用例--設計用例
邊界值分析:通過分析,考慮如何確立邊界情況
錯誤推測法:靠經驗和直覺來推測程序中可能存在的各種錯誤,從而有針對性地編寫用例??梢粤信e出可能的錯誤和可能發生錯誤的地方,然后選擇用例。
原文轉自:http://www.kjueaiud.com