基于產(chǎn)品的測試管理—用友軟件測試流程
作者: 來源: 文字大小:[大][中][小]
眾所周知,軟件研發(fā)周期包括以下幾個主要階段:需求分析、設(shè)計、編碼、測試、實施、維護。由這個模型產(chǎn)生的問題是:測試階段何時介入?
在用友軟件,測試人員是從需求階段開始介入的。在需求和設(shè)計人員完成了產(chǎn)品定義,并形成需求文檔后,會由各個產(chǎn)品模塊(這里的產(chǎn)品模塊指ERP產(chǎn)品里的各個子產(chǎn)品的細化,例如銷售、采購、總賬、生產(chǎn)制造、固定資產(chǎn)等)的測試負責人參與需求評審。同時參加評審的人員還有開發(fā)人員。在這個評審的過程中,各方面人員可以盡早的發(fā)現(xiàn)產(chǎn)品定義和需求階段的問題。測試人員參與評審,目的在于,利用測試人員對業(yè)務(wù)以及用戶應(yīng)用場景的了解,發(fā)現(xiàn)需求中不合理的地方。
在這個過程中,對參與評審的測試人員對于產(chǎn)品應(yīng)用場景有相當程度的了解,因此,一般多為有業(yè)務(wù)背景、有測試經(jīng)驗的人員或QA來完成。
測試人員在需求階段介入,可以及早的發(fā)現(xiàn)問題,使產(chǎn)品的后續(xù)研發(fā)過程可以更順利的完成,以保證最終產(chǎn)品的有效性。
同樣,在產(chǎn)品設(shè)計階段,也需要有經(jīng)驗的開發(fā)和測試人員參與設(shè)計文檔的評審。開發(fā)人員從產(chǎn)品實現(xiàn)的角度,對設(shè)計方案的可行性進行評估;而測試人員則從用戶的角度,對設(shè)計方案的實施性提出看法。這樣,可以最大限度的保證最終產(chǎn)品的可用性。而需求人員在這個過程中的作用,則僅僅是檢查設(shè)計文檔是否遵循產(chǎn)品定義和需求分析文檔。
以上兩個階段,是在測試階段以外,測試人員介入最多的兩個階段。并且我個人認為,測試人員在這兩個階段是起了很大的作用的,因為畢竟在整個研發(fā)團隊中,只有測試人員是最了解用戶應(yīng)用場景的,也是唯一對用戶負責的一個角色。
在編碼階段,測試人員是基本不參與的。這個階段的單元測試,就交由開發(fā)人員自己來完成。這里所說的單元測試是完全基于方法的白盒單元測試,與后面所提到的基于UI的單元測試是有所區(qū)別的。之所以這樣做的原因是因為,在國內(nèi),白盒測試還沒有真正的發(fā)展起來,而對白盒測試人員要求比較高,受對測試人員的投入所限,專門的白盒測試在像用友這樣的國內(nèi)企業(yè)中,很難實現(xiàn)。因此,真正意義上的白盒單元測試,在用友,簡化成了由開發(fā)人員自行完成的類調(diào)試階段。
而在編碼階段,測試人員開始進入編寫測試用例的工作。在此期間,也是一些普通測試人員熟悉產(chǎn)品,了解需求的過程。
真正的大規(guī)模的測試階段,開始于能夠?qū)崿F(xiàn)獨立功能的單元模塊開發(fā)完成時。此時,測試人員開始進行基于UI層的單元功能測試。依據(jù)需求文檔和測試用例,檢查各單元模塊內(nèi)部的主要的基本功能。并依照《UI規(guī)范》文檔進行UI測試。當然,單元測試階段是遠遠不夠的,這就是我們后面要談到的測試階段。測試工作由此開始,一直持續(xù)到產(chǎn)品發(fā)版。
在產(chǎn)品發(fā)版后的實施和維護階段,測試人員參與也很少。在實施初期,會有少量的測試人員協(xié)助實施人員進行產(chǎn)品的實施工作,以及對用戶的培訓(xùn)工作。而在維護階段,則有專門的部門來完成,測試人員基本上就不再參與了。
以上就是用友產(chǎn)品研發(fā)過程的一個概要。下面我們來談?wù)勥@其中的最重要的一部分:測試階段。
用友內(nèi)部的測試主要分為以下幾個階段:單元測試、聯(lián)調(diào)測試、集成測試、用戶測試、顧問測試。在不同的測試階段,測試小組所關(guān)注的對象和問題有所不同。
單元測試:這里所說的單元測試,是完全基于UI的黑盒功能測試。是指對于產(chǎn)品的基本單元內(nèi),功能及UI的測試。其目的是保證基于UI的最小功能單元的所有功能的正確實現(xiàn)以及各單元間接口功能是否實現(xiàn)。在此階段,測試人員關(guān)注的是單元內(nèi)部的功能及UI可用性測試。對于單元間接口,只關(guān)注接口是否正確掛接,是否能正確驅(qū)動。而至于接口間的數(shù)據(jù)傳遞以及運算邏輯是否正確,則是聯(lián)調(diào)階段關(guān)注的問題。
單元測試的過程是先由開發(fā)人員提交單元測試提交單,交給對應(yīng)的測試人員,測試人員在規(guī)定時間內(nèi),依據(jù)單元通過標準,對該模塊是否通過單元測試(在用友,這個過程也被稱作:單元驗收)給出結(jié)論。若通過,則說明該模塊的基本功能已實現(xiàn),并達到發(fā)版標準,可以進入聯(lián)調(diào)測試。若不通過,則打回開發(fā)人員進行修改bug,并進行再次提交。
在用友的測試管理過程中,對于單元提交有著很行之有效的約束機制。如果某單元模塊提交單元,兩次被打回,則一周之內(nèi)不允許再次提交,并對開發(fā)人員進行相應(yīng)的考核扣分(會影響當季的獎金)。以此來保證開發(fā)人員提交到測試人員手中的代碼質(zhì)量,也避免測試驅(qū)動開發(fā)過程中帶來的開發(fā)過分依賴測試人員的負面影響。
當某個流程中的所有或者主要的單元模塊都通過單元驗收后,該流程就可以提交進入聯(lián)調(diào)測試階段。
聯(lián)調(diào)測試:從名字上來講,這是一個用友公司根據(jù)自身產(chǎn)品特點,而創(chuàng)建的一個過程。它是在單元測試和集成測試之間的一個過程。其主要對象是單產(chǎn)品內(nèi)各單元模塊集成在一起,保證各個單產(chǎn)品的全部功能實現(xiàn)和性能的穩(wěn)定。
一套ERP系統(tǒng)很龐大,集成測試的工作量會非常大。如何能夠在有限的時間內(nèi),實現(xiàn)產(chǎn)品質(zhì)量的最大保證,是ERP產(chǎn)品能否擁有市場的關(guān)鍵。為了保證集成測試的順利進行,用友公司特別設(shè)計了這個聯(lián)調(diào)測試階段。實際上就是單產(chǎn)品內(nèi)的集成測試。這樣可以有效的保證每個單產(chǎn)品提交到集成階段以后的質(zhì)量。
測試人員在聯(lián)調(diào)測試階段,主要關(guān)注各單元之間的接口實現(xiàn),數(shù)據(jù)傳遞,算法邏輯等。而對于單元內(nèi)部的功能,UI則放在次要關(guān)注。這個階段的任務(wù)和目標是,確保單產(chǎn)品集成功能的實現(xiàn), 能夠本達到發(fā)布標準。
在聯(lián)調(diào)測試階段,除了功能測試之外,性能測試也會占有一定的比例。
當所有的單產(chǎn)品集成達到發(fā)布標準后,就可以進入全產(chǎn)品的集成測試階段。
集成測試:和所有的集成測試一樣,用友所定義的集成測試也是在產(chǎn)品發(fā)布最后階段進行的系統(tǒng)集成。包括各種環(huán)境的布署,對不同操作系統(tǒng)的支持,對多語的支持等。這個階段除了手工的功能測試之外,還會進行一定比例的自動化測試和大規(guī)模的性能測試。
集成測試階段所關(guān)注的問題是各單產(chǎn)品之間的接口實現(xiàn),數(shù)據(jù)傳遞,業(yè)務(wù)處理,算法邏輯,以及系統(tǒng)整體性能,用戶體驗等。在這個階段還要大量進行的就是并發(fā)互斥的測試。
上述三個階段是主要的測試階段,根據(jù)產(chǎn)品的進度會有部分重疊。
此外,在集成測試階段后期,會開展一定規(guī)模的顧問測試以及用戶測試。即找一些行業(yè)顧問和真實用戶,對產(chǎn)品做一個整體測試。以擴大測試的覆蓋度。
以上就是用友公司自己的一套行之有效的軟件測試管理流程。最后再簡要的介紹一下針對這個流程而設(shè)計的組織架構(gòu)。
用友的三大產(chǎn)品本部隸屬于研發(fā)中心。研發(fā)中心下面,劃分為U8、NC、U9三大產(chǎn)品本部、測試中心、開發(fā)管理部、人機工程部以及其他研發(fā)部門。
以一個產(chǎn)品本部為例,本部下面并列的是各單產(chǎn)品開發(fā)部、分析設(shè)計部、支持部門(開發(fā)工具維護、網(wǎng)絡(luò)布署管理、日常事務(wù)處理等職能部門)。上述三類部門是隸屬于產(chǎn)品本部的。除此之外,還有三個獨立的第三方部門:測試部、開發(fā)管理部和人機工程部。 這三個部門是與產(chǎn)品本部在同一個行政級別上的。這里所說的測試部,就來自于上文提到的測試中心。
在每個產(chǎn)品本部內(nèi),測試人員分為兩部分,一部分是在各開發(fā)部內(nèi)部的測試小組,他們直接對各開發(fā)部負責,隸屬于各個開發(fā)部。這部分測試人員的主要工作職責是進行單元測試和聯(lián)調(diào)測試工作。并最終把單產(chǎn)品提交進集成測試,協(xié)助測試部進行集成測試。
第二部分是測試部。他們來自于測試中心,獨立于產(chǎn)品本部。其部門經(jīng)理在組織機構(gòu)圖中是與產(chǎn)品本部處于同一層級。針對三大產(chǎn)品,分為三個部門:測試一部、二部和三部。測試部的主要任務(wù)是進行產(chǎn)品發(fā)布前的集成驗收測試,組織實施性能測試、并發(fā)測試、用戶測試等。
最終產(chǎn)品是否可以發(fā)布,是由測試中心、行業(yè)專家、用戶、QA、本部經(jīng)理共同評審后得出的。