另外:
這里所說的Linux系統(tǒng),是unix系統(tǒng)和類unix系統(tǒng)的統(tǒng)稱;
這里提到的Linux操作,指的是它的命令行操作;
為什么必須掌握
如果你是一名軟件測試人員,尤其,是一名尚未掌握Linux的測試人員,以下內(nèi)容,請一定要只字不落地閱讀,認(rèn)真地思考,如果認(rèn)可,請踐行起來。
在此之前,先來討論一個看似無關(guān)的話題。
什么是能力?
一般來說,能力是完成一項目標(biāo)或者任務(wù)所體現(xiàn)出來的素質(zhì)。解釋中暗含了“能力是一個絕對值(正數(shù))”的意思,是比較學(xué)術(shù)的解釋。
而從職業(yè)的場景、實戰(zhàn)的角度看,能力應(yīng)當(dāng)是相對的概念:
在某些方面,當(dāng)你具備一些素質(zhì),而其他人并不具備時,說明你有著相應(yīng)的能力。
即,
能力是參照于其他人高出的那部分素質(zhì),而這參照范圍可以大到所有人、一個行業(yè)的從業(yè)人員,也可以小到一個公司的員工,甚至是幾個人。
舉例來說,無論是招聘網(wǎng)站的職位上,還是你自己的簡歷上,幾乎不會出現(xiàn)“能熟練使用windows操作系統(tǒng)、熟練使用Android系統(tǒng)、熟練使用IOS系統(tǒng)”等這樣的要求和能力說明。因為,在測試人員里,這些能力是底限,是基礎(chǔ)中的基礎(chǔ),本就應(yīng)該是測試人員都具備的,甚至都快成了網(wǎng)民大眾的基本功。換句話說,具備了這些能力,在測試行業(yè)里沒有任何優(yōu)勢。但,Linux則不同,它常常出現(xiàn)在測試職位的技能要求里;求職者也常常會把自己熟悉Linux這一事實顯式地直白地體現(xiàn)在簡歷里,哪怕是不算太熟悉,也會表明自己有所了解。這意味著,熟練使用Linux操作系統(tǒng),甚至是簡單地會用,在測試人員群體中,還算是稀缺的,是綜合能力的一種體現(xiàn)。
通過這個現(xiàn)象可以得出一個結(jié)論,學(xué)習(xí)任何知識和技能時,不要害怕門檻高,學(xué)習(xí)成本高,因為門檻高,也是切切實實的好事兒。倘若門檻低,別人也能輕易獲取和學(xué)習(xí),那你就沒有什么優(yōu)勢了。門檻高了(其實大部分情況下只是看起來門檻高),意味著許多人都會被排除在門檻外,那你就獲得了足夠的優(yōu)勢。總結(jié)一句話,在培養(yǎng)一種技能和能力時,盡量選擇有門檻的、稀缺的、有技術(shù)壁壘的。
思考與討論:
想想在你的學(xué)習(xí)和成長生涯中,有哪些知識和技術(shù)是讓你望而卻步,不敢涉足的?
現(xiàn)在想想,這些技術(shù)別人是不是也有同樣的感覺?
那些你樂意學(xué)習(xí)的、可輕松掌握的,是否長遠看有足夠的優(yōu)勢?
比你更優(yōu)秀的人,比你多掌握了哪些有門檻的技術(shù)或能力呢?
如果你有這方面的經(jīng)歷和想法,歡迎暢言。
掌握Linux的好處
linux系統(tǒng)在IT行業(yè)的地位和重要性世人皆知,關(guān)于Unix和Linux的種種,也請自行搜索。除此之外,對測試人員來說,Linux還有其它非凡的意義。
技能棧足夠?qū)?/p>
對于軟件測試人員來說,測試的任何產(chǎn)品都基于操作系統(tǒng),如常見的Windows、Android、Ios、Linux系統(tǒng)等。熟練使用操作系統(tǒng)本身就是測試人員的基本功。而隨著對操作系統(tǒng)內(nèi)核的深入理解和掌握,對提高測試能力大有幫助,也有利于測試得更加深入。
Linux系統(tǒng)是與windows系統(tǒng)截然不同的操作系統(tǒng),它們的設(shè)計理念、內(nèi)核原理有著巨大的差異。一種內(nèi)核原理對應(yīng)著它獨有的一片天地,掌握一種操作系統(tǒng),就掌握了該操作系統(tǒng)下的那片天地:處理器管理、存儲器管理、文件管理、設(shè)備管理、安全性、內(nèi)核結(jié)構(gòu)、系統(tǒng)特性等。掌握這些內(nèi)容,不僅增長學(xué)識,也是你測試能力向深層次提高的關(guān)鍵一步。
unix和Linux的家族足夠龐大,就連移動端操作系統(tǒng)IOS和Android,也分別是基于Unix和Linux而衍生出來的作品。掌握了Linux,也就自然而然地熟知Android、Ios、Mac OS X等系統(tǒng)。熟悉了Linux系統(tǒng)的命令行操作,對Android的shell,adb shell命令、Mac OS X的shell的熟悉自然不在話下。Linux還是最佳的也是應(yīng)用最多的服務(wù)器端操作系統(tǒng)。
所以,掌握了它,相當(dāng)于get了一堆技能。
操作和思維習(xí)慣
不可否認(rèn),windows的操作對測試人員影響至深,尤其是對功能測試人員。從我們一開始接觸電腦開始,windows的圖形化操作就深深地影響了我們。幾年下來,我們對所有的圖形化界面操作似乎有了一種天生的能力,可以不加思索地使用它們。所以,當(dāng)你第一次接觸蘋果的Mac OS X系統(tǒng)或Linux系統(tǒng)的圖形化界面時,也可以很輕松地使用起來。因為我們已然具備了對圖形化界面操作的經(jīng)驗和思維習(xí)慣,所以新掌握一門圖形化操作系統(tǒng)沒有難度,同樣也沒有優(yōu)勢。
習(xí)慣甚至安逸于圖形化的操作,長遠看,對于測試人員自身素質(zhì)的培養(yǎng)是有阻力的。
Linux的命令行操作會改變你的操作習(xí)慣和思維習(xí)慣。它使你的雙手能夠更加密切地配合和協(xié)作,更好更快地完成各項工作。
圖形化界面雖然好看易用,但解決問題還得靠命令行。
速度快
熟練使用Linux,你會體會到什么是快,以及怎樣更快。測試人員作為技術(shù)人員,應(yīng)該有技術(shù)極客精神,Linux在這點上支持得足夠好。
Linux的速度快,我想至少有這幾個方面的因素:
操作系統(tǒng)本身的性能穩(wěn)定且強悍;
命令行操作起來流暢且快速;
用命令來編碼,實現(xiàn)復(fù)用,一次執(zhí)行多次使用;
圖形化操作系統(tǒng)在降低了學(xué)習(xí)成本和認(rèn)知門檻,提高了可讀性和可操作性的同時,也降低了操作系統(tǒng)的性能和操控的速度。不必對比Linux和windows,在windows上就有很好的例證:
你有沒有嘗試過,當(dāng)在windows上想把多個超過1G的文件拷貝到U盤上時,使用cmd命令拷貝會比圖形化操作要快得多的多,而且拷貝期間基本不影響你同時做別的事情。
Linux的命令行操作,可以高效精準(zhǔn)地完成各項工作。同時,它也使得經(jīng)常使用Linux的人輸入速度和準(zhǔn)確率更高,眼疾手快。
在實際工作中,需要用Linux完成的工作,雖然可以“曲線救國”在windows下完成,但卻會花費較多的時間。比如,不熟悉Linux時,經(jīng)常會把文件從Linux系統(tǒng)中拷貝到windows系統(tǒng)中處理,減慢了速度不說,還經(jīng)常因為系統(tǒng)換行符的差異傷腦筋,錯誤百出。在“不會使用Linux”的困難面前,能夠想到用windows來解決問題,是值得鼓勵的,這符合“沒有辦法創(chuàng)造辦法也要上”的精神。但反復(fù)這么做,卻從來不突破瓶頸,就有問題了。
Linux在速度快這方面的優(yōu)勢就不一一列舉了。這里也并非是詆毀windows,只為體現(xiàn)Linux的優(yōu)勢而已。
編程捷徑
熟悉了Linux的命令行操作,你將會對所有的命令行操作有著天然的喜歡和自通,哪怕是windows的dos命令。
Linux的幾乎每個命令(工具)都很好用,有些甚至很強大,如awk、sed、vim、sar等等,就拿awk來說,它在許多場合下被稱作是編程語言——處理文本數(shù)據(jù)的編程語言。
尤其是功能測試人員,掌握了Linux命令,可謂是以最便捷、最低成本的方式打開了編程的大門,因為會使用Linux命令離會shell編程僅半步之遙。