單元測試好比房屋建筑現(xiàn)場的建筑監(jiān)理員,他關心房屋的各個內部系統(tǒng),如地基、構架、供電系統(tǒng)和管道設備等。房屋每部分工作都安全、正常。 單元測試是從開發(fā)者的角度來編寫的。它們確保類的每個特定方法成功執(zhí)行一系列特定的任務。每一個測試都要保證對于給定的一個已知的輸入應該得到所期望的輸出。

  功能測試類似于視察同一建筑現(xiàn)場的房主,他假定內部系統(tǒng)將正常運作,并假定建筑監(jiān)理員在執(zhí)行其任務。房主關心的是住在這所房子里將會怎樣。他關心房子的外觀如何,各個房間的大小是否合適,房子能否滿足家庭的需要,以及窗戶的位置是否有利于采光。

  ST(System Test)主要采采用功能測試(Functional Test),關注系統(tǒng)提供的功能特征及其不同的處理條件;測試功能的不同處理流程(包括正常處理的和異常處理);一個功能測試用例僅用于測試一個功能,一個功能可能需要多個功能測試用例來覆蓋。

  UAT(User Acceptance Test 用戶確認測試)主要采納場景測試(Scenario Test)場景測試關注于不同場景、事務、業(yè)務流程等;跨功能;僅用到各個功能的一部分處理流程;一個場景測試用例僅測試一個場景、事務或業(yè)務流程。

  三者的關系:房主對房子執(zhí)行功能測試。他從用戶的角度考慮問題。建筑監(jiān)理員對房子執(zhí)行單元測試。他從建筑工人的角度考慮問題。功能測試是場景測試的先決條件,只有功能測試已經完成并且其發(fā)現(xiàn)的問題得到解決,場景測試才可能較有效地得到實施;如果在場景測試中發(fā)現(xiàn)了大量本應在功能測試中發(fā)現(xiàn)的問題,那么說明功能測試急需加強。