測試之道--編碼

更多原創文章請到個人我的博客網站:http://www.codetracer.cn/python

本次說下我對測試人員學習一門編程語言的心得與方法,僅我的愚見。程序員

測試人員掌握一門或者多門編程語言是必不可少的,許多測試人員對編程天生「恐懼」,其實編程並非你想象中那樣觸不可及。編程

許多測試人員爲了提高,抱着一本書(或者電子書)「死啃」,效果確定是有,但不是最高效的,我並不推薦。在平時繁忙的工做當中,抽出大量的時間來學習,不大現實,有時候會由於緊張的工做不得不停下來,投入到工做中,待空閒時再繼續學習編程,你又會發現許多以前看的內容又忘記了。其實編程語言就是這樣的,你不用它,就會很快忘記。那麼如何利用碎片化的時間高效的學習呢?後面我會一一爲你們解惑,並提供我本身的看法與學習方法。數組

測試人員掌握的編程水平不能與專業的程序員相比,其中有兩塊區別,一是熟練度,二是思想經驗,熟練度的差距會比較大一些,而思想境界上咱們能夠無限的接近甚至超越程序員,就比如許多人玩LOL遊戲,有人是大神,有些人是普通的玩家,對於同一個角色英雄,發揮出來的水平是不同的,你與大神的區別,一在熟練度上,二在思想境界上,爲何會說熟練度差距大,程序員天天使用一編程語言,熟能生巧,編碼敲擊速度要快不少,這須要長時間的鍛鍊才能實現,測試人員天生沒有這樣的條件,熟練度差距天然很大,在思想境界上【所謂思想境界指的是對某類問題的解決方法】咱們能夠與程序員很容易的接近,程序員解決這類問題,方法是這樣的,你告訴了我,我懂了,那麼這類問題之後我也能解決了,無非就是編碼速度,代碼規範的差距,結果都是同樣的,程序員不可能天天都在解決沒有遇到過的問題,大部分時間都是將已知問題的實現方式(方法、經驗、思想)編碼實現出來,若咱們將一些常見的問題的思想羅列出來,經過交流或者分享的方式,讓你一一體會了解,是否是要相對容易些,懂了就是懂了【不糾結深層次的問題】,你懂了才能成爲你本身的。程序員與程序員之間的能力差距,其中一點主要體如今思想境界上。多線程

那麼到了這裏又會產生另一個問題,別人在講解或者分享某些問題的解決方法時,咱們可以理解麼?就比如你在參加一個別人的分享會,你能徹底的吸取別人的思想麼?請想想!這須要必定的基礎。就比如一個物理學家在分享一個問題的解決方法時,你可以聽懂麼【不排除一些牛人】?如有另一個物理學家,也遇到該問題時,聽完分享後,茅塞頓開,最終成功解決問題。由於他們在那一層次上有必定的基礎。編程語言

若要吸取別人在編程上遇到問題的解決思想,你須要必定的基礎,這些基礎我將其概括爲固定的知識,理解掌握別人的思想須要固定的知識點來做爲支撐。學習

哪些是屬於固定的知識?如:基本數據類型、字符串經常使用操做、數組經常使用操做、正則、文件目錄操做、常見容器對象、日期、多進程、多線程等等這些基礎知識屬於固定的知識點。很容易理解,例如獲取字符串的長度,就一個len方法,參數爲字符串,返回字符串的長度,沒有歧義。測試

若要使用一種編程語言的話,須要熟記這些基礎知識麼?沒有必要,一種編程語言的固定基礎知識點就比如一種編程語言的編程手冊,這類書籍屬於字典類書籍,你據說過有人會去背誦一本字典麼?你所須要作到就是會用這本「字典」便可。技術組也在逐漸完善這類的公共的代碼庫,並根據經驗整理出合適的字典,我這邊稱之爲公共代碼庫,固然你也能夠本身收集與整理固定知識點的體系【建議後期你們統一在公共代碼庫進行維護】。優化

公共代碼庫類的字典與咱們平時的新華字典的用法可不同,公共代碼庫中每一個知識點你須要所有的弄明白,你是否是以爲不少?相反,這類的學習反而更加簡單,由於每一個固定知識點已經沒有任何的歧義,你只要理解、懂了就好了,可是有些東西得記住了,例如不一樣容器的特性【數組:有序,可重複;集合:無序,不可重複等】等等(其中有部分的概念還須要稍大的篇幅去講解,例如:理解多線程、多進程概念,線程、進程同步,鎖的概念),你不用去記憶,你只須要按順序把知識點都理解了便可。網站

關於公共代碼庫你只須要知道某一種知識點有或者沒有,而且知曉其在公共代碼庫中的位置便可,好比我有一字符串,須要用python獲取到該字符串的長度,或者扣取字符串中一段子字符串,這類小問題屬於固定知識點可解決的問題,你只要知道好像有這樣的固定知識點能夠解決這樣問題,而且能快速在公共代碼庫中查找到便可。

公共代碼庫只須要弄明白常見的知識點的含義,以及別人問起時,能夠給出有或者沒有,而且能找出其位置在哪便可。

有些人可能會問,這些我早就看了不少遍了,仍是無從下手,彆着急,往下看。

想想一個複雜的問題是否是由多個稍小一點的問題組成,而有些稍小一點的問題又能夠分爲多個更小的子問題,當分解成的子問題已經不能在分以後,到了這裏,這個複雜的問題咱們已經知道如何詳細的去實現了,由於不能再細分的子問題都對應一個個固定的知識點【公共代碼】。

到了這裏有些人就明白了,這不就是分析問題的能力麼?很是好,別人能想到該問題的分析方法,而我爲何卻沒想到【沒想到與想不到是有差距的,主要區別在於每一個人對基礎知識掌握的廣度與深度的不一樣】,你沒想到,我告訴了你如何的分析方法,你就懂了,就真正成爲了你本身的東西。這類分析方法,其實就是經驗、思想,他與某一固定的編程語言無關,有了經驗、思想你學習更多的其餘編程語言,會駕輕就熟,你常常會聽到別人說編程語言之間基本上是想通的。

剩下的就是思想經驗的吸取,何謂思想經驗,在以前已經作過解釋,這裏再囉嗦下,公共代碼庫中都是解決一些小問題的公共代碼,一些複雜問題【複雜問題也是由多個小問題組成】的解決方法、分析方法就是經驗,有了固定的知識點做爲支撐,聽別人講解一些問題的解決方法思想仍是比較容易接受的,無非就是多看看別人如何將一個大問題分解成多個小問題的過程,小問題只須要熟悉公共代碼庫便可,天然而然問題就能夠解決了,這樣才能真正讓別人的經驗變成爲屬於本身的經驗,甚至基於你本身掌握公共代碼庫的廣度加以優化,可以給出更加合適的解決方法,那麼在這個問題的解決方法上你已經超越了對方。思想經驗的吸取相對來講就比較容易了,看別人代碼或者與別人交流,只有體會後,在遇到時纔會天然而然的想到。

以上僅僅只是我的在測試須要掌握一門編程語言方面的愚見,歡迎你們踊躍與我交流,說出你目前的困惑讓我體會,一塊兒完善我對這一塊的理解,我會設計出最適合你們學習的方法。技術組會將更多的固定知識整理出來,後期我也會陸續給出測試人員在其餘方面能力的看法,讓你在其餘方面的能力也能很是容易的提高起來。

相關文章
相關標籤/搜索