如何才能做好軟件測試工作
發表于:2014-08-27來源:uml.org.cn作者:不詳點擊數:
標簽:軟件測試
如何才能做好軟件測試工作,這個問題在面試的時候經常會被HR問到。當然,她們對答案的了解幾乎都是照本宣科。
如何做好
測試,這個問題在面試的時候經常會被HR問到。當然,她們對答案的了解幾乎都是照本宣科。
業內普遍認為測試是技術含量偏低的工作,確實剛畢業的學生能做測試,因為我們理解的測試就是一群"鼠標點擊者"在電腦前按照文檔機械性重復著枯燥的事情,最好寫份報告,工作就算完成了。
對于部分企業或部分項目,這是做測試工作的基本現狀。這也是大部分局外人和小部分局內人所理解的測試。
就是這種外界或部分局內人對測試錯誤理解的氛圍,才一定程度的影響了
測試人員就業面的狹窄和即將從事測試行業人的認知。
每次,我在跟各個公司的HR講解如何做好測試和測試與
開發的區別有多大的時候,她們都很難真正理解到我對測試的看法,也更難說服她們我還可以做
開發,而且會比以前更好。
那么,測試究竟是怎樣的工作呢?測試比開發究竟差多少呢?
先從開發與測試的發展講起:開發從1946年初計算機誕生開始,到現在,頂多有五十幾年的歷史。在大陸,開發也就有20年左右的歷史。能正規的開始測試應該從95年微軟把windows系統的注冊表
本地化業務交給國內算起,發展將近15年,但真正的測試還是要從93年做軟件外包開始,實際發展也就7年時間。
再說什么是開發:大部分人都容易理解了開發,就是按照
需求創造出一個新的應用程序唄。那么測試,就是檢測開發出來的東西(如api, UI, user experience, internal function, environment-demond such as network bandwidth and System and Memory,etc.)與
需求有無差距,還能挖掘出潛在需求,實際結果是否是期望的行為。
我們常說測試是為了能保證產品質量,盡早找出
bug。這么說也對,不過還是很抽象,并且在概念的理解上,簡單化了測試。
測試----由于歷史發展較短,不象開發那樣發展那么迅速,可借鑒的東西不象開發那么明顯(代碼是可見的,測試就難了),所以這就意味著一點:測試更需要人的創新,驗證程序的正確性更是需要人們大量的創造性勞動。驗證程序的正確性,遠不象普通人想象的那樣簡單。
開發是開發人員使用
編程語言按照需求文檔寫出來另外一套API。測試就是測試人員為了更好驗證開發出來的API需求文檔,不用去關心產品功能實現,而是首先去考慮開發出來的API是否符合需求(這就是BVT/Function Test),其次是通過設計和搭建好的測試情景去分析對系統,網絡,其他API,module模塊的影響(
白盒測試,集成測試),有些時候需要做
性能壓力測試。如果出現問題,就要進一步分解
測試用例,定位問題所在。
要做到以上幾點,會遇到很多挑戰,說白了,就是會遇到很多困難,如同開發人員一樣,都需要用專業知識與想法來解決。
現在說下困難是怎樣的,你才能了解測試人員每天遇到的問題,才會知道需要什么樣的人才能做好測試。
第一,測試產品是否符合需求,需要用有效的方式,全面驗證需求點。高級測試人員要寫很多專業的文檔,應用很多IT方面的知識,與更高級更資深的人士探討需求,去開發出不同的文檔來保證將在產品生命周期中的各個階段都作最正確的事情。普通測試人員每天要做好記錄和報告,說明測試了哪些,哪些還沒有測試。要求有很好的自我管理的能力。
第二:設計與搭建測試環境。隨著開發技術的不斷進步,諸如多線程,虛擬化,超大規模數據量的并發,
安全性,軟件間、不同系統平臺間的交互響應這類問題會給搭建環境,模擬真實客戶的使用環境,對測試人員來講都很有挑戰。而開發人員更關注于需求實現細節,不做架構師的普通開發人員不會考慮,只要實現出來功能,做個
單元測試,接下來就交給測試人員來綜合考慮這個開發出來的東西是不是很好用,會帶來哪些問題,開發人員很懶,等測試人員檢查出來問題,他們才去應付問題,注意,我說的是有些情況他們都是應付而已,掩蓋問題。 所以,測試人員往往比開發人員更懂得需求,而且要懂得很多IT知識,才能最大限度的評估出開發出來的東西到底有哪些問題。開發就好比去制作出一個玩具模型,測試人員就是研究這個玩具模型,拆開,放到事前預備好的裝模型的模具里檢測是否符合規格;再放到更大的玩具模型里, 看看這些小東西跟其他的模型玩具能一起工作。這些工作有些時候是無可借鑒的,不象開發那樣,上網搜索就能找到答案,測試就很難,幾乎是不可能,只能自己想辦法,找出解決辦法。
原文轉自:http://www.uml.org.cn/Test/20114134.asp