テストプログラムとは、ATE(自動テスト装置)上で動作し、半導体チップの試験の手順と合否の基準をすべて定義したソフトウェアです。どのピンにどの電圧とタイミングで信号を与えるか、どのテストをどの順番で実行するか、測定値がどの範囲なら合格か、不合格ならどのビンに分類するかが記述されています。同じテスト装置でも、テストプログラムを入れ替えることで異なる製品を試験できます。
テストプログラムは主に次の要素で構成されます。(1)ピンの設定:電源電圧、入力信号の電圧レベル、出力を判定するしきい値。(2)タイミングの設定:信号を印加する時刻や出力を比較する時刻(ストローブ)。(3)テストパターン(テストベクタ):入力と期待値の系列。(4)テストフロー:オープン/ショート試験、パラメトリック試験、機能試験などの実行順序と分岐。(5)リミットとビン定義:合格範囲と、結果に応じたビニングの規則です。
テストプログラムの記述環境はテスタのメーカーごとに異なります。Advantestの V93000ではSmarTest、TeradyneのUltraFLEXではIG-XLという開発環境が使われており、同じ製品でもテスタを変えるとプログラムを作り直す必要があります。このため、テスト技術者には特定テスタの環境への習熟が求められ、テストプログラムの開発は後工程における専門性の高い業務の一つになっています。
テストプログラムの出来はテストコストと品質を直接左右します。試験項目を削りすぎれば不良品の流出(テストエスケープ)が増え、項目を増やしすぎればテスト時間が延びてコストが上がります。そのため、量産開始後もテスト時間の短縮や、ウェハテストと最終テストの項目の最適化、統計的な判定基準を使うアダプティブテストの導入など、テストプログラムの改良が継続的に行われます。変更はそのまま品質に影響するため、版管理と承認の手続きが厳格に運用されます。