優秀的系統驗證測試人員應該具備哪些素質?
在 8 年多的軟件開發工作中,我曾從事過各種項目的設計和開發,并且從初級開發人員成長為高級開發人員,最終成了一名軟件架構師。在此期間,我意識到測試工作的重要性和挑戰,甚至曾自愿地對自己設計的程序進行測試,這是出于“自己解決自己的問題”的考慮。大約在一年前,我成為了系統驗證測試 (SVT) 組的負責人。我之所以想到要撰寫這個專欄,是因為與所在部門的一名測試人員的閑聊,情況是這樣的,該測試人員以前的一名同事申請了我部門中的測試職位。當我向這名測試人員詢問有關申請者(當時他正從事開發工作)的情況時,她的回答是“對這個人我已經記不大清楚了,但他肯定是一名優秀的測試人員,因為他是一名開發人員”。
聽到這樣的評論我感到震驚,但是后來我發現,對于開發和測試團體來說,這是一個普遍存在的觀點。的確存在許多優秀的開發人員和優秀的測試人員,但是在某個方面非常一流,并不一定就意味著在其他方面也同樣優秀。所以作為一名測試管理人員,我需要說明成為一名優秀的 SVT 測試人員所面臨的挑戰和應該具備的獨特品質,這不僅僅是要吸引高素質人才加入到這個行列,同時還可以分享這項工作給我們帶來的自豪感,并且或許可以為測試工作贏得更多的尊重。
發現客戶價值
按照規定,SVT 組負責進行系統級測試。什么是系統級測試呢?這是一個常見的問題。我的理解是,進行系統級測試的目的是為了確保通過產品所提供的功能,實現既定的客戶價值。
那么,什么是“客戶價值”呢?其答案正是為什么客戶購買和使用某種產品的原因之一。例如,我使用 Microsoft® Word 已有許多年了;貞浳覀人使用該軟件的經歷,在早期的版本中,最苦惱的事情是它容易在編輯的過程中發生崩潰,這樣就會丟失最近一次保存以來的所有工作。幸好,現在的版本不再出現這種情況了。甚至更加完善,它會定期地自動保存文檔,這樣一來,即使在退出的時候忘了保存文檔,仍然可以恢復到最近一次自動保存的副本,對我來說這是個非常好的特性。這種作為客戶的經歷使我意識到,盡管該產品提供一般性的功能,但正是其獨特的特性使得它能夠從眾多的競爭產品之中脫穎而出,并且正是這些提供價值的特性使得其客戶鐘情于該產品。因此,對于優秀的 SVT 測試人員來說,最重要的品質是能夠清楚地了解每個特性的客戶價值。
盡管可以很容易地從設計文檔或用戶手冊的簡介部分中找到每個特性所允諾的客戶價值,但是要有效地將它們合并為測試設計方案的核心,并不是那么簡單。要實現這一點,測試人員需要了解技術的采用周期,以及該技術當前位于其采用曲線中的什么位置。他還需要了解提供類似客戶價值的競爭技術,以及有可能共同使用的協作性技術。
測試更廣泛的場景
我觀察到新的 SVT 測試人員常犯的一個錯誤是,他們總是從局部而非整體的角度來看待某種技術(或者產品特性)。結果,測試工作重點關注于產品與設計的符合性,而不是它所提供的真正價值。例如,當在 J2EE™ 技術中引入容器管理的持久性時,其目標是為數據庫的訪問提供一種更簡單并且更具可移植性的編程模式,它的競爭技術是其他持久性技術,如 JDBC 和持久的數據對象。如果該技術或特性不易于使用,并且不能夠伸縮或至少執行其競爭技術所能完成的任務,那么該特性就難以獲得接受,即使客戶購買了這個產品,他們也不會使用該特性。因此,SVT 測試人員的任務是發現問題的本質,并在產品發布之前進行報告。
文章來源于領測軟件測試網 http://www.anti-gravitydesign.com/