軟件測試真的比不上軟件開發嗎?

有的人說做軟件開發的可以輕鬆轉做軟件測試,但是軟件測試轉軟件開發卻是有些困難。真的是這樣嗎?其實IT行業內,都有這麼一個無形又不說透的鄙視鏈在裡面。做開發的瞧不上做測試的,做測試的怕得罪做開發的。有時候測試人員不但不能成為整個團隊突出的崗位,反而會被各種事情給牽絆限制。

如果說開發是考驗智商,那麼測試考驗的更多的是智商和情商的綜合,一個團隊裡面,開發和測試都很重要。所謂的比不上,不過是某些業內人為了凸顯自己的與眾不同而已。

很多程序員喜歡用架構形容程序,而測試的存在是為了保證軟件的質量及滿足用戶需要,那麼為什麼樂於用架構對比軟件的程序員們卻認為軟件可以不需要測試人員呢?這種想法顯然是非常荒謬的。


軟件測試真的比不上軟件開發嗎?


測試是做什麼的?測試做的事情,程序員真的能輕易做到?

1、監控產品流程。從時間控制的角度來說,開發新功能和修bug是一個平衡。開發得太快就可能把交付給下一個階段一個問題較多的版本,從而使得後面的問題更難處理。我們如何知曉每個階段軟件質量怎麼樣?具體的方法很多,迴歸測試,代碼覆蓋、壓力測試等等。但是這些信息誰來收集和分析,怎麼分析?能得出什麼樣的結論?有多少程序員會自己做這些?

2、搭建複雜的應用場景。誰能知道測試一個完整的Active Directory服務器的迴歸測試環境需要多少臺域控?我搭建的紀錄是11臺,還不包括中間可能動態加入和刪除的客戶端。其中包含大量故意的毀壞性操作。每一次毀壞之後都必須恢復現場進行下一個測試。有多少程序員構造過這種場景?

3、簡化問題報告。當發生用戶報告時,他們最初給出的步驟往往過於簡化或者過於繁瑣,缺乏直指問題所在的步驟描述。很多時候由於步驟不清楚,導致分析過程中存在很多彎路。這個時候需要有一個人來不停地和客戶打交道並定位關鍵步驟。這個步驟總是必須完成的,那麼誰來處置?有多少開發人員真正負責處理過這些?

測試和開發需要的技能有交集,但基本上是兩個要求不同的崗位。開發技術不行去做測試,不等於你能成為一個好測試人員。測試人員真的沒有程序員想的那麼容易取而代之。雖然測試人員對編碼能力的要求較低,不表示開發人員可以自動成為一個合格的測試。

測試這個崗位有測試的能力要求,它和開發的主要差異是在於分析和統計的能力。測試的基本能力是能夠嚴格地按步驟執行測試,這個確實是很容易入門的。但好的測試要求的絕對不僅僅是這個。當一個人在測試到達一定程度的時候,他/她就必須開始注意很多流程上的分析工作。

其實開發在這個位置上也是一樣的。最開始的時候,寫個排序之類的算法都不是難事。但一個好的開發不是隻會這些就夠的。當入行時間長了,開發就必須開始注意領域知識(比如東哥最近剛發佈的Adaptive Wide Angle濾鏡)、架構、設計(比如互操作性,微軟已經被人罵了很多年了)等等東西。這些東西都和編碼本身無關,但是成為一個好的開發必須掌握這些。這兩個職位也許開始時能力要求接近,隨著時間的發展則差異會越來越大。但這不是開發部門可以用來鄙視測試部門的理由。


軟件測試真的比不上軟件開發嗎?


另一方面,也正是因為有了兩個職位的差異,所以才會有興趣愛好方面的區別。有的人一開始不理解測試這個職位,慢慢地越做越喜歡;有人試了之後還是覺得不符合自己的興趣,所以選擇離開。這都很正常。人各有志,這東西勉強不來。

測試入門門檻相對較低,但是入門以後想要得到長足發展,能力要求甚至超過開發。就像之前說的,一個優秀的測試人員,除了基本的測試技能,還要會敲點代碼懂些程序。如果等一個測試人員成長為測試能做,代碼能敲的時候,那才是只懂得敲代碼的程序員該著急該焦慮的時候,誰也別瞧不起誰!

所以再次重申,測試不是開發的垃圾桶。如果一個和諧的團隊想把一個產品做好,就不應該存在一些“鄙視”或“高人一等”心態。

新夢想軟件測試是長沙一所本土軟件測試培訓機構,6年時間的堅持,全靠學生口口相傳,我們不玩套路,只做長沙良心IT培訓。


分享到:


相關文章: