学妹哭着问我:测试工程师应掌握什么?不知道自己是否适合做这个?
前言
通過這篇文章你將收獲,身為一名測試工程師的核心競爭力。
常有人會問,如果要做軟件測試的話,有什么要求?需要具備哪些素質和技能?不知道自己是否適合?
這里我發表一下自己的看法
軟件作為一個新興行業,卻發展迅猛,成為年輕人中最受歡迎的行業之一。目前,平均工資最高的行業就是金融和計算機軟件。測試作為軟件行業中一個比較新穎的職業,國內外對于測試的需求仍不夠清晰。所以,很多人都會問,作為測試,有什么必須掌握的技能嗎,是不是就是點點點?
測試的類型
首先,測試工程師可以分為兩大類別,一類是做業務功能測試,另一類是做測試開發。我對此的簡單理解是,業務功能測試要會用,測試開發還要會創造。即:業務功能測試是使用各種工具和方法去測試軟件;測試開發是自己設計開發一個產品來輔助業務功能測試或測試軟件。
業務功能測試
業務功能測試應該具備的核心競爭力, 按照能力對測試工程師的重要程度的順序排列包括:測試策略設計能力、測試用例設計能力、快速學習能力、探索性測試思維、缺陷分析能力、自動化測試技術和良好的溝通能力。
測試開發工程師
總的來說,作為測試開發需要較強的代碼能力、測試系統需求分析能力和更寬廣的知識體系。
首先既然是測試開發工程師,那么代碼開發能力是最基本的要求。可以說,一個合格的測試開發工程師一定可以成為合格的開發工程師,但是一個合格的開發工程師不一定可以成為合格的測試開發工程師。
除了代碼開發能力,測試開發工程師更要具備測試系統需求分析的能力。你要能夠站在測試架構師的高度,識別出測試基礎架構的需求和提高效率的應用場景。從這個角度說,你更像個產品經理,只不過你這個產品是為了軟件測試服務的。
測試開發工程師需要具備非常寬廣的知識體系,不僅需要和傳統的測試開發工程師打交道,因為他們是你構建的測試工具或者平臺的用戶;而且還要和 CI/CD、和運維工程師們有緊密的聯系,因為構建的測試工具或者平臺,需要接入CI/CD 的流水線以及運維的監控系統中去。除此之外,還要了解更高級別的測試架構部署和生產架構部署、還必須對開發采用的各種技術非常熟悉。可見,對于測試開發工程師的核心競爭力要求是非常高的。
測試的初期
目前,對于國內大部分公司來說,兩者前期的要求并不明顯,只是日常工作中黑盒測試和白盒測試的占比不一樣。你會發現功能測試也會問你編程語言,測試開發也會問測試用例。所以,我們需要學習和掌握的知識是深度加廣度并行的,可以想象為:一棵樹為了快速扎根,它需要橫向地廣度去探索的同時,選擇正確的方向去深度扎根學習。
圖片說明
十年樹木,百年樹人。一棵樹要想成長為參天大樹,根可能比枝干和樹冠更加龐大。樹的根是在汲取養分、水分(不斷學習,充實自己),樹的枝干樹葉是為了爭奪陽光(勤奮努力,把握機遇)。古人言:博觀而約取,厚積而薄發。在廣博學習而簡約審慎地取用,在深厚積累之后慢慢地釋放出來。即:只有廣見博識,才能擇其精要者而取之;只有積累豐厚,才能得心應手為我用。積之于厚,發之于薄。前期廣度與深度并行,后期加強深度。正如銘記于心的校訓:明德正行,博學多能。
測試需要的技能
言歸正傳,身為測試究竟需要掌握什么技能。我認為,這取決于你想去的公司所描述的測試工作職責是什么,即公司想要你做什么,創造什么價值。當然這是廢話,但也是最重要的學習方向。
那么,以個人平時的工作而言,落到實處給你講講需要掌握什么技能。
首先列出技能:1.軟工軟測計網理論 2.業務快速學習 3.編程語言 4.linux 5.數據庫 6.優秀的文檔編寫能力 7.自動化工具 8. 了解APP 9.了解前端 【關鍵看測什么,需要什么】
軟件工程
首先,作為軟件測試,軟件的知識你需要了解,最好有自己的認識,即對應著“軟件工程”。軟件工程的每一章則對應著大學內一門專業課程,而我們所需要的只是了解而已,前期不需要每一個都去深入的學習。著重了解 軟件開發的常見流程、瀑布模型、原型模型等。在系統設計和接口設計的時候,你能有自己的一定認識和理解,提前思考測試方向和計劃。
軟件測試
軟件測試相關的理論也是不可缺少的,這方面最好有自己深入的思考。個人一直認為“軟件測試”是一門不錯的課程,即使不做測試也能提升你的思維能力。這方面需要掌握 常見黑盒、白盒測試方法,測試的常見流程和模型,各項測試應該在什么時候展開,了解常用的測試思想和自動化工具。在具體設計測試計劃、測試用例的時候,能更科學、專業、全面地去權衡。
計組相關
軟件的運行離不開操作系統、網絡、計算機,因此,這些課程的基礎知識需要了解和學習,尤其是互聯網公司,網絡相關知識最好有較深刻的認識。在日常工作中,當web頁面功能出現問題的時候,第一反應就是F12查看接口返回,此時,就需要用到網絡的知識;部分時候,需要你抓包分析。主要需要了解的是HTTP/IP協議簇、頁面相應過程、HTTP和HTTPS等,這是常問的,也是工作的常用的,當你了解了原理,會從全局上有更清晰的思維去測試。
編程語言
其次,最好懂一門常用的編程語言,如:Java、python、C++、GO。你可能會問,我就是不懂語言或者不想做開發才想來做測試的,為什么還要懂語言。首先,code review(簡稱CR,代碼評審)需要測試參加,你需要知道開發改了什么,更精確地去設計用例,著重測改的部分;其次,接口測試的時候如果接口文檔不清晰、不規范,你需要閱讀相關源碼理清邏輯后與研發確認;白盒測試也需要你讀懂代碼的邏輯,畫出程序流程圖,設計用例;最后,如果你想深入測開,那么code能力必不可缺。
Linux
當研發開發好了程序,需要測試搭建測試環境,有的需要手動搭建,有的是用配置自動化平臺參數搭建。相應的,你需要了解Linux,因為服務一般搭建在Linux系統中。其次,如果系統出了錯,從頁面和接口層次無法準確定位的時候,需要去監控和查看系統日志。即測試環境的搭建、維護、監控需要你了解Linux。
MySQL
當需要檢驗產品數據的正確性時,你會與數據庫打交道,而大多數公司都是使用MySQL。所以,測試需要掌握MySQL,甚至達到精通的地步。在工作中,很多事情最后都會定位到數據庫中去審查,而且需要執行很多SQL腳本。在初期,需要了解MySQL的基本操作和常用查詢函數。這一點,對于研發也一樣重要。
自動化
如果人工已經不能滿足你的工作需求的時候,需要引入自動化測試。比如,當產品穩定后,需要對其進行性能測試。如果使用純人工,那幾乎是天方夜譚;而使用Jmeter等工具則只需要簡單的配置、執行,即可得到較精確的分析報告。所以,我們需要多學習自動化測試工具和方法。
文檔編寫
測試的流程中一直需要有文檔的輸出,這些文檔會跟產品、研發、測試進行交流使用,并在測試結束后對文檔進行整理和保存。因此,我們還需要優秀的文檔編寫能力。這一點小編也一直在努力學習中:如何清晰地表達自己的觀點,如何準確地描述事情;這會為我們省去很多不必要的麻煩和交流。
其他
除此之外,如果與前端打交道比較多,還得學習前端相關的知識;干某一行,需要了解這一行的業務和常識,快速學習業務相關知識;其次,最常用最熱門的技術需要我們去挑戰:中間件、測試開源架構、H5測試、Shell編程、AI、大數據、常用開發框架;當然這都跟業務、工作、長期規劃相關了。
假裝總結一下:公司要你干啥,你就得立馬會啥。如果沒有明確要求,就要精通熱愛且重要的一門技術,同時啥都要了解一下。
測試需要的素質
講完了硬技能,我們來說說軟技能;即作為測試,你需要什么個人素質和能力。個人認為,一名測試需要以下素質:
1.溝通能力 2.細心、耐心 3.邏輯思維、分析問題 4.快速學習 5.責任 6.團隊協作 7.文檔編寫
(媽耶,寫到這里過了兩個小時了,趕緊水完去吃飯。以下內容先簡單描述下個人體會,如果有需求,請留言,會對其進行補充)
作為測試,工作中需要跟大量的人打交道(產品、研發、測試、客戶),因此,需要較強的溝通能力。如果你講不清楚,甚至工作都沒法進行下去;關于交流,我們需要事先組織好自己的語言和邏輯;其次,不能加入個人的主觀想法,要從事實上客觀地去反饋事情的本相,不能誤導和影響他人。
測試是去輔助研發定位錯誤,從另一個角度去幫助研發快速完成軟件的開發。因此,你應該細心,要發現一些微小而又致命的錯誤。其次,測試會反復地執行用例、記錄問題、回歸測試,這需要耐心。
遇到問題,你需要快速分析問題,定位根本原因,遇到問題要快速記錄,定位問題并想辦法復現;理清邏輯并匯報給研發,盡量減少研發定位BUG和反復修改的工作。
每接觸一個應用需要你快速掌握該應用設計業務、應用所有功能、整體架構、依賴應用的功能和使用的知識。當一個新的自動化工具或公司自制平臺被引入到工作中,你需要快速掌握并使用。當今互聯網項目都快速迭代,生命周期通常以“月”、“周”為單位,測試工程師需要接觸各種類型的測試項目,所以快速學習能力對測試工程師來說至關重要,否則容易被淘汰。
測試的工作是保證軟件的上線質量,所以需要很強的責任心。
測試工作中會與項目的各個人員打交道,無論我們的自身工作做得如何,掌握多少知識,都應保持虛心,從內心上認同和尊重他人。在做好個人本職工作的同時,積極有意識地關注項目進度和組內情況,要有一定的大局觀,以團隊利益為思考出發點。如果同事遇到了困難跟不上進度,而你又提前完成了自己的工作,可以去協助他,這雖然帶來了額外的工作,但會收獲一份知識,增進同事間友誼;更重要的是,為團隊按時完成任務提供了保障。友好、寬容地對待新同事,給予新員工力所能及的幫助;愿意共享個人經驗,同時善于從同事那里學習。
文檔編寫能力也算軟技能,在硬技能中有介紹;這里就不重復了。
上面是我收集的一些視頻和面試題資料。
對于軟件測試的的朋友來說應該是最全面最完整的面試備戰倉庫,為了更好地整理每個模塊,我也參考了很多網上的優質博文和項目,力求不漏掉每一個知識點,很多朋友靠著這些內容進行復習,拿到了BATJ等大廠的offer,這個倉庫也已經幫助了很多的軟件測試的學習者,希望也能幫助到你
關注我的微信公眾號【程序員二黑】免費獲取
總結
以上是生活随笔為你收集整理的学妹哭着问我:测试工程师应掌握什么?不知道自己是否适合做这个?的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: 淘宝图片搜索功能
- 下一篇: 背景图页面缩小会变形_CSS背景图拉伸不