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

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

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

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

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

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

  TA

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

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

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

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

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

  然而,要成為軟件測試架構師,僅憑這些還不夠。因為他們的很多工作都需要和項目經理、開發(fā)人員以及項目外部相關人員互相協(xié)調和合作,在溝通和影響力傳遞的方面也需要有很高的造詣。

  那么測試架構師在和項目經理、開發(fā)人員以及項目相關的其他外部人員之間如何協(xié)調進行工作呢?