集成測試
?????集成測試位于產(chǎn)品研發(fā)流程的開發(fā)階段坑鱼,所謂的集成就是為不斷開發(fā)功能并將功能集成到系統(tǒng)中,最后完成整改系統(tǒng)的開發(fā)過程。
???????? 實(shí)際中竞川,即為開發(fā)者按照計劃,完成本build計劃要集成到系統(tǒng)的功能開發(fā)后叁熔,需要通過單元測試來測試功能的正確性委乌,測試通過后,開發(fā)者將功能集成起來荣回,構(gòu)成系統(tǒng)(這個過程也叫聯(lián)調(diào))遭贸。構(gòu)成完成之后的測試,就是集成測試心软。
???????? 在實(shí)際工作中壕吹,時常有下列情況發(fā)生:每個模塊都能獨(dú)立工作著蛙,但這些模塊集成在一起后就不能正常工作,主要原因是模塊在相互調(diào)用的時候耳贬,接口引入了許多新問題踏堡,如一個模塊對另一個模塊造成了不應(yīng)有的影響或數(shù)據(jù)經(jīng)過接口時丟失;幾個子功能組合起來不能實(shí)現(xiàn)主功能咒劲;單個模塊可以接受的誤差顷蟆,組裝起來之后,則達(dá)到了不可接受的程度腐魂。因此有必要在單元測試完成之后進(jìn)行一次集成測試帐偎。
???????? 集成測試主要是測試軟件單元的組合是否正常工作以及與其他組的模塊能否集成起來工作,最后還要測試構(gòu)成系統(tǒng)的所有模塊組合是否能正常工作蛔屹,其主要測試參考標(biāo)準(zhǔn)是《軟件概要設(shè)計規(guī)格說明書》削樊,任何不符合該說明的程序模塊行為都需要記錄上報。
???????? 集成測試是單元測試的邏輯擴(kuò)展兔毒。其中單元測試是為了測試新開發(fā)的功能和模塊是否符合設(shè)計漫贞,是白盒測試,使用內(nèi)部接口進(jìn)行測試眼刃。而集成測試相當(dāng)于驗(yàn)證新合入的功能能否在系統(tǒng)中被正確裝配起來绕辖,是黑盒測試。也是系統(tǒng)級的測試擂红,應(yīng)該使用系統(tǒng)提供給用戶的輸入接口來進(jìn)行測試仪际,使用提供給用戶的輸出接口來判斷接口的正確性。其主要測試內(nèi)容包括:
? 使用黑盒測試方法來確認(rèn)新合入的功能是否正確
? 驗(yàn)證功能集成后系統(tǒng)功能的正確性(功能是我們想要的那個功能)
? 確認(rèn)原來的系統(tǒng)功能沒有被新合入的功能破壞昵骤。
????????進(jìn)行集成測試的準(zhǔn)入條件為第一個集成計劃中的功能開發(fā)完成树碱,并完成了單元測試,第一個集成計劃中的功能集成完成变秦,并可測(開發(fā)需要提供基于用戶的輸入輸出接口成榜,而不是內(nèi)部的函數(shù)接口)。其出口規(guī)則為系統(tǒng)需要集成的功能已經(jīng)全部開放蹦玫、集成完成赎婚。計劃執(zhí)行的用例全部完成,缺陷分析的結(jié)果符合預(yù)期樱溉。
? ? ? 進(jìn)行集成測試的準(zhǔn)入條件為第一個集成計劃中的功能開發(fā)完成挣输,并完成了單元測試,第一個集成計劃中的功能集成完成福贞,并可測(開發(fā)需要提供基于用戶的輸入輸出接口撩嚼,而不是內(nèi)部的函數(shù)接口)。其出口規(guī)則為系統(tǒng)需要集成的功能已經(jīng)全部開放、集成完成完丽。計劃執(zhí)行的用例全部完成恋技,缺陷分析的結(jié)果符合預(yù)期。
集成測試是灰色地帶逻族,做好該測試需要遵循一些原則:
? 所有公共接口都要被測試到
? 關(guān)鍵模塊都必須進(jìn)行充分測試
? 接口發(fā)生修改時蜻底,涉及的相關(guān)接口必須再測試
? 模塊與接口的劃分,應(yīng)理清
由于集成測試主要是測試軟件的結(jié)構(gòu)問題瓷耙,測試建立在模塊的接口上朱躺,所以多采用黑盒測試技術(shù)刁赖,適當(dāng)輔以白盒測試技術(shù)搁痛。具體測試內(nèi)容應(yīng)包括以下幾個方面:
功能測試:程序單元或模塊之間的接口測試(數(shù)據(jù)在通過接口時是否會出現(xiàn)丟失、關(guān)聯(lián)模塊間正確傳輸數(shù)據(jù)宇弛、接口的可靠性)鸡典、程序功能測試(組合后是否滿足設(shè)計需求)、模塊間影響(一個模塊是否對另一個模塊產(chǎn)生不利影響)
可靠性測試
易用性測試
性能測試
由于集成測試是驗(yàn)證組成軟件系統(tǒng)各模塊正確的接口和交互作用枪芒。執(zhí)行集成測試應(yīng)遵循如下的方法:
? 首先彻况,確認(rèn)組成一個完整系統(tǒng)的模塊之間的關(guān)系
? 理清模塊之間的交互和通信要求
? 構(gòu)造測試數(shù)據(jù)
? 使用所謂的增量式測試方法,即依次將模塊加入到系統(tǒng)舅踪,并測試新合并后的系統(tǒng)纽甘,這個過程以一個邏輯或功能順序重復(fù)進(jìn)行,直至所有模塊被功能集成進(jìn)來形成完整的系統(tǒng)為止抽碌。
一種增量式測試方法為從頂向下逐步集成和逐步測試悍赢。即模塊集成的順序是首先集成主控模塊,然后按照軟件控制層次結(jié)構(gòu)向下集成货徙,從屬于主控模塊的模塊按深度優(yōu)先策略或廣度優(yōu)先測試逐步集成到結(jié)構(gòu)中去左权,如
采用深度優(yōu)先策略是首先將模塊M1,M2,M5和M8集成在一起,然后考慮集成中間的M3和M7痴颊,最后集成右邊的M4赏迟。廣度優(yōu)先策略是集成沿著水平方向,首先集成M2,M3,M4蠢棱,再將M5,M6,M7集成在一起锌杀,最后集成最底層的M8。做集成測試過程由以下3個步驟完成:
1.? ? ? ? 將主控模塊作為測試驅(qū)動器泻仙,把對主控模塊進(jìn)行單元測試時引入的被調(diào)用模擬子模塊用實(shí)際模塊替代糕再。
2.? ? ? ? 依據(jù)所選用的模塊集成策略,下層被調(diào)用的模擬子模塊一次一個地被替換為真正的模塊饰豺。
3.? ? ? ? 在每個模塊被集成時亿鲜,都必須進(jìn)行測試,重復(fù)2步驟,直到整個結(jié)構(gòu)被集成完成蒿柳。
系統(tǒng)測試
集成測試主要還是針對功能的基礎(chǔ)饶套,在集成測試中還沒有對其他非功能方面的質(zhì)量進(jìn)行驗(yàn)證,即只通過集成測試無法對系統(tǒng)進(jìn)行全面的測試垒探,這時系統(tǒng)測試時就非常有必要妓蛮,在系統(tǒng)測試中需要測試的內(nèi)容包括:
? 從系統(tǒng)角度來驗(yàn)證測試功能的正確性
? 從系統(tǒng)角度來驗(yàn)證各種非功能的質(zhì)量的正確性
這是因?yàn)榧蓽y試只關(guān)注新開發(fā)的功能,容易忽視對系統(tǒng)其他反應(yīng)的判斷圾叼,而且隨著功能的不斷集成蛤克,系統(tǒng)的復(fù)雜性急劇膨脹,要考慮將和功能相關(guān)的所有組合都驗(yàn)證完(作為計算機(jī)系統(tǒng)的一個重要組成部分夷蚊,與計算機(jī)硬件构挤、外設(shè)、某些支撐軟件的系統(tǒng)等其他系統(tǒng)元素組合在一起所進(jìn)行的測試惕鼓,以驗(yàn)證軟件系統(tǒng)的正確性和性能是否滿足需求分析的要求)筋现。
軟件開發(fā)過程中,開發(fā)人員通常需要將軟件的需求文檔轉(zhuǎn)化為軟件的概要設(shè)計文檔箱歧。在該文檔中通常會指明各個模塊間的接口矾飞。集成測試就是為了驗(yàn)證各個模塊間的接口關(guān)系。單元測試階段呀邢,測試人員主要工作是對軟件詳細(xì)設(shè)計文檔的驗(yàn)證洒沦;系統(tǒng)測試階段,測試人員主要是對產(chǎn)品需求規(guī)格說明書進(jìn)行驗(yàn)證(驗(yàn)證軟件功能與用戶要求的一致性)价淌。
系統(tǒng)測試完全是黑盒測試申眼,不需要考慮組件模塊間的實(shí)現(xiàn)細(xì)節(jié),主要根據(jù)需求分析時確定的標(biāo)準(zhǔn)檢驗(yàn)軟件是否滿足功能输钩、行為豺型、性能和系統(tǒng)協(xié)調(diào)性等方面的要求。
系統(tǒng)測試的對象不僅僅是需要測試的軟件系統(tǒng)买乃,還包括所依賴的硬件姻氨、外設(shè)甚至是某些數(shù)據(jù)、支撐軟件等剪验,因此需要將系統(tǒng)中的軟件和各種依賴的資源結(jié)合起來肴焊,在實(shí)際運(yùn)行環(huán)境下進(jìn)行測試,為充分運(yùn)行系統(tǒng)功戚,系統(tǒng)測試階段應(yīng)包含以下幾個測試項:
功能測試:測試產(chǎn)品的各項功能的正確性娶眷,以及驗(yàn)證產(chǎn)品的各項功能是否與產(chǎn)品需求規(guī)格說明書描述的一致。
性能測試:測試產(chǎn)品各項性能是否達(dá)標(biāo)
壓力測試:在一定負(fù)荷的長期使用環(huán)境下啸臀,測試系統(tǒng)的可靠穩(wěn)定性
兼容性測試:兼容性描述
安裝測試:指測試軟件在各種軟硬件環(huán)境組合下是否能正常的進(jìn)行安裝届宠、卸載烁落。包括在取消安裝時回滾操作是否徹底、安裝過程中出現(xiàn)異常(斷電豌注、系統(tǒng)崩潰)伤塌,待到系統(tǒng)重啟之后軟件產(chǎn)品是否可以重新安裝。
安全測試:檢查系統(tǒng)對非法侵入行為的防范能力轧铁,就是設(shè)置以下企圖突破系統(tǒng)安全保密措施的測試用例每聪,檢查系統(tǒng)是否有安全漏洞。
因?yàn)橄到y(tǒng)測試的主要目標(biāo)是樹立軟件系統(tǒng)將通過驗(yàn)收測試的信心齿风,因此系統(tǒng)測試所用的數(shù)據(jù)必須盡可能像真實(shí)數(shù)據(jù)一樣在復(fù)雜性药薯、精度和數(shù)據(jù)量盡可能地和實(shí)際數(shù)據(jù)相當(dāng)。