萬裡航行總舵手——業務測試架構的設計
目前,國內的很多公司,包括一些知名大公司,可能都還沒有這個職位,但應會有這樣一個角色的存在,比如這個角色落在測試經理或是測試主管的肩上。筆者不敢 稱自己是一個專業的測試架構師,只是有一天發現業界有這個職位時,並對著職位描述的定義,發現自己很幸運地在不知不覺中做了一些這方面的事情。
對於架構,更具體一些指架構模式,如第6章 介紹的關於測試對象分析的三層架構模式。一邊是深不可測、充滿挑戰的技術與藝術的高度體現,一邊是“又恐瓊樓玉宇,高處不勝寒”的擔憂。高深的東西如何平 民化,即那些高調的架構,能不能具體應用到工程實踐中,很好地達到預期,而不是成為束之高閣、脫離實際的一堆廢話或模型。這裡站在項目測試的實用角度,總 結工作中的經驗傳承,提出架構設計的操作模型,4-9所示。我們可以看到一個完整的測試架構設計過程包括以下幾個階段。
1 業務測試架構設計:它包括業務測試技術與流程管理兩個部分,基本架構的設計離不開業務需求與公司流程體系。其表現形式可以是一種測試方法、一塊代碼程式、一系列的流程規範等。
2 提取測試需求:廣義上理解,包括與測試工作相關的業務及非業務需求,只有有了需求(工作中出現的問題也可認為是一種需改進的需求),才可進一步完善架構。
3 決策/部署測試策略:為測試需求服務的一系列解決方案。
4 開發測試套件:具體解決測試需求的措施集,如測試案例集、指令碼程式、測試載入器等。
圖4-9 測試架構設計過程
這4個
階段,它們之間是相互作用,相互影響的。細心的讀者也許已注意到,位於圖中內側的“提取測試需求”,它與測試架構的設計並不是一種直接關係,沒錯,它們之
間的關係要通過後續的工作體現在架構中。可以理解為一個新的測試專案開始了,以新的測試需求為起點,通過部署測試策略,開發新特性的測試套件,來完善測試
架構。如此往複,依託一個個測試專案,不斷改進、壯大測試架構。以使後續的項目測試能重用測試架構的內容或方法,並使整個測試過程始終在有序可控的狀態下
進行,最終能以高品質且減少項目的整體測試時間來完成測試工作,這也是架構設計的最主要目的。
對這4個階段,可以理解為它是一個系統級的最頂層劃分,對於每一個階段,它又可劃分為不同的節點。其包含的意思及操作的方法,將在接下來的章節中進行詳細講述。
一個好的架構,只有在應用中收到實際的效果後,方顯它的價值,比如節省了多少測試時間或提高了測試的全面性等。
主動向他人提需求,是一種架構能力的體現,從而影響開發、需求,甚至其他使用者、市場部門為測試部門服務。測試架構設計,需重視過程,它是個不斷髮展的過
程。架構必須由經驗豐富的設計人員設計,很大程度上依賴於過去項目的成功與失敗的經驗。但是正因世界上萬事萬物都在不停地發展變化著,軟體開發的方法、模
式、具體項目的要求也不同。隨著過程中遇到問題的不同,需要做出快速響應,並進行合適的調整,從而提高架構的應用性,豐富它的內涵。提升它應用的高度與廣
度,為它畫上更大的外延,這也是符合事物的發展規律的。
本文節選自《軟體測試之魂:核心測試設計精解(第2版)》一書
肖利瓊著
電子工業出版社出版