探秘U9測試團隊 軟件測試的那些事兒
當前位置:點晴教程→知識管理交流
→『 技術文檔交流 』
從最開始徘徊在開發的邊緣,軟件測試正在不斷找到自己的位置。軟件測試不再是低技術含量、高重復工作的代名詞,不再是可有可無、不被重視的部門,軟件產品質量正在越來越依賴于測試部門的保障。
除了更多技術高手開始擔任測試工作,在管理軟件行業,對某項業務的熟悉同樣可以成為測試人員的利器。注冊會計師出身的張茜就是這樣一個例子。現在的她是用友u9部門質量總監,用友公司測試專家。2000年加入用友,她一直在從事管理軟件測試工作,歷任u8 v8.2、v8.5、v8.7系列的產品測試、發布;作為測試專家參與u9 1.0、1.5系列產品發布,負責u9 v1.5sp、v2.0、v2.0sp系列發版。從事測試工作10年的她,自己也沒有想到會在好不容易考到注冊會計師后卻轉行測試,并且在此后的這么長一段時間里和測試工作為伍。為此,她的惟一解釋是:這是因為做erp軟件的測試需要和業務邏輯有著非常強的關聯。而這一認識既來源于她多年測試工作的積累,也經過了時間和實踐的考驗。 2010年4月的一天,在曬滿陽光的辦公室里,張茜將她最為熟悉,為之驕傲的整個u9測試的“那些事”娓娓道來。 u9的測試體系和架構與整個用友產品的體系架構類似,但是u9的測試團隊是獨立服務于u9這個產品的測試團隊。u9的整體開發過程都強調特性驅動,測試過程也不例外。 在產品開發過程中,特性驅動表現為特性開發,由需求設計、架構師、項目經理、開發、測試等人員動態地構成一個虛擬團隊,進行特性的開發和測試,以保證該特性如期完成,并達到一定的穩定程度。在此期間,某幾個人會專門負責這一特性的測試,比如經過兩周時間該特性測試通過并提交主版本后,這幾個人就可以釋放出來,去做別的特性的測試。因此,特性驅動測試是一個相對動態的過程。 從測試過程和人員分工上,u9的測試可以分為這樣幾個階段: 單元測試:程序員寫完代碼,按照u9的規范流程,由程序員自己進行單元測試,保證一定的質量才能提交給測試部門測試。測試人員會有一個接收的過程,進行單元驗收。 特性測試:單元驗收后,測試人員會比開發人員更大范圍的,從業務的角度,將整個流程特性貫穿起來運行測試。在特性范圍內,達到u9的質量標準,才能向上一級提交,即特性提交,進入下一步特性驗證的過程。 特性驗證:由主測人員,即產品設計層級的人員,對提交的特性進行特性驗證。特性驗證通過的代碼是相對穩定的,可以合并入主版本。特性驗證通過,將一個一個特性合并入主版后,在一個截止點上,把所有的特性都合并進來,進入下一步。 系統測試:在u9團隊被稱為聯調測試,即把所有的特性放在一起進行一個統一測試。聯調測試更多地是從功能角度進行黑盒測試。模擬企業的流程從頭到尾過一遍,保證流程、流轉、控制等各方面,達到一定的穩定程度,才能進入下一步模擬用戶的集成測試。 集成測試:u9團隊所說的集成測試就是收集典型行業的典型用戶應用,將這些典型用戶的行業案例和實施方案拿來在系統中進行模擬測試,如果整個系統跑下來能夠確認符合質量標準就可以進入發版。 單元測試由誰測? 目前,業內基本共識是:單元測試由開發人員完成。但是,讓開發人員心甘情愿地進行單元測試,并完成好它并不是那么容易的事。在張茜看來,目前u9的開發人員基本能夠完成單元測試,但還是不能達到一個理想的狀態:即開發人員能夠按照單元測試要求比較高質量的提交代碼。在u9開發團隊,開發人員能夠進行基本單元測試工作,但還是需要測試部門對其進行驗收,一次通過的概率還需要提高。 一般來說,開發人員不是很容易接受單元測試工作,都會存在一些抗拒心理。如何讓開發人員接受并完成單元測試?張茜認為:在這個問題上,開發部門主管的作用非常大。測試部門需要與開發部門主管在一開始就商量好,明確單元代碼質量的提高是最終版本穩定的最基礎和重要的方面。前面不穩定靠后面彌補只會適得其反。因此,一般u9測試團隊會和開發主管達成一致?,F在開發部門經理和項目經理也都很理解這一點,經過以前的實踐,更加知道單元測試的重要性。因此,總的來說,由上而下對程序員灌輸單元測試的重要性,并通過規范制度來保證這樣一個流程的貫徹和執行,是非常有必要的。 為了達到單元測試的目的和保證單元測試的質量,u9團隊通過checklist表,要求程序員完成代碼后必須按照表格一條一條完成測試項目。這也解決了一開始開發人員不知道如何測試的問題。一開始,他們必須把最常規的幾條都走到,把這些都測試完畢后才可以提交代碼。測試用例也是由測試部門提供,開發人員直接去跑程序測試即可。這些用例相對比較簡單,包括了錄入邊界值、基本功能、性能指標等共同項目。 從單元測試引申到開發和測試的沖突,在張茜看來,開發和測試的沖突非常正常。大家必須互相牽制,才能共同保證產品質量。在u9團隊,通過cq檢出bug,一次修改通過,那么問題就友好地解決了。比較麻煩的是,一個bug多次沒有修改通過怎么辦?張茜的經驗是:一定要與開發經理溝通,安排其他主程序員對代碼進行review,從這一層面來加強解決。畢竟,測試人員的目的是推動產品質量和產品發展,這也是大家共同的目標,這一點更需要向開發人員解釋清楚。其實,有時候,程序員也可能對自己的代碼也沒底,遇到問題不知道如何去處理,這時程序員也需要測試人員站出來說話,推動整個過程向前發展。這時,測試人員對開發人員的幫助,就能形成一個良性的循環。 測試用例從何來? 前面談到,單元測試的測試用例由測試部門提供。而集成測試的用例則來源于一線的實施方案,包括由架構師提供的特性和對應的場景。在比需求更高一層的架構師立項時,就要確定這一版需覆蓋哪些用戶,解決哪些特性,并進行場景描述。測試人員根據場景找到目前正在實施的項目,將不同場景和不同特性組合并找到典型用戶,這些用戶能夠比較全面地覆蓋以上場景和特性。由測試骨干和專家,結合特性和企業情況,與實施經理和實施顧問深入溝通,與架構師充分溝通,找到典型用戶關注的特性、自身的流程、應用,最終形成一個完整的集成測試方案。這一方案要經過由架構師、需求、開發、部分市場、實施組成的評審團隊的審慎評審。這是發版前一個關鍵的質量控制環節。 在u9測試團隊,測試人員會與實施人員有著非常緊密的溝通。一方面是為了盡快解決早一版本在實施過程中的現有問題。另一方面,是因為u9產品屬于起步初期,產品規模較大,實施周期較長,一個小版的發版周期都需要3~6個月。往往是新版本還沒有發布,但是已經有幾個項目在等著了。因此,前期的實施準備階段,一方面對發版構成一定壓力,但另一方面也是非常好的資源,它的針對性特別強。張茜談到:測試團隊會和這樣的項目密切配合,因為他們也非常希望通過測試把關,讓新產品切合企業的實際功能和流程需求。 性能測試和壓力測試會在聯調的時候進行。u9的性能測試分幾個方面:單點效率,每一點在一定數據量的支持下能夠達到指標;流暢性指標,比如一個完整的收貨業務或者領料任務,從頭到尾要花費多少時間;壓力測試,主要由loadrunner工具實現,u9也有與微軟的合作,模擬5000~8000人同時登錄,服務器、線程、應用端、網絡部署各方面的壓力分別怎樣;200人場景測試(壓力測試),一個真實的200人場景,進一步模擬企業中的實際應用場景。200人的場景測試算作壓力測試的一部分,結合集成方案,制訂場景測試,比如10個人做收貨,10個人做領料,10個人做入庫,報表,打印,不同人模擬完成不同業務,很實際地模擬企業日常工作場景。 測試工具用什么? 壓力測試中,u9團隊主要使用loadrunner工具來實現,同時,u9也與微軟的合作,來模擬5000~8000人的同時登錄。但整個u9測試團隊使用最多的還是 u9測試團隊從4年前開始使用rft,在其基礎上進行了大量框架開發和成果積累。比如,rft測試主要是一個錄制回放的過程,但是回放的成功率通常不是很高,產品是靠抓ui上的坐標方位來實現,界面一動錄制腳本就廢了。u9在這方面做了大量基礎工作,通過一個測試框架,我們抓的不再是界面上的坐標尺寸,而是抓的一個自設id。不論前臺還是后臺的每一個按鈕,控件都有自己的編碼,編碼具有唯一性,由編碼轉換成rft的東西,再進行回放。這樣界面上的ui輕微變動是不會影響,在不同的機器上回放,成功率也高了很多。 如何建設一個好團隊? 目前,u9的測試團隊共有60多名正式人員和20多位外包人員,開發人員和測試人員的比例基本達到2:1,遠遠優于目前國內平均水平。而張茜的理想狀態是1:1。但是,u9測試團隊的開發能力卻不容小覷。 雖然u9測試團隊中從事自動化測試的人員只有4~5位,但卻都個個具有相當的開發能力,也愿意做些開發工作。比如,上面提到的對rft測試框架的改進,以及自動抓取id工具等。u9自動化測試力量都強于其他產品。 在從事測試工作10年,從會計行業轉行而來的張茜看來,做erp軟件的測試和業務邏輯有非常強的關聯。因此,她面試時會更加注重面試者的業務能力,業務的背景會比測試的背景重要很多。而測試工作,特別是黑盒測試相對比較簡單,更多地是對產品業務流程的把控能力,對數據的敏感程度和控制能力。 目前,u9測試團隊層次分開。主測試人員有4~5個,主要負責測試架構和規劃方面的工作。主測試的目的是把自己負責這一塊的流程把握,測試重點在哪里,測試方案是否合理。而測試的執行則需要執行力強、更仔細、更勤勉的人,需要一遍一遍地反復測試,并能敏銳地發現問題。邊角工作則可以由實習人員完成,比如性能、ui交互,這些比較機械地工作可以在方案設計好后由他們來逐條測試。這樣便形成一個完美的金字塔結構的測試團隊。 最后,張茜也透露,u9產品的發版密度較大,雖然今年已經比去年有所減少,但也有1大2小三個版本。每個版本的測試周期和回歸壓力還是比較大的。馬上要發布的將是u9 2.0sp版本。大版則是在今年8月將要發布的的u9 2.1版。10月還將推出u9 2.1 sp1版本。 該文章在 2010/7/25 1:55:15 編輯過 |
關鍵字查詢
相關文章
正在查詢... |