書接上文,接下來我們聊聊軟件測試模型颖杏。
圖文均手繪纯陨,轉(zhuǎn)載請注明出處:http://www.reibang.com/p/2c6bc748ac6d
二、軟件測試和軟件工程
軟件測試和軟件工程息息相關(guān)留储,軟件測試是軟件工程組成不可缺少的一部分翼抠。
在軟件工程、項目管理获讳、質(zhì)量管理得到規(guī)范化的企業(yè)應用中阴颖,軟件測試側(cè)能得以順利的展開,發(fā)揮價值才會最大丐膝。
要關(guān)注軟件工程量愧、質(zhì)量管理、配置管理和軟件測試的關(guān)系帅矗,在不同的模式下偎肃,如何開展軟件測試呢?
2.1 測試模型
隨著軟件測試過程的管理和發(fā)展,測試人員通過大量的實踐浑此,從而總結(jié)出了不少軟件測試的模型累颂,比如
V模型
,W模型
,H模型
等。
2.2 測試模型分類
2.2.1 V模型
2.2.1.1 圖示:
2.2.1.2 結(jié)論
整個V模型分為需求分析->概要設計->詳細設計->編碼->單元測試->集成測試->系統(tǒng)測試->驗收測試凛俱。
V模型的整個過程就是從左至右紊馏,描述了開發(fā)過程以及測試行為,明確標注了測試過程中不同的級別蒲犬。
很清楚的描述了測試和開發(fā)的各個階段的對應關(guān)系朱监。
把軟件測試作為開發(fā)的最后一項,導致前期產(chǎn)生的錯誤可能后期才能看到原叮。后期的改錯成本增加赌朋。
可以在每個階段進行迭代凰狞,將該階段的錯誤竟可能多的進行排查。
2.2.1.3 每個過程的解析
- 需求分析
* 1: 確認用戶的需求沛慢。
* 2: 確定軟件的最終形態(tài)赡若。
* 3: 確保分析師能夠明確知曉客戶所需。
* 4: 確切編寫完整的需求規(guī)格說明書团甲。
- 概要設計
主要是架構(gòu)的實現(xiàn)逾冬,指搭建架構(gòu)、表述各模塊功能躺苦、模塊接口連接和數(shù)據(jù)傳遞的實現(xiàn)等項事務身腻。
- 詳細設計
對概要設計中表述的各模塊進行深入分析,對各模塊組合進行分析等匹厘,這
一階段要求達到偽代碼級別嘀趟,已經(jīng)把程序的具體實現(xiàn)的功能,現(xiàn)象等描述
出來愈诚。其中需要包含數(shù)據(jù)庫設計說明她按。
- 編碼
按照詳細設計好的模塊功能表,或者定義好的功能接口等炕柔,開發(fā)人員編寫出實際的代碼酌泰。
- 單元測試
* 1:單元測試也稱之為模塊測試,針對軟件設計中的最小單元進行測試匕累。
* 2:通過程序內(nèi)部結(jié)構(gòu)陵刹,設計出測試用例。要確保多個模塊可以平行進行測試欢嘿。
* 3:為的是確保各單元模塊被正確的編譯衰琐,單元的具體劃分按不同的單位與不同的軟件有不同
* 4:比如Java中的類,或者方法炼蹦;C中的一個函數(shù)碘耳;圖形化界面中的一個窗口或者菜單。
- 集成測試
* 1:集成測試也稱之為組裝測試框弛,在單元測試的基礎上,將所有程序模塊進行有序捕捂、遞增的測試瑟枫。
* 2:主要測試各模塊間組合后的功能實現(xiàn)情況,以及模塊接口連接的成功與否指攒,數(shù)據(jù)傳遞的正確性等慷妙。
* 3:檢查軟件單位之間的接口是否正確。
* 4:根據(jù)集成測試計劃允悦,一邊將模塊或其他軟件單位組合成系統(tǒng)膝擂,一邊運
行該系統(tǒng),以分析所組成的系統(tǒng)是否正確,各組成部分是否合拍架馋。
- 系統(tǒng)測試
* 1:將整個軟件系統(tǒng)看做是一個整體進行測試狞山,對于軟件的功能、性能叉寂、
以及軟件所運行的軟硬件環(huán)境進行測試萍启。
* 2:系統(tǒng)測試在系統(tǒng)集成完畢之后進行測試。
* 3:分階段:
前期--> 重點是功能性測試
后期--> 重點是性能測試以及在不同軟硬件環(huán)境下的兼容性等問題屏鳍。
- 驗收測試
驗收測試就是用戶在拿到軟件之后勘纯,在使用現(xiàn)場,根據(jù)用戶需求以及規(guī)格說明書來做的相應設置钓瞭。以確保軟件達到符合效果驳遵。包括確認測試、安全可靠性測試山涡、易用性測試堤结、課擴充性測試、兼容性測試佳鳖、資源占用率測試等霍殴,它是項目上線全的最后一道防火墻。
α測試:
是內(nèi)測版本(CB)系吩,此版本標示該軟件僅僅是一個初步完成品来庭,通常只在軟件開發(fā)者內(nèi)部交流,也有很少一部分發(fā)布給專業(yè)測試人員穿挨。一般而言月弛,該版本的Bug較多,普通用戶最好不要安裝科盛。
注意:
主要查看有沒有功能缺失或系統(tǒng)問題帽衙。主要是針對在開發(fā)環(huán)境下測試。
β測試:
公測版本贞绵,對所有用戶開放的測試版本厉萝。該版本組對于α已經(jīng)有了很大改進。消除了嚴重的錯誤榨崩,但還是有一些缺陷需要經(jīng)過大規(guī)模發(fā)布測試來進一步消除谴垫。一般情況下由軟件公司免費發(fā)布,用戶可從相關(guān)的站點下載母蛛。通過一些專業(yè)愛好者的測試翩剪,將結(jié)果反饋給開發(fā)者,開發(fā)者再進行針對性的修改彩郊。這個版本也不適合一般普通用戶安裝前弯。
注意:
主要查看用戶對于軟件的外觀蚪缀、使用方便等的反應。主要針對的是實際環(huán)境或者模擬的真實環(huán)境測試恕出。
γ測試:
γ版本询枚,指的是軟件版本正式發(fā)行的的候選版。該版本已經(jīng)相當成熟了剃根,和即將發(fā)行的正式版相差無幾哩盲。成為正式發(fā)布的候選版本。
注意:
經(jīng)過多次測試狈醉,成為正式發(fā)布的候選版本廉油。叫做gamma。(現(xiàn)在叫做RC-Release Candidate)
2.2.1.4 優(yōu)缺點分析
模型 | 優(yōu)點 | 缺點 |
---|---|---|
V模型 | ①:包含了底層測試(單元測試)和高層測試(系統(tǒng)測試) ②清楚的標注了開發(fā)和測試的各個階段以及對應關(guān)系苗傅,分工明確抒线,便于項目的把控以及追蹤 ③:V模型是整個測試模型中很重要的一個模型,其它模型都是基于該模型的渣慕。 | ①:模型本質(zhì)上還是線性模型嘶炭,測試在編碼之后,導致錯誤不能及時發(fā)現(xiàn)和修改逊桦,增加后期修改成本眨猎。 ②:對于需求階段的調(diào)研,很難完全確定下來强经,導致后期階段由于需求返工睡陪,導致成本增加以及模型靈活性不夠。 |
改進方案:在模型的每個階段進行小的快速的迭代工作匿情。
2.2.2 W模型
2.2.2.1 圖示
2.2.2.2 結(jié)論:
* 1:W模型也稱之為雙V模型兰迫,藍色是開發(fā)V模型,綠色是測試V模型炬称。
* 2:測試是伴隨著整個軟件的開發(fā)周期汁果,并且測試的對象不僅僅是程序,需求和設計同樣也需要測試玲躯。
* 3: 對于人員要求比較高据德,所以一般大中型公司會選擇該模型。
2.2.2.3 優(yōu)缺點分析
模型 | 優(yōu)點 | 缺點 |
---|---|---|
W模型 | ①:W模型伴隨整個軟件開發(fā)周期跷车,需求和編碼同樣需要測試棘利。 ②:能夠更早介入測試,發(fā)現(xiàn)初期的缺陷姓赤,那么通過更加低的成本進行缺陷修復。 ③:同樣是分階段工作仲吏,能夠更好的控制項目過程不铆。 | ①:軟件開發(fā)和軟件測試依然是線性關(guān)系蝌焚,依然無法支持迭代和需求變更的調(diào)整。 ②:對于當前很多項目誓斥,如果整個過程沒有產(chǎn)生文檔只洒,那么無法使用W模型。 ③:對于技術(shù)的需求和設計的測試要求度很高劳坑,實踐起來比較困難毕谴。 |
2.2.3 H模型
2.2.3.1 圖示:
2.2.3.2 執(zhí)行過程:
測試流程:
* 1:測試準備:所有測試執(zhí)行活動的準備(比如用例、測試文檔等)距芬,判斷是否進入到測試就緒點涝开。
* 2:測試就緒點:測試準入準則,是否可以執(zhí)行測試的條件框仔。
* 3:測試執(zhí)行:具體的執(zhí)行測試的程序舀武。
其它流程:
* 1:具體開發(fā)中的流程,如:程序設計离斩、小型迭代银舱。
2.2.3.3 優(yōu)缺點分析:
模型 | 優(yōu)點 | 缺點 |
---|---|---|
H模型 | ①:測試H模型中揭露了測試和其它流程是可以并行的。 ②:軟件測試完全獨立跛梗,貫穿整個周期寻馏,擁有很強的靈活性。 ③:軟件測試活動可以很早開始核偿,很早執(zhí)行诚欠,減低修改的成本增加 ④:整個軟件測試活動也可以分階段、分次序進行執(zhí)行和迭代宪祥。 | ①:模型的靈活性導致必須定義很清晰的規(guī)則和管理制度聂薪,不然不方便后期的管理和控制。 ②:對于技能要求很高蝗羊,要確定每個模塊的迭代規(guī)模以及測試就緒點分析藏澳,就緒點分析不夠好對于后期的測試執(zhí)行就是個大坑。 ③:對于整體項目組的人員要求很高耀找,需要很強的團隊協(xié)作能力以及高效的工作翔悠,某個人的技能不足,可能導致項目無法有效進行野芒。 |
2.2.4 X模型
2.2.4.1 圖示:
2.2.4.2 執(zhí)行過程:
* 1: 先針對單獨的程序運行片段進行互相分離的編碼和測試
* 2: 編碼之后進行頻繁的交接蓄愁,集成最終可執(zhí)行的程序
* 3: 對于集成的程序,然后不斷進行測試
* 4: 對于通過集成測試的成平進行封板提價給用戶
* 5: X模型還定位了探索性測試
2.2.4.3 優(yōu)缺點分析:
模型 | 優(yōu)點 | 缺點 |
---|---|---|
X模型 | 定義了探索性測試狞悲,可以發(fā)現(xiàn)計劃之外的更多的軟件錯誤 | ①:對于測試人員的技能要求較高撮抓。 ②:不斷的小進行編碼,測試等迭代可能造成成本增加摇锋。 |
總結(jié)
在實際項目中丹拯,合理利用模型優(yōu)點站超。一般公司優(yōu)先采用V和W模型,H和X模型對比用的比較少乖酬,所有的測試模型都需要和開發(fā)緊密結(jié)合死相,保證按時、保質(zhì)咬像、保量的完成預定計劃算撮。