由Java的設計模式想到與測試技術的關聯性 – JAVA編程語言程序開發技術文章

最近一直在看Junit源碼,也看瞭很多Junit的源代碼分析,看到裡面都提到瞭Java設計模式,什麼Command模式,Observer模式,Composite模式等等。以前就知道有Java設計模式,這次通過看Junit源碼發現這個設計模式真的是非常的有用,而且對於代碼設計和架構設計有很多的指導作用,那大部分的Java開發人員在使用Java設計模式的時候,主要是為瞭可重用和擴展代碼,增加代碼的邏輯性和可靠性。讓人感覺就是非常的High,也讓人感覺這才是真的有技術含量,這裡我就會聯想到架構師,系統分析師等比較牛的人,那些人至少是把這些設計模式理解和使用的非常精通的境界,什麼情況下使用什麼設計模式能啟動什麼樣的效果,這些東西一說出來,在項目的系統技術方案評審和架構設計的時候,這就代表著水平和技術實力。甚至是很牛的架構師就是開發一些新的設計模式出來,讓其他的開發人員來使用這些設計模式,使其寫的代碼更具有可靠性和擴展性。


       這裡我就想到瞭測試架構師,自從瞭解瞭Java設計模式,就大概瞭解瞭開發架構師的一些內部職能,自己從事測試行業這麼長時間瞭,還是不能完全明確體會到測試架構師到底具體是做什麼呢,給其他的測試人員能夠帶來什麼,給需要開發的項目或系統能帶來什麼,這裡就不說其他人的見解,就談下我個人的理解:


首先,一個合格的測試架構師要完全的理解測試技術。


 


       這裡的測試技術包括需求分析技術,測試設計技術,測試執行技術等;對比與開發架構師,有哪個開發架構師不瞭解甚至是使用基本編程技術,編程語言語法,設計模式,肯定是對這些方法和設計模式使用的爐火純青,達到非常精通的境界。這裡就不能看出作為一個測試架構師能具有的能力瞭,開發架構師對項目或系統的貢獻是技術方案,架構設計的合理,設計模式的合理應用,能夠讓開發人員的代碼更有質量和可測試性;測試架構師對項目或系統的貢獻是最佳的測試策略,測試模型的合理應用,測試設計技術和需求分析技術的合理應用,能夠讓測試人員更快的進行測試設計,進行測試代碼的編寫,發現較隱含的bug。


 


其次,一個合格的測試架構師要能實時的掌握新的測試技術並應用於團隊。


 


       這裡同樣對比與開發架構師,我們的開發架構師不僅僅提供一些技術方案的指導,還掌握瞭JVM,J2EE,EJB等一系列技術的發展和動態,瞭解這些是否有最新的技術來改變或替代,並探索是否適合本公司內部應用,或作出較有深度的分析報告。那我們的測試架構師也是一樣,不僅僅能夠完全的應用和指導測試策略和測試模型,而且還需要瞭解國內外最新發展的新的測試技術(需求分析技術,測試設計技術,測試執行技術,優秀的工具),並探索這些技術在本公司內部應用,研究並定制化或完善這些最新的測試技術,提供最新技術的實施方案並親自實踐拿到最新的分析報告,知道其他的測試人員參與最新技術的應用,目的隻有一個提升測試人員的技術能力,或是掌握多樣化測試技術手段,或是更快的發現bug,或是發現更深層次的bug。


 


最後,一個合格的測試架構師要能抽象並創新出新的能應用於本身團隊的測試技術。


 


       這裡說合格,估計有點高,我們可以看到開發架構師,能夠抽象並開發新的設計模式的畢竟是少數,內部團隊使用的設計模式相對來說容易一點。那麼對於測試架構師也是一樣,需要針對新的業務模式,新的系統架構模式抽象和創新出新的測試技術(需求分析技術,測試設計技術,測試執行技術,優秀的工具),並能實踐與公司內部團隊,並提供新測試技術指導和完善,如果能夠服務於整個測試行業的測試人員的話,那就成瞭真正的大師瞭,我們的24個經典的設計模式不就是真是大師開發的嗎。就好比等價類分析或因果圖分析一樣,牛B的測試架構師就應該可以開發或創新出類似的測試技術出來,讓所有測試人員能夠快速的進行測試設計,提高測試覆蓋率。


 


總結:


       這裡用到瞭測試技術,個人理解的需要再次強調一下,由於是和設計模式相對,本來個人覺得使用測試模型更合適,類似於探索式測試的三大模型;但後來覺得有點狹隘,相比較與開發架構師所掌握的技術來說,測試技術要少一些,但是測試需要站在整個系統質量的角度來看,就必須在瞭解這些開發技術上,充分的利用測試技術來體現出自己的價值,就是提供最優的服務。所謂最優就是在成本,質量和進度上達到完美的結合點,那麼測試架構師的作用就是幫助一個測試團隊怎麼去找到這個結合點,怎麼去實施並取得相應的結果,怎麼能去不斷的優化自己提供的測試方案,測試技術指導,優秀工具等。


 


       對於一個開發人員來說,我們敬佩一個開發架構師,絕不是因為他代碼寫的好,寫的快,沒有bug,最關鍵的是他能給我們在開發過程中,甚至在未來的新技術中都能提供很好且很合理的建議和指導。那麼我作為一個測試人員,我也會敬佩一個測試架構師,我敬佩他的原因肯定是他能完全的透析我要測試的項目或系統,並給出非常合理的測試策略或方案,對於一些異常或特殊模塊進行測試技術的指導來提高測試覆蓋率,也可以快速的進行開發小工具幫助我進行更有效的測試,更多異常的測試。這些技能無不需要厚重的測試技術的積累和相關經驗的抽象和創新。


 

發佈留言