前兩天看到一篇關(guān)于測試的文章,講軟件測試的核心價(jià)值.

  仔細(xì)閱讀了一下,覺得很多地方蠻有啟發(fā)的,也引發(fā)自己去思考了一下這個(gè)問題。其實(shí)這是一個(gè)測試人員常會面臨的問題,特別是在現(xiàn)在的整體氛圍下;蛟S任何一個(gè)對自己的工作有所要求和追求的人都會去想類似的問題,包括工作的意義和價(jià)值在哪里,以及進(jìn)而的發(fā)展方向。在這個(gè)blog上,之前也寫過一些自己的想法。這次借著那篇文章,覺得想得更清楚了一些,看起來似乎有點(diǎn)條理,寫出來和大家探討,也許若干時(shí)間以后發(fā)現(xiàn)還是理解得很粗淺,不過那倒是好事,說明理解更加深入了。

  軟件測試作為一個(gè)工作有很多的價(jià)值,因?yàn)榇蠹业墓ぷ鲀?nèi)容都會包含很多東西,而且對產(chǎn)品和項(xiàng)目都是有價(jià)值,這里只說說和測試直接相關(guān)的所謂的核心的價(jià)值吧。我把它人為的分為了三個(gè)層次。

  第一個(gè)層次:職位本身帶來的價(jià)值。

  這個(gè)有點(diǎn)類似于工廠里的QC, 需要有專人來做檢驗(yàn)的工作,這種價(jià)值和設(shè)立這個(gè)專門的職位有關(guān)。像很多職業(yè)的分工,一旦設(shè)立了這個(gè)專門的職位,這個(gè)職位上的人需要按照設(shè)定的要求去驅(qū)動某些事情會被做到,對測試而言是產(chǎn)品在出去之前會被檢驗(yàn)到,對項(xiàng)目經(jīng)理而言是會按照計(jì)劃來驅(qū)動項(xiàng)目往前走。的來講是不需要通過這樣的職位設(shè)定來驅(qū)動某些事情被落實(shí)的,因?yàn)殚_發(fā)人員也可以自測,產(chǎn)品集成好了之后也可以從用戶的角度來完整的測試,但是實(shí)際上如果沒有這樣的分工和專職的安排,很多事情不會真的被做。還是那上面提到的項(xiàng)目經(jīng)理來舉例,理論上產(chǎn)品的開發(fā)者應(yīng)該也可以按照幾乎把事情做了,為什么要一個(gè)專職的人來把握項(xiàng)目的進(jìn)度了(當(dāng)然項(xiàng)目經(jīng)理還要做很多別的事情)。

  從這個(gè)角度,這有點(diǎn)像是通過分工來確保落實(shí)。而且因?yàn)樵O(shè)立了這樣的專職的工作,那么自然有job responsibility,需要對質(zhì)量負(fù)責(zé),而因?yàn)橛羞@樣的要求,測試人員會跳出來報(bào)出問題,提出不同的意見。一個(gè)是制度上的安排,一個(gè)是心理上的。反過來可以設(shè)想一下,如果在一個(gè)正式的商業(yè)產(chǎn)品中,沒有測試人員或者類似的工種,很多時(shí)候?qū)|(zhì)量的要求會流于形式,質(zhì)量很容易被進(jìn)度的壓力compromise掉,而且因?yàn)闇y得夠不夠本身是個(gè)很模糊的概念,大家可能簡單用一用覺得沒有問題出去了。

  上面提到的其實(shí)是一個(gè)很基本的層次,有而且做了而已,至于做得怎么樣,那是另一回事。

  第二個(gè)層次:做得更專業(yè),更好。

  這里換一個(gè)例子,拿做飯為例,好的酒店里的廚師和那些只在家里做做飯的人區(qū)別是什么。當(dāng)然,這里說的是通常的情況,個(gè)別另類除外。如果按照上面的層次,兩者都能做出還可以的能吃的飯,可以達(dá)到這個(gè)工作的基本的要求。但是如果只停留在家庭主廚的要求,不會有專業(yè)的廚師這個(gè)職業(yè),還有什么幾級認(rèn)證之類的。那么專業(yè)的廚師的更進(jìn)一步的價(jià)值在哪里?我想簡單來說大概是做得更專業(yè),更好吧。

  同樣,對于測試這個(gè)職業(yè),也是一樣,如果只是把功能都用到了,發(fā)現(xiàn)了bug,那和普通的用戶有什么區(qū)別呢?

  那什么是更專業(yè),更好呢?我想用兩個(gè)詞來概括,效果和效率。

  先說效果,下面列了兩個(gè)方面:

  a. 發(fā)現(xiàn)更多的bug,而且很多是簡單用用無法發(fā)現(xiàn)的bug,甚至非常難以發(fā)現(xiàn)的bug。這也好比專業(yè)勘探和去山里玩的驢友,驢友可以發(fā)現(xiàn)奇怪有趣的露在外面的石頭,而專業(yè)的勘探人員能找出埋在地下的有價(jià)值的東西。

  b. 有些測試需要專業(yè)的技能,比如性能測試,穩(wěn)定性測試,安全性測試等需要專業(yè)的技能和工具。

  對于這類測試,普通用戶是難以發(fā)現(xiàn)的,因?yàn)榈人麄儼l(fā)現(xiàn)那不是找到bug,而是不幸遭遇到bug。這一部分是非常體現(xiàn)測試人員的技術(shù)和專業(yè)能力的地方,有很多地方值得深入的研究。