關(guān)鍵字:SOA 測試
對于IT人員來(lái)說(shuō),SOA已經(jīng)不僅僅是一種技術(shù),它代表了一種新的,更加宏觀(guān)的設計和實(shí)施IT系統的方法論。那么對于整個(gè)IT系統的實(shí)施過(guò)程來(lái)說(shuō),每一個(gè)步驟都按照SOA的角度來(lái)考慮,來(lái)實(shí)施就成為了SOA項目實(shí)施過(guò)程中的重點(diǎn)和難點(diǎn)。
接口開(kāi)發(fā)的發(fā)展促成了SOA的發(fā)展,SOA的諸多優(yōu)勢之中接口規范的標準化是比較突出的一個(gè)。從EAI發(fā)展到SOA 的ESB,從各種不同的接口標準一統的Web Service,我們看到接口開(kāi)發(fā)的演進(jìn)過(guò)程,標準化、規范化的過(guò)程。
在SOA這種新的架構和設計思想下,接口合約(Interface contract)成為約束服務(wù)提供方和服務(wù)消費方的手段。對于開(kāi)發(fā)人員來(lái)講合約會(huì )轉換為WSDL或者IDL這樣的定義文件。有了這樣的定義文件,提供方和消費方的開(kāi)發(fā)人員就可以并行的開(kāi)發(fā)。在這種新的開(kāi)發(fā)方式,大量的服務(wù)可以有效的復用,開(kāi)發(fā)的效率和開(kāi)發(fā)的服務(wù)都可以有效的擴展;在這種方式下,可以把某些任務(wù)分配另外的公司和合作伙伴。從這種方式來(lái)講,SOA也方便了軟件外包和離岸開(kāi)發(fā)。
然而,中國有句老話(huà)叫“興一利必生一弊”,這種開(kāi)發(fā)模式下對于測試人員來(lái)講會(huì )有新的挑戰。
首先,通過(guò)接口合約分配給不同開(kāi)發(fā)商的服務(wù),這些開(kāi)發(fā)商內部如何有有效的機制來(lái)保證開(kāi)發(fā)接口的質(zhì)量和對于服務(wù)規范(SLA)的滿(mǎn)足程度。
第二,在服務(wù)組裝階段(一個(gè)典型的例子就是BPM的流程的開(kāi)發(fā)就會(huì )有這樣的階段),如何有效的保證測試的順利進(jìn)行。
第一個(gè)階段,服務(wù)開(kāi)發(fā)階段的功能測試(接口測試)。
有EAI系統或者接口系統開(kāi)發(fā)經(jīng)驗的人都有知道接口的測試是一個(gè)比較繁瑣和效率低下的過(guò)程。SOA規范了接口算是改進(jìn)了一大步,但是它也沒(méi)有解決接口測試的根本問(wèn)題。對于開(kāi)發(fā)和管理者來(lái)說(shuō),在集成測試之前,保證每個(gè)服務(wù)的功能測試都是很痛苦的,需要大量的工作。但是對于基于SOA的設計和實(shí)現來(lái)說(shuō),這么做會(huì )屏蔽組裝(Assembly)階段更大的,更具破壞性的風(fēng)險。
我們知道接口合約在現實(shí)項目中往往是word文檔或者excel格式的文檔。對于很多技術(shù)實(shí)現的細節并沒(méi)有描述,比較理想的情況下是有比較準確和細化的接口定義文件WSDL。在有了WSDL文件的基礎上,我們可以制作一些服務(wù)的simulator或者客戶(hù)端的simulator來(lái)模擬服務(wù)的調用和執行,但是如何有效的覆蓋到所有的業(yè)務(wù)邏輯,就需要測試人員和業(yè)務(wù)需求人員科學(xué)嚴謹的工作了。
接口開(kāi)發(fā)有個(gè)金科玉律,不要把問(wèn)題留集成測試。問(wèn)題越早發(fā)現越好。
第二個(gè)階段,服務(wù)的集成測試階段(System Integration Test或Assembling Test)
在 IBM對于SOA的實(shí)施過(guò)程的方法論描述中,有一個(gè)叫做Assemble的階段。這個(gè)階段就對于Service Testing有著(zhù)詳細的描述。但是在我看來(lái),這些描述反應的問(wèn)題就是對于真實(shí)的商業(yè)環(huán)境來(lái)講對于SLA的理解是這個(gè)階段測試的重點(diǎn)。
這個(gè)階段還會(huì )涉及到各個(gè)廠(chǎng)商的協(xié)同測試,因為對于跨多個(gè)公司開(kāi)發(fā)服務(wù)的集成測試來(lái)講,如何協(xié)調這些不同的組織,或者說(shuō)利用什么樣的工具和手段提供集成測試的效率,也是現階段各個(gè)廠(chǎng)商和大的集成公司在相關(guān)的SOA文檔和規范中沒(méi)有涉及的。因此對于測試人員來(lái)說(shuō),細節的工作不好做,也缺乏整體的方法論指導的情況下,如何不能說(shuō)測試人員會(huì )進(jìn)入一個(gè)SOA測試的黑洞呢?
我正在參與一個(gè)基于SOA的集成項目,希望能在實(shí)踐過(guò)程中找到這個(gè)問(wèn)題的答案,也希望有機會(huì )與大家一起分享我的經(jīng)驗。
文章來(lái)源于領(lǐng)測軟件測試網(wǎng) http://kjueaiud.com/