田麗芳 劉 栓
摘要:近幾年來,人們越來越重視軟件測試,軟件測試工作也越來越“熱”,但很多人在學習軟件測試的過程當中走了不少彎路。本文對軟件測試領域的現狀和誤區進行了闡述,并對學習軟件測試的過程和方法進行了深入探討,最后提供了一些軟件測試技巧以供參考。
關鍵詞:軟件測試;誤區;黑盒測試;測試用例
中圖分類號:G642 文獻標識碼:A
隨著軟件產業的發展、軟件規模的逐步擴大,軟件的質量問題日漸突顯,軟件測試與軟件質量監控也越來越受到軟件行業的重視。各類招聘信息中對軟件測試類人才的需求猛增,很多人由此而選擇了軟件測試,但其中不少人始終未能拿到軟件測試行業的“入場券”,原因何在?軟件測試行業是一個高速發展的新興行業,盡管當下認知程度不高,但有著廣闊的發展前景。如何才能更有效地進入軟件測試領域是本文的研究重點所在。
1軟件測試的誤區
軟件測試不斷受到重視,但總體上,國內軟件項目過程不夠規范,對軟件測試的重要性、測試方法和流程等還存在很多錯誤的認識,以致很多人在軟件測試領域走了不少彎路。對于測試人員以及準備進入軟件測試領域的人員來說,首先必須認清并更正這些錯誤觀點。
(1) 誤區一:軟件開發完成后才開始進行軟件測試
軟件從開始計劃、編制、測試,一直到公開使用的過程中都可能存在軟件缺陷。事實證明,需求規格說明書是導致軟件缺陷的最大原因。隨著時間的推移,修復軟件缺陷的費用呈幾何級數增長。
(2) 誤區二:軟件發布后如果發現質量問題,那是軟件測試人員的錯
軟件測試只能確認軟件存在錯誤,不能保證軟件沒有錯誤。軟件的高質量不是軟件測試人員測出來的,是靠軟件生命周期的各個過程設計出來的。應該分析軟件項目的各個過程,從過程改進方面尋找產生錯誤的原因和改進的措施。
(3) 誤區三:軟件測試要求不高,隨便找個人都可以完成這項工作
軟件測試涉及很多領域,簡單的點點鼠標、按按鍵盤的工作根本無法達到軟件測試的目的,若想立足于軟件測試領域必須掌握和學習很多方面的知識。
(4) 誤區四:項目進度吃緊時少做些測試,時間富裕時多做測試
縮短測試時間會導致測試不完整,無法達到測試的目的,測試效果也將大打折扣。軟件項目過程應該是有計劃的、可控制的,若項目過程管理混亂必然會降低軟件測試的質量。
(5) 誤區五:自動測試將取代手工測試
自動測試速度快、效率高、準確度和精確度高。但動測試只能測試某些軟件的部分特性,且無法靈活處理意外事件。手工測試可以更好地發揮人的主觀能動性、靈活性、隨機應變性,可以更好地適應并處理突發事件。無論自動測試技術多么發達,自動測試也不能取代手工測試。
2學習軟件測試的過程和方法研究
不同知識基礎的人,學習軟件測試技術、進入軟件測試領域的感受也有所不同,很多人在學習軟件測試知識的過程中非常盲目,沒有計劃、沒有方向,學習效率低下。在此,本人對學習軟件測試的過程和方法進行總結、研究和探討,以作交流學習之用。
2.1學習軟件測試的過程
(1) 第一步明確測試目的
有目的才有動力,有目標才有方向。軟件測試就是對軟件需求分析、設計規格說明、程序代碼以及軟件其他相關產品進行測試的過程,是軟件質量保證的關鍵步驟。明確軟件測試的目的和目標才能準確的定位測試并更有效的進行測試。
(2) 第二步結合實際項目,學習掌握測試方法、合理設計測試用例
常用的測試方法有黑盒測試和白盒測試。黑盒測試在完全不考慮程序內部結構和內部特性的情況下,針對軟件界面和軟件功能等進行測試,是最基本的測試方法。白盒測試允許測試人員利用程序內部的邏輯結構及有關信息設計或選擇測試用例進行測試。準確的理解和掌握這些技術及其相互關系是進行軟件測試的前提。
測試是有風險的行為,完全測試是不可能的。軟件測試用例是進行測試的核心,是測試人員測試過程中的重要參考依據,它的組織和編寫關系到整個測試工作和思路的正確性、有效性。測試用例的組織性和條理性是軟件測試成功的一個重要因素。因此,在學習軟件測試的過程中,要準確的把握測試方法并有條理的組織和設計測試用例。
同時,軟件測試重在實踐。理論的掌握只能達到紙上談兵的功效,若想真正領悟測試技術的真諦還需進行實際的項目測試。結合具體的測試項目,靈活運用各種測試方法組織編寫測試用例可以幫助初學者更好的理解和掌握這些技術。
(3) 第三步熟悉測試步驟
一個完整的軟件測試過程包括測試計劃、測試設計、測試開發、測試執行、缺陷跟蹤和測試評估。軟件測試管理工具可以系統地控制整個測試過程,實現從測試需求、測試設計、測試執行和缺陷跟蹤所有操作的全方位跟蹤管理,并為這幾個部分提供了關聯機制,使整個測試管理過程更加簡單和有組織。在此,本人建議在學習軟件測試技術的過程中,以一個測試管理工具(例:TestDirector)為平臺進行測試實踐,用心體會一個完整的測試過程。
(4) 第四步了解測試階段
軟件測試從軟件需求階段就已介入,基本貫穿軟件項目開發全程,不同階段有不同的測試點,需要不同的測試方法和技術。軟件測試可以大致分為需求評審、單元測試、集成測試、系統測試、驗收測試( 測試/ 測試)這幾個階段。明確各個階段的測試目的和內容才能選擇相對合適的方法進行測試。
(5) 第五步測試技術的提高和升級
軟件自動化測試是一項讓計算機代替測試人員進行軟件測試的技術,通常借助測試工具來執行。自動化測試可以模擬軟件實際運行效果,測試效率高、準確度和精確度高、可以持續測試而無須休息,彌補了手工測試的不足。
性能被列為系統質量的重要指標,并越來越受到人們的重視。性能測試是對軟件性能的表現進行測試,較功能測試更難實現。
在掌握基本的測試方法和技術之后,可以繼續深入研究自動化測試和性能測試,提高測試水平和測試能力。
2.2學習軟件測試的方法
學習方法的好壞和學習習慣對學習效果的影響非常大,以下是軟件測試初學者需要注意的幾個地方:
(1) 勤學好問、充分利用各類學習資源
問題積累是學習的攔路虎。時間越久,問題越多,給學習造成了很大的阻力,更甚者會讓初學者心生放棄。三人行必有我師,勤學好問,不要滋生“歷史”遺留問題。當然,對于一個復雜問題,如果在短時間內無法理解透徹時,可以先簡單的了解,然后在之后的學習和實踐過程中慢慢體會其含義。由簡入繁,勿鉆“牛角尖”。
軟件測試的學習資源非常豐富,書籍、網站、論壇、技術交流群等唾手可得。充分利用這些資源可以縮短學習和解決問題的周期,使學習更加高效。
(2) 實踐出真知
實踐是檢驗真理的唯一標準。要想真正學會測試,必須進行實際的測試。不要說沒有測試環境,想學的話,完全可以自己搭建環境。有了行動才能有收獲。
(3) 切莫“閉門造車”
軟件測試技術是解決實際軟件測試問題的技術,與現實世界密切相關,盲目的學習可能適得其反。因此,應多關注軟件測試行業的動態,了解軟件測試行業的真正需求,有目的的學習。
(4) 細心、耐心
軟件測試是對人技術和意志的一種考驗,不細心就有可能與缺陷擦肩而過,沒有耐心就無法將枯燥的測試進行到底。只有充分的細心和耐心才能適應和完成軟件測試工作。
(5)“懷疑”精神
定性思維往往是發生錯誤的根源,對于軟件測試人員來說,更應該具有“懷疑”精神,要考慮每個細節,不要想當然地接受任何假設。
(6) 溝通能力
軟件測試人員必須具有良好的人際關系和溝通能力。由于軟件測試工作的特殊性,軟件測試人員在項目小組中并不受歡迎。由于需要經常和開發人員、測試組其他成員進行溝通,軟件測試人員說話辦事必須穩重得當,不能隨意指責別人,否則會事倍功半,影響軟件測試的效率。在學習軟件測試的過程中,應把握各種機會,多與人進行溝通和交流。
3軟件測試的常用技巧
軟件測試雖然辛苦,但掌握一定技巧后將事半功倍。
(1) 邊界測試
邊界是最容易出錯的地方。在進行軟件測試時,應測試臨近邊界的合法數據(即最后一個可能合法的數據,以及剛超過邊界的非法數據)。
(2) 非法測試
人們在不了解軟件功能或使用方法的情況下,經常會不經意地輸入一些非法數據或進行一些非法操作而導致軟件出現意外情況。因此,在進行軟件測試的過程當中,應考慮進行類似的非法測試。例如在輸入數字的地方輸入字符、輸入郵件地址的地方輸入非法格式的數據、進行一些不合理的操作等。
(3) 接口測試
程序往往在接口的地方發生錯誤,在進行相關測試時切勿掉以輕心。
(4) 代碼重用測試
在開發過程中有些模塊功能幾乎相同,程序員在重用代碼時可能忘記在原有代碼的基礎上作修改或修改不全面而引發錯誤。在測試的過程中應更加留意這方面的測試。
(5) 失效恢復測試
當意外(如網絡突然中斷、系統崩潰等)發生時,用戶能否繼續使用系統,用戶將受到多大的影響也是測試要考慮的問題。
4結束語
軟件測試是一個入門易、深入難的工作。學習軟件測試技術沒有捷徑可言,一點點的努力才是正道。學習過程是指引,學習方法是手段,希望以上的方法和技巧能夠給大家以啟迪,也希望更多有識之士能夠與我們共同徜徉在軟件測試這五彩繽紛的世界之中。
參考文獻:
[1] 把冉. 軟件測試行業特別調查[J]. 中國經濟信息,2008(9):76-77.
[2] (美)Ron Patton. 軟件測試[M]. 周予濱,姚靜,等譯. 北京:機械工業出版社,2008.
[3] 路璐,王文莉. 淺談軟件測試技術[J]. 鄭州鐵路職業技術學院學報,2007,19(2):41-42.
[4] 黃茗云,王英龍,張洪亮. 軟件測試熱點淺析[J]. 研究與探討,2008(2):57-29.
[5] 康鋒. 軟件系統性能測試規劃[J]. 大眾科技,2007(8):65-66.
Research on Learning Process and Learning Method of Software Testing
TIAN Li-fang, LIU Shuan
(Department of Computer Science, Huanghuai University, Zhu Madian 463000, China)
Abstract: In the last few years, people pay more attention to software testing, and this kind of work becomes more and more popular. However, many people took many tortuous paths in studying software testing technology. This paper carried on the elaboration to the software testing domain's present situation and the erroneous zone, and did in-depth research on how to learn software testing technology more efficiently from two aspects study process and methods. Finally, it provided a number of software testing techniques for reference.
Key words: software testing; erroneous zone; black box testing; test case