我的兩年多的測試生涯到頭了。我想再這里總結(jié)一下點(diǎn)點(diǎn)滴滴。以及我也會說明我為什么選擇離開。在中國有著很多很多的軟件測試,很多迫于環(huán)境,迫于leader,迫于很多原因,導(dǎo)致只是一個“執(zhí)行者”。以下只是我個人的一些經(jīng)歷。大家可以借鑒,可以吐槽。大家隨意。
首先在測試的時候需要有一些心理暗示,其實(shí)未必是暗示,可能是給自己的一些自信。
第一:產(chǎn)品一定是有bug的。
無論你測試什么產(chǎn)品,一定是需要報有這樣的心態(tài)。為什么?其實(shí)就如一句說的“如果自己都不愛自己,那么就不要奢望別人來愛你”。如果連測試潛意識里面都覺得產(chǎn)品是沒有bug的那么還能有誰認(rèn)為產(chǎn)品是有bug的呢?
測試的歷史上有兩種驗(yàn)證方法,一種是測試是用來驗(yàn)證產(chǎn)品一定是沒有bug的,一種是測試是用來驗(yàn)證產(chǎn)品是有bug的。無論哪種你都要有一種原則,要有一種信念。就如人生漫漫長路一樣,我們必須堅(jiān)信自己的夢想,堅(jiān)信自己是能夠成功的。那么才有可能,才有希望。當(dāng)碰見挫折的時候,當(dāng)迷茫的時候,才不會真的被打敗。
一個新的feature,一個剛剛fix的bug,一個用戶反饋,一個不起眼的問題。我們都需要堅(jiān)信里面有缺陷的。沒有任何一個產(chǎn)品,任何一個細(xì)節(jié)是完美的。
許多公司從上級到下屬對于產(chǎn)品的質(zhì)量根本沒有概念,又或者對于質(zhì)量不重視。在這種情況下,就需要測試產(chǎn)生力量,需要用各種事實(shí)依據(jù)去告訴公司,告訴大家這樣一個產(chǎn)品質(zhì)量的真想。國外的公司相對好點(diǎn),國內(nèi)有很多公司是需要有這種有責(zé)任感的測試存在。
第二,任何的bug都是能夠repro的
無論你面對一個很小的功能測試,還是很復(fù)雜的場景化的測試,又或者說某個用戶很簡單明了的描述了一個問題。我們需要堅(jiān)定不移的告訴自己,只要是一個bug就是有重現(xiàn)步驟的。
微軟曾經(jīng)有測試,一個問題的重現(xiàn)步驟長達(dá)50步。雖然可能不是最佳的步驟,但是依然對于解決問題起到了決定性的作用。
自然,在實(shí)際中很多情況下的確會碰見一下子找不到重現(xiàn)步驟的方法。找不到方法意味著什么?意味著你可以開bug,dev可以fix這個bug。但是誰都不知道到底有沒有真的修復(fù)這個問題。還可能因此出現(xiàn)很多regression的bug。所以找到一個bug的repro step可以說是一個測試基本功也是體現(xiàn)價值的地方。
和第一點(diǎn)一樣,只有你自己信念中去相信了,那么你才有可能成功。
第三,只相信自己看到的
在很多情況下,dev或者同事會告訴測試“這個功能很小,沒有bug的”“簡單測一下就好啦”等等的話。我主張還是不要太相信任何一個人。
面對bug,我們需要好好的理清問題的根源邏輯,在進(jìn)行一個完全的測試之后告訴自己“這個功能基本上不會有很大,或者很block用戶的問題”;面對一個討論,不要聽到別人說什么就是什么,任何的決定都沒有完全正確的。我們需要自己親手去驗(yàn)證很多決定和設(shè)計,小到你可以google,找出各種證據(jù)來證明某些事情。大到你可以進(jìn)行用戶數(shù)據(jù)搜集,很多企業(yè)不會去做。但是如果一個有sense的測試,我相信必須什么事情都親手去實(shí)踐去證明!
以上說了這么多,可能很多人覺得,這個還是測試么?ok,我認(rèn)為真正的一個測試滿足以上三點(diǎ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é)都需要去探知。這樣無論你做了多久,無論你是否做多少個項(xiàng)目都會依然有進(jìn)步。時不時的問問自己,對于這個產(chǎn)品feature真的了解很透徹么?對于產(chǎn)品功能邏輯很清楚么?對于這個產(chǎn)品所在平臺了解么?業(yè)內(nèi)是不是主流的tools都清楚了呢?是不是自己已經(jīng)沒有了進(jìn)步的余地了。這樣自己會明了很多。
第二:責(zé)任
這點(diǎn)可能很多人會說,測試最基本的不就是責(zé)任么?沒有責(zé)任怎么去做一個測試呢?是的,責(zé)任每個人都有,程度是不同的。你作為一個tester,需要保證產(chǎn)品的質(zhì)量。勿以bug小而不重視,本質(zhì)上依然是不負(fù)責(zé)任的表現(xiàn)。
相反的,很多測試對于產(chǎn)品是負(fù)責(zé)了,對于自己卻是不負(fù)責(zé)任的。因?yàn)樗麄冎皇且粋€傀儡,天天被人操控著。做這個做那個,我覺得這種是更加可悲的。
如果你作為一個tester leader,那么你的責(zé)任不是去指揮別人做事情,不是去拍老板馬屁。而是自己不要忘記進(jìn)一步的學(xué)習(xí),不要忘記對于任何的細(xì)節(jié)去了解。更不要忘記如果出了什么問題,自己勇于承擔(dān)這個責(zé)任。真正的leader是什么?需要在流程以及技術(shù)上面有自己的sense,需要不停的去完善項(xiàng)目流程,從而提高測試team的效率以及項(xiàng)目的效率。
第三:通過各種渠道找到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)驗(yàn)以及各種方法去判斷。判斷出用戶說的產(chǎn)品的真正的問題在哪里,然后使用各種方法(automation.etc)去模擬bug產(chǎn)生的環(huán)境。這樣一來,bug在修復(fù)的情況下能夠在公司內(nèi)部馬上得到confirm。這樣無論是對于產(chǎn)品,用戶,還是公司都是一種無限大的利益。