在項目進行中,測試工程師、項目經(jīng)理和開發(fā)人員的合作通常有兩種形式。一種是相互交叉的,交叉的地方有大有小。在單元測試中,要提高產(chǎn)品質(zhì)量的話,需要開發(fā)人員也參與測試工作,項目經(jīng)理也提供相應的支持,進行各種資源的調(diào)配。這種情況更注重合作,是由三方共同進行參與的過程,大家彼此都是平等的地位。測試架構(gòu)師需要關注項目經(jīng)理、開發(fā)小組和項目相關外部人員之間合作和各自工作的各個過程,找出哪些需要繼承,哪些需要優(yōu)化和提高。

  另外一種形式是由測試人員來驅(qū)動整個項目的過程,然后由項目經(jīng)理、開發(fā)人員和外部相關人員進行各種合作,大家各司其責,整個工作是由測試人員來負責進行協(xié)調(diào)。測試人員編寫代碼驗證的工具,希望開發(fā)人員和外部合作人員在Check in他們的代碼之前,使用這個工具來確認他們的代碼是符合要求的。項目經(jīng)理在協(xié)調(diào)整個小組的各項資源的時候,受到測試人渦對代碼要求的影響,從而影響到所有的成員。這種關系是驅(qū)動合作的關系,而不是管理的關系。測試架構(gòu)師在其中不僅需要對所有的測試人員編寫的工具進行監(jiān)控,更要對這種驅(qū)動關系進行很好的推進,以測試角度的需要和要求控制項目的進行。

  軟件測試架構(gòu)師有時候總是稱自己為傳道士,把他們做的工作稱為在為相關的其他部門布福音。

  以何浪飛所在的MSN部門為例,這個龐大的部門包含了50多個產(chǎn)品小組,并且都有自己成型的組織架構(gòu),并且每個產(chǎn)品組,每隔6個月都需要發(fā)布一個產(chǎn)品的版本,想要改變他們工程流程上的一些細節(jié),都是非常困難的。在這樣龐大的機構(gòu)中要想推進某個優(yōu)化流程的工具更是難上加難。首先在每個部門中少有這樣專門用于配合推行這項工具的人員,并且確實存在有懷疑這些工具是否能夠改進他們現(xiàn)有工作狀態(tài)的人存在。這個時候要MSN部門中50多個產(chǎn)品組,隨時達到接受改進的佳狀態(tài),非常不易。

  這個時候需要這些軟件測試架構(gòu)師去對這50多個產(chǎn)品組一一走訪,去了解他們的狀況。因為每個小組的現(xiàn)實情況和需要都不同,也許測試架構(gòu)師推行的工具雖然很好,但是每個小組可能使用的方法不同,遇到的問題也不同,他們需要去傾聽沒有使用或者沒在達到預想效果的這些原因,幫助這些人去適應這些工具實現(xiàn)順利過渡,或者對工具做些相應的修改。

  通常在推進策略上也采取一些漸進的方法,何浪飛他們稱之為“農(nóng)村包圍城市”。他們通常先去解決那些積極提供支持和合作的部門,然后去解決消極抵觸的部門,后去解決那些年頭比較長、陰力比較大、現(xiàn)成和歷史東西比較多的產(chǎn)品部門。這個時候大多數(shù)部門都已經(jīng)接受,并且開始有成效,他們的工作逐漸被認可,那些之前難接受的部門也慢慢容易接納所推行的工具了。這些軟件測試架構(gòu)師這樣去為整個工作搭建平臺,讓大家在一個公共環(huán)境中去做工作,節(jié)省成本和提升整個工作組的工作效率。

  另外很多測試工作通常需要自動化,在其中需要有什么樣的測試推進、測試需要有哪些步驟、需要哪些點進行測試等這些工作需要有技術(shù)過硬又對產(chǎn)品有整體把握的人來進行,這些都屬于軟件測試架構(gòu)師的工作范圍。他們不僅對于測試相關的工作需要深入把握,還在對于整個團隊工作的本身流程優(yōu)化和整合做出很大的貢獻。同樣用何浪飛所在的部門為例,其中的哪些測試架構(gòu)師歷經(jīng)很長的時間,為相關的工作人員搭建了一個平臺,方便大家的合作工作,F(xiàn)在他們的平臺可以讓開發(fā)人員把代碼自動Check in,由Build Lab產(chǎn)生一個Build,并且自動在Lab里進行測試工作,并將結(jié)果保存到一個數(shù)據(jù)庫中。開發(fā)人員通過平臺提供的網(wǎng)站可以看到結(jié)果,立刻知道哪些代碼通過了測試,哪些沒有通過,從而可以決定這個Build能不能發(fā)布,值不值得做更多的測試,或者還需要進一步做哪些工作。節(jié)省了測試人員很多查找常規(guī)Bug和驗證測試結(jié)果的時間,也方便了測試人員和開發(fā)人之間的溝通,節(jié)省了大量的時間和人力。在更高的產(chǎn)品線上工作的測試架構(gòu)師,涉及到的平臺更加龐大,他們通常需要給客戶一個解決方案,到數(shù)個產(chǎn)品,需要去解決不同產(chǎn)品甚至是產(chǎn)品線之間是否可以進行有效的工作的問題。例如微軟很多產(chǎn)品都需要進行.NET Passport的身份驗證,當Messenger增加一個功能的時候,它的驗證是否可以同Office里新增的身份驗證進行合理和有效的信息互通都是測試架構(gòu)師需要去解決和優(yōu)化的事情。所以,測試架構(gòu)師的大部分工作都是在決策和優(yōu)化整個產(chǎn)品線,或者跨產(chǎn)品線、平臺的工作以及合作工作的流程。

  這些時候,測試架構(gòu)師的工作往往涉及到很多的部門和角色。然而由測試架構(gòu)師提供的工具、方法和要求往往對于其他相關人員來說,只是第二位的,因為雖然這些對于整個項目以及部門都有很大的益處,但是對于每個人來說自己的工作才重要。這個時候需要測試架構(gòu)師對項目經(jīng)理和管理人員產(chǎn)生必要的正面影響,然后由他們將這種影響傳遞給參與合作的人員,從而達到影響到所有人。決策、協(xié)調(diào)和組織是他們的工作主題。