如果你并非計(jì)算機(jī)相關(guān)專業(yè)畢業(yè),也沒有過軟件測(cè)試的相關(guān)經(jīng)歷(例如:去某家公司實(shí)習(xí)從事軟件測(cè)試工作),那還是建議去參加一下軟件測(cè)試培訓(xùn)。因?yàn)檐浖y(cè)試工作看上去不過就是點(diǎn)點(diǎn)點(diǎn),但實(shí)際上我們進(jìn)入到軟件測(cè)試工作后會(huì)發(fā)現(xiàn),并不是那么簡(jiǎn)單。在點(diǎn)點(diǎn)點(diǎn)的背后,還有非常非常多的知識(shí)域和方法論,甚至我們做到一定的時(shí)候,測(cè)試就是一個(gè)初中級(jí)的程序員了。

在測(cè)試工作中,我們常??吹降哪切c(diǎn)點(diǎn)點(diǎn)的工作,實(shí)際上是黑盒測(cè)試的其中一部分。

什么是黑盒測(cè)試呢?

用比較理論的語(yǔ)言來說,黑盒測(cè)試就是運(yùn)營(yíng)軟件,對(duì)系統(tǒng)的輸入輸出進(jìn)行測(cè)試驗(yàn)證,但不關(guān)心其中的實(shí)現(xiàn)過程。

舉個(gè)例子:我現(xiàn)在把一只貓放進(jìn)黑色的盒子里面,過一會(huì)我把黑盒子里面的東西拿出來,發(fā)現(xiàn)是一條狗,剛好我期望的結(jié)果就是把貓變成狗,那么這個(gè)結(jié)果滿足我的要求,我也并不關(guān)心黑盒子里面是怎么把貓變成狗的。

軟件測(cè)試培訓(xùn)

而做黑盒測(cè)試也并不是我們拿著手機(jī)打開APP或者電腦里面打開一個(gè)網(wǎng)頁(yè)就各種點(diǎn)點(diǎn)點(diǎn)就完了,在這個(gè)之前我們還有很多的事情需要做。

第一步:作為一個(gè)測(cè)試,是需要參加產(chǎn)品的評(píng)審的,并且需要在評(píng)審的過程中給出自己對(duì)于質(zhì)量、功能的要求。當(dāng)然,對(duì)于需求的理解是需要非常透徹的,往往測(cè)試是比研發(fā)更懂產(chǎn)品經(jīng)理的人。

第二步:作為一個(gè)測(cè)試,在拿到了產(chǎn)品設(shè)計(jì)和需求分析文檔以后,自然就需要開始做測(cè)試計(jì)劃和測(cè)試用例了。

測(cè)試計(jì)劃,顧名思義,即使根據(jù)現(xiàn)在的測(cè)試需求、項(xiàng)目周期、剩余資源情況來進(jìn)行工作的安排,并且預(yù)測(cè)出需要達(dá)到的目標(biāo)(測(cè)試覆蓋率、測(cè)試通過率等等)。

測(cè)試用例,就是對(duì)系統(tǒng)的功能或者流程分析以后,將我準(zhǔn)備輸入的內(nèi)容和我預(yù)期的結(jié)果整理出來。這個(gè)過程可以說是最為復(fù)雜的,我們最終統(tǒng)計(jì)測(cè)試覆蓋率也是要依賴于用例的完善程度。一個(gè)優(yōu)秀的測(cè)試用例可以達(dá)到什么程度呢?假設(shè)這個(gè)用例拿給研發(fā),研發(fā)可以按照這個(gè)測(cè)試用例無(wú)腦的進(jìn)行編碼了。

軟件測(cè)試培訓(xùn)

第三步:自然就是執(zhí)行用例了,也就是點(diǎn)點(diǎn)點(diǎn)的過程,我們根據(jù)用例的規(guī)劃,一條一條的執(zhí)行用例。通常情況下,我們?cè)趫?zhí)行用例之前,還會(huì)進(jìn)行以下冒煙測(cè)試,看看提測(cè)的系統(tǒng)是否達(dá)到了可以執(zhí)行用例的水平。如果冒煙測(cè)試通不過的話,測(cè)試小伙伴一般都會(huì)想跳起來罵人。

什么是冒煙測(cè)試?

還是先來官方一點(diǎn)的解釋,就是我們?cè)谡綔y(cè)試前,對(duì)產(chǎn)品或系統(tǒng)的此次迭代影響功能點(diǎn)進(jìn)行一次簡(jiǎn)單的驗(yàn)證性測(cè)試。實(shí)際上就是對(duì)這次改動(dòng)的功能頁(yè)面挨著點(diǎn)一下,看看會(huì)不會(huì)報(bào)錯(cuò)。

執(zhí)行用例的過程中,很多時(shí)候我們并不是點(diǎn)點(diǎn)點(diǎn)就能夠解決的,我們必須掌握一些基礎(chǔ)工具的使用,例如:Postman或者數(shù)據(jù)庫(kù)工具。因?yàn)?,在一些接口測(cè)試的時(shí)候,我們要對(duì)數(shù)據(jù)進(jìn)行輸入并不是通過頁(yè)面,而是通過接口,那么就需要模擬HTTP或者其他形式的請(qǐng)求,同時(shí),我們要對(duì)報(bào)文有基本的了解,知道怎么構(gòu)造報(bào)文、加密報(bào)文。接口數(shù)據(jù)輸入以后,怎么來判斷數(shù)據(jù)的對(duì)錯(cuò)呢?這時(shí)候就可能還需要打開數(shù)據(jù)庫(kù),通過SQL腳本把我們的數(shù)據(jù)查出來進(jìn)行比對(duì)。也就是說,測(cè)試小伙伴也是需要一定的技術(shù)基礎(chǔ)和技能的。

軟件測(cè)試培訓(xùn)

因此,我們覺得測(cè)試工作比較簡(jiǎn)單,那是因?yàn)槲覀冎皇钦J(rèn)識(shí)到了測(cè)試工作中的一部分,還有大部分的內(nèi)容我們并沒有看到。那么,是不是我們做到以上的幾點(diǎn),就算是一個(gè)比較厲害的測(cè)試了呢?No,No,No,僅僅是一個(gè)合格的測(cè)試人員。要知道,上面的內(nèi)容也只是黑盒測(cè)試中的一部分而已,如果一個(gè)測(cè)試想要進(jìn)階,那么就還需要掌握更厲害的技能,例如黑盒測(cè)試的升級(jí)能力——自動(dòng)化測(cè)試。

什么是自動(dòng)化測(cè)試?

簡(jiǎn)單來說,就是通過代碼和工具,自動(dòng)的對(duì)系統(tǒng)進(jìn)行測(cè)試。也就是從人工點(diǎn)點(diǎn)點(diǎn)轉(zhuǎn)變?yōu)閷懘a來點(diǎn)點(diǎn)點(diǎn)。

要想能夠做自動(dòng)化測(cè)試,那么測(cè)試小伙伴就一定需要有寫代碼的能力,現(xiàn)在最流行的自動(dòng)化測(cè)試語(yǔ)言就是Python,很多的自動(dòng)化測(cè)試工具都支持寫Python的腳本。當(dāng)然,也有一些是Java寫的,例如Jmeter,如果你懂Java,甚至可以自己去改造一下它。當(dāng)測(cè)試小伙伴進(jìn)階到了自動(dòng)化測(cè)試小伙伴時(shí),你就會(huì)覺得以前點(diǎn)點(diǎn)點(diǎn)的生活太苦悶了,現(xiàn)在我只要把腳本寫好了,每次迭代以后,我就改改我的腳本,甚至我在準(zhǔn)備測(cè)試用例的同時(shí)就可以準(zhǔn)備好我的腳本,到測(cè)試時(shí),我簡(jiǎn)單調(diào)整一下,然后鼠標(biāo)一點(diǎn),測(cè)試就完成了(事實(shí)上當(dāng)然不是這樣,自動(dòng)化測(cè)試是有局限性的,最終還是會(huì)要點(diǎn)點(diǎn)點(diǎn),所以自動(dòng)化測(cè)試小伙伴都比較傲嬌,不愿意去點(diǎn)點(diǎn)點(diǎn))。

軟件測(cè)試培訓(xùn)

當(dāng)然,如果測(cè)試到了這個(gè)水平,那么測(cè)試和程序員的界限就比較低了,測(cè)試和程序員就會(huì)有很多相同的技術(shù)棧。OK,我們到這里還僅僅說了黑盒測(cè)試,但測(cè)試還有一個(gè)領(lǐng)域叫做白盒測(cè)試。

什么是白盒測(cè)試?

我們還是用黑盒測(cè)試的例子來解釋,我們把一只貓放進(jìn)一個(gè)透明的盒子里,然后我們要看著這個(gè)透明盒子是怎么工作的,一步步分析這個(gè)工作過程有沒有問題,最后,從盒子里出來一條狗,整個(gè)的變化過程和我期望的一致時(shí),就是測(cè)試通過。

通常情況下,我們現(xiàn)在的系統(tǒng)很少回去做白盒測(cè)試。第一、白盒測(cè)試對(duì)于測(cè)試人員的要求非常高;第二、測(cè)試成本很高,大部分系統(tǒng)做不到這種程度;第三、測(cè)試人員如果對(duì)代碼的邏輯熟悉度低時(shí),測(cè)試的效率非常差。因此,我們更多的是在研發(fā)內(nèi)部做code review,很少去做白盒。當(dāng)然,白盒測(cè)試也是一種測(cè)試領(lǐng)域,某些時(shí)候還是有必要的。

軟件測(cè)試培訓(xùn)

OK,那到這里就是我們測(cè)試大致的里程了嗎?并不是的。

對(duì)于軟件測(cè)試來說,我們還要了解很多軟件測(cè)試管理乃至質(zhì)量管理的知識(shí),因此,什么PMP、高級(jí)項(xiàng)目經(jīng)理、CMMI、6西格瑪?shù)鹊确矫娴闹R(shí),都是測(cè)試未來需要學(xué)習(xí)的內(nèi)容。如果我們想要再考個(gè)證,那不經(jīng)過系統(tǒng)的學(xué)習(xí),光靠著工作時(shí)候的經(jīng)驗(yàn)積累,基本是過不了這些考試的。所以,在技術(shù)領(lǐng)域的任何崗位,都是一個(gè)不斷學(xué)習(xí)不斷進(jìn)步的過程,沒有誰(shuí)能夠隨隨便便就成功,未來還有很多的培訓(xùn)、學(xué)習(xí)過程等著我們。與其把學(xué)習(xí)放到未來,不如現(xiàn)在就開始,從基礎(chǔ)的知識(shí)開始。因此,參加軟件培訓(xùn)一下還是很有必要的。