ATPG(Automatic Test Pattern Generation:自動測試圖樣產生)是以電路的網表與故障模型為輸入,由EDA工具自動產生可偵測製造缺陷之測試圖樣的技術。對數億電晶體規模的晶片以人工撰寫測試圖樣是不可能的,現代數位電路的測試是以ATPG為前提才得以成立。
產生的思路是每次針對1個假設的故障,搜尋能將其「激發」並「傳遞到觀測點」的輸入值。例如要偵測某條導線固定為1的故障,必須給予使該導線為0的輸入(激發),並確保這個值的差異能傳遞到輸出或掃描正反器的路徑(傳遞)。這項搜尋以D演算法或PODEM等方法求解。
ATPG與掃描測試密不可分。若只有組合邏輯電路,搜尋相對容易,但在循序邏輯電路中,為了建立內部狀態需要很長的輸入序列。只要以掃描鏈讓所有正反器都能從外部直接設定與觀測,就能把問題化約為組合邏輯電路的測試產生,在實際可行的時間內產生圖樣。這就是DFT讓ATPG成為可能的關係。
產生結果的評估指標有故障涵蓋率與圖樣數這2項。涵蓋率越高,良品保證越確實;但圖樣數增加會使測試時間與測試機記憶體用量增加,反映在成本上。因此標準做法是以壓縮技術(測試壓縮)在內部展開掃描鏈,將外部給予的資料量削減1個數量級以上。
針對的故障模型也有多種。除了最基本的固定型故障之外,還有假設導線間短路的橋接故障,以及鎖定只在實際速度下才會出現之時序不良的轉態故障、路徑延遲故障等;隨著微縮,後者的重要性日益提高。工具由新思科技(Synopsys)、益華電腦(Cadence)與Siemens EDA提供。