微軟是怎樣做測試的
作者:軟件測試工程師 發布時間:[ 2010/9/1 13:37:58 ] 推薦標簽:
編寫代碼也許也是從事軟件行業的人喜愛并能獲得成感的工作。自己編寫測試工具進行自動化測試也是讓工作變得更加有趣,而不是機械性地進行重復性的實驗。在這里,每個人都可以大限度地迸發個人創造性和智慧,為了更好更快地檢測出軟件的Bug,編寫的測試工具是測試人員成感的巨大來源。另外這些測試工具還能夠在下一個類似的產品和工作中重用,節省更多的時間和人力。
然而,人工測試也有它不可替代的優勢和獨到之處。例如,對于軟件的操作方式、外觀、使用便易性等這些有關用戶體驗方面的測試,不是自動測試所能代替的了。在對于測試工具和自動測試代碼有時所不能觸及的部分,例如軟件的語法和文法錯誤,人工測試是的選擇。人工測試不需要參與此項工作的測試人員有深厚的編碼基礎,這能夠降低項目的人員成本。另外,在軟件的生命周期很短、軟件本身相對比較簡單的進修,使用人工測試能降低成本,并顯現出其不可替代的優勢。
對需要測試的軟件選擇人工測試還是自動測試要看工作對于時間、人力、技術以及對穩定性的要求來平衡兩者的比例了。這種情況下,不僅是努力工作能完成工作的方法了。 “Work Smartly”顯得非常重要。在ATC的測試組,每個人都不斷地被來自Work Smartly的成感所激勵,測試工作成為他們展示創造性和智慧的舞臺。
Q&A
國內一般的測試人員,面對的測試對象大部分都是應用軟件,對于平臺軟件的測試,接觸得相對較少。ATC(Advanced Technology Center, 微軟亞洲工程院)測試組負責微軟某些產品的測試工作,在這里的測試人員經常會從事平臺軟件的測試工作.在測試組中的SDET( Software Design Engineer in Testing?測試方面的軟件設計工程師)往往是整個測試組的主力軍。為了解微軟的SDET的工作情況及他們是如何進行平臺測試工作,本刊專訪了ATC的測試主管周振宇先生。
問: ATC承擔對微軟產品的測試中,有對應用軟件的測試,也有對平臺軟件的測試。這兩種不同軟件的測試工作對測試人員的要求有什么不同?
答: 用戶軟件和平臺軟件測試的區別,關鍵在于這兩種軟件面向的用戶群體的不同。例如: Office,IE等應用軟件,他的使用者大部分是終端用戶,測試人員在對軟件固有的功能進行測試之外,還需要在如何讓軟件更加易用、更好符合用戶的使用習慣以及UI等這些用戶體驗方面進行很好的控制。用戶體驗的測試工作,對于測試人員的編程水平要求不高,往往由STE(Software Testing Engineer ?軟件測試工程師)來承擔。
而平臺軟件大部分面對的則是開發者,它的職責在于如何使得開發人員可以花費少的努力來開發出更具價值的應用程序。所以需要SDET對這些平臺軟件和系統底層之間的關系和聯系非常了解。例如測試人員要測試一個GDI的軟件,必須能夠自己編寫GDI的程序,并且對其中的細節非常了解,才能知道如何對這樣的軟件進行測試,發現了Bug如何去探求產生Bug的原因,并輔助開發人員去修訂這個Bug。 所以,平臺軟件的測試工作對于測試人員在編程水平方面的要求是非常高的。往往進行平臺軟件測試的測試人員,編程水平能夠和一個的開發人員抗衡。這些工作會由SDET來進行。
問:說到SDET這個在測試組中這個非常重要的角色,除了剛才所說的需要有深厚的編程基礎之外,要成為一個合格的SDET,還需要具備什么樣的能力呢?
答:SDET必須是一個合格的軟件開發工程師,熟知各種算法、軟件架構和編程技巧和測試方法,還要非常關注細節,喜歡查找產生細節差異的原因,熱衷于把系統拆開,弄明白。
例如有一次在對Windows上的文字處理系統進行測試的時候,發現在這個系統的2個不同的Build版本之間產生了一點點細小的差別:一個字母和下一個字母之間的間距有1個像素的差別。一般來說這點是非常不容易覺察到并引起重視的。而我們的SDET感覺這其中有些東西發生了變化,一定要知道這些變化會帶來更好還是更糟的后果,于是開始對這個問題進行了全面深入的探究,一方面開始追根到底找到產生差異的原因,后發現是一個開發人員把文本渲染的算法中一個數字作了更改,另一方面在這個差異點上進行更全面的測試后發現:如果是英文,間距造成的影響甚微,但是對于阿拉伯文來說,由于它的字母都很緊湊,所以一點點的間距變化可能會造成很多句子中的字母會變形,字母錯開或者重疊。所以SDET需要把所有微小改變所造成的影響想得十分全面和完備,并且找到其中的原因。
有一種比較普遍的看法,認為SDET不論是技術能力還是產品認識都不如開發人員。然而真實情況不是這樣的。SDET在項目啟動時開始了解產品,開發用各種方式測試產品應該做的事情,按照產品規格說明書去測試產品每個要求是否達到了,察看產品在規定的步驟和要求下,是否獲得了應該有響應…… 他們對于產品是全面的了解。并且由于要對產品的各個方面進行測試,并且還要動手編寫測試工具,所以開發能力并不比開發人員遜色。我們在面試新人的時候,不管他要求做開發工作還是做SDET,我們都會考察他在測試方面的潛質。如果發現他樂于鉆研測試用例,喜歡用各種方法找到系統薄弱的地方讓它崩潰等等,我們會極力建議他去向SDET發展。也有很多開發高手選擇從事測試工作,這是因為他們認為自己有很好的測試方面的天賦,可以在這個領域做出更大的貢獻。
問:有一種說法是“項目經理(PM)、開發人員和測試人員是工發團隊中的‘三劍客’”。那么,在ATC測試組中,SDET和PM以及開發人員之間的關系是怎樣的呢?
答:應該來說,SDET是在整個項目中是監控的作用。他們是了解產品的,甚至比PM還是了解產品。PM很了解產品,但是測試人員不僅了解產品現在能夠滿足什么要求,還需要了解產品應該滿足哪些要求。微軟的產品周期模型(Product Cycle Model) 在初期會制定一個需求,SDET會從用戶的角度審視這些需求是否合理,客戶是否真正需要需求所描述的這些要求,并且將結果反饋給PM。在整個產品周期中反復比對產品的實際情況和這個需求,一般找出需求描述中存在的問題,一邊按照需求的要求控制產品開發的方向。然而無論多詳細和完備的產品規格書,里面都有可能有沒有涉及到的地方,這些也正好是PM所沒有想到并且需要的,然后再協同開發人員對代碼進行相應的修正。
例如有一次測試一個服務器的組件,需要在MMC上面寫些IP地址,然后讓這個組件通過指向這個地址建立網絡連接。然而PM沒有想到的是,產品設計書和規格描述中都沒有限定輸入的IP地址的地址段中不能放置負數,顯然這里出現負數是不合法。 SDET發現了這個問題,后對所有的與此相關的描述都進行了完善,并且開發人員在相關的地方也增加了合法輸入的驗證。
相關推薦

最新發布
性能測試之測試環境搭建的方法
2020/7/21 15:39:32軟件測試是從什么時候開始被企業所重視的呢?
2020/7/17 9:09:11Android自動化測試框架有哪些?有什么用途?
2020/7/17 9:03:50什么樣的項目適合做自動化?自動化測試人員應具備怎樣的能力?
2020/7/17 8:57:06幾大市面主流性能測試工具測評
2020/7/17 8:52:11RPA機器人能夠快速響應企業需求,是怎么做到的?
2020/7/17 8:48:05Bug可以真正消滅嗎?為什么?
2020/7/17 8:43:03軟件測試基本概念是怎么來的?軟件測試生命周期的形成歷經了什么?
2020/7/16 9:11:10