摘要:本文是在現今軟件測試技術發展的大潮下,學習借鑑了前輩們提出的X模型、H模型、前置測試模型等測試過程指導模型的基礎上,根據「以測試者引導開發,以文檔化把控質量」的測試實施理念和多年的工做經驗,做者提出了一款新的、更適合中國國情的軟件測試模型──川模型。也但願藉助此文與軟件測試同行們討論,找出一款適合中國國情的軟件測試思路和測試模型。php
關鍵詞:測試模型;川模型;軟件測試;測試體系;川模型架構;測試組織簡圖;川模型價值。安全
1 引言網絡
隨着科技的不斷進步,計算機應用已經徹底深刻到咱們整個社會的體系中,人們如今已經沒法適應沒有軟件的世界,您在讀這篇文章的時候,您的電腦正在工做、手機正在運行。甚至路上的汽車、信號燈都被軟件全副武裝。人們對軟件的依賴愈來愈大,雖然質量可靠的軟件給咱們的工做和生活帶來了史無前例的便利,可是質量很差的軟件也讓咱們付出過慘痛的代價,這讓咱們充分認識到軟件質量正在牽動着社會的命脈。架構
爲了提升軟件質量,軟件開發人員進行過大量的研究和實踐。從最初的技術革新,如編譯、調試工具等地研究到各類計算機輔助軟件環境,再到軟件開發模型的研究。可是這種以技術和方法爲重心的研究沒有真正達到保證軟件質量的目的(可是確實對軟件質量的提升作出了貢獻)。因此,人們開始認識到只有對軟件開發過程的質量加以控制,纔有可能大幅度的提升軟件質量。所以,軟件質量保證也從最初的以技術和方法爲重心的模式,轉移到以過程管理爲重心的實踐。併發
軟件質量保證的本質是爲了確保軟件開發過程和結果符合預期要求而創建的一系列活動及其結果評價,其最終目的是缺陷預防,達到用戶的實際需求,避免安全風險。軟件測試活動是保證軟件質量的有力武器,從最初的調試、驗證,到如今造成的獨立測試體系,無一不體現質量保證的重要性和測試工做的必要性。ide
本文討論的目的:在現今科技發展的大潮下,爲了提升軟件質量及工做效率,提出軟件測試的川模型。但願川模型找出一款適合中國國情的軟件測試思路和測試模型。工具
2 軟件開發、測試的現狀分析單元測試
目前主流的軟件開發模型有:螺旋模型、增量模型、漸進模型、快速軟件開發(RAD)以及Rational統一過程(RUP)等,這些模型對於軟件開發過程具備很好的指導做用,可是這些模型並無充分強調測試的價值,也沒有給測試以足夠的重視,利用這些模型不能更好地指導測試實踐。所以,軟件測試模型應運而生,它可以系統的有計劃的指導測試與研發的一系列活動,對軟件質量的提升有着重要的做用。目前常見的軟件測試模型有V模型、W模型、H模型、X模型、前置測試模型等。學習
這些測試模型都在必定程度上完善和發展了軟件的測試體系,可是它們仍然存在着或多或少的問題,尚未充分把測試對質量保證的能力發揮出來。下面分析一下幾款主流測試模型的優劣狀況。測試
2.1 V模型的優劣分析
V模型強調軟件開發的協做和速度,反映測試活動和分析設計關係,將軟件實現和驗證有機結合起來;強調了在整個軟件項目開發中須要經歷的若干測試級別,並與開發級別對應。可是,沒有體現「儘早地、不斷地進行軟件測試」的原則;把測試做爲編碼以後的最後一個活動,項目前期產生的錯誤直到後期才能測試發現;沒有明確指出對需求、設計的測試。
2.2 W模型的優劣分析
W模型強調了測試計劃等工做的先行和對系統需求和系統設計的測試;在整個軟件開發週期中,測試與開發並行進行,有利於儘早發現問題;提出了測試的對象包括程序、需求、設計等內容;及時瞭解項目的測試風險,及早制定應對方案,加快項目進度。可是,它沒有對測試規程進行說明,同時軟件開發和測試保持着線性的先後關係,沒法支持迭代、自發性以及需求變動調整等常常面臨的問題。
2.3 H模型的優劣分析
在H模型中,軟件測試活動徹底獨立,貫穿於整個軟件週期,與其餘流程併發進行,某個測試點準備就緒時,就能夠從測試準備階段進行到測試執行階段;提出了軟件測試不只僅指測試的執行,還包括不少其餘的活動;測試是根據被測物的不一樣而分層次進行,不一樣層次的測試活動能夠是按照某個次序前後進行的,但也多是反覆的。
2.4 X模型的優劣分析
X模型要求對每個程序片斷都進行單元測試,但沒能提供是否要跳過單元測試的判斷準則;多根並行的曲線表明着變動能夠在各個部分發生,提升了迭代效率;它還定義了探索性測試,這一方式能幫助有經驗的測試人員在測試計劃以外發現更多的軟件錯誤,但對測試人員的能力要求比較高。
2.5 前置測試模型的優劣分析
該模型將開發和測試的生命週期整合在一塊兒,標識了項目生命週期從開始到結束之間的關鍵行爲;明確提出了每個交付的開發結果都必須經過必定的方式進行測試;它還定義了「開發基於需求的測試用例」以及「定義驗收標準」,讓驗收測試和技術測試保持相互獨立。
以上模型都有其優劣,但整體來講,都沒有真正的把測試對質量的保障意義或時機把控好,大部分模型中,測試只是軟件開發過程的一部分,沒有明確獨立成一個體系,雖然H等模型把測試對產品質量保證的地位提高了很多,可是仍然缺乏對測試規程、資料等重要性的體現。
3 川模型架構
針對軟件開發、測試的現狀存在的問題(而且結合各已知模型的優勢),依據「以測試者引導開發,以文檔化把控質量」的測試實施理念,完善、發展了一個新的測試模型──川模型。
3.1 川模型
川模型由三條相對獨立的測試實施流程組成,由於相似中文的「川」字而得名。其中的三條測試實施流程分別是驗收測試實施流程、需求級測試實施流程、業務級測試實施流程。如圖1所示。
圖1 川模型工做組織規程簡圖
1)驗收測試實施流程
該流程提出的目的與重點在於保護用戶的真實需求,由於最終產品或項目可否成功交付,驗收結果是重要的依據,而驗收的主導者必定是用戶(表明)。該流程的起始階段就是在投入真正的研發和測試以前,根據項目需求及測試需求設計出驗收方案,以紙質方案的形式與用戶(表明)進行評審,以減小後期因爲三方(用戶、研發、測試)需求不一致的緣由致使開發迭代增長。同時,以此驗收方案爲標尺,約束另兩個流程的實施。
2)需求級測試實施流程
該階段強調測試伴隨着整個軟件開發週期,測試與開發並行進行,達到儘早發現問題的目的。把測試的對象擴展成程序、設計(文檔資料)、數據等內容,測試工做實時準備,以達到在某個測試點準備就緒時,可迅速切入到測試執行階段。在該流程中,把迭代測試的內容進行了細緻的分析與說明,明確提出迭代過程當中須要進行單元/集成測試、功能測試、自動化測試、安全性測試以及專項測試。把自動化測試與安全性測試提升到測試指導階段,也是當今科技發展的必然趨勢。
3)業務級測試實施流程
若是把測試人員按測試能力分爲測試負責人、測試執行人員,那麼需求級測試實施階段的測試執行可讓測試執行人員進行,可是業務級測試實施流程的主要執行人員就應該定位成測試負責人,至少應該是測試負責人主導測試。其根本緣由在於該階段的意義是業務、風險等的把控,而且引入了探索性測試,是做爲需求級測試階段的有利補充。
需求級測試實施流程與研發流程無縫有機結合。業務級測試實施流程存在的價值在於把控與掌握住了產品實際投入使用時的場景、風險等因素,對着重需求進行鍼對性的設計,知足「八二法則」的經典理論,該流程即把重點放在了「二」上(用戶使用的80%的場景可能就存在於20%的功能中)。驗收測試實施流程依託於用戶的實際需求與前期的測試分析,它做爲軟件生命週期的標尺,運行到產品或項目結項,最大程度上知足用戶需求。
3.2 川模型的工做組織規程
從圖1能夠看出:
川模型突出體現了測試活動對質量把控的重要性。從項目的可行性分析開始,測試人員就擔負着重要的角色。同時,把測試需求說明書、驗收方案、測試方案的重要性與提出時機進行了說明。體現:
1)需求分析須要產品/項目經理、用戶、測試人員等全程參與;
2)測試需求說明書須要測試人員起草,由產品/項目經理、用戶、研發等共同審覈經過;
3)驗收方案提早由測試人員編寫,由產品/項目經理、用戶共同審覈經過;
4)研發設計階段主要依據測試需求說明書編寫(其次可參考軟件需求說明書),在尚未進行完代碼開發以前,測試人員提早輸出依據測試需求說明書編寫的測試案例,由研發人員提早參考,提升研發依據測試案例開發代碼的測試經過率;
5)迭代階段大部分在需求級測試實施流程,測試工做實時準備,以便迅速切入測試執行;
6)業務級測試實施階段的執行工做是需求級的補充,在軟件研發的中後期無縫切入;
7)驗收執行的觸發點是業務級測試經過,驗收工做完成後,進行項目資料歸檔工做;
8)研發過程當中,若是有任何變動,需走變動控制程序,返回測試需求分析階段,並根據實際狀況與要害人員輸出變動後的系列資料(驗收方案、測試案例等)。
4 川模型的甘特圖
在圖1中的左半部分,作了時間軸與等時線的定義。而且說明了不一樣職能人員的參與時機,已給你們在時序上的理解。
5 川模型的價值5.1 體現測試的使命與重要地位
在川模型上,能夠很容易的看出測試工做對軟件質量的保證意義與實施方法。區別於其餘模型,該模型更加清晰、系統的說明了測試的使命,而且該模型真正站到了測試的角色,以測試保證最終用戶質量的承認下指導研發的工做,做爲研發工做的標尺。
5.2 體現測試先行的重要意義
從產品/項目的可行性分析開始,測試活動就一直伴隨整個生命週期,真正體現了「儘早地、不斷地進行軟件測試」的原則。
5.3 文檔化的重要性與可追溯性的提出
在現今愈來愈快的產品/項目的交互進程中,人們對文檔化的需求愈來愈迫切,文檔化不只可使研發、測試過程更加有理、有據、科學,也爲之後的可追溯性提供了基礎。同時,產品/項目前期就對測試案例化的要求,對研發的指導意義更大,研發徹底能夠「依據測試案例設計軟件,案例經過即研發完成」的標準進行開發活動,避免了因爲需求不一致的狀況下致使研發冗餘或功能缺失,提升了工做效率。
5.4 提出三種測試技術相結合的規程
川模型第一次提出了三條執行線的工做模式。驗收實施流程做爲整個產品/項目的指導流程執行,它與用戶最緊密相關,最能體現用戶的實際需求,同時避免、減小了在工做過程當中的隨意變動;需求級實施流程則最有效的保證了測試覆蓋率,而且與研發的交互也更加順暢,提升了測試與研發迭代的敏捷度;業務級實施流程則經過有經驗的測試人員,把最重要需求作了風險、場景、探索等地設計驗證,能夠這樣說,通過最後一條執行線的梳理後,用戶的實際而且常用的功能都被覆蓋到。
除了需求級實施流程與研發的交互緊密而充分外,另兩個流程相對獨立,下降了研發過程干擾,爲保證軟件質量提供了有利基礎。
5.5 等時線爲質量保證提供了基礎
該模型首次提出等時線的概念,在時序上,避免了工做重複甚至沒有必要的交叉。正如該模型的約束,咱們必須先進行測試需求分析,輸出測試需求說明書後,纔可進行驗收測試設計;在驗收測試設計快完成時,才能夠進行需求級測試設計,保證了測試設計與驗收標準的高度統一;業務級實施流程經過後,纔可進行驗收執行工做。從另外一層面,也對測試提出了更高的要求,例如在研發提交代碼以前,測試的準備工做必須完成,可隨時切入工做;有需求變動時,測試人員須要前後更新測試需求說明書、驗收方案、測試方案等內容,審覈經過後,實時共享給要害人員,確保項目的順利進行。
6 結束語
川模型的提出時間尚短,只在一兩個公司進行過相關實踐,看到了明顯效果;提升了測試人員的使命感與榮譽感;也減小了軟件開發過程當中的冗餘、遺漏問題。可是,該模型沒有通過大量的軟件企業實踐,還會存在或多或少的問題,僅做一個初步研究,經過這初步的研究,想拋磚引玉,真正找出一款適合中國國情的軟件測試思路和測試模型,也歡迎你們一塊兒探討。
做者介紹:
李龍 張翠 劉文貞 劉文傑
做者簡介
李龍:北京賽博興安科技有限公司測試部門經理、北京軟達啓航科技發展有限公司CTO、濟南得潤萬家農業科技有限公司副總經理、中國軟件測試聯盟專家。提出「以測試者引導開發,以文檔化把控質量」的測試實施理念。前後出版《軟件測試實用技術與經常使用模板》、《雲計算基礎與實用技術》、《無線網絡與應用技術》等7部書籍。
參考文獻
柳純錄軟件評測師教程[M]。北京:清華大學出版社,2005
李龍、李向函等。軟件測試實用技術與經常使用模板[M]。北京:機械工業出版社,2010
黎連業王華 李龍等。軟件測試技術與測試實訓教程[M]。北京:機械工業出版社,2012