筆者針對測試從業者必須掌握的基本功做了個分層:
1、操作系統層
在這個層面,至少需要去了解操作系統類型、生產廠商、劃時代的版本、典型的應用場景。
一般而言,操作系統類型可以分為:unix、linux、windows,咦蘋果系統去哪了? 蘋果系統的核是unix的一個分支。當然了要是細分下去會更多,大家大體了解這三種足夠(也可以把mac os列為獨立的一種、android則自動歸為linux系列)
從應用的場景又可以分為:桌面版本、服務器版本、移動版本,獨立生態的蘋果,對于每種所占據的市場地位,也是眾所皆知的,如果你不清楚,那你平時就應該多多看看相關科技資訊信息了。
從操作系統生產商發行版本來看:
windows分兩大類: 以往桌面版的windows系列和服務器版本的Server系列以及現在桌面、移動合一的windows 10。
unix:這個就比較多了,例如AIX(工作站、大型計算機常用)、原sun發布的Solaris、惠普發布的HP-UX、A/UX(即蘋果系統)
linux:這個就更多了,例如centos、fedaro、ubutun、debian、opensuse、redhat、kali等等,國內的就不列,大家自己去搜索下。
不管是哪種類型的操作系統,您都應該去了解下POSIX,POSIX標準定義了操作系統應該為應用程序提供的接口標準,是IEEE為要在各種UNIX操作系統上運行的軟件而定義的一系列API標準的總稱,其正式稱呼為IEEE 1003,而國際標準名稱為ISO/IEC 9945。
通過對POSIX的了解,你能更深入的了解什么是操作系統。
2、協議層
協議是什么? 協議就是游戲規則,如果你不具備打破規則的能力,那請遵循游戲規則,否則沒人和你玩。
對測試從業者而已,需要掌握:
網絡協議由誰定義?
在哪里可以查閱協議定義原文?
在哪里可以查閱中文版協議定義原文?
測試人員應該掌握哪些協議?
下面回答下上述四個問題:
幾乎所有的因特網標準都收錄在RFC(Request For Comments)中,RFC是一系列以編號排定的文件。文件收集了有關因特網相關資訊,以及UNIX和因特網社群的軟件文件。目前RFC文件是由Internet Society(ISOC)所贊助發行。
RFC原文你可以從這里獲取: https://www.rfc-editor.org/
RFC中文版你可以從這里獲取:http://man.chinaunix.net/develop/rfc/default.htm
對于協議的掌握,一是掌握協議機制;二是協議報文格式;三是抓包分析工具。對測試人員而言,必須掌握的機制是:
IP/TCP三次握手機制。
必須掌握的報文格式:
IP協議
TCP協議
HTTP協議
抓包分析工具:
首推wireshark
其他的比如httpWatch、fiddler
對于具體的信息請大家自行去找相關文檔查閱和實踐。
3、基礎服務
這里大致分幾個類,大家就清楚了,我們應該掌握:
Web Server類,例如tomcat、apache、weblogic、IIS等等
數據庫:例如Oracel、MySQL、mongodb等等
Docker類容器等等
當然還有其他的,不過這些就算沒直接接觸,應該要去了解:
其應用場景是什么樣的
其部署方式及可能帶來的性能影響
同類型基礎服務間的優劣對比
關鍵性的配置
在這個基礎上,大家根據自己踩過的坑再繼續發揮下,會有更多的收獲。
4、編程能力
在這里所說的編程能力,不僅僅包括C、C++、java等等這類的開發語言,同樣包括SQL、html等等。
從軟件測試招聘的要求和未來發展來看,深入掌握一門編程語言是必備的基本能力,同時對各種語言能有所了解、甚至理解也將成為優勢。
從編程角度和職場要求來看,測試人員應該掌握以下幾個方面的能力:
熟練掌握一門編程語言,并能將該語言服務于測試過程效率的改進
了解常見的算法的時間消耗和空間消耗
debug分析能力
軟件工程思想
當然還有其他能力,但我想,上述四種能力是最為基礎的,也是最為核心的。對于上述幾種能力的掌握推薦基本書吧:
編程方面,推薦xx核心編程,例如python就推薦: 《Python核心編程》
算法方面:《算法導論》
debug能力:這個要靠實踐中積累了,需要各種知識的綜合應用和經驗積累。一般來講三板斧:
一是print;二是log(日志);三是IDE自帶debug功能(單步調試等)。
軟件工程思想:比較強力推薦林銳博士的《軟件工程思想》通俗易懂,語言犀利,深刻透徹。
5、基本命令
這里的基本命令是指windows、linux、unix等操作系統下的常用的命令,對于這些命令我們需要掌握哪些呢?這里我們不列舉具體的命令。
下面我們說明下要掌握的命令分類和其典型代表命令:
系統管理類,例如用戶管理、進程管理、內存、CPU監控等等
文件管理類,例如文件比較、 創建、查找、拷貝、刪除、賦權等等
磁盤管理類,例如目錄創建、刪除、掛載等等
系統設置類,例如環境變量設置、計劃任務管理等等
備份壓縮類,例如文件備份、各種格式文件解壓縮等等
當然還有其他分類的命令,但上述這些是日常工作中,必須會的。
6、軟件測試
這個就太多太多了,簡直無以言表。我試著就軟件測試進行濃縮,僅供大家參考:
博弈論
動態規劃
求同存異
思緒良久,沒有嘗試出通俗易懂的表達方式,也不想闡述過多的理論或細節,最終選擇了上述幾個關鍵詞。
下面我介紹下這兩個關鍵詞的含義,我想應該可以給大家一些發散的原點。
博弈論:主要研究公式化了的激勵結構間的相互作用,是研究具有斗爭或競爭性質現象的數學理論和方法。
動態規劃:是求解決策過程(decision process)最優化的數學方法。
求同存異:是周恩來處理復雜關系、解決復雜矛盾一以貫之的思想方法和行為模式,中國外交政策之一。
在反復回顧過程的測試實踐和對測試領域未來的發展,認為這三個詞能代表測試領域的特色[注:這三個詞也可以用于其他任何領域吧。萬金油,哪都可以用^_^]
人生苦短,我做測試!
7、測試技術
測試技術應當說是測試實踐過程中最為簡潔的事了,但卻成為了測試人員進一步提升的攔門虎,有些意外,有些無奈,讓人很迷茫。
這里簡單的說明下測試技術方向的想法,要想掌握測試技術,首先得了解以下分層:
UI級自動化測試,模擬用戶真實操作,改進測試過程的效率
接口級自動化測試,驗證系統、服務、模塊間的調用關系及響應數據
性能測試,采集系統性能指標、挖掘系統瓶頸,預估系統未來擴容的可行性
安全測試,挖掘系統安全漏洞,規劃系統、數據等安全
數據測試,過濾臟數據,確保數據的有效性、精確性,挖掘數據的價值
其他可自動化測試的
提供測試技術實施成功率的幾個重要保障:
定義自動化測試的邊界,即抓住最典型的用戶場景和異常場景,忌通吃
做好自動化業務場景對應的元素定位技術分析
定義好自動化測試執行方式,即全自動調度測試、半自動、手工觸發方式
做好自動化測試數據規劃,數據驅動流程是一種很好的方式
總結
基本功底先分享這么多,后續還有關于基本功底的分享,例如測試數據規劃、過程度量等等
-
測試工程師
+關注
關注
6文章
124瀏覽量
12489
發布評論請先 登錄
相關推薦
年薪30萬的嵌入式工程師,究竟需要掌握哪些技能?
![年薪30萬的嵌入式<b class='flag-5'>工程師</b>,究竟需要掌握哪些<b class='flag-5'>技能</b>?](https://file.elecfans.com/web2/M00/9B/3D/poYBAGQjnauAVXOgAABFcEbXdEE684.png)
![](https://file1.elecfans.com/web3/M00/05/24/wKgZPGd9BIKAasMYAAP9Ml_injM792.jpg)
嵌入式工程師常用的開發工具有哪些?
![](https://file1.elecfans.com/web1/M00/F3/FA/wKgaoWciDI6ABdEhAAJtvu-cw_c556.jpg)
![](https://file1.elecfans.com/web2/M00/07/FB/wKgZombz6VuAFeotAAIjSCj1HKI007.jpg)
![](https://file1.elecfans.com/web2/M00/FF/40/wKgaomahti2AV26dAAMiNIjdnKg435.jpg)
嵌入式軟件工程師如何提升自己?
![](https://file1.elecfans.com/web2/M00/EB/14/wKgaomZXAd-AWEwjAAuV2RdwuSM130.png)
嵌入式軟件工程師和硬件工程師的區別?
![](https://file1.elecfans.com/web2/M00/E5/09/wKgZomZB1aqAfoLMAALwKMk88bw153.jpg)
![](https://file1.elecfans.com/web2/M00/DF/FB/wKgZomY1H9uAdzzJAAMwQMmJ0js548.jpg)
![](https://file1.elecfans.com/web2/M00/DE/DE/wKgZomYwuQ-AegjsAAISSibiD4I286.jpg)
評論