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