在傳統的產(chǎn)品研發(fā)模式中,單調從需求分析開(kāi)始到測試驗收結束。開(kāi)發(fā)和測試始終處于產(chǎn)品研發(fā)的不同階段,開(kāi)發(fā)人員在產(chǎn)品研發(fā)的早期就介人,然后經(jīng)過(guò)一段時(shí)間的開(kāi)發(fā)設計,將開(kāi)發(fā)的累計成果轉交給測試人員從而進(jìn)入到測試階段。在測試完成并提交用戶(hù)驗收通過(guò)后,產(chǎn)品即可交付使用。這種產(chǎn)品研發(fā)模式最大的優(yōu)點(diǎn)是產(chǎn)品研發(fā)的階段劃分明確,職責明確,易于管理。
但是隨著(zhù)產(chǎn)品復雜程度的增加,操作系統日益龐大,傳統的產(chǎn)品研發(fā)模式會(huì )給產(chǎn)品質(zhì)量帶來(lái)極大的風(fēng)險,同時(shí)也給研發(fā)人員帶來(lái)很大的壓力。首先針對累計開(kāi)發(fā)成果的集中測試使得多個(gè)測試任務(wù)在同時(shí)爆發(fā),在測試時(shí)問(wèn)一定的情況下,經(jīng)常導致分配到單個(gè)測試項的時(shí)間被一再壓縮,或者優(yōu)先級較低的測試項將被剔除,很難保質(zhì)保量按照測試計劃執行。其次即使在規定時(shí)間內完成了測試任務(wù),但是沒(méi)有充裕的時(shí)間針對市場(chǎng)需求、用戶(hù)需求、產(chǎn)品定位和質(zhì)量達標的度量輸入進(jìn)行充分和全面的測試,難以保證產(chǎn)品已經(jīng)完全滿(mǎn)足設計要求和用戶(hù)需求。
眾所周知,測試作為研發(fā)過(guò)程的常規部分,最重要的作用是發(fā)現問(wèn)題和及時(shí)反饋問(wèn)題。理想化模型中認為只要能發(fā)現問(wèn)題就能夠修改,但實(shí)際中卻要求產(chǎn)品設計之初就必須預留有修正錯誤的接口和方案,否則當產(chǎn)品研發(fā)進(jìn)行到測試階段,產(chǎn)品已經(jīng)基本定型,如果此時(shí)才發(fā)現了問(wèn)題并進(jìn)行修正,會(huì )導致耗費的成本十分昂貴。由此可見(jiàn),傳統的產(chǎn)品研發(fā)模式從本質(zhì)上推遲了產(chǎn)品風(fēng)險和問(wèn)題的暴露時(shí)間,可能會(huì )導致產(chǎn)品的研發(fā)周期延長(cháng),研發(fā)質(zhì)量低下,研發(fā)成本超支等問(wèn)題,同時(shí)嚴重打擊參與者的積極性和信心,甚至導致整個(gè)產(chǎn)品線(xiàn)的失敗。
因此為了在一定程度上解決上述問(wèn)題,同時(shí)滿(mǎn)足新產(chǎn)品研發(fā)的需求,我們在華虹新產(chǎn)品的研發(fā)過(guò)程中,逐漸探索出了一套全新的產(chǎn)品研發(fā)模式,稱(chēng)之為測試驅動(dòng)開(kāi)發(fā)的迭代研發(fā)過(guò)程,也稱(chēng)為(3+2策略)。該研發(fā)模式強調測試與開(kāi)發(fā)的齊頭并進(jìn),通過(guò)對新產(chǎn)品的不斷測試與修正,將設計缺陷扼殺于萌芽狀態(tài),提供產(chǎn)品質(zhì)量信心,實(shí)現產(chǎn)品價(jià)值提升。下面將著(zhù)重介紹我們在實(shí)踐中如何使用該迭代研發(fā)過(guò)程。迭代的概念源自軟件測試,在本文中的定義為,迭代起始于模塊設計,結束于模塊測試通過(guò)。首先我們把一個(gè)產(chǎn)品研發(fā)過(guò)程劃分為3個(gè)階段(立項、研發(fā)、驗收)。各階段的]一作內容都是傳統產(chǎn)品研發(fā)模式的流程和工作內容的延續,但是又強調新的突破點(diǎn)。在立項階段,我們強調對用戶(hù)需求,投入產(chǎn)出和升級方案的預研,考核的階段成果將匯總為需求輸出到研發(fā)團隊;在研發(fā)階段,我們強調產(chǎn)品定義時(shí)采用模塊化的方式,分離,設計,開(kāi)發(fā)和測試,已成型的模塊,并逐步集成,最終構成完整的系統?己说碾A段成果將體現為把需求轉化為系統實(shí)現;而在驗收階段 , 就注重技術(shù)指標和研發(fā)成本的確認, 其階段成果表現為產(chǎn)品成本的控制和客戶(hù)驗收通過(guò)。其中立項階段的需求輸出和研發(fā)階段的設計實(shí)現同等重要 , 只有實(shí)現了二者的相互補充和相互制約, 才能保證產(chǎn)品驗收的成功。
其次在進(jìn)入研發(fā)階段后,我們會(huì )制定2 類(lèi)計劃,第一是粗粒度的計劃:也稱(chēng)為階段計劃。包括從用戶(hù)需求、系統設計、概要設計、詳細設計到編碼, 涵蓋了整個(gè)產(chǎn)品的研發(fā)目錄。主要用于控制產(chǎn)品開(kāi)發(fā)進(jìn)度和開(kāi)發(fā)周期, 階段計劃制定完成后相對同定, 且必須嚴格執行。第二是細粒度的計劃: 也稱(chēng)為迭代計劃。包括了任務(wù)的詳細說(shuō)明, 并給每個(gè)參與者和參與團隊分配任務(wù),覆蓋到可能的應用場(chǎng)景,分解出關(guān)鍵的技術(shù)指標。目的用于控制開(kāi)發(fā)質(zhì)量和開(kāi)發(fā)回溯。迭代計劃通常會(huì )隨著(zhù)開(kāi)發(fā)的深入而動(dòng)態(tài)變化。大家對于執行單一的階段計劃都非常熟悉, 但是在階段計劃中加入了迭代計劃, 研發(fā)過(guò)程將會(huì )發(fā)生怎樣的變化呢? 。迭代計劃可以看作是單個(gè)階段計劃中的移動(dòng)窗口, 所起的作用是把階段計劃進(jìn)行逐級放大。首先將階段計劃中的工作分配到小集體, 繼而分配到每個(gè)集體中更小的集體;其次將研發(fā)過(guò)程化整為零, 從最基礎的模塊開(kāi)始開(kāi)發(fā)并測試, 逐級累加測試模塊。最后分解出關(guān)鍵的技術(shù)指標( 模塊) , 要求必須盡早完成, 這樣就可以在不斷迭代中對其進(jìn)行徹底的測試。
文章來(lái)源于領(lǐng)測軟件測試網(wǎng) http://kjueaiud.com/