摘要:編程能力對軟件測試工程師的作用的看法是,它很重要,但并不是核心的能力;但這種能力可以提高我們發(fā)現(xiàn)Bug的能力。

    首先要說,我并不是狹隘的“QA主義“者,也并不反對測試人員學習編程,提高編程能力。而是我們要對編程對測試人員的作用有一個清晰的認識。

    從我個人來說,可以說我一直以來是編程能力的受益者。

    我這6年的工作中,從職位來說5年是在做QA,只有開始的一年在做Dev,但一直以來我沒有停止過編程的工作。開始是用c/c++,然后是java,ruby,現(xiàn)在用得比較多的是bash。我做過c51單片機程序,j2ee項目,用python和ruby開發(fā)過比較復雜的自動化測試系統(tǒng)。商業(yè)測試軟件使用過robot,qaload,等等。我寫的代碼質量絲毫不比一個普通的開發(fā)人員差。

    但是我并不打算學好編程技術而轉行去做Dev,也并不是為了做自動化測試而學習編程。大部分的時候我的職位是一名黑盒測試工程師,我熱愛這個工作,并且一直干得也很出色。只有一段短暫的3個月我是全職的性能測試工程師,但當回到黑盒測試的時候,我發(fā)現(xiàn)我依舊非常享受發(fā)現(xiàn)bug的過程。

    開始的時候,我只是因為喜歡編程而編程,像我喜歡軟件測試而去做測試一樣。所以我把大量自己的業(yè)余時間花在學習編程和軟件設計開發(fā)上,后來我漸漸發(fā)現(xiàn),編程能力也是軟件測試的能力的一個重要方面,因為編程能力能讓你更高效的測試。

    即使你不是自動化軟件測試工程師,也并不打算去做白盒測試,我仍舊強烈建議你學習一門通用的腳本語言,在ruby/python/perl中選一種,如果還有時間和經歷,再學習一門通用的編譯語言在c/java/c#中選一種。

    舉一個例子,我現(xiàn)在測試的系統(tǒng)在安裝好之后需要在命令行進行一些繁瑣的配置工作,這些工作是重復而且容易出錯的(我的記憶力不好)。后來我寫了一個expect腳本來幫我完成所有這些工作,一個命令搞定了。所以不但我節(jié)約了時間,而且我可以以好的狀態(tài)去開始真正的測試。

    這樣的例子,太多了。畢竟,我們工作的對象和環(huán)境是程序和程序構成環(huán)境,很多地方都有程序的用武之地。比如測試中需要一個包含100,000個文件的目錄。幾行代碼能完成手工不可能完成的任務。

    追求更高效的軟件測試是一個測試人員不斷提高自己水平的動力之一,在這一點上編程能力真的有意想不到的作用哦。

    作為總結,我想說我對編程能力對測試工程師的作用的看法是,它很重要,但并不是核心的能力。它,是為了讓我們更高效的發(fā)現(xiàn)bug,那才是測試工程師核心的能力。