問:如何才能評價一個SDET的工作情況呢?

  答:關(guān)鍵還是在找Bug的情況上。評價SDET的工作不一定在于他找到的Bug數(shù)量,更重要的是還是找到質(zhì)量更高的Bug。找到質(zhì)量更高的Bug有時候需要一些運(yùn)氣,但是更多的是基于經(jīng)驗(yàn),是對產(chǎn)品深入了解的程度。

  要找到質(zhì)量好的Bug一定要花費(fèi)很多的時間。在產(chǎn)品開始階段,Bug多,可能比較容易找到Bug,隨著這些Bug逐漸被修正,Bug的尋找機(jī)會越來越困難,能否找到更高質(zhì)量的Bug需要看SDET對這些代碼所付出的努力了。一般來說SDET會對于尋找Bug有經(jīng)驗(yàn)積累和感覺。開發(fā)人員在編寫和設(shè)計(jì)某些代碼時可能會欠考慮,一般來說如果一個地方出現(xiàn)Bug,作相應(yīng)的改動之后,會產(chǎn)生更多的Bug,另外一般有Bug的代碼周圍會有更多的Bug聚集。有經(jīng)驗(yàn)的測試人員會根據(jù)這點(diǎn),鎖定Bug的特殊特征,然后根據(jù)這個特征能夠找到更多更好的Bug出來。

  問:這么看起來SDET的工作還是地分繁重的。那么市面上的自動化測試的工具是否能夠減輕他們的工作量呢?

  答:首先要判斷所要測試的對象適合不適合自動化測試,不是所有的問題都適合做自動化的測試。自動化有它不能或者不適合解決的問題。它善于解決的問題是, 一次編寫出來,可以重用,每次軟件版本更新,都可以用同一個自動化測試的工具進(jìn)行測試。然而,自動化找Bug,并且要找到新的Bug的時候,還是離不開人工的操作。通過查看我們的Bug日志也可以發(fā)現(xiàn),新Bug很多都是SDET自己動手找到的。SDET需要對于常規(guī)的地方,自己動手進(jìn)行編寫測試工具進(jìn)行測試,然而也是思考哪些地方可能會出現(xiàn)新的Bug,這些要去手工地進(jìn)行查找。因?yàn)楣ぞ弋吘惯不能幫助人去思考。

  現(xiàn)在第三方的測試工作和微軟的平臺軟件并沒有很好的介入。這個也是由于微軟件平臺軟件的特殊性所決定。 但是對例如URL這些通用并且與平臺無關(guān)的軟件功能模塊進(jìn)行測試的時候,第三方軟件會有一些幫助。但是,在API的測試方面做一個通用的工具對它進(jìn)行測試是很非常困難的。有個工具叫做“Any Unit”,直接照調(diào)用API去做一些很基本的測試,例如檢驗(yàn)這些API是否有正確的相應(yīng)和返回正常。但是,如果要做一些索引測試(Index testing)的話,非常困難。這是因?yàn)槊鎸Φ膶ο,越是特殊,這些工具起到的幫助作用越小。所為作為一個SDET, 需要自己編寫測試工具來開展工作。

  TA

  測試架構(gòu)師(Test Architect)是在微軟內(nèi)測試技術(shù)人員技術(shù)發(fā)展方向的高職位。其實(shí)在4、5年前,微軟是沒有軟件測試架構(gòu)師這個職位的。測試人員發(fā)展到高級別是測試主管,然而這是偏管理方向的發(fā)展道路。對于那些鐘愛技術(shù)又十分的測試人員來說缺少這方面的職位發(fā)展目標(biāo)。后來在測試工作的長期發(fā)展過程中,需要有人去做整個產(chǎn)品在測試方面的推進(jìn)工作。慢慢地,隨著擔(dān)任此項(xiàng)工作的人越來越多,軟件測試架構(gòu)師這個職位定位和概念漸漸清晰起來。

  那么對于這要一個職位,都需要具備什么樣的素質(zhì)和特性呢?

  堅(jiān)持、有毅力、在逆境的時候要能堅(jiān)持自己的想法和做法。以ATC軟件測試經(jīng)理何浪飛為例,在成為軟件測試架構(gòu)師(Test Architect)之前,他是這樣堅(jiān)持,并且曾經(jīng)為了一個大家都覺得并不那么重要的Bug,歷經(jīng)周折來為這個小Bug“正身”。

  這個既不會返回錯誤又不會造成Down機(jī)的小小Bug只是在注冊表中某個值的默認(rèn)設(shè)置上可能會給一些初級用戶帶來不便,讓他們不知道該如何正確地使用這個值相關(guān)的功能。何浪飛當(dāng)時所在的測試小組中包括那些有20年以上經(jīng)驗(yàn)的員工,幾乎所有人都因?yàn)檫@個Bug造成不便的幾率只是可能,所以認(rèn)為它還到不了必須要去修訂的程度,而加入這個測試小組不到2年的何浪飛卻堅(jiān)信改進(jìn)它非常必要。既然問題出在可能會讓用戶感到不便,那么用戶的反饋將是進(jìn)行驗(yàn)證的好證據(jù)。于是他找到負(fù)責(zé)相關(guān)產(chǎn)品支持的人員,查找該產(chǎn)品用戶反饋問題的Top 10列表,發(fā)現(xiàn)自己堅(jiān)持需要修訂的Bug在其中。在了解了解決問題所帶來的人員支持等所花費(fèi)的時間和各項(xiàng)費(fèi)用之后,何浪飛的意見終于被大家欣然采納,很快修正了那個Bug。

  站在用戶的角度上審視產(chǎn)品,相信自己,并且要用例證說話。這是要達(dá)到測試工作技術(shù)領(lǐng)域的高級別――軟件測試架構(gòu)師所必需具備的。在微軟,很多領(lǐng)域都有很強(qiáng)的競爭對手,大家需要付出很長時間的努力,然而也許需要5年才能超過他們,這個時候在市場上很長一段時間都不會有比較明顯的表現(xiàn),所以特別需要給自己信心,相信自己做的工作。在項(xiàng)目組里也是,也許觀點(diǎn)大家都不同意,但是如果在分析了事實(shí)之后,覺得自己是正確的,需要堅(jiān)持,而不是簡單屈從大多數(shù)和經(jīng)驗(yàn)深厚的人或者是領(lǐng)導(dǎo)的決定。

  然而,要成為軟件測試架構(gòu)師,僅憑這些還不夠。因?yàn)樗麄兊暮芏喙ぷ鞫夹枰晚?xiàng)目經(jīng)理、開發(fā)人員以及項(xiàng)目外部相關(guān)人員互相協(xié)調(diào)和合作,在溝通和影響力傳遞的方面也需要有很高的造詣。

  那么測試架構(gòu)師在和項(xiàng)目經(jīng)理、開發(fā)人員以及項(xiàng)目相關(guān)的其他外部人員之間如何協(xié)調(diào)進(jìn)行工作呢?