軟件測試面試過程當中,被問到 「你會搭建測試環境嗎」 要怎麼回答?

 ● ○ ●你會搭建測試環境嗎?● ○ ●前端

 

           導語:不少人在面試軟件測試的過程當中,常常被問到「你會搭建測試環境嗎」?面對這樣的提問,你知道怎麼回答麼?web

 

● ○ ●如何回答● ○ ●面試

 

         面試的時候,遇到這樣的提問,不少人的都會感受腦子一下一片空白,或者星星點點,不知道從何提及。一方面不知道面試官問這個問題的意圖是什麼?也不知道他想獲得的答案是什麼?更加不知道該從哪些方面來回答。做爲一個測試行業從業8年有餘的測試人員,我想跟你們分享一些個人經驗和見解。數據庫

         首先,毋庸置疑的是,面試官問這個問題,想要獲得的是你確定的答案,但願你是一個會搭建測試環境的優秀測試工程師。QA不論是作什麼類型的測試,最基礎的功能測試,須要搭建測試環境;進階部分的性能壓力測試,對搭建環境的要求更高。因此搭建測試環境是優秀測試工程師的必備技能之一,也是QA開展測試工做的前置條件。固然有些公司可能會有運維或者研發部門幫忙準備好測試環境,可是QA若是一味依賴別的部門,就會大大的侷限測試工做的開展,若是別的部門沒有時間或者進度滯後,會直接影響到測試工做的進度和效率;並且測試環境若是不是QA負責維護的,後期擴展業務須要優化測試環境的時候,或者遇到問題要調試的時候,都須要依賴其餘部門,會致使測試工做不獨立,也會顯得測試工做人員不專業。後端

● ○ ●需掌握的知識● ○ ●tomcat

 

        瞭解了QA具有搭建測試環境能力的重要性,那麼真正要具有搭建測試環境的能力,須要掌握哪些技能和知識呢?服務器

         這就須要咱們先知道測試環境是什麼。測試環境(Testing Environment),是指爲了完成軟件測試工做所必需的計算機硬件、軟件、網絡設備、歷史數據的總稱,簡而言之,測試環境=硬件+軟件+網絡+數據準備+測試工具。顯而易見,咱們要學會搭建測試環境,須要具有這5種的技能和知識。因此,咱們針對每個知識領域你們須要掌握的知識點及其深度和廣度,給你們作個詳細的介紹,但願能給你們做一個指引,知道本身該努力的方向。網絡

          硬件,通常測試會涉及到的硬件就是計算機系統相關的內容,好比Windows系統,Linux系統和MacOS系統。測試環境能夠部署在以上任何一種系統上,根據當前被測軟件的具體需求而定。通常軟件的運行平臺,可能會更多的在Windows系統上;可是相關服務的搭建,好比軟件運行須要交互的服務,或者是軟件後臺的承載服務,都會在Linux系統上搭建。因此Linux系統相關的命令和操做是QA必需要知道並且熟練的。Linux系統有不少類型,如CentOS,Ubuntu,Redhat,Debian等,根據產品的具體需求選擇合適的系統就能夠。另外,咱們最好還要知道怎麼安裝Linux系統,由於在不少公司會給QA提供設備資源,須要QA根據需求在服務器上部署Linux系統。 這裏還須要注意的一點,就是軟件運行對硬件的要求。一般軟件說明書上會明確軟件對硬件的需求,好比CPU個數,內存大小,硬盤大小,網卡個數等信息,若是沒有明確要求,QA能夠跟開發或者產品溝通確認。因此,關於硬件這塊,須要你們對各類操做系統有所瞭解,特別是可以操做Linux系統經常使用命令,可以安裝系統,而且配置IP、路由等基礎網絡(這個在網絡部分會再重點講到),可以在各類系統上安裝和搭建經常使用的服務。併發

         軟件,包括當前被測的軟件以及相關依賴和交互的軟件。當前被測軟件的部署,通常在部署好的Linux系統上安裝好服務以後,能夠直接在前端經過web或者APP訪問,後端只要部署完成了,前端的運行仍是比較簡單的;依賴和交互的軟件,通常是一些支持的軟件,好比JDK,tomcat,數據庫等。怎麼安裝部署,你們能夠去自行百度,網上相關的教程不少。運維

網絡,這個多是不少測試人員的一個知識盲區。網絡是一個比較龐大的知識體系,涉及的內容特別多並且複雜。因此你們能夠優先學習一些跟搭建環境密切相關的網絡知識,而後本身再慢慢的去滲透和深造。通常公司網絡環境,最基本的要求是交換和路由相關的知識。好比要本身搭建一個網絡拓撲,使用多臺網絡設備(如服務器,路由交換等中間設備,客戶端等),QA須要規劃和配置IP地址,部署路由和VLAN等相關配置,實現網絡隔離和通訊,這樣才能夠開展正常的業務測試;另外,對於一些經常使用的基礎網絡協議,如TCP,UDP,HTTP等,最好也能有個基本的認知,由於不少服務都是基於這些基礎協議實現的,知道這些可以加深本身的理解,有利於測試的做的實現。固然,如前面提到的,除了以上網絡設備,咱們還須要操做Linux的基本網絡配置,如Linux IP和路由配置,Linux系統命令抓包,調試網絡通訊問題等,這些都是須要Linux命令和網絡基礎知識結合在一塊兒使用的。

         數據準備,通常指測試數據的準備。測試數據會在測試用例設計的階段設計好,而後軟件運行的時候,做爲軟件輸入去驗證軟件功能。若是是少許、正常的測試數據,能夠直接經過手動方式模擬出來,若是是大量的用戶數據的模擬,能夠藉助測試工具來構建,這個接下來的測試工具部分會再詳細講到。

測試工具,是不少測試人員都比較感興趣並且趨之若鶩的一個知識領域。你們執行功能測試的時候,會利用各類工具代替手工,簡化和深化測試;執行壓力和性能的時候,就更加須要藉助測試工具模擬出來高併發、高吞吐、高持續的數據。因而可知,工具確實很重要也很實用,縱觀大量招聘公司的職位要求,基本都有「熟悉xxx測試工具」的明確要求項。QA能夠針對本身將要作的測試類型,選擇合適的工具進行學習。好比你要作的是接口測試,能夠選擇Jmeter或者postman;你要作壓力和性能測試,能夠學習Loadrunner,IxLoad或者Avalanche的使用;要模擬多種協議的流量,也可使用Linux上經常使用的流量測試工具,如Hping,Curl,ab等;還有一些經常使用的debug和抓包工具,如fiddler,wireshark等,也能夠學習而且使用起來。總之,工具是輔助測試的好幫手,靈活使用可讓你的測試效率事半功倍。固然,這裏想補充一句,工具的重要性確實無可厚非,可是你們仍是不要盲目崇拜,一味追求工具的學習和使用,由於工具再好也僅僅就是一個工具而已,仍是須要專業測試人員應用良好的測試思路和理念去恰到其分地使用到測試中,才能將其做用發揮到極致。

  ● ○ ●面試技巧● ○ ●

 

         講到這裏,可能會有不少人都以爲壓力山大,畢竟要掌握這麼多專業的知識,對任何一我的來講都不是一件易事。若是可以所有掌握當然是完美,可是對於經驗沒有那麼豐富的人,甚至有不少從事測試多年的測試工程師,都沒法自信的篤定本身能夠在這全部的知識領域裏遊刃有餘。因此,在你成長成爲一個全能型優秀測試工程以前,被面試官問到這種問題要怎麼辦呢?這裏,我能夠分享給你們一些小技巧。

          首先,去面試以前,先了解你要去面試的公司具體是個什麼類型的公司。其實這點,不止針對這個問題,應該是針對全部的面試,都應該先弄清楚你要去面試的公司主要業務和職位要求,有針對的去準備本身的知識點和回答問題的方向,這是面試的一個必備智慧。好,回到咱們今天要討論的環境搭建的問題,由於不一樣的公司所須要你具有的搭建測試環境的能力是不同的。好比是一個傳統的網絡設備公司,如路由交換,防火牆等業務產品,他會要求你更偏向於的網絡基礎知識多一些,如網絡拓撲的搭建和配置,相關協議的使用等,因此你能夠提早作好相關知識的準備;若是是傳統的Windows軟件的公司,搭建測試環境大部分都是跟系統相關的,也就是上面咱們講到的硬件部分要求的內容。那麼你就能夠提早把Linux系統的相關的知識抓緊時間惡補一下;若是是時下最流行的互聯網公司,測試web應用,PC 端APP和移動端APP軟件的較多。搭建這樣的測試環境,則側重更多的是Linux系統知識,還有相關服務的搭建以及各類工具的使用。 固然,這種分析也只是一個大概的總結,不是絕對正確也不能涵蓋全部的狀況,因此你們作一個參考就好。不過,先分析公司類型和業務,針對崗位需求提早作準備的這種思路,確定是百利而無一害的。

          另外,面試以前,你們必定要根據本身已有的工做經驗和知識體系作好相關的梳理。大部分面試官,都會要你根據工做經驗描述搭建測試環境的過程,那麼你就須要在實際項目經驗的基礎上,結合本身的知識儲備,而後再有針對性的組織語言去迎合當前面試公司的要求,總結出來一份漂亮並且能知足對方預期的答案。這麼說可能會有些抽象,咱們能夠來看個具體實例。

  ● ○ ●實例● ○ ●

 

            面試官:你之前公司測試須要本身搭建測試環境麼?你會本身獨立搭建測試環境麼?

            你:咱們原來公司都是測試人員本身搭建測試環境的,由於這樣子的測試工做能比較自主獨立的開展,並且後期的維護也會比較方便一些(首先,確定的回答了問題,告知你是會搭建測試環境的,並且也表達了你認爲測試人員會搭建測試環境的必要性)。咱們通常會在拿到測試需求的時候,根據需求先把準備環境好。由於我上一家公司是一家防火牆公司,有本身的設備,也有相應的web應用和APP,因此我會同時測試這些前端應用以及防火牆設備服務(先介紹一下公司的業務類型以及本身的測試的產品,以方便後面講環境搭建的重點,這裏能夠根據本身的實際狀況而定)。因此準備這樣的測試環境,咱們會須要準備兩臺Linux服務器分別模擬客戶端和後端服務器,搭建好測試拓撲,配通網絡就能夠(代表網絡基礎配置能力你是具有的);而後Linux系統咱們通常也會本身安裝,並且還要準備好相應的服務(表達出Linux系統的操做和經常使用服務搭建也是OK的);而後咱們會用客戶端模擬一些用戶流量,也會在Windows上安裝一些經常使用的測試工具來模擬用戶數據來測試產品(經常使用測試工具也是沒有問題的)。這樣最初的測試環境搭建基本就完成了。

         面試官:因此Linux系統你是會用的對吧?大家通常會安裝一些什麼服務?具體操做步驟能簡單描述一下麼?(他會根據你的描述挑出來他感興趣的點來細化的問你,好比一些具體的知識細節)

         這個時候,就須要你回答具體的細節了,考驗你的技術硬核能力了。固然,若是遇到本身不是很清楚的,必定要拈輕怕重,聰明的引導面試官問你擅長的領域,好比「這個我不是太瞭解,可是我用過另一個xxx,這個我比較熟悉」  

        ......

  ● ○ ●總結● ○ ●

 

       總而言之,面試官問你這樣的問題,一方面是想考察你的技術能力,另外一方面也想考察你的表達能力。因此,你們能夠對照一下上面列出來的知識點,若是感受本身的知識儲備不足,能夠趁面試以前好好補習一下;若是發現不少知識領域本身都有涉獵,可是回答的時候不知道從哪裏開始,那就根據本身的經驗和實際狀況,時常總結和沉澱,梳理本身的知識體系。

      記住,毫無準備的面試,成功率都不會過高;善於總結積累的人,運氣都不會太差!

相關文章
相關標籤/搜索