軟件測試之Web服務測試與傳統的Web測試區別
測試web service和測試一個傳統的web應用的根本區別是什么?
Rami Jaamour:我想我們需要在頭腦里保持以下這些意識:
1) 不同于傳統的應用(web開發,富客戶端應用),你正在構建和測試的services沒有直接的用戶界面,所以你需要把它組合到一個界面中,讓你能夠和這些services輕松地進行交互(例如提供數據,構建信息等等)。
2) 類似于傳統的應用,有些是要求你的services符合的功能性的要求,例如正確執行那些要求和正確實行你的用例場景,但也有一些非功能性質的要求:
1.符合標準(W3C,OASIS, WS-I等等),以便當你維護供應商的獨立性和避免專有插件的同時可以成功地隨時重用和訪問那些services。 2.遵循政策,其中包括標準以及設計和運行時的政策,還有的政策是確保services內部一致性,使能夠重用和加強信任,以便隨著你的SOA的發展你能夠真正重用services,并使他們的質量狀況具有充分的可見性(像信用報告)。3)在SOA中的功能和性能的考慮需要更多的關注和與傳統的應用不同的方式,因為一旦你圍繞你的SOA中的services構建業務流程,你的services可能會以不易預測的方式被訪問和消耗,這是因為它們使用的范圍不再受具體流程和約束于一個所謂的具體web應用的場景的控制,所以你需要注意負面測試,并確保在突發狀況(例如不良數據,數據丟失等等)下services功能是可靠的。
4)安全。永遠不要忘記安全考慮:內部外部都要考慮,即使你的services只是內部的。需要避免一些專門針對XML的攻擊,還有傳統安全考慮,像要阻止對SQL的注入攻擊。
從流程角度看,一個連續的測試過程需要建立在你可以孤立的系統部分上(有時你需要清除或仿真來實現),并不斷地(自動)對它進行回歸測試。這有一些關鍵信息:
1)把你的資源放進來構建測試,而不執行測試。這個執行應該是自動的。每當你發現自己在花費時間做測試(發布XML信息并分析),那么,你就是在做錯誤的事情。
2)維護你的回歸組件和你創建的測試,這是非常有價值的資源,因為一旦你需要做一新版本的services,這些測試資源就會非常有用,所以你可以運行并確保從一個版本到另一個版本沒有什么損壞。
3)有一個基礎結構來分享這些測試資源也是很關鍵的,這樣不同的組、QA和開發人員等等可以訪問、改進和重用那些其他人創建的測試。這是web services被不同的團隊重用和消耗的必然結果。
文章來源于領測軟件測試網 http://www.k11sc111.com/