我的兩年多的測試生涯到頭了。我想再這里總結(jié)一下點點滴滴。以及我也會說明我為什么選擇離開。在中國有著很多很多的軟件測試,很多迫于環(huán)境,迫于leader,迫于很多原因,導(dǎo)致只是一個“執(zhí)行者”。以下只是我個人的一些經(jīng)歷。大家可以借鑒,可以吐槽。大家隨意。

  首先在測試的時候需要有一些心理暗示,其實未必是暗示,可能是給自己的一些自信。

  第一:產(chǎn)品一定是有bug的。

  無論你測試什么產(chǎn)品,一定是需要報有這樣的心態(tài)。為什么?其實如一句說的“如果自己都不愛自己,那么不要奢望別人來愛你”。如果連測試潛意識里面都覺得產(chǎn)品是沒有bug的那么還能有誰認(rèn)為產(chǎn)品是有bug的呢?

  測試的歷史上有兩種驗證方法,一種是測試是用來驗證產(chǎn)品一定是沒有bug的,一種是測試是用來驗證產(chǎn)品是有bug的。無論哪種你都要有一種原則,要有一種信念。如人生漫漫長路一樣,我們必須堅信自己的夢想,堅信自己是能夠成功的。那么才有可能,才有希望。當(dāng)碰見挫折的時候,當(dāng)迷茫的時候,才不會真的被打敗。

  一個新的feature,一個剛剛fix的bug,一個用戶反饋,一個不起眼的問題。我們都需要堅信里面有缺陷的。沒有任何一個產(chǎn)品,任何一個細(xì)節(jié)是完美的。

  許多公司從上級到下屬對于產(chǎn)品的質(zhì)量根本沒有概念,又或者對于質(zhì)量不重視。在這種情況下,需要測試產(chǎn)生力量,需要用各種事實依據(jù)去告訴公司,告訴大家這樣一個產(chǎn)品質(zhì)量的真想。國外的公司相對好點,國內(nèi)有很多公司是需要有這種有責(zé)任感的測試存在。

  第二,任何的bug都是能夠repro的

  無論你面對一個很小的功能測試,還是很復(fù)雜的場景化的測試,又或者說某個用戶很簡單明了的描述了一個問題。我們需要堅定不移的告訴自己,只要是一個bug是有重現(xiàn)步驟的。

  微軟曾經(jīng)有測試,一個問題的重現(xiàn)步驟長達(dá)50步。雖然可能不是佳的步驟,但是依然對于解決問題起到了決定性的作用。

  自然,在實際中很多情況下的確會碰見一下子找不到重現(xiàn)步驟的方法。找不到方法意味著什么?意味著你可以開bug,dev可以fix這個bug。但是誰都不知道到底有沒有真的修復(fù)這個問題。還可能因此出現(xiàn)很多regression的bug。所以找到一個bug的repro step可以說是一個測試基本功也是體現(xiàn)價值的地方。

  和第一點一樣,只有你自己信念中去相信了,那么你才有可能成功。

  第三,只相信自己看到的

  在很多情況下,dev或者同事會告訴測試“這個功能很小,沒有bug的”“簡單測一下好啦”等等的話。我主張還是不要太相信任何一個人。

  面對bug,我們需要好好的理清問題的根源邏輯,在進(jìn)行一個完全的測試之后告訴自己“這個功能基本上不會有很大,或者很block用戶的問題”;面對一個討論,不要聽到別人說什么是什么,任何的決定都沒有完全正確的。我們需要自己親手去驗證很多決定和設(shè)計,小到你可以google,找出各種證據(jù)來證明某些事情。大到你可以進(jìn)行用戶數(shù)據(jù)搜集,很多企業(yè)不會去做。但是如果一個有sense的測試,我相信必須什么事情都親手去實踐去證明!

  以上說了這么多,可能很多人覺得,這個還是測試么?ok,我認(rèn)為真正的一個測試滿足以上三點是遠(yuǎn)遠(yuǎn)不夠的。以下是我認(rèn)為一個有sense的測試,記住是有sense的測試需要做到的。

  第一:探知精神 樂于學(xué)習(xí)

  為什么我將這兩個放在一起呢。兩者密不可分。我所在公司是做android產(chǎn)品的。目前中國國內(nèi)很多企業(yè)也是一樣的問題,是只是在乎自己的產(chǎn)品怎么樣,并不會很關(guān)心你的發(fā)展。作為測試,必須有探知精神,必須樂于學(xué)習(xí)。比如你測試A平臺的B產(chǎn)品,如果只是一味的測試,只是一味的報bug。的確你會有進(jìn)步,做任何一行你都會有進(jìn)步,行行都能夠出狀元。但是幾年光陰一過去,當(dāng)別人或者自己問問自己,自己真的知道了多少?可能對于自己公司做的產(chǎn)品很了解之外,一無所知。那么這樣對于自身發(fā)展又有什么好處呢?

  探知,對于任何一個design,任何一個bug,任何一個細(xì)節(jié)都需要去探知。這樣無論你做了多久,無論你是否做多少個項目都會依然有進(jìn)步。時不時的問問自己,對于這個產(chǎn)品feature真的了解很透徹么?對于產(chǎn)品功能邏輯很清楚么?對于這個產(chǎn)品所在平臺了解么?業(yè)內(nèi)是不是主流的tools都清楚了呢?是不是自己已經(jīng)沒有了進(jìn)步的余地了。這樣自己會明了很多。

  第二:責(zé)任

  這點可能很多人會說,測試基本的不是責(zé)任么?沒有責(zé)任怎么去做一個測試呢?是的,責(zé)任每個人都有,程度是不同的。你作為一個tester,需要保證產(chǎn)品的質(zhì)量。勿以bug小而不重視,本質(zhì)上依然是不負(fù)責(zé)任的表現(xiàn)。

  相反的,很多測試對于產(chǎn)品是負(fù)責(zé)了,對于自己卻是不負(fù)責(zé)任的。因為他們只是一個傀儡,天天被人操控著。做這個做那個,我覺得這種是更加可悲的。

  如果你作為一個tester leader,那么你的責(zé)任不是去指揮別人做事情,不是去拍老板馬屁。而是自己不要忘記進(jìn)一步的學(xué)習(xí),不要忘記對于任何的細(xì)節(jié)去了解。更不要忘記如果出了什么問題,自己勇于承擔(dān)這個責(zé)任。真正的leader是什么?需要在流程以及技術(shù)上面有自己的sense,需要不停的去完善項目流程,從而提高測試team的效率以及項目的效率。

  第三:通過各種渠道找到bug repro step

  bug會從各個渠道發(fā)現(xiàn)。公司內(nèi)部bug bash的時候,用戶反饋的問題,自己找到的問題。老板發(fā)現(xiàn)的問題等等。這個時候能否找到repro step是體現(xiàn)一個測試的價值所在了。

  測試往往碰見的問題是這樣的。突然發(fā)現(xiàn)一個問題,欣喜若狂!但是然后問問自己“我剛剛做了什么”,基本上很多人都不知道。有的時候是有l(wèi)og可以取,但是log只是一個告訴開發(fā)如何dev 去解決bug的。所以找出重現(xiàn)步驟才是王道。并非要時時刻刻保持警惕,可以有兩個做法,一個是自己在測試的時候留個心眼,養(yǎng)成時不時回憶自己做了哪些操作。一個是養(yǎng)成一邊測試一邊記錄log的方法,這個方法相對很保險,不過前提是自己需要有完全看得懂log的能力。

  另外一類bug是從用戶這里報出。用戶一般是無知的,根本不會懂你產(chǎn)品的邏輯,可能描述出來的錯誤和真正的錯誤根本是天差地別。這個時候需要測試去按照經(jīng)驗以及各種方法去判斷。判斷出用戶說的產(chǎn)品的真正的問題在哪里,然后使用各種方法(automation.etc)去模擬bug產(chǎn)生的環(huán)境。這樣一來,bug在修復(fù)的情況下能夠在公司內(nèi)部馬上得到confirm。這樣無論是對于產(chǎn)品,用戶,還是公司都是一種無限大的利益。

  還有一類bug是公司同事報出的,或者是老板提出的。一般都是一句話“這里有個很大的bug”。木有任何細(xì)節(jié),木有任何解釋。

  當(dāng)然,總結(jié)一下來講,一個測試如同一個偵探,慢慢的尋找蛛絲馬跡,慢慢的看到真相。能夠找到這條路的人那么必然是一個有價值的測試。毋庸置疑。

  第四:bug定義sense

  bug到底是什么?是一種缺陷么?是的。那么測試產(chǎn)品bug這個行為是什么?我相信很多書本上面都沒有定義過。

  測試產(chǎn)品bug行為定義:是尋找產(chǎn)生bug過程的一種行為,是縮短人們用產(chǎn)品開始到產(chǎn)品發(fā)生bug的周期的一種行為。

  所謂找出bug,無非是一系列的操作序列造成了程序的缺陷或者崩潰。序列可能是幾步,時間周期也可能是一年兩年十年。那么測試產(chǎn)品bug不是要在項目周期內(nèi)盡量多的去尋找問題么?所以,其實本質(zhì)是,如果一個用戶用一個產(chǎn)品十天才出現(xiàn)的一個bug,那么測試需要壓縮這種時間,將其在很短的測試周期內(nèi)發(fā)現(xiàn)這個缺陷。

  方法有很多,模擬環(huán)境,使用各種已經(jīng)有的tools,使用各種automation進(jìn)行測試,甚至自己寫用戶的一個環(huán)境等等。縮短用戶發(fā)現(xiàn)bug的周期其實是一種戰(zhàn)斗,一場無止盡的斗爭!

  第五:UE

  UE,用戶體驗。很多人會說用戶體驗是UI team以及UE team的人需要了解的。但是往往這個sense對于測試是為重要的。

  所謂高級的bug,有價值的bug是貼近用戶的使用習(xí)慣。但是如果一個測試沒有UE,那么你如何模擬用戶操作?你用戶是使用windows的,是用mac的,是用android的,是用dvd機(jī)的等等,而你一個都沒有用過,你何以測試?你何以找到用戶真正care的bug?根本是無稽之談。

  UE的學(xué)習(xí)對于誰都是有利的,無論你是做什么產(chǎn)品的,你是什么職位上面的。UE的學(xué)習(xí)是永無止境的。沒有UE的測試只是monkey test罷了。

  第六也是后一點:勇敢的去做

  和第一點不同的是,測試這個職業(yè)在國內(nèi)還是一個比較新的職業(yè)。很多測試本身都不知道測試到底是干什么的。更加不要說一些互聯(lián)網(wǎng)產(chǎn)品的測試。很多領(lǐng)域根本是沒有被開發(fā)過。你要做的是勇敢的去嘗試。可能有一個point,開始你的潛意識覺得level太高,根本是做不到的。但是你要去試試,不試試怎么知道不可能,勇于去做第一人?赡苣阕龅氖虑槭莿e人沒有做過的呢?要記住!你不去做總有人去做。我相信大家都希望自己成為第一人,而不是跟著別人的腳步再踏步踏。

  目前只是想到這些,原本是想寫工作回憶錄的,卻寫成了這樣一篇東西。真的慚愧。要不要寫回憶錄呢。。糾結(jié)!!