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

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

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

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

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

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

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

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