測試的漫長學習之路

發現了一篇寫的不錯的文章,告訴了測試的重要性,及測試須要瞭解學習的內容前端

1、頁面功能測試技能:java

  一、按照產品給的需求文檔,原型圖,UI圖完成測試用例,完成測試用例你要用到:等價類劃分、邊界值分析法、錯誤推測法、因果圖方法、判斷表驅動法、正交試驗法、功能圖法;同時你要分析業務邏輯,用戶操做場景,異常場景,關聯業務等。node

  二、執行用例:根據測試階段,代碼改動,環境等挑選相關用例執行;執行過程當中要了解:linux簡單命令:ls,cat,tail,cd等,用來看後臺日誌,是否有前臺雖然正常展現,但後臺已經拋異常;要了解sql的增刪改查,以便造數據、查詢數據;要了解業務相關操做對數據庫的操做,新增操做入了哪些表,有哪些關鍵數據,哪些狀態數據,更改操做入了修改了哪些表的哪些字段,以及字段對之後業務的影響;bug中問題描述,步驟,抓包,日誌等,sql是絕對的重點。python

  三、測試報告:不是全部公司都會發測試報告,可是測試必定要了解本身測試的業務,測試過程當中是否發現風險,例如:某些操做會大量寫表,某些操做會須要程序進行批量處理,有關聯的定時任務執行順序、時間長短形成的銜接問題等。mysql

2、接口功能測試技能(和功能部分重複部分就不說起了):linux

  一、第一步就是網絡協議,認識相關協議:soup,http,https,rpc,ftp,ssh,telnet等經常使用網絡協議。nginx

  二、抓包工具:fiddler,Wireshark,burpsuite等工具。c++

  三、接口工具,soupUI,postMan,java語言調用(httpclient   jar 包,jmeter jar包),python語言調用(requests庫)。redis

3、自動化測試:算法

  一、分類:UI功能自動化,接口自動化,接口參數化。

  二、語言:是的語言,語言,永遠是編程語言,不會任何一門語言請不要說本身是測試。至少會一門主流語言:python,java,c++。

  三、調試能力:其實仍是語言,前端的斷點,後端斷點。斷點調試真的很笨,很費時間,但真的是最有效的,最基礎的。

  四、分析設計:分析改動不頻繁,後期維護成本不是特別高的相關業務作自動化;設計相關測試用例,注意要作到儘可能還原用戶操做。

  五、部署能力:若是你已經會自動化,請嘗試搭建部署測試環境。

4、性能測試,你不能僅僅會操做:

  一、軟件:loadrunner,jmeter等軟件的熟練操做,及測試報告的解讀,細節細節必定注意細節,瞭解細節的才能更好的發現報告中指示的問題,別非專業人士提問時,纔不至於尷尬(以前我就尷尬過)。

  二、編程語言:是的又是語言,腳本的編寫是用語言完成的,由於軟件老是有自身的侷限性,而咱們本身的系統總有本身的特殊性,好比jmeter調用dubbo接口,打印日誌,特殊的斷言方式,特殊的請求方式,這些是須要本身寫代碼完成的(抱歉我僅僅熟悉jmeter,因此就不介紹loadrunner了)。

  三、更深刻的瞭解linux:天哪測試要了解這個,是的,由於系統配置絕對會影響測試結果,你要監控系統的cpu,內存,磁盤讀寫,網絡等諸多狀況。

  四、各類算法,數據結構:更加的深刻,若是開發一時之間沒法找出性能問題的所在,你要親自動手,分析他的代碼的算法,數據結構,甚至於修改程序。

  五、各類輔助工具:輔助工具作什麼,幫你瞭解程序內存暫用,判斷內存溢出,cpu暫用太高,讀寫數據庫,網絡長短鏈接等狀況。

  六、中間件,數據庫使用調優:包括但不限於:tomcat,nginx,node,apache,mysql,redis,oracle,memcached等等。

5、關於敏捷一點理解:

  一、什麼是敏捷開發:快速的開發,好像是句廢話,好吧說說快速,快速體如今:團隊成員互相間對彼此進度的瞭解,以便作出下一步判斷,如何能配合着儘快完成任務。

  二、持續集成與持續交付(CI 與 CD):CI,要在完成必定任務量後當即作集成,保證代碼不報錯,可測試;CD,完成CI後測試後的版本可發佈,好比大的版本上線,因爲當天的版本並不理想,但前一天的版本可能未完成某些小的功能,可是是可交付的,因此CI後進過測試的代碼,便可CD。

  三、在敏捷中測試重要的做用是保證CD,同時嚴格要求開發CI前作好自測,先後端不自測的代碼,提交後很肯能就變成了聯調測試,咱們要的應該是繼承測試,咱們應該在保證質量的同時儘快進度。

  四、全部的敏捷創建在瞭解之上,互相之間瞭解彼此的能力,才能更好的合做,知道把任務分配給誰,才能快速高質量完成,這是一種默契,須要時間磨合。

摘自51testing。

相關文章
相關標籤/搜索