應(yīng)該學(xué)習(xí)那種軟件測試技術(shù)和那些測試工具?
應(yīng)該學(xué)習(xí)那種軟件測試技術(shù)和那些測試工具?目前比較通用的叫法及劃分,主要是以下幾種類型: 功能測試,性能測試,自動化測試,安全測試,接口測試,單元測試,額外專項測試(性能/安全測試本身也屬于專項測試,只是經(jīng)常會單獨拿出來說)。可能不同的細(xì)分領(lǐng)域或公司有不同的叫法,但基本都涵蓋在這里面。

功能測試是最基本的,一般普通的測試人員都是從功能測試入門,一句話來講就是對研發(fā)出來的軟件進(jìn)行功能點的驗證(包括正常/異常的情況),判斷它是否符合產(chǎn)品的預(yù)期,這個最重要的是要求對待測項目有足夠的了解。
當(dāng)然,這只是一個概括的說法,實際工作中根據(jù)公司流程規(guī)范的不同,操作起來會有較大的差異(有的公司流程完善,要求各階段的測試交付件;有的公司沒有流程,測試人員也不會寫用例,直接測。當(dāng)然各個公司有各自的做法,無需評論優(yōu)略,適合就好)。
里面會涉及到軟件測試的整個生命周期:需求了解--測試計劃制定--測試設(shè)計--用例編寫--執(zhí)行測試(環(huán)境搭建)--問題跟蹤--回歸測試。
其中對于測試設(shè)計,里面有許多方法論,比如:等價類劃分,因果圖,邊界值等等。這些是測試設(shè)計的理論知識,市面上有專門的書籍介紹,或者網(wǎng)上搜索一下也挺多,可以看一下。
除了測試設(shè)計理論,還應(yīng)該掌握一些linux系統(tǒng)的基本操作,這個可能會在執(zhí)行測試的時候進(jìn)行環(huán)境搭建;另外像一些常用的請求工具(例如postman),抓包工具(例如fiddler)等都可以適當(dāng)?shù)牧私庖幌隆?/span>
工具技術(shù)是說不完的,最好是了解的越多越好,這個就是個經(jīng)驗問題。有很多東西可能一輩子都用不上,但是當(dāng)要使用的時候,能馬上想起來,可以使用這個技術(shù)或工具來幫忙達(dá)到目的。
性能測試,故名思意就是驗證軟件的性能是否達(dá)標(biāo)預(yù)期。一般是基本功能測試完成之后才進(jìn)行的,當(dāng)然不是每個項目都必須要做,根據(jù)項目真實情況來決定。
目前網(wǎng)上提到性能測試,就直接是loadRunner,Jmeter等工具的介紹和使用,容易給人造成一種錯覺,以為性能測試就是工具的使用,這是比較片面的觀點。測試是通過各種技術(shù)手段,進(jìn)行的一項有計劃有目的的活動,并不是某個工具的使用。
前面列舉的這2個性能測試工具,他們的名聲很大,通過使用他們,能快速的幫助進(jìn)行性能測試,因此才形成了這樣的情況。
性能測試一般涉及到幾個方面:施壓工具,測試腳本,數(shù)據(jù)采集分析,問題定位。
施壓工具可以選用上面提到的2個工具;在某些特殊的項目,可能無法找到合適的施壓工具,這個時候可能就需要測試人員(或項目組出方案),自己寫對應(yīng)的施壓代碼。
測試腳本用上面的2個工具可以錄制,但是錄制的東西不夠靈活,大多數(shù)情況下還是需要測試人員自己寫代碼的。
數(shù)據(jù)采集,主要是在性能測試過程中收集服務(wù)器,應(yīng)用響應(yīng)時間等相關(guān)的數(shù)據(jù),便于對整個壓測過程進(jìn)行評估分析,判斷是否有問題。大一些的公司可能一般都有類似的監(jiān)控系統(tǒng),可以直接查看。沒有的就可能需要測試人員去使用一些第三方軟件,安裝到服務(wù)器。
從上面的介紹可以看出,做性能測試比單純的功能測試涉及到的東西要復(fù)雜很多,他更考驗一個測試人員的綜合能力。不僅要分析待測場景(測試設(shè)計),還要自己準(zhǔn)備測試腳本(工具使用,甚至具備研發(fā)能力),搭建環(huán)境,問題分析。

自動化測試,可以簡單的理解為將人工手動測試的工作,通過工具或代碼的方式轉(zhuǎn)化為計算機(jī)自動運行的用例,幫助測試人員進(jìn)行回歸測試,從而提升測試效率。自動化測試的價值更多在于回歸測試和系統(tǒng)監(jiān)控。
自動化測試可以運用在不同的層次,例如基于UI的自動化,基于接口的自動化,再底層可以涵蓋單元測試。
自動化工具非常多,常見的webdriver,selenium,qtp等等,可以根據(jù)自己的需求適當(dāng)?shù)牧私狻_@些框架僅僅只是工具而已,它不代表自動化測試。
自動化測試要求可高可低,簡單的運用工具做做參數(shù)化就行,基本不涉及代碼;復(fù)雜的項目中,往往測試人員都會自己寫一套自動化測試框架,更適合自己的項目。
接口測試一般也是運用自動化測試工具,或者自己寫代碼的方式來測試,不再描述。
單元測試,普遍都是開發(fā)來完成,當(dāng)然也有公司存在專職的白盒測試人員,這個要求就比較高,完全是寫代碼來測試。
另外,近幾年許多公司都設(shè)置了測試開發(fā)的崗位,他不僅需要了解基本的測試技能,還得有一定的開發(fā)能力,除了完成日常的測試工作外,還需要關(guān)注測試工具等偏開發(fā)的內(nèi)容,上面的性能測試和自動化測試中也提到了,復(fù)雜項目的情況也需要測試人員進(jìn)行一些工具開發(fā),以滿足測試需求,這種測試人員就和開發(fā)測試很類似。
測試職位入門相對容易,但要做的好,還是需要下很多功夫的。對于專項測試,一定不要拘泥于某個工具的使用。
說一點現(xiàn)狀,國內(nèi)測試人員水平層次不齊,從業(yè)人員可能會很多,但優(yōu)秀的測試人員很少,感覺水軍比較多。
對于流程方面而言,很多公司都不具備較完善的流程,測試人員夾在其中,會感覺很難受,努力適應(yīng)并盡力規(guī)范搞定它。

