5.2.2需要進行集成測試的原因_第1頁
5.2.2需要進行集成測試的原因_第2頁
5.2.2需要進行集成測試的原因_第3頁
5.2.2需要進行集成測試的原因_第4頁
5.2.2需要進行集成測試的原因_第5頁
已閱讀5頁,還剩12頁未讀, 繼續(xù)免費閱讀

下載本文檔

版權說明:本文檔由用戶提供并上傳,收益歸屬內容提供方,若內容存在侵權,請進行舉報或認領

文檔簡介

軟件質量保證與測試SoftwareQualityAssuranceandTesting5.2集成測試第5章軟件測試過程5.2.2需要進行集成測試的原因需要進行集成測試的原因一個單元模塊雖然能夠單獨的正常工作,但并不能保證多個單元模塊連接起來后也能正常工作。每一個單元模塊功能都正確,并不意味著多個單元模塊組成的業(yè)務流仍然正確無誤。程序在某些局部反映不出來的問題,有可能在全局上會暴露出來。單元測試之后之所以還需要進行集成測試,包括以下多種原因和情況。需要進行集成測試的原因①一個模塊可能對另一個模塊產生不利的影響例如,A模塊發(fā)送數據,B模塊接收數據并進行加工,如果A模塊發(fā)送數據的速度快于B模塊加工數據的速度,則兩個模塊集成起來后連續(xù)工作的時間長了,就會出現阻塞或者是數據丟失。需要進行集成測試的原因②將子功能合成時不一定產生所期望的主功能。例如,某成績管理軟件,把成績輸入功能設計成兩個子功能,輸入百分制成績和輸入五級記分制成績,但集成測試時發(fā)現,這兩項子功能合起來并不能覆蓋所有可能的成績輸入,因為成績輸入時還可能出現“缺考”、“作弊”等特殊情況!主功能子功能1子功能2......功能缺失需要進行集成測試的原因③獨立可接受的誤差,在多個模塊組裝后可能會被放大,超過可接受的誤差限度。例如,設某模塊A中變量X有誤差X,在后續(xù)的模塊B中對X進行了求立方運算,那么運算后的相對誤差就是3倍的X。因為Y=X3兩邊微分得dY=3X2dX,兩邊再同除以Y和X3得:dY/Y=3dX/X需要進行集成測試的原因我們再來看一個關于誤差被放大到難以接受的實例。某計算利息的程序,計算過程是模塊A由年利率計算得出單日的利率I_day,計算結果提供給模塊B乘以金額和天數,得出總的利息I_all。設年利率為3%。如果I_day保留5位小數,則I_day≈0.00008,設某客戶存款1億元,存期100天,算出的利息為80萬元。如果I_day保留7位小數,則I_day≈0.0000822,算出的利息應為82.2萬元。這兩者之間的誤差達到了2.2萬元。需要進行集成測試的原因④可能會有單元測試中未發(fā)現的接口方面的錯誤。例如模塊A有三個形式參數Str_1,Str_2,Str_3,功能是實現把Str_1中包含的Str_2去掉后保存到Str_3中。模塊B調用模塊A時參數位置寫反了,把原始字符串作為第二個參數,而把要刪除的字符串作為了第一個參數。這種情況單元測試時有可能沒有發(fā)現,因為單元測試主要關注模塊內部的具體實現,而通過集成測試是可以發(fā)現的。需要進行集成測試的原因⑤在單元測試中無法發(fā)現時序問題。例如,某購票軟件中有購票和退票模塊,這兩個模塊單獨運行時都沒有問題,但集成測試時不執(zhí)行購票模塊,而是直接執(zhí)行退票模塊軟件就出現問題了,因為退票時讀不到有效購票數據,在對退票模塊做單元測試時是默認已經先執(zhí)行了購票模塊,是已經有購票數據的。需要進行集成測試的原因⑤在單元測試中無法發(fā)現時序問題。還有就是在程序并發(fā)中,也很容易出現時序問題。單元測試時一個一個模塊單獨執(zhí)行,相互之間沒有影響,測試運行可能都沒有發(fā)現問題,但集成測試時,多個模塊并發(fā)執(zhí)行,操作的次序存在不確定性,如果對時序問題考慮不周,就會出現錯誤。需要進行集成測試的原因⑤在單元測試中無法發(fā)現時序問題。還是以購票軟件為例,當購票和退票模塊并發(fā)執(zhí)行,如果出現以下情形,軟件就出錯了:

購票模塊read票數............write票數=票數-1

退票模塊......read票數write票數=票數+1......時間T需要進行集成測試的原因⑤在單元測試中無法發(fā)現時序問題。購票模塊執(zhí)行過程中,并發(fā)執(zhí)行了退票模塊,兩個模塊都讀取到了相同的初始“票數X”,退票模塊執(zhí)行后,“票數X”加了1,但由于購票模塊已經讀取過了“票數”,所以這一修改并沒有更新到購票模塊,購票操作執(zhí)行后,票數X=X-1被寫回到了數據池,這樣就出錯了。正常結果應當是:余票X=X+1-1退回一張票賣出一張票,余票仍然=X;而實際結果是:余票X=X-1少了一張票,退回的票“丟失了”!需要進行集成測試的原因⑥在單元測試中無法發(fā)現資源競爭問題例如,A模塊和B模塊運行時都同時需要資源X和Y,當前運行環(huán)境下資源X和Y各有1個,A模塊先申請到了資源X,B模塊先申請到了資源Y,然后A模塊等待資源Y,B模塊等待資源X,A、B陷入死鎖。模塊A模塊B資源X資源Y占用等待等待占用需要進行集成測試的原因⑦共享數據或全局數據的問題例如,成績管理軟件中,成績是全局數據,在輸入模塊獲得初值后傳入統(tǒng)計模塊進行統(tǒng)計。但集成測試時發(fā)現,輸入模塊為方便接收各種不同類型的成績,把成績數據默認為字符類型,而在統(tǒng)計模塊,為便于計算,把成績數據默認為數值類型,這樣兩個模塊一對接,就出現了數據類型不一致的問題。需要進行集成測試的原因⑧數據單位、環(huán)境參數不統(tǒng)一的問題例如,某收費軟件系統(tǒng)中有兩個模塊單元,一個稱重,一個計費,但稱重模塊中重量單位為克,而計費模塊中把重量的數據單位默認為公斤,這樣當稱重結果數據傳到計費模塊后,費用的計算結果肯定是錯誤的。需要進行集成測試的原因⑧數據單位、環(huán)境參數不統(tǒng)一的問題稱重重量:X=1500(克)

X=1500計費1500*8=12000(元)需要進行集成測試的原因⑧數據單位、環(huán)境參數不統(tǒng)一的問題下面用具體的數據來說明,設稱重模塊稱重的結果為

溫馨提示

  • 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請下載最新的WinRAR軟件解壓。
  • 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請聯系上傳者。文件的所有權益歸上傳用戶所有。
  • 3. 本站RAR壓縮包中若帶圖紙,網頁內容里面會有圖紙預覽,若沒有圖紙預覽就沒有圖紙。
  • 4. 未經權益所有人同意不得將文件中的內容挪作商業(yè)或盈利用途。
  • 5. 人人文庫網僅提供信息存儲空間,僅對用戶上傳內容的表現方式做保護處理,對用戶上傳分享的文檔內容本身不做任何修改或編輯,并不能對任何下載內容負責。
  • 6. 下載文件中如有侵權或不適當內容,請與我們聯系,我們立即糾正。
  • 7. 本站不保證下載資源的準確性、安全性和完整性, 同時也不承擔用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。

評論

0/150

提交評論