近一直在看Junit源碼,也看了很多Junit的源代碼分析,看到里面都提到了Java設(shè)計模式,什么Command模式,工廠模式,Component模式等等。以前知道有Java設(shè)計模式,這次通過看Junit源碼發(fā)現(xiàn)這個設(shè)計模式真的是非常的有用,而且對于代碼設(shè)計和架構(gòu)設(shè)計有很多的指導(dǎo)作用,那大部分的Java開發(fā)人員在使用Java設(shè)計模式的時候,主要是為了可重用和擴展代碼,增加代碼的邏輯性和可靠性。讓人感覺是非常的High,也讓人感覺這才是真的有技術(shù)含量,這里我會聯(lián)想到架構(gòu)師,系統(tǒng)分析師等比較牛B的人,那些人至少是把這些設(shè)計模式理解和使用的非常精通的境界,什么情況下使用什么設(shè)計模式能啟動什么樣的效果,這些東西一說出來,在項目的系統(tǒng)技術(shù)方案評審和架構(gòu)設(shè)計的時候,這代表著水平和技術(shù)實力。甚至是很牛B的架構(gòu)師是開發(fā)一些新的設(shè)計模式出來,讓其他的開發(fā)人員來使用這些設(shè)計模式,使其寫的代碼更具有可靠性和擴展性。
這里我想到了測試架構(gòu)師,自從了解了Java設(shè)計模式,大概了解了開發(fā)架構(gòu)師的一些內(nèi)部職能,自己從事測試行業(yè)這么長時間了,還是不能完全明確體會到測試架構(gòu)師到底具體是做什么呢,給其他的測試人員能夠帶來什么,給需要開發(fā)的項目或系統(tǒng)能帶來什么,這里不說其他人的見解,談下我個人的理解:
首先,一個合格的測試架構(gòu)師要完全的理解測試技術(shù)。
這里的測試技術(shù)包括需求分析技術(shù),測試設(shè)計技術(shù),測試執(zhí)行技術(shù)等;對比與開發(fā)架構(gòu)師,有哪個開發(fā)架構(gòu)師不了解甚至是使用基本編程技術(shù),編程語言語法,設(shè)計模式,肯定是對這些方法和設(shè)計模式使用的爐火純青,達到非常精通的境界。這里不能看出作為一個測試架構(gòu)師能具有的能力了,開發(fā)架構(gòu)師對項目或系統(tǒng)的貢獻是技術(shù)方案,架構(gòu)設(shè)計的合理,設(shè)計模式的合理應(yīng)用,能夠讓開發(fā)人員的代碼更有質(zhì)量和可測試性;測試架構(gòu)師對項目或系統(tǒng)的貢獻是佳的測試策略,測試模型的合理應(yīng)用,測試設(shè)計技術(shù)和需求分析技術(shù)的合理應(yīng)用,能夠讓測試人員更快的進行測試設(shè)計,進行測試代碼的編寫,發(fā)現(xiàn)較隱含的bug。
其次,一個合格的測試架構(gòu)師要能實時的掌握新的測試技術(shù)并應(yīng)用于團隊。
這里同樣對比與開發(fā)架構(gòu)師,我們的開發(fā)架構(gòu)師不僅僅提供一些技術(shù)方案的指導(dǎo),還掌握了JVM,J2EE,EJB等一系列技術(shù)的發(fā)展和動態(tài),了解這些是否有新的技術(shù)來改變或替代,并探索是否適合本公司內(nèi)部應(yīng)用,或作出較有深度的分析報告。那我們的測試架構(gòu)師也是一樣,不僅僅能夠完全的應(yīng)用和指導(dǎo)測試策略和測試模型,而且還需要了解國內(nèi)外新發(fā)展的新的測試技術(shù)(需求分析技術(shù),測試設(shè)計技術(shù),測試執(zhí)行技術(shù),的工具),并探索這些技術(shù)在本公司內(nèi)部應(yīng)用,研究并定制化或完善這些新的測試技術(shù),提供新技術(shù)的實施方案并親自實踐拿到新的分析報告,知道其他的測試人員參與新技術(shù)的應(yīng)用,目的只有一個提升測試人員的技術(shù)能力,或是掌握多樣化測試技術(shù)手段,或是更快的發(fā)現(xiàn)bug,或是發(fā)現(xiàn)更深層次的bug。
后,一個合格的測試架構(gòu)師要能抽象并創(chuàng)新出新的能應(yīng)用于本身團隊的測試技術(shù)。
這里說合格,估計有點高,我們可以看到開發(fā)架構(gòu)師,能夠抽象并開發(fā)新的設(shè)計模式的畢竟是少數(shù),內(nèi)部團隊使用的設(shè)計模式相對來說容易一點。那么對于測試架構(gòu)師也是一樣,需要針對新的業(yè)務(wù)模式,新的系統(tǒng)架構(gòu)模式抽象和創(chuàng)新出新的測試技術(shù)(需求分析技術(shù),測試設(shè)計技術(shù),測試執(zhí)行技術(shù),的工具),并能實踐與公司內(nèi)部團隊,并提供新測試技術(shù)指導(dǎo)和完善,如果能夠服務(wù)于整個測試行業(yè)的測試人員的話,那成了真正的大師了,我們的24個經(jīng)典的設(shè)計模式不是真是大師開發(fā)的嗎。好比等價類分析或因果圖分析一樣,牛B的測試架構(gòu)師應(yīng)該可以開發(fā)或創(chuàng)新出類似的測試技術(shù)出來,讓所有測試人員能夠快速的進行測試設(shè)計,提高測試覆蓋率。
總結(jié)下:這里用到了測試技術(shù),個人理解的需要再次強調(diào)一下,由于是和設(shè)計模式相對,本來個人覺得使用測試模型更合適,類似于探索式測試的三大模型;但后來覺得有點狹隘,相比較與開發(fā)架構(gòu)師所掌握的技術(shù)來說,測試技術(shù)要少一些,但是測試需要站在整個系統(tǒng)質(zhì)量的角度來看,必須在了解這些開發(fā)技術(shù)上,充分的利用測試技術(shù)來體現(xiàn)出自己的價值,是提供優(yōu)的服務(wù)。所謂優(yōu)是在成本,質(zhì)量和進度上達到完美的結(jié)合點,那么測試架構(gòu)師的作用是幫助一個測試團隊怎么去找到這個結(jié)合點,怎么去實施并取得相應(yīng)的結(jié)果,怎么能去不斷的優(yōu)化自己提供的測試方案,測試技術(shù)指導(dǎo),工具等。
對于一個開發(fā)人員來說,我們敬佩一個開發(fā)架構(gòu)師,絕不是因為他代碼寫的好,寫的快,沒有bug,關(guān)鍵的是他能給我們在開發(fā)過程中,甚至在未來的新技術(shù)中都能提供很好且很合理的建議和指導(dǎo)。那么我作為一個測試人員,我也會敬佩一個測試架構(gòu)師,我敬佩他的原因肯定是他能完全的透析我要測試的項目或系統(tǒng),并給出非常合理的測試策略或方案,對于一些異;蛱厥饽K進行測試技術(shù)的指導(dǎo)來提高測試覆蓋率,也可以快速的進行開發(fā)小工具幫助我進行更有效的測試,更多異常的測試。這些技能無不需要厚重的測試技術(shù)的積累和相關(guān)經(jīng)驗的抽象和創(chuàng)新。
以上都是個人看法,歡迎拍磚。