詞語解釋
集成測試是指在軟件開發(fā)過程中,將軟件的各個(gè)部分集成在一起,并進(jìn)行測試的過程。它主要是為了檢查軟件的構(gòu)件之間是否能夠正確的連接在一起,以及檢查軟件的功能是否符合預(yù)期。集成測試在通信中的含義是,在軟件開發(fā)過程中,將軟件的各個(gè)部分集成在一起,并進(jìn)行測試,以確保軟件的功能和性能能夠正常工作,以及軟件的構(gòu)件之間能夠正確的連接在一起。 集成測試的應(yīng)用: 1、檢查軟件的功能:在集成測試中,可以檢查軟件的功能是否符合預(yù)期,以及檢查軟件的功能是否能夠正常工作。 2、檢查軟件的性能:在集成測試中,可以檢查軟件的性能,比如軟件的運(yùn)行速度、內(nèi)存使用率、網(wǎng)絡(luò)傳輸速度等。 3、檢查軟件的構(gòu)件之間的連接:在集成測試中,可以檢查軟件的構(gòu)件之間是否能夠正確的連接在一起,以及檢查軟件的構(gòu)件之間的通信是否正常。 4、檢查軟件的穩(wěn)定性:在集成測試中,可以檢查軟件的穩(wěn)定性,即軟件在長時(shí)間運(yùn)行后,是否能夠正常工作。 集成測試是軟件開發(fā)過程中的一個(gè)重要環(huán)節(jié),可以檢查軟件的功能、性能、構(gòu)件之間的連接以及軟件的穩(wěn)定性,確保軟件的正常工作。因此,集成測試在通信中具有重要的意義。 某設(shè)計(jì)人員習(xí)慣于把所有模塊按設(shè)計(jì)要求一次全部組裝起來,然后進(jìn)行整體測試,這稱為非增量式集成。這種方法容易出現(xiàn)混亂。因?yàn)闇y試時(shí)可能發(fā)現(xiàn)一大堆錯(cuò)誤,為每個(gè)錯(cuò)誤定位和糾正非常困難,并且在改正一個(gè)錯(cuò)誤的同時(shí)又可能引入新的錯(cuò)誤,新舊錯(cuò)誤混雜,更難斷定出錯(cuò)的原因和位置。與之相反的是增量式集成方法,程序一段一段地?cái)U(kuò)展,測試的范圍一步一步地增大,錯(cuò)誤易于定位和糾正,界面的測試亦可做到完全徹底。下面討論兩種增量式集成方法。 概述 集成測試,也叫組裝測試或聯(lián)合測試。在單元測試的基礎(chǔ)上,將所有模塊按照設(shè)計(jì)要求)如根據(jù)結(jié)構(gòu)圖〕組裝成為子系統(tǒng)或系統(tǒng),進(jìn)行集成測試。實(shí)踐表明,一些模塊雖然能夠單獨(dú)地工作,但并不能保證連接起來也能正常的工作。程序在某些局部反映不出來的問題,在全局上很可能暴露出來,影響功能的實(shí)現(xiàn)。 集成測試方法 集成測試應(yīng)該考慮以下問題: 1、在把各個(gè)模塊連接起來的時(shí)候,穿越模塊接口的數(shù)據(jù)是否會(huì)丟失; 2、各個(gè)子功能組合起來,能否達(dá)到預(yù)期要求的父功能; 3、一個(gè)模塊的功能是否會(huì)對另一個(gè)模塊的功能產(chǎn)生不利的影響; 4、全局?jǐn)?shù)據(jù)結(jié)構(gòu)是否有問題; 5、單個(gè)模塊的誤差積累起來,是否會(huì)放大,從而達(dá)到不可接受的程度。 因此,單元測試后,有必要進(jìn)行集成測試,發(fā)現(xiàn)并排除在模塊連接中可能發(fā)生的上述問題,最終構(gòu)成要求的軟件子系統(tǒng)或系統(tǒng)。對子系統(tǒng),集成測試也叫部件測試。 任何合理地組織集成測試,即選擇什么方式把模塊組裝起來形成一個(gè)可運(yùn)行的系統(tǒng),直接影響到模塊測試用例的形式、所用測試工具的類型、模塊編號和測試的次序、生成測試用例和調(diào)試的費(fèi)用。通常,有兩種不同的組裝方式:一次性組裝方式和增值式組裝方式。 集成測試的實(shí)施 集成測試是一種正規(guī)測試過程,必須精心計(jì)劃,并與單元測試的完成時(shí)間協(xié)調(diào)起來。在制定測試計(jì)劃時(shí),應(yīng)考慮如下因素: 1、是采用何種系統(tǒng)組裝方法來進(jìn)行組裝測試; 2、組裝測試過程中連接各個(gè)模塊的順序; 3、模塊代碼編制和測試進(jìn)度是否與組裝測試的順序一致 4、測試過程中是否需要專門的硬件設(shè)備; 解決了上述問題之后,就可以列出各個(gè)模塊的編制、測試計(jì)劃表,標(biāo)明每個(gè)模塊單元測試完成的日期、首次集成測試的日期、集成測試全部完成的日期、以及需要的測試用例和所期望的測試結(jié)果。 在缺少軟件測試所需要的硬件設(shè)備時(shí),應(yīng)檢查該硬件的交付日期是否與集成測試計(jì)劃一致。例如,若測試需要數(shù)字化儀和繪圖儀,則相應(yīng)測試應(yīng)安排在這些設(shè)備能夠投入使用之時(shí),并需要為硬件的安裝和交付使用保留一段時(shí)間,以留下時(shí)間余量。此外,在測試計(jì)劃中需要考慮測試所需軟件(驅(qū)動(dòng)模塊、樁模塊、測試用例生成程序等)的準(zhǔn)備情況。 集成測試完成標(biāo)準(zhǔn) 怎樣判定集成測試過程完成了, 可按以下幾個(gè)方面檢查: 1、成功地執(zhí)行了測試計(jì)劃中規(guī)定的所有集成測試; 2、修正了所發(fā)現(xiàn)的錯(cuò)誤; 3、測試結(jié)果通過了專門小組的評審。 集成測試應(yīng)由專門的測試小組來進(jìn)行,測試小組由有經(jīng)驗(yàn)的系統(tǒng)設(shè)計(jì)人員和程序員組成。整個(gè)測試活動(dòng)要在評審人員出席的情況下進(jìn)行。 在完成預(yù)定的組裝測試工作之后,測試小組應(yīng)負(fù)責(zé)對測試結(jié)果進(jìn)行整理、分析,形成測試報(bào)告。測試報(bào)告中要記錄實(shí)際的測試結(jié)果、在測試中發(fā)現(xiàn)的問題、解決這些問題的方法以及解決之后再次測試的結(jié)果。此外還應(yīng)提出目前不能解決、還需要管理人員和開發(fā)人員注意的一些問題,提供測試評審和最終決策,以提出處理意見。 集成測試 集成測試(也叫組裝測試,聯(lián)合測試)是單元測試的邏輯擴(kuò)展。它的最簡單的形式是:兩個(gè)已經(jīng)測試過的單元組合成一個(gè)組件,并且測試它們之間的接口。從這一層意義上講,組件是指多個(gè)單元的集成聚合。在現(xiàn)實(shí)方案中,許多單元組合成組件,而這些組件又聚合成程序的更大部分。方法是測試片段的組合,并最終擴(kuò)展進(jìn)程,將您的模塊與其他組的模塊一起測試。最后,將構(gòu)成進(jìn)程的所有模塊一起測試。此外,如果程序由多個(gè)進(jìn)程組成,應(yīng)該成對測試它們,而不是同時(shí)測試所有進(jìn)程。 集成測試識別組合單元時(shí)出現(xiàn)的問題。通過使用要求在組合單元前測試每個(gè)單元并確保每個(gè)單元的生存能力的測試計(jì)劃,可以知道在組合單元時(shí)所發(fā)現(xiàn)的任何錯(cuò)誤很可能與單元之間的接口有關(guān)。這種方法將可能發(fā)生的情況數(shù)量減少到更簡單的分析級別。 集成測試是在單元測試的基礎(chǔ)上,測試在將所有的軟件單元按照概要設(shè)計(jì)規(guī)格說明的要求組裝成模塊、子系統(tǒng)或系統(tǒng)的過程中各部分工作是否達(dá)到或?qū)崿F(xiàn)相應(yīng)技術(shù)指標(biāo)及要求的活動(dòng)。也就是說,在集成測試之前,單元測試應(yīng)該已經(jīng)完成,集成測試中所使用的對象應(yīng)該是已經(jīng)經(jīng)過單元測試的軟件單元。這一點(diǎn)很重要,因?yàn)槿绻唤?jīng)過單元測試,那么集成測試的效果將會(huì)受到很大影響,并且會(huì)大幅增加軟件單元代碼糾錯(cuò)的代價(jià)。 集成測試是單元測試的邏輯擴(kuò)展。在現(xiàn)實(shí)方案中,集成是指多個(gè)單元的聚合,許多單元組合成模塊,而這些模塊又聚合成程序的更大部分,如分系統(tǒng)或系統(tǒng)。集成測試采用的方法是測試軟件單元的組合能否正常工作,以及與其他組的模塊能否集成起來工作。最后,還要測試構(gòu)成系統(tǒng)的所有模塊組合能否正常工作。集成測試所持的主要標(biāo)準(zhǔn)是《軟件概要設(shè)計(jì)規(guī)格說明》,任何不符合該說明的程序模塊行為都應(yīng)該加以記載并上報(bào)。 所有的軟件項(xiàng)目都不能擺脫系統(tǒng)集成這個(gè)階段。不管采用什么開發(fā)模式,具體的開發(fā)工作總得從一個(gè)一個(gè)的軟件單元做起,軟件單元只有經(jīng)過集成才能形成一個(gè)有機(jī)的整體。具體的集成過程可能是顯性的也可能是隱性的。只要有集成,總是會(huì)出現(xiàn)一些常見問題,工程實(shí)踐中,幾乎不存在軟件單元組裝過程中不出任何問題的情況。從圖1可以看出,集成測試需要花費(fèi)的時(shí)間遠(yuǎn)遠(yuǎn)超過單元測試,直接從單元測試過渡到系統(tǒng)測試是極不妥當(dāng)?shù)淖龇ā? 集成測試的必要性還在于一些模塊雖然能夠單獨(dú)地工作,但并不能保證連接起來也能正常工作。程序在某些局部反映不出來的問題,有可能在全局上會(huì)暴露出來,影響功能的實(shí)現(xiàn)。此外,在某些開發(fā)模式中,如迭代式開發(fā),設(shè)計(jì)和實(shí)現(xiàn)是迭代進(jìn)行的。在這種情況下,集成測試的意義還在于它能間接地驗(yàn)證概要設(shè)計(jì)是否具有可行性。 集成測試的目的是確保各單元組合在一起后能夠按既定意圖協(xié)作運(yùn)行,并確保增量的行為正確。它所測試的內(nèi)容包括單元間的接口以及集成后的功能。使用黑盒測試方法測試集成的功能。并且對以前的集成進(jìn)行回歸測試。 一、集成測試過程 二、單元測試工作內(nèi)容及其流程 三、集成測試需求獲取 集成測試需求所確定的是對某一集成工作版本的測試的內(nèi)容,即測試的具體對象。集成測試需求主要來源于設(shè)計(jì)模型(Design Model)和集成構(gòu)件計(jì)劃(Integration Build Plan)。集成測試著重于集成版本的外部接口的行為。因此,測試需求須具有可觀測、可測評性。 1. 集成工作版本應(yīng)分析其類協(xié)作與消息序列,從而找出該工作版本的外部接口。 2. 由集成工作版本的外部接口確定集成測試用例。 3. 測試用例應(yīng)覆蓋工作版本每一外部接口的所有消息流序列。 注意:一個(gè)外部接口和測試用例的關(guān)系是多對多,部分集成工作版本的測試需求可映射到系統(tǒng)測試需求,因此對這些集成測試用例可采用重用系統(tǒng)測試用例技術(shù)。 四、集成測試工作機(jī)制 軟件集成測試工作由產(chǎn)品評測部擔(dān)任。需要項(xiàng)目組相關(guān)角色配合完成。如圖示: 軟件評測部: 軟件項(xiàng)目組: 集成測試工作內(nèi)容及其流程工作流程: 五、集成測試產(chǎn)生的工件清單 1、 軟件集成測試計(jì)劃 2、 集成測試用例 3、 測試過程 4、 測試腳本 5、 測試日志 6、 測試評估摘要 六、集成測試常用方案選型 集成測試的實(shí)施方案有很多種,如自底向上集成測試、自頂向下集成測試、Big-Bang集成測試、三明治集成測試、核心集成測試、分層集成測試、基于使用的集成測試等。在此,筆者將重點(diǎn)討論其中一些經(jīng)實(shí)踐檢驗(yàn)和一些證實(shí)有效的集成測試方案。 •自底向上集成測試 自底向上的集成(Bottom-Up Integration)方式是最常使用的方法。其他集成方法都或多或少地繼承、吸收了這種集成方式的思想。自底向上集成方式從程序模塊結(jié)構(gòu)中最底層的模塊開始組裝和測試。因?yàn)槟K是自底向上進(jìn)行組裝的,對于一個(gè)給定層次的模塊,它的子模塊(包括子模塊的所有下屬模塊)事前已經(jīng)完成組裝并經(jīng)過測試,所以不再需要編制樁模塊(一種能模擬真實(shí)模塊,給待測模塊提供調(diào)用接口或數(shù)據(jù)的測試用軟件模塊)。自底向上集成測試的步驟大致如下: 步驟一: 按照概要設(shè)計(jì)規(guī)格說明,明確有哪些被測模塊。在熟悉被測模塊性質(zhì)的基礎(chǔ)上對被測模塊進(jìn)行分層,在同一層次上的測試可以并行進(jìn)行,然后排出測試活動(dòng)的先后關(guān)系,制定測試進(jìn)度計(jì)劃。圖2給出了自底向上的集成測試過程中各測試活動(dòng)的拓?fù)潢P(guān)系。利用圖論的相關(guān)知識,可以排出各活動(dòng)之間的時(shí)間序列關(guān)系,處于同一層次的測試活動(dòng)可以同時(shí)進(jìn)行,而不會(huì)相互影響。 步驟二: 在步驟一的基礎(chǔ)上,按時(shí)間線序關(guān)系,將軟件單元集成為模塊,并測試在集成過程中出現(xiàn)的問題。這里,可能需要測試人員開發(fā)一些驅(qū)動(dòng)模塊來驅(qū)動(dòng)集成活動(dòng)中形成的被測模塊。對于比較大的模塊,可以先將其中的某幾個(gè)軟件單元集成為子模塊,然后再集成為一個(gè)較大的模塊。 步驟三: 將各軟件模塊集成為子系統(tǒng)(或分系統(tǒng))。檢測各自子系統(tǒng)是否能正常工作。同樣,可能需要測試人員開發(fā)少量的驅(qū)動(dòng)模塊來驅(qū)動(dòng)被測子系統(tǒng)。 步驟四: 將各子系統(tǒng)集成為最終用戶系統(tǒng),測試是否存在各分系統(tǒng)能否在最終用戶系統(tǒng)中正常工作。 方案點(diǎn)評: 自底向上的集成測試方案是工程實(shí)踐中最常用的測試方法。相關(guān)技術(shù)也較為成熟。它的優(yōu)點(diǎn)很明顯: 管理方便、測試人員能較好地鎖定軟件故障所在位置。但它對于某些開發(fā)模式不適用,如使用XP開發(fā)方法,它會(huì)要求測試人員在全部軟件單元實(shí)現(xiàn)之前完成核心軟件部件的集成測試。盡管如此,自底向上的集成測試方法仍不失為一個(gè)可供參考的集成測試方案。 •核心系統(tǒng)先行集成測試 核心系統(tǒng)先行集成測試法的思想是先對核心軟件部件進(jìn)行集成測試,在測試通過的基礎(chǔ)上再按各外圍軟件部件的重要程度逐個(gè)集成到核心系統(tǒng)中。每次加入一個(gè)外圍軟件部件都產(chǎn)生一個(gè)產(chǎn)品基線,直至最后形成穩(wěn)定的軟件產(chǎn)品。核心系統(tǒng)先行集成測試法對應(yīng)的集成過程是一個(gè)逐漸趨于閉合的螺旋形曲線,代表產(chǎn)品逐步定型的過程。其步驟如下: 步驟一: 對核心系統(tǒng)中的每個(gè)模塊進(jìn)行單獨(dú)的、充分的測試,必要時(shí)使用驅(qū)動(dòng)模塊和樁模塊; 步驟二: 對于核心系統(tǒng)中的所有模塊一次性集合到被測系統(tǒng)中,解決集成中出現(xiàn)的各類問題。在核心系統(tǒng)規(guī)模相對較大的情況下,也可以按照自底向上的步驟,集成核心系統(tǒng)的各組成模塊。 步驟三: 按照各外圍軟件部件的重要程度以及模塊間的相互制約關(guān)系,擬定外圍軟件部件集成到核心系統(tǒng)中的順序方案。方案經(jīng)評審以后,即可進(jìn)行外圍軟件部件的集成。 步驟四: 在外圍軟件部件添加到核心系統(tǒng)以前,外圍軟件部件應(yīng)先完成內(nèi)部的模塊級集成測試。 步驟五: 按順序不斷加入外圍軟件部件,排除外圍軟件部件集成中出現(xiàn)的問題,形成最終的用戶系統(tǒng)。 方案點(diǎn)評: 該集成測試方法對于快速軟件開發(fā)很有效果,適合較復(fù)雜系統(tǒng)的集成測試,能保證一些重要的功能和服務(wù)的實(shí)現(xiàn)。缺點(diǎn)是采用此法的系統(tǒng)一般應(yīng)能明確區(qū)分核心軟件部件和外圍軟件部件,核心軟件部件應(yīng)具有較高的耦合度,外圍軟件部件內(nèi)部也應(yīng)具有較高的耦合度,但各外圍軟件部件之間應(yīng)具有較低的耦合度。 •高頻集成測試 高頻集成測試是指同步于軟件開發(fā)過程,每隔一段時(shí)間對開發(fā)團(tuán)隊(duì)的現(xiàn)有代碼進(jìn)行一次集成測試。如某些自動(dòng)化集成測試工具能實(shí)現(xiàn)每日深夜對開發(fā)團(tuán)隊(duì)的現(xiàn)有代碼進(jìn)行一次集成測試,然后將測試結(jié)果發(fā)到各開發(fā)人員的電子郵箱中。該集成測試方法頻繁地將新代碼加入到一個(gè)已經(jīng)穩(wěn)定的基線中,以免集成故障難以發(fā)現(xiàn),同時(shí)控制可能出現(xiàn)的基線偏差。使用高頻集成測試需要具備一定的條件: 可以持續(xù)獲得一個(gè)穩(wěn)定的增量,并且該增量內(nèi)部已被驗(yàn)證沒有問題; 大部分有意義的功能增加可以在一個(gè)相對穩(wěn)定的時(shí)間間隔(如每個(gè)工作日)內(nèi)獲得; 測試包和代碼的開發(fā)工作必須是并行進(jìn)行的,并且需要版本控制工具來保證始終維護(hù)的是測試腳本和代碼的最新版本; 必須借助于使用自動(dòng)化工具來完成。高頻集成一個(gè)顯著的特點(diǎn)就是集成次數(shù)頻繁,顯然,人工的方法是不勝任的。 高頻集成測試一般采用如下步驟來完成: 步驟一: 選擇集成測試自動(dòng)化工具。如很多Java項(xiàng)目采用Junit+Ant方案來實(shí)現(xiàn)集成測試的自動(dòng)化,也有一些商業(yè)集成測試工具可供選擇。 步驟二: 設(shè)置版本控制工具,以確保集成測試自動(dòng)化工具所獲得的版本是最新版本。如使用CVS進(jìn)行版本控制。 步驟三: 測試人員和開發(fā)人員負(fù)責(zé)編寫對應(yīng)程序代碼的測試腳本。 步驟四: 設(shè)置自動(dòng)化集成測試工具,每隔一段時(shí)間對配置管理庫的新添加的代碼進(jìn)行自動(dòng)化的集成測試,并將測試報(bào)告匯報(bào)給開發(fā)人員和測試人員。 步驟五: 測試人員監(jiān)督代碼開發(fā)人員及時(shí)關(guān)閉不合格項(xiàng)。 按照步驟三至步驟五不斷循環(huán),直至形成最終軟件產(chǎn)品。 方案點(diǎn)評: 該測試方案能在開發(fā)過程中及時(shí)發(fā)現(xiàn)代碼錯(cuò)誤,能直觀地看到開發(fā)團(tuán)隊(duì)的有效工程進(jìn)度。在此方案中,開發(fā)維護(hù)源代碼與開發(fā)維護(hù)軟件測試包被賦予了同等的重要性,這對有效防止錯(cuò)誤、及時(shí)糾正錯(cuò)誤都很有幫助。該方案的缺點(diǎn)在于測試包有時(shí)候可能不能暴露深層次的編碼錯(cuò)誤和圖形界面錯(cuò)誤。 以上我們介紹了幾種常見的集成測試方案,一般來講,在現(xiàn)代復(fù)雜軟件項(xiàng)目集成測試過程中,通常采用核心系統(tǒng)先行集成測試和高頻集成測試相結(jié)合的方式進(jìn)行,自底向上的集成測試方案在采用傳統(tǒng)瀑布式開發(fā)模式的軟件項(xiàng)目集成過程中較為常見。讀者應(yīng)該結(jié)合項(xiàng)目的實(shí)際工程環(huán)境及各測試方案適用的范圍進(jìn)行合理的選型。 附:集成測試計(jì)劃書 模版 原創(chuàng)作者:jerry 轉(zhuǎn)載請注明:來自Sawin系統(tǒng)分析之窗 最后修改時(shí)間:2005-4-27 1引言 1.1編寫目的 本文是描述****集成測試的大綱文章,主要描述如何進(jìn)行集成測試活動(dòng)?如何控制集成測試活動(dòng)?集成測試活動(dòng)的流程以及集成測試活動(dòng)的工作安排。本文主要的讀者對象是項(xiàng)目負(fù)責(zé)人,集成部門經(jīng)理,集成測試設(shè)計(jì)師。 1.2背景 項(xiàng)目名稱:***集成測試 項(xiàng)目相關(guān)對象:****************** 1.3定義 **********:******************** 1.4參考資料 《*********》 2測試項(xiàng)目 本測試主要為***系統(tǒng)的集成測試,目前***的版本為2.0,測試是***的最終集成測試,是建立在開發(fā)組程序員開發(fā)完畢自己的測試以及開發(fā)組測試的基礎(chǔ)之上 3 被測特性 3.1操作性測試 主要測試操作是否正確,有無誤差?分為兩部分: 3.1.1返回測試 由主界面逐級進(jìn)入最終界面,按EXIT鍵逐級返回,檢查返回時(shí)候屏幕聚焦是否正確 比如: 1. 進(jìn)入“系統(tǒng)設(shè)置” 2. 進(jìn)入“頻道搜索” 3. 進(jìn)入“自動(dòng)頻道搜索” 4. 按EXIT鍵返回,檢查當(dāng)前聚焦是否為“頻道搜索” 5. 按EXIT鍵返回,檢查當(dāng)前聚焦是否為“系統(tǒng)設(shè)置” 3.1.2進(jìn)入測試 由主界面逐級進(jìn)入最終界面,按MENU鍵返回主界面,再次進(jìn)入,檢查是否聚焦正確 比如: 1. 進(jìn)入“系統(tǒng)設(shè)置” 2. 進(jìn)入“頻道搜索” 3. 進(jìn)入“自動(dòng)頻道搜索” 4. 按MENU鍵返回主界面 5. 當(dāng)前聚焦是否為“系統(tǒng)設(shè)置” 6. 進(jìn)入“系統(tǒng)設(shè)置”,當(dāng)前聚焦是否為“頻道搜索” 3.2功能測試 測試機(jī)頂盒中每個(gè)應(yīng)用的功能是否正確 3.3性能測試 3.3.1疲勞性測試 測試連續(xù)開機(jī)1個(gè)月不關(guān)機(jī)器,每3天去運(yùn)行一次應(yīng)用。看系統(tǒng)的穩(wěn)定性 3.3.2大容量數(shù)據(jù)測試 前段***數(shù)據(jù)庫表中含有大量數(shù)據(jù),測試***功能 4 不被測特性 5 測試方法 1. 書寫測試計(jì)劃 2. 審核測試計(jì)劃,未通過返回第一步 3. 書寫測試用例; 4. 審核測試用例,未通過返回第三步 5. 測試人員按照測試用例逐項(xiàng)進(jìn)行測試活動(dòng),并且將測試結(jié)果填寫在測試報(bào)告上;(測試報(bào)告必須覆蓋所有測試用例) 6. 測試過程中發(fā)現(xiàn)bug,將bug填寫在bugzilla上發(fā)給集成部經(jīng)理;(bug狀態(tài)NEW) 7. 集成部經(jīng)理接到bugzilla發(fā)過來的bug 7.1 對于明顯的并且可以立刻解決的bug,將bug發(fā)給開發(fā)人員;(bug狀態(tài)ASSIGNED); 7.2 對于不是bug的提交,集成部經(jīng)理通知測試設(shè)計(jì)人員和測試人員,對相應(yīng)文檔進(jìn)行修改; (bug狀態(tài)RESOLVED,決定設(shè)置為INVALID); 7.3 對于目前無法修改的,將這個(gè)bug放到下一輪次進(jìn)行修改;(bug狀態(tài)RESOLVED,決定設(shè)置為REMIND) 8. 開發(fā)人員接到發(fā)過來的bug立刻修改;(bug狀態(tài)RESOLVED,決定設(shè)置為FIXED) 9. 測試人員接到bugzilla發(fā)過來的錯(cuò)誤更改信息,應(yīng)該逐項(xiàng)復(fù)測,填寫新的測試報(bào)告(測試報(bào)告必須覆蓋上一次中所有REOPENED的測試用例); 10. 如果復(fù)測有問題返回第六步(bug狀態(tài)REOPENED) 11. 否則關(guān)閉這項(xiàng)BUG(bug狀態(tài)CLOSED) 12. 本輪測試中測試用例中有95%一次性通過測試,結(jié)束測試任務(wù); 13. 本輪測試中發(fā)現(xiàn)的錯(cuò)誤有98%經(jīng)過修改并且通過再次測試(即bug狀態(tài)CLOSED),返回第五步進(jìn)行新的一輪測試; 14. 測試任務(wù)結(jié)束后書寫測試總結(jié)報(bào)告; 15. 正規(guī)測試結(jié)束進(jìn)入非正規(guī)測試,首先是ALPHA測試,請公司里其他非技術(shù)人員以用戶角色使用系統(tǒng)。發(fā)現(xiàn)bug通知測試人員,測試人員以正規(guī)流程處理bug事件; 16. 然后是BETA測試,請用戶代表進(jìn)行測試。發(fā)現(xiàn)bug通知測試人員,測試人員以正規(guī)流程處理bug事件。 幾點(diǎn)說明: O 測試回歸計(jì)劃為三次; O 測試用例應(yīng)該寫得比較詳盡,步驟一定要標(biāo)明清楚(應(yīng)該包括:編號,測試描述,前置條件,測試步驟以及測試希望結(jié)果); O 對于測試人員覺得應(yīng)該進(jìn)行的測試項(xiàng)目,測試人員應(yīng)該報(bào)告測試設(shè)計(jì)人員,完善和健全測試用例; O 測試報(bào)告與測試用例分開,測試報(bào)告標(biāo)明測試用例序號以及是否通過Y/N; O 對于集成部經(jīng)理無法決定的上交項(xiàng)目負(fù)責(zé)人決定; O 性能測試中的疲勞性測試可以結(jié)合在功能測試部分,即測試期間不關(guān)閉機(jī)器; O 性能測試中的大容量數(shù)據(jù)測試放在測試后部分輪次(第二步,只需要進(jìn)行一次) 6 測試通過標(biāo)準(zhǔn) 測試結(jié)果與測試用例中期望的結(jié)果一致,測試通過,否則標(biāo)明測試未通過。 6.1測試結(jié)果審批過程 6.1.1測試回歸申請結(jié)束 測試人員提出申請這輪測試結(jié)束,提交集成部經(jīng)理; 集成部經(jīng)理召集本組人員開會(huì)討論; 討論通過,進(jìn)行下一輪測試,并且部署下一輪測試的注意事項(xiàng),流程等內(nèi)容; 如果發(fā)現(xiàn)這輪測試目前還存在問題沒有解決,延期下一輪測試時(shí)間,討論下一步工作應(yīng)該如何進(jìn)行。 6.1.2測試結(jié)果申請結(jié)束 測試人員提出申請測試結(jié)束,提交集成部經(jīng)理; 集成部經(jīng)理召集本組人員開會(huì)討論; 1. 討論通過,結(jié)束測試任務(wù); 2. 如果發(fā)現(xiàn)目前測試還存在問題沒有解決,延期測試結(jié)束時(shí)間,并且討論下一步工作應(yīng)該如何進(jìn)行。 7 測試掛起和恢復(fù)條件 7.1掛起條件 O 進(jìn)入第一輪測試,測試人員大體了解一下產(chǎn)品情況,如果在一小時(shí)之內(nèi)發(fā)現(xiàn)5個(gè)以上(含5個(gè))操作性錯(cuò)誤,或者3個(gè)以上(含3個(gè))功能性錯(cuò)誤,退回測試組測試; O 遇到有項(xiàng)目優(yōu)先級更高的集成測試任務(wù); O 遇到有項(xiàng)目優(yōu)先級更高的集成任務(wù); O 在測試復(fù)測過程中發(fā)現(xiàn)產(chǎn)品無法運(yùn)行下去; O 人員,設(shè)備不足。 7.2恢復(fù)條件 O 符合進(jìn)入集成測試條件(一小時(shí)之內(nèi)發(fā)現(xiàn)5個(gè)以下(不含5個(gè))操作性錯(cuò)誤,或者3個(gè)以下(不含3個(gè))功能性錯(cuò)誤); O 項(xiàng)目優(yōu)先級更高的集成測試任務(wù)暫告完成; O 項(xiàng)目優(yōu)先級更高的集成任務(wù)暫告完成; O 復(fù)測過程中產(chǎn)品可以運(yùn)行下去; O 人員,設(shè)備到位。 8應(yīng)提供的測試文件 O 測試計(jì)劃書 O 測試用例 O 測試報(bào)告 O 測試總結(jié) 9測試任務(wù) O 制定審核測試計(jì)劃 O 制定和審核測試用例 O 進(jìn)行測試活動(dòng) O 書寫測試報(bào)告 10測試環(huán)境需求 10.1硬件需求 *********** 10.2軟件需求 ************ 10.3測試工具 ************* 10.4測試需要的條件 ************** 10.4.1 需要的文檔 O 用戶手冊 O 應(yīng)用手冊 O 安裝說明 10.4.2需要完成的任務(wù) O 程序員本人測試 O 測試組完成測試 11角色和職責(zé) O 集成(測試)經(jīng)理:控制并完成測試任務(wù)和測試過程,決定測試人員提交上來的bug是否需要修改; O 測試設(shè)計(jì)人員:書寫集成測試用例; O 測試人員:按照測試用例進(jìn)行測試活動(dòng); O 開發(fā)人員:MHP程序bug修改; O 用戶代表:進(jìn)行BETA測試。 12 人員和培訓(xùn) O 集成測試經(jīng)理有責(zé)任對測試相關(guān)人員進(jìn)行測試流程,規(guī)章制度培訓(xùn); O 測試設(shè)計(jì)人員有責(zé)任對測試人員進(jìn)行測試操作培訓(xùn) 13 測試進(jìn)度 測試工作 進(jìn)度(人*工作日) 測試計(jì)劃 8 測試設(shè)計(jì) 60 測試執(zhí)行總共進(jìn)度 30 每次回歸進(jìn)度 10 測試報(bào)告 2 14風(fēng)險(xiǎn)及應(yīng)急計(jì)劃 設(shè)備不到位:加緊設(shè)備購買; 人員不到位 人員請假:請假人員回來加班或趕緊測試進(jìn)度/申請調(diào)配新的人員; 人員離職:調(diào)配新的人員; 人員調(diào)配到其他部門或項(xiàng)目:調(diào)配新的人員; 開發(fā)人員開發(fā)頻頻出錯(cuò):通知開發(fā)部門,商量策略; 其他原因的測試工作頻頻被掛起或者掛起后遲遲恢復(fù)不了:加班或延期 15審批 集成部經(jīng)理 技術(shù)部經(jīng)理 姓名: 姓名: 日期: 日期:
某設(shè)計(jì)人員習(xí)慣于把所有模塊按設(shè)計(jì)要求一次全部組裝起來,然后進(jìn)行整體測試,這稱為非增量式集成。這種方法容易出現(xiàn)混亂。因?yàn)闇y試時(shí)可能發(fā)現(xiàn)一大堆錯(cuò)誤,為每個(gè)錯(cuò)誤定位和糾正非常困難,并且在改正一個(gè)錯(cuò)誤的同時(shí)又可能引入新的錯(cuò)誤,新舊錯(cuò)誤混雜,更難斷定出錯(cuò)的原因和位置。與之相反的是增量式集成方法,程序一段一段地?cái)U(kuò)展,測試的范圍一步一步地增大,錯(cuò)誤易于定位和糾正,界面的測試亦可做到完全徹底。下面討論兩種增量式集成方法。 概述 集成測試,也叫組裝測試或聯(lián)合測試。在單元測試的基礎(chǔ)上,將所有模塊按照設(shè)計(jì)要求)如根據(jù)結(jié)構(gòu)圖〕組裝成為子系統(tǒng)或系統(tǒng),進(jìn)行集成測試。實(shí)踐表明,一些模塊雖然能夠單獨(dú)地工作,但并不能保證連接起來也能正常的工作。程序在某些局部反映不出來的問題,在全局上很可能暴露出來,影響功能的實(shí)現(xiàn)。 集成測試方法 集成測試應(yīng)該考慮以下問題: 1、在把各個(gè)模塊連接起來的時(shí)候,穿越模塊接口的數(shù)據(jù)是否會(huì)丟失; 2、各個(gè)子功能組合起來,能否達(dá)到預(yù)期要求的父功能; 3、一個(gè)模塊的功能是否會(huì)對另一個(gè)模塊的功能產(chǎn)生不利的影響; 4、全局?jǐn)?shù)據(jù)結(jié)構(gòu)是否有問題; 5、單個(gè)模塊的誤差積累起來,是否會(huì)放大,從而達(dá)到不可接受的程度。 因此,單元測試后,有必要進(jìn)行集成測試,發(fā)現(xiàn)并排除在模塊連接中可能發(fā)生的上述問題,最終構(gòu)成要求的軟件子系統(tǒng)或系統(tǒng)。對子系統(tǒng),集成測試也叫部件測試。 任何合理地組織集成測試,即選擇什么方式把模塊組裝起來形成一個(gè)可運(yùn)行的系統(tǒng),直接影響到模塊測試用例的形式、所用測試工具的類型、模塊編號和測試的次序、生成測試用例和調(diào)試的費(fèi)用。通常,有兩種不同的組裝方式:一次性組裝方式和增值式組裝方式。 集成測試的實(shí)施 集成測試是一種正規(guī)測試過程,必須精心計(jì)劃,并與單元測試的完成時(shí)間協(xié)調(diào)起來。在制定測試計(jì)劃時(shí),應(yīng)考慮如下因素: 1、是采用何種系統(tǒng)組裝方法來進(jìn)行組裝測試; 2、組裝測試過程中連接各個(gè)模塊的順序; 3、模塊代碼編制和測試進(jìn)度是否與組裝測試的順序一致 4、測試過程中是否需要專門的硬件設(shè)備; 解決了上述問題之后,就可以列出各個(gè)模塊的編制、測試計(jì)劃表,標(biāo)明每個(gè)模塊單元測試完成的日期、首次集成測試的日期、集成測試全部完成的日期、以及需要的測試用例和所期望的測試結(jié)果。 在缺少軟件測試所需要的硬件設(shè)備時(shí),應(yīng)檢查該硬件的交付日期是否與集成測試計(jì)劃一致。例如,若測試需要數(shù)字化儀和繪圖儀,則相應(yīng)測試應(yīng)安排在這些設(shè)備能夠投入使用之時(shí),并需要為硬件的安裝和交付使用保留一段時(shí)間,以留下時(shí)間余量。此外,在測試計(jì)劃中需要考慮測試所需軟件(驅(qū)動(dòng)模塊、樁模塊、測試用例生成程序等)的準(zhǔn)備情況。 集成測試完成標(biāo)準(zhǔn) 怎樣判定集成測試過程完成了, 可按以下幾個(gè)方面檢查: 1、成功地執(zhí)行了測試計(jì)劃中規(guī)定的所有集成測試; 2、修正了所發(fā)現(xiàn)的錯(cuò)誤; 3、測試結(jié)果通過了專門小組的評審。 集成測試應(yīng)由專門的測試小組來進(jìn)行,測試小組由有經(jīng)驗(yàn)的系統(tǒng)設(shè)計(jì)人員和程序員組成。整個(gè)測試活動(dòng)要在評審人員出席的情況下進(jìn)行。 在完成預(yù)定的組裝測試工作之后,測試小組應(yīng)負(fù)責(zé)對測試結(jié)果進(jìn)行整理、分析,形成測試報(bào)告。測試報(bào)告中要記錄實(shí)際的測試結(jié)果、在測試中發(fā)現(xiàn)的問題、解決這些問題的方法以及解決之后再次測試的結(jié)果。此外還應(yīng)提出目前不能解決、還需要管理人員和開發(fā)人員注意的一些問題,提供測試評審和最終決策,以提出處理意見。 集成測試 集成測試(也叫組裝測試,聯(lián)合測試)是單元測試的邏輯擴(kuò)展。它的最簡單的形式是:兩個(gè)已經(jīng)測試過的單元組合成一個(gè)組件,并且測試它們之間的接口。從這一層意義上講,組件是指多個(gè)單元的集成聚合。在現(xiàn)實(shí)方案中,許多單元組合成組件,而這些組件又聚合成程序的更大部分。方法是測試片段的組合,并最終擴(kuò)展進(jìn)程,將您的模塊與其他組的模塊一起測試。最后,將構(gòu)成進(jìn)程的所有模塊一起測試。此外,如果程序由多個(gè)進(jìn)程組成,應(yīng)該成對測試它們,而不是同時(shí)測試所有進(jìn)程。 集成測試識別組合單元時(shí)出現(xiàn)的問題。通過使用要求在組合單元前測試每個(gè)單元并確保每個(gè)單元的生存能力的測試計(jì)劃,可以知道在組合單元時(shí)所發(fā)現(xiàn)的任何錯(cuò)誤很可能與單元之間的接口有關(guān)。這種方法將可能發(fā)生的情況數(shù)量減少到更簡單的分析級別。 集成測試是在單元測試的基礎(chǔ)上,測試在將所有的軟件單元按照概要設(shè)計(jì)規(guī)格說明的要求組裝成模塊、子系統(tǒng)或系統(tǒng)的過程中各部分工作是否達(dá)到或?qū)崿F(xiàn)相應(yīng)技術(shù)指標(biāo)及要求的活動(dòng)。也就是說,在集成測試之前,單元測試應(yīng)該已經(jīng)完成,集成測試中所使用的對象應(yīng)該是已經(jīng)經(jīng)過單元測試的軟件單元。這一點(diǎn)很重要,因?yàn)槿绻唤?jīng)過單元測試,那么集成測試的效果將會(huì)受到很大影響,并且會(huì)大幅增加軟件單元代碼糾錯(cuò)的代價(jià)。 集成測試是單元測試的邏輯擴(kuò)展。在現(xiàn)實(shí)方案中,集成是指多個(gè)單元的聚合,許多單元組合成模塊,而這些模塊又聚合成程序的更大部分,如分系統(tǒng)或系統(tǒng)。集成測試采用的方法是測試軟件單元的組合能否正常工作,以及與其他組的模塊能否集成起來工作。最后,還要測試構(gòu)成系統(tǒng)的所有模塊組合能否正常工作。集成測試所持的主要標(biāo)準(zhǔn)是《軟件概要設(shè)計(jì)規(guī)格說明》,任何不符合該說明的程序模塊行為都應(yīng)該加以記載并上報(bào)。 所有的軟件項(xiàng)目都不能擺脫系統(tǒng)集成這個(gè)階段。不管采用什么開發(fā)模式,具體的開發(fā)工作總得從一個(gè)一個(gè)的軟件單元做起,軟件單元只有經(jīng)過集成才能形成一個(gè)有機(jī)的整體。具體的集成過程可能是顯性的也可能是隱性的。只要有集成,總是會(huì)出現(xiàn)一些常見問題,工程實(shí)踐中,幾乎不存在軟件單元組裝過程中不出任何問題的情況。從圖1可以看出,集成測試需要花費(fèi)的時(shí)間遠(yuǎn)遠(yuǎn)超過單元測試,直接從單元測試過渡到系統(tǒng)測試是極不妥當(dāng)?shù)淖龇ā? 集成測試的必要性還在于一些模塊雖然能夠單獨(dú)地工作,但并不能保證連接起來也能正常工作。程序在某些局部反映不出來的問題,有可能在全局上會(huì)暴露出來,影響功能的實(shí)現(xiàn)。此外,在某些開發(fā)模式中,如迭代式開發(fā),設(shè)計(jì)和實(shí)現(xiàn)是迭代進(jìn)行的。在這種情況下,集成測試的意義還在于它能間接地驗(yàn)證概要設(shè)計(jì)是否具有可行性。 集成測試的目的是確保各單元組合在一起后能夠按既定意圖協(xié)作運(yùn)行,并確保增量的行為正確。它所測試的內(nèi)容包括單元間的接口以及集成后的功能。使用黑盒測試方法測試集成的功能。并且對以前的集成進(jìn)行回歸測試。 一、集成測試過程 二、單元測試工作內(nèi)容及其流程 三、集成測試需求獲取 集成測試需求所確定的是對某一集成工作版本的測試的內(nèi)容,即測試的具體對象。集成測試需求主要來源于設(shè)計(jì)模型(Design Model)和集成構(gòu)件計(jì)劃(Integration Build Plan)。集成測試著重于集成版本的外部接口的行為。因此,測試需求須具有可觀測、可測評性。 1. 集成工作版本應(yīng)分析其類協(xié)作與消息序列,從而找出該工作版本的外部接口。 2. 由集成工作版本的外部接口確定集成測試用例。 3. 測試用例應(yīng)覆蓋工作版本每一外部接口的所有消息流序列。 注意:一個(gè)外部接口和測試用例的關(guān)系是多對多,部分集成工作版本的測試需求可映射到系統(tǒng)測試需求,因此對這些集成測試用例可采用重用系統(tǒng)測試用例技術(shù)。 四、集成測試工作機(jī)制 軟件集成測試工作由產(chǎn)品評測部擔(dān)任。需要項(xiàng)目組相關(guān)角色配合完成。如圖示: 軟件評測部: 軟件項(xiàng)目組: 集成測試工作內(nèi)容及其流程工作流程: 五、集成測試產(chǎn)生的工件清單 1、 軟件集成測試計(jì)劃 2、 集成測試用例 3、 測試過程 4、 測試腳本 5、 測試日志 6、 測試評估摘要 六、集成測試常用方案選型 集成測試的實(shí)施方案有很多種,如自底向上集成測試、自頂向下集成測試、Big-Bang集成測試、三明治集成測試、核心集成測試、分層集成測試、基于使用的集成測試等。在此,筆者將重點(diǎn)討論其中一些經(jīng)實(shí)踐檢驗(yàn)和一些證實(shí)有效的集成測試方案。 •自底向上集成測試 自底向上的集成(Bottom-Up Integration)方式是最常使用的方法。其他集成方法都或多或少地繼承、吸收了這種集成方式的思想。自底向上集成方式從程序模塊結(jié)構(gòu)中最底層的模塊開始組裝和測試。因?yàn)槟K是自底向上進(jìn)行組裝的,對于一個(gè)給定層次的模塊,它的子模塊(包括子模塊的所有下屬模塊)事前已經(jīng)完成組裝并經(jīng)過測試,所以不再需要編制樁模塊(一種能模擬真實(shí)模塊,給待測模塊提供調(diào)用接口或數(shù)據(jù)的測試用軟件模塊)。自底向上集成測試的步驟大致如下: 步驟一: 按照概要設(shè)計(jì)規(guī)格說明,明確有哪些被測模塊。在熟悉被測模塊性質(zhì)的基礎(chǔ)上對被測模塊進(jìn)行分層,在同一層次上的測試可以并行進(jìn)行,然后排出測試活動(dòng)的先后關(guān)系,制定測試進(jìn)度計(jì)劃。圖2給出了自底向上的集成測試過程中各測試活動(dòng)的拓?fù)潢P(guān)系。利用圖論的相關(guān)知識,可以排出各活動(dòng)之間的時(shí)間序列關(guān)系,處于同一層次的測試活動(dòng)可以同時(shí)進(jìn)行,而不會(huì)相互影響。 步驟二: 在步驟一的基礎(chǔ)上,按時(shí)間線序關(guān)系,將軟件單元集成為模塊,并測試在集成過程中出現(xiàn)的問題。這里,可能需要測試人員開發(fā)一些驅(qū)動(dòng)模塊來驅(qū)動(dòng)集成活動(dòng)中形成的被測模塊。對于比較大的模塊,可以先將其中的某幾個(gè)軟件單元集成為子模塊,然后再集成為一個(gè)較大的模塊。 步驟三: 將各軟件模塊集成為子系統(tǒng)(或分系統(tǒng))。檢測各自子系統(tǒng)是否能正常工作。同樣,可能需要測試人員開發(fā)少量的驅(qū)動(dòng)模塊來驅(qū)動(dòng)被測子系統(tǒng)。 步驟四: 將各子系統(tǒng)集成為最終用戶系統(tǒng),測試是否存在各分系統(tǒng)能否在最終用戶系統(tǒng)中正常工作。 方案點(diǎn)評: 自底向上的集成測試方案是工程實(shí)踐中最常用的測試方法。相關(guān)技術(shù)也較為成熟。它的優(yōu)點(diǎn)很明顯: 管理方便、測試人員能較好地鎖定軟件故障所在位置。但它對于某些開發(fā)模式不適用,如使用XP開發(fā)方法,它會(huì)要求測試人員在全部軟件單元實(shí)現(xiàn)之前完成核心軟件部件的集成測試。盡管如此,自底向上的集成測試方法仍不失為一個(gè)可供參考的集成測試方案。 •核心系統(tǒng)先行集成測試 核心系統(tǒng)先行集成測試法的思想是先對核心軟件部件進(jìn)行集成測試,在測試通過的基礎(chǔ)上再按各外圍軟件部件的重要程度逐個(gè)集成到核心系統(tǒng)中。每次加入一個(gè)外圍軟件部件都產(chǎn)生一個(gè)產(chǎn)品基線,直至最后形成穩(wěn)定的軟件產(chǎn)品。核心系統(tǒng)先行集成測試法對應(yīng)的集成過程是一個(gè)逐漸趨于閉合的螺旋形曲線,代表產(chǎn)品逐步定型的過程。其步驟如下: 步驟一: 對核心系統(tǒng)中的每個(gè)模塊進(jìn)行單獨(dú)的、充分的測試,必要時(shí)使用驅(qū)動(dòng)模塊和樁模塊; 步驟二: 對于核心系統(tǒng)中的所有模塊一次性集合到被測系統(tǒng)中,解決集成中出現(xiàn)的各類問題。在核心系統(tǒng)規(guī)模相對較大的情況下,也可以按照自底向上的步驟,集成核心系統(tǒng)的各組成模塊。 步驟三: 按照各外圍軟件部件的重要程度以及模塊間的相互制約關(guān)系,擬定外圍軟件部件集成到核心系統(tǒng)中的順序方案。方案經(jīng)評審以后,即可進(jìn)行外圍軟件部件的集成。 步驟四: 在外圍軟件部件添加到核心系統(tǒng)以前,外圍軟件部件應(yīng)先完成內(nèi)部的模塊級集成測試。 步驟五: 按順序不斷加入外圍軟件部件,排除外圍軟件部件集成中出現(xiàn)的問題,形成最終的用戶系統(tǒng)。 方案點(diǎn)評: 該集成測試方法對于快速軟件開發(fā)很有效果,適合較復(fù)雜系統(tǒng)的集成測試,能保證一些重要的功能和服務(wù)的實(shí)現(xiàn)。缺點(diǎn)是采用此法的系統(tǒng)一般應(yīng)能明確區(qū)分核心軟件部件和外圍軟件部件,核心軟件部件應(yīng)具有較高的耦合度,外圍軟件部件內(nèi)部也應(yīng)具有較高的耦合度,但各外圍軟件部件之間應(yīng)具有較低的耦合度。 •高頻集成測試 高頻集成測試是指同步于軟件開發(fā)過程,每隔一段時(shí)間對開發(fā)團(tuán)隊(duì)的現(xiàn)有代碼進(jìn)行一次集成測試。如某些自動(dòng)化集成測試工具能實(shí)現(xiàn)每日深夜對開發(fā)團(tuán)隊(duì)的現(xiàn)有代碼進(jìn)行一次集成測試,然后將測試結(jié)果發(fā)到各開發(fā)人員的電子郵箱中。該集成測試方法頻繁地將新代碼加入到一個(gè)已經(jīng)穩(wěn)定的基線中,以免集成故障難以發(fā)現(xiàn),同時(shí)控制可能出現(xiàn)的基線偏差。使用高頻集成測試需要具備一定的條件: 可以持續(xù)獲得一個(gè)穩(wěn)定的增量,并且該增量內(nèi)部已被驗(yàn)證沒有問題; 大部分有意義的功能增加可以在一個(gè)相對穩(wěn)定的時(shí)間間隔(如每個(gè)工作日)內(nèi)獲得; 測試包和代碼的開發(fā)工作必須是并行進(jìn)行的,并且需要版本控制工具來保證始終維護(hù)的是測試腳本和代碼的最新版本; 必須借助于使用自動(dòng)化工具來完成。高頻集成一個(gè)顯著的特點(diǎn)就是集成次數(shù)頻繁,顯然,人工的方法是不勝任的。 高頻集成測試一般采用如下步驟來完成: 步驟一: 選擇集成測試自動(dòng)化工具。如很多Java項(xiàng)目采用Junit+Ant方案來實(shí)現(xiàn)集成測試的自動(dòng)化,也有一些商業(yè)集成測試工具可供選擇。 步驟二: 設(shè)置版本控制工具,以確保集成測試自動(dòng)化工具所獲得的版本是最新版本。如使用CVS進(jìn)行版本控制。 步驟三: 測試人員和開發(fā)人員負(fù)責(zé)編寫對應(yīng)程序代碼的測試腳本。 步驟四: 設(shè)置自動(dòng)化集成測試工具,每隔一段時(shí)間對配置管理庫的新添加的代碼進(jìn)行自動(dòng)化的集成測試,并將測試報(bào)告匯報(bào)給開發(fā)人員和測試人員。 步驟五: 測試人員監(jiān)督代碼開發(fā)人員及時(shí)關(guān)閉不合格項(xiàng)。 按照步驟三至步驟五不斷循環(huán),直至形成最終軟件產(chǎn)品。 方案點(diǎn)評: 該測試方案能在開發(fā)過程中及時(shí)發(fā)現(xiàn)代碼錯(cuò)誤,能直觀地看到開發(fā)團(tuán)隊(duì)的有效工程進(jìn)度。在此方案中,開發(fā)維護(hù)源代碼與開發(fā)維護(hù)軟件測試包被賦予了同等的重要性,這對有效防止錯(cuò)誤、及時(shí)糾正錯(cuò)誤都很有幫助。該方案的缺點(diǎn)在于測試包有時(shí)候可能不能暴露深層次的編碼錯(cuò)誤和圖形界面錯(cuò)誤。 以上我們介紹了幾種常見的集成測試方案,一般來講,在現(xiàn)代復(fù)雜軟件項(xiàng)目集成測試過程中,通常采用核心系統(tǒng)先行集成測試和高頻集成測試相結(jié)合的方式進(jìn)行,自底向上的集成測試方案在采用傳統(tǒng)瀑布式開發(fā)模式的軟件項(xiàng)目集成過程中較為常見。讀者應(yīng)該結(jié)合項(xiàng)目的實(shí)際工程環(huán)境及各測試方案適用的范圍進(jìn)行合理的選型。 附:集成測試計(jì)劃書 模版 原創(chuàng)作者:jerry 轉(zhuǎn)載請注明:來自Sawin系統(tǒng)分析之窗 最后修改時(shí)間:2005-4-27 1引言 1.1編寫目的 本文是描述****集成測試的大綱文章,主要描述如何進(jìn)行集成測試活動(dòng)?如何控制集成測試活動(dòng)?集成測試活動(dòng)的流程以及集成測試活動(dòng)的工作安排。本文主要的讀者對象是項(xiàng)目負(fù)責(zé)人,集成部門經(jīng)理,集成測試設(shè)計(jì)師。 1.2背景 項(xiàng)目名稱:***集成測試 項(xiàng)目相關(guān)對象:****************** 1.3定義 **********:******************** 1.4參考資料 《*********》 2測試項(xiàng)目 本測試主要為***系統(tǒng)的集成測試,目前***的版本為2.0,測試是***的最終集成測試,是建立在開發(fā)組程序員開發(fā)完畢自己的測試以及開發(fā)組測試的基礎(chǔ)之上 3 被測特性 3.1操作性測試 主要測試操作是否正確,有無誤差?分為兩部分: 3.1.1返回測試 由主界面逐級進(jìn)入最終界面,按EXIT鍵逐級返回,檢查返回時(shí)候屏幕聚焦是否正確 比如: 1. 進(jìn)入“系統(tǒng)設(shè)置” 2. 進(jìn)入“頻道搜索” 3. 進(jìn)入“自動(dòng)頻道搜索” 4. 按EXIT鍵返回,檢查當(dāng)前聚焦是否為“頻道搜索” 5. 按EXIT鍵返回,檢查當(dāng)前聚焦是否為“系統(tǒng)設(shè)置” 3.1.2進(jìn)入測試 由主界面逐級進(jìn)入最終界面,按MENU鍵返回主界面,再次進(jìn)入,檢查是否聚焦正確 比如: 1. 進(jìn)入“系統(tǒng)設(shè)置” 2. 進(jìn)入“頻道搜索” 3. 進(jìn)入“自動(dòng)頻道搜索” 4. 按MENU鍵返回主界面 5. 當(dāng)前聚焦是否為“系統(tǒng)設(shè)置” 6. 進(jìn)入“系統(tǒng)設(shè)置”,當(dāng)前聚焦是否為“頻道搜索” 3.2功能測試 測試機(jī)頂盒中每個(gè)應(yīng)用的功能是否正確 3.3性能測試 3.3.1疲勞性測試 測試連續(xù)開機(jī)1個(gè)月不關(guān)機(jī)器,每3天去運(yùn)行一次應(yīng)用。看系統(tǒng)的穩(wěn)定性 3.3.2大容量數(shù)據(jù)測試 前段***數(shù)據(jù)庫表中含有大量數(shù)據(jù),測試***功能 4 不被測特性 5 測試方法 1. 書寫測試計(jì)劃 2. 審核測試計(jì)劃,未通過返回第一步 3. 書寫測試用例; 4. 審核測試用例,未通過返回第三步 5. 測試人員按照測試用例逐項(xiàng)進(jìn)行測試活動(dòng),并且將測試結(jié)果填寫在測試報(bào)告上;(測試報(bào)告必須覆蓋所有測試用例) 6. 測試過程中發(fā)現(xiàn)bug,將bug填寫在bugzilla上發(fā)給集成部經(jīng)理;(bug狀態(tài)NEW) 7. 集成部經(jīng)理接到bugzilla發(fā)過來的bug 7.1 對于明顯的并且可以立刻解決的bug,將bug發(fā)給開發(fā)人員;(bug狀態(tài)ASSIGNED); 7.2 對于不是bug的提交,集成部經(jīng)理通知測試設(shè)計(jì)人員和測試人員,對相應(yīng)文檔進(jìn)行修改; (bug狀態(tài)RESOLVED,決定設(shè)置為INVALID); 7.3 對于目前無法修改的,將這個(gè)bug放到下一輪次進(jìn)行修改;(bug狀態(tài)RESOLVED,決定設(shè)置為REMIND) 8. 開發(fā)人員接到發(fā)過來的bug立刻修改;(bug狀態(tài)RESOLVED,決定設(shè)置為FIXED) 9. 測試人員接到bugzilla發(fā)過來的錯(cuò)誤更改信息,應(yīng)該逐項(xiàng)復(fù)測,填寫新的測試報(bào)告(測試報(bào)告必須覆蓋上一次中所有REOPENED的測試用例); 10. 如果復(fù)測有問題返回第六步(bug狀態(tài)REOPENED) 11. 否則關(guān)閉這項(xiàng)BUG(bug狀態(tài)CLOSED) 12. 本輪測試中測試用例中有95%一次性通過測試,結(jié)束測試任務(wù); 13. 本輪測試中發(fā)現(xiàn)的錯(cuò)誤有98%經(jīng)過修改并且通過再次測試(即bug狀態(tài)CLOSED),返回第五步進(jìn)行新的一輪測試; 14. 測試任務(wù)結(jié)束后書寫測試總結(jié)報(bào)告; 15. 正規(guī)測試結(jié)束進(jìn)入非正規(guī)測試,首先是ALPHA測試,請公司里其他非技術(shù)人員以用戶角色使用系統(tǒng)。發(fā)現(xiàn)bug通知測試人員,測試人員以正規(guī)流程處理bug事件; 16. 然后是BETA測試,請用戶代表進(jìn)行測試。發(fā)現(xiàn)bug通知測試人員,測試人員以正規(guī)流程處理bug事件。 幾點(diǎn)說明: O 測試回歸計(jì)劃為三次; O 測試用例應(yīng)該寫得比較詳盡,步驟一定要標(biāo)明清楚(應(yīng)該包括:編號,測試描述,前置條件,測試步驟以及測試希望結(jié)果); O 對于測試人員覺得應(yīng)該進(jìn)行的測試項(xiàng)目,測試人員應(yīng)該報(bào)告測試設(shè)計(jì)人員,完善和健全測試用例; O 測試報(bào)告與測試用例分開,測試報(bào)告標(biāo)明測試用例序號以及是否通過Y/N; O 對于集成部經(jīng)理無法決定的上交項(xiàng)目負(fù)責(zé)人決定; O 性能測試中的疲勞性測試可以結(jié)合在功能測試部分,即測試期間不關(guān)閉機(jī)器; O 性能測試中的大容量數(shù)據(jù)測試放在測試后部分輪次(第二步,只需要進(jìn)行一次) 6 測試通過標(biāo)準(zhǔn) 測試結(jié)果與測試用例中期望的結(jié)果一致,測試通過,否則標(biāo)明測試未通過。 6.1測試結(jié)果審批過程 6.1.1測試回歸申請結(jié)束 測試人員提出申請這輪測試結(jié)束,提交集成部經(jīng)理; 集成部經(jīng)理召集本組人員開會(huì)討論; 討論通過,進(jìn)行下一輪測試,并且部署下一輪測試的注意事項(xiàng),流程等內(nèi)容; 如果發(fā)現(xiàn)這輪測試目前還存在問題沒有解決,延期下一輪測試時(shí)間,討論下一步工作應(yīng)該如何進(jìn)行。 6.1.2測試結(jié)果申請結(jié)束 測試人員提出申請測試結(jié)束,提交集成部經(jīng)理; 集成部經(jīng)理召集本組人員開會(huì)討論; 1. 討論通過,結(jié)束測試任務(wù); 2. 如果發(fā)現(xiàn)目前測試還存在問題沒有解決,延期測試結(jié)束時(shí)間,并且討論下一步工作應(yīng)該如何進(jìn)行。 7 測試掛起和恢復(fù)條件 7.1掛起條件 O 進(jìn)入第一輪測試,測試人員大體了解一下產(chǎn)品情況,如果在一小時(shí)之內(nèi)發(fā)現(xiàn)5個(gè)以上(含5個(gè))操作性錯(cuò)誤,或者3個(gè)以上(含3個(gè))功能性錯(cuò)誤,退回測試組測試; O 遇到有項(xiàng)目優(yōu)先級更高的集成測試任務(wù); O 遇到有項(xiàng)目優(yōu)先級更高的集成任務(wù); O 在測試復(fù)測過程中發(fā)現(xiàn)產(chǎn)品無法運(yùn)行下去; O 人員,設(shè)備不足。 7.2恢復(fù)條件 O 符合進(jìn)入集成測試條件(一小時(shí)之內(nèi)發(fā)現(xiàn)5個(gè)以下(不含5個(gè))操作性錯(cuò)誤,或者3個(gè)以下(不含3個(gè))功能性錯(cuò)誤); O 項(xiàng)目優(yōu)先級更高的集成測試任務(wù)暫告完成; O 項(xiàng)目優(yōu)先級更高的集成任務(wù)暫告完成; O 復(fù)測過程中產(chǎn)品可以運(yùn)行下去; O 人員,設(shè)備到位。 8應(yīng)提供的測試文件 O 測試計(jì)劃書 O 測試用例 O 測試報(bào)告 O 測試總結(jié) 9測試任務(wù) O 制定審核測試計(jì)劃 O 制定和審核測試用例 O 進(jìn)行測試活動(dòng) O 書寫測試報(bào)告 10測試環(huán)境需求 10.1硬件需求 *********** 10.2軟件需求 ************ 10.3測試工具 ************* 10.4測試需要的條件 ************** 10.4.1 需要的文檔 O 用戶手冊 O 應(yīng)用手冊 O 安裝說明 10.4.2需要完成的任務(wù) O 程序員本人測試 O 測試組完成測試 11角色和職責(zé) O 集成(測試)經(jīng)理:控制并完成測試任務(wù)和測試過程,決定測試人員提交上來的bug是否需要修改; O 測試設(shè)計(jì)人員:書寫集成測試用例; O 測試人員:按照測試用例進(jìn)行測試活動(dòng); O 開發(fā)人員:MHP程序bug修改; O 用戶代表:進(jìn)行BETA測試。 12 人員和培訓(xùn) O 集成測試經(jīng)理有責(zé)任對測試相關(guān)人員進(jìn)行測試流程,規(guī)章制度培訓(xùn); O 測試設(shè)計(jì)人員有責(zé)任對測試人員進(jìn)行測試操作培訓(xùn) 13 測試進(jìn)度 測試工作 進(jìn)度(人*工作日) 測試計(jì)劃 8 測試設(shè)計(jì) 60 測試執(zhí)行總共進(jìn)度 30 每次回歸進(jìn)度 10 測試報(bào)告 2 14風(fēng)險(xiǎn)及應(yīng)急計(jì)劃 設(shè)備不到位:加緊設(shè)備購買; 人員不到位 人員請假:請假人員回來加班或趕緊測試進(jìn)度/申請調(diào)配新的人員; 人員離職:調(diào)配新的人員; 人員調(diào)配到其他部門或項(xiàng)目:調(diào)配新的人員; 開發(fā)人員開發(fā)頻頻出錯(cuò):通知開發(fā)部門,商量策略; 其他原因的測試工作頻頻被掛起或者掛起后遲遲恢復(fù)不了:加班或延期 15審批 集成部經(jīng)理 技術(shù)部經(jīng)理 姓名: 姓名: 日期: 日期:
抱歉,此頁面的內(nèi)容受版權(quán)保護(hù),復(fù)制需扣除次數(shù),次數(shù)不足時(shí)需付費(fèi)購買。
如需下載請點(diǎn)擊:點(diǎn)擊此處下載
掃碼付費(fèi)即可復(fù)制
蝴蝶效應(yīng) | 中華人民共和國無線電管理?xiàng)l例 | RLR | 通信光纜 | IP多媒體子系統(tǒng) | 綜合接入設(shè)備 | BCMSN | PS域 | 手機(jī)FLASH | PIX防火墻 | MacroCell | V5協(xié)議 |
移動(dòng)通信網(wǎng) | 通信人才網(wǎng) | 更新日志 | 團(tuán)隊(duì)博客 | 免責(zé)聲明 | 關(guān)于詞典 | 幫助