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

    首先要說(shuō),我并不是狹隘的“QA主義“者,也并不反對(duì)測(cè)試人員學(xué)習(xí)編程,提高編程能力。而是我們要對(duì)編程對(duì)測(cè)試人員的作用有一個(gè)清晰的認(rèn)識(shí)。

    從我個(gè)人來(lái)說(shuō),可以說(shuō)我一直以來(lái)是編程能力的受益者。

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

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

    開始的時(shí)候,我只是因?yàn)橄矚g編程而編程,像我喜歡軟件測(cè)試而去做測(cè)試一樣。所以我把大量自己的業(yè)余時(shí)間花在學(xué)習(xí)編程和軟件設(shè)計(jì)開發(fā)上,后來(lái)我漸漸發(fā)現(xiàn),編程能力也是軟件測(cè)試的能力的一個(gè)重要方面,因?yàn)榫幊棠芰δ茏屇愀咝У臏y(cè)試。

    即使你不是自動(dòng)化軟件測(cè)試工程師,也并不打算去做白盒測(cè)試,我仍舊強(qiáng)烈建議你學(xué)習(xí)一門通用的腳本語(yǔ)言,在ruby/python/perl中選一種,如果還有時(shí)間和經(jīng)歷,再學(xué)習(xí)一門通用的編譯語(yǔ)言在c/java/c#中選一種。

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

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

    追求更高效的軟件測(cè)試是一個(gè)測(cè)試人員不斷提高自己水平的動(dòng)力之一,在這一點(diǎn)上編程能力真的有意想不到的作用哦。

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