在軟件開(kāi)發(fā)過(guò)程中,集成測(cè)試是一連串的單獨(dú)測(cè)試,目的是找出軟件系統(tǒng)中不同的、相互依賴的(已測(cè)試過(guò)的)軟件組件之間的交互錯(cuò)誤。集成測(cè)試檢驗(yàn)軟件組件在使用其他組件的接口(即調(diào)用其方法)時(shí),是否正確處理了其返回值(返回值、異常)。
2.為什么需要集成測(cè)試integration tests?
a)提高軟件質(zhì)量
與所有軟件測(cè)試一樣,集成測(cè)試的目的是通過(guò)發(fā)現(xiàn)錯(cuò)誤來(lái)提高軟件質(zhì)量。為此,集成測(cè)試檢查兩個(gè)或多個(gè)軟件組件software components(也稱為軟件模塊software modules或軟件單元software units)的接口是否匹配。盡管專(zhuān)業(yè)軟件開(kāi)發(fā)人員已經(jīng)對(duì)所有組件的公共方法進(jìn)行了測(cè)試,但這些集成測(cè)試仍是必要的。因?yàn)榻M件、模塊或單元測(cè)試不足以發(fā)現(xiàn)這些組件交互過(guò)程中的錯(cuò)誤。
b)符合法規(guī)要求
許多標(biāo)準(zhǔn)都要求進(jìn)行集成測(cè)試,并制定了相關(guān)要求。例如,IEC 62304要求進(jìn)行集成測(cè)試,并驗(yàn)證所選集成測(cè)試方法是否合適。
IEC 62304對(duì)集成測(cè)試integration tests的要求
IEC 62304對(duì)集成測(cè)試提出了以下要求:
-制定集成計(jì)劃
-根據(jù)計(jì)劃進(jìn)行集成測(cè)試
-集成測(cè)試文檔
-如果發(fā)現(xiàn)錯(cuò)誤,應(yīng)啟動(dòng)問(wèn)題解決程序。
注意:許多制造商并不符合問(wèn)題解決流程的要求。相反,他們對(duì)軟件進(jìn)行修改,直到其表現(xiàn)符合規(guī)范為止。這既不符合要求,也不符合IEC 62304的理念。
IEC 62304對(duì)集成測(cè)試integration tests程序評(píng)估的要求
此外,制造商必須評(píng)估并確保所選的集成測(cè)試方法是適當(dāng)?shù)摹W?015版IEC 62304起,第5.6.5節(jié)的措辭更加通俗易懂,“驗(yàn)證verify”一詞被“評(píng)估evaluate”取代,“正確性correctness”一詞被“充分性adequacy”取代。因此,不是檢查測(cè)試程序的正確應(yīng)用,而是檢查測(cè)試程序的適用性。
IEC 62304的作者所說(shuō)的評(píng)估也可從附錄B.5.6中得出:
-集成策略integration strategy合適。
-制造商已確定正確且必要的測(cè)試目標(biāo)test objectives,如功能正確性、時(shí)序和可維護(hù)性(例如弱耦合)。
-測(cè)試程序 test procedure合適,包括指定測(cè)試用例的方法。
-制造商選擇了合適的工具suitable tools,例如,用于創(chuàng)建存根/模擬對(duì)象,以替代(尚未)可用或待測(cè)的硬件和軟件組件。
對(duì)測(cè)試程序的評(píng)估通常是通過(guò)檢查集成計(jì)劃來(lái)完成的。
3.如何進(jìn)行集成測(cè)試integration tests?
步驟1:確定集成測(cè)試的目標(biāo)
ISO 25010的分類(lèi)法為這些目標(biāo)的完整性提供了一個(gè)很好的核對(duì)表。這些目標(biāo)的選擇和優(yōu)先排序應(yīng)基于風(fēng)險(xiǎn)。例如,如果軟件的時(shí)間安排至關(guān)重要,則應(yīng)在集成測(cè)試期間對(duì)其進(jìn)行評(píng)估。
步驟2:確定集成策略
確定集成策略是測(cè)試計(jì)劃的一部分。作為軟件架構(gòu)的一部分,制造商應(yīng)該已經(jīng)確定了集成策略。這決定了組件的集成順序。集成策略的典型代表有:
-自下而上的策略,這種策略受到開(kāi)發(fā)人員的歡迎,需要許多測(cè)試驅(qū)動(dòng)程序
-自上而下的策略,這種策略允許對(duì)最終產(chǎn)品形成早期印象,需要許多模擬對(duì)象
-大爆炸策略,實(shí)際上并不意味著零敲碎打的集成,而是對(duì)整個(gè)系統(tǒng)進(jìn)行測(cè)試
在自下而上的策略中,測(cè)試人員首先測(cè)試硬件或操作系統(tǒng)相關(guān)層,然后測(cè)試更高層(如用戶界面)。這意味著,在集成測(cè)試過(guò)程中,他們每次都會(huì)添加下一個(gè)更高層次的層,檢查是否達(dá)到了測(cè)試目標(biāo)。
步驟3:指定測(cè)試用例
指定測(cè)試用例是測(cè)試計(jì)劃的一部分。為了指定測(cè)試用例,進(jìn)而指定測(cè)試數(shù)據(jù),制造商應(yīng)使用黑盒方法等。這些方法有助于系統(tǒng)地確定測(cè)試用例,從而以極高的概率發(fā)現(xiàn)缺陷。這就是好測(cè)試與壞測(cè)試的區(qū)別所在。測(cè)試用例的規(guī)范還包括確定如何進(jìn)行測(cè)試、記錄測(cè)試和評(píng)估測(cè)試結(jié)果。
步驟4:執(zhí)行測(cè)試并記錄輸出結(jié)果
為了執(zhí)行測(cè)試,測(cè)試人員必須根據(jù)選定的測(cè)試策略開(kāi)發(fā)模擬對(duì)象或/和測(cè)試驅(qū)動(dòng)程序。這樣,他們就能按照測(cè)試計(jì)劃的要求執(zhí)行測(cè)試。文件還包括對(duì)測(cè)試結(jié)果的評(píng)估。如果出現(xiàn)錯(cuò)誤,這些文件可作為解決問(wèn)題過(guò)程的輸入。
4.應(yīng)該注意什么?
a)相關(guān)人員的選擇
要指定和執(zhí)行集成測(cè)試,既要有編程經(jīng)驗(yàn),又要有軟件測(cè)試方面的能力。
b)正確的時(shí)間安排
制造商不應(yīng)在編程完成后才開(kāi)始軟件集成測(cè)試。相反,最好從一開(kāi)始就按照集成計(jì)劃測(cè)試可用組件的交互作用。這樣可以更早地發(fā)現(xiàn)錯(cuò)誤,更容易地消除錯(cuò)誤。在維護(hù)階段,制造商還應(yīng)將集成測(cè)試作為回歸測(cè)試來(lái)執(zhí)行。這樣就能確保更改不會(huì)重新引入已修復(fù)的錯(cuò)誤。
c)符合監(jiān)管要求
IEC 62304要求制造商在發(fā)布軟件時(shí),檢查軟件集成測(cè)試是否按設(shè)計(jì)和開(kāi)發(fā)集成測(cè)試計(jì)劃的規(guī)定進(jìn)行。前提是這些計(jì)劃已經(jīng)存在。
5.總結(jié)
集成測(cè)試是軟件質(zhì)量保證的重要手段。建議將集成測(cè)試作為一個(gè)單獨(dú)的步驟,而不是與軟件系統(tǒng)測(cè)試system tests一起進(jìn)行。集成測(cè)試有助于證明系統(tǒng)可以由各個(gè)組件逐一組裝起來(lái)。這反過(guò)來(lái)又證實(shí)了組件之間所需的弱耦合性,從而證實(shí)了良好的體系結(jié)構(gòu)。
