現在、企業が直面している大きな課題の1つが、テストコストの急増です。テスト対象のデバイス自体が複雑化しているため、そうしたデバイスをテストするためのコストも膨大になっています。製品の品質に、テストが重要な意味を持つことに変わりはありません。しかし、デバイスが複雑になり、これまで以上に高度で新しい計測器が求められているにもかかわらず、これまではデバイスの製造コストの低減に対してテストコストの削減はそれほど進んでいませんでした。
テストエンジニアは、現在の製品開発環境において以下のような現実を目の当たりにしています。
開発サイクルの短縮や、製品ラインアップの拡大、予算の削減、そして指数関数的に高まる製品の複雑性といった課題に応えるため、テストエンジニアは特定用途向けの画一的なターンキー型テストシステムと決別する必要に迫られています。そのような従来のシステムは、新たに投入される複雑な製品をテストするための機能を採用し追加できる柔軟性に乏しく、ラックアンドスタックの箱型計測器や、独自開発の大型自動テスト装置 (ATE) システムでは、要求の厳しい現代の市場に追いついていくことが難しくなっています。
このような厳しい要求に応えようと、テストに携わるマネージャやエンジニアは、業界標準に基づいた、ソフトウェアを中核としたモジュール式テストアーキテクチャへの移行を始めています。このアーキテクチャを導入すれば、以下のようなメリットが得られます。
効率的なモジュール式テストシステムを設計するには、テストシステムを構成するコンポーネントを階層ごとに切り離すアーキテクチャが必要です (図1)。計測器をテストコードから分離し、テストコードから最上位のテスト管理フレームワークを分離するアーキテクチャです。テストシステムのさまざまなコンポーネントをこのようにモジュールとして切り分けることに加えて、ソフトウェアで機能を定義できることが、柔軟性の高いテストシステムをより短期間かつより高いコスト効率で開発するための鍵になります。
図1: テストシステムのアーキテクチャ
自動テストシステムでは、いくつかのタスクと計測を実装することが求められます。それらの一部は特定の検査対象デバイス (DUT) に固有なものとなりますが、それ以外は別のDUTでも共通して利用できます。従来型のテストシステムでは、この両方を一緒にして、単一の同じソフトウェアレイヤに実装していました。そのため、各部のコードの変更や、プロジェクト間のコードの再利用は極めて難しいというのが実情でした。
モジュール式テストシステムのアーキテクチャによって、すべてのデバイスに共通なシステムレベルのタスク (テスト管理ソフトウェア) と、DUTに応じて変わるDUTレベルのタスク (テストコード) とを明確に切り分けられるようになります。表1に、DUTレベルのタスクとシステムレベルのタスクの例を示しました。このように両者を切り分けることで、ユーザはテスト管理ソフトウェアのコンポーネントを、実際のテストコードに影響を与えることなく、手早く再利用/保守/変更することが可能になります。反対にテストコードについても、同様の対応が可能です。
デバイス
| デバイス
|
計測器の構成 | オペレータインタフェース |
計測 | ユーザ管理 |
データ収集 | DUTトラッキング |
結果の解析 | テストフロー制御 |
キャリブレーション | 結果の記録 |
テストモジュール | テストレポート |
表1: テスト開発ソフトウェアで行うタスクとテスト管理ソフトウェアで行うタスクの比較
NIのTestStandは、テストシステムのシステムレベルソフトウェアを開発してデプロイ、実行するための、すぐに実行できる高機能なテスト管理ソフトウェアです (図2)。TestStandは根本的にはテストエグゼクティブであり、ほぼすべてのプログラミング言語で記述されたテストコードシーケンスを呼び出して実行することが可能です。さらにTestStandは、さまざまなテストシステムに共通するテスト管理ソフトウェア機能をあらかじめ用意しており、ユーザがすぐに使えるように提供しています。以下のような機能があります。
また、TestStandは、それ自体がモジュール式ソフトウェアアーキテクチャを採用しています。そのため、ユーザはTestStandを入手してすぐにこのテスト管理ソフトウェアを構成するコンポーネントをそのまま利用したり、あるいはシステム特有の要件に合わせてカスタマイズして使用したりすることもできます。
図2: TestStandシーケンスエディタ
企業によっては、テストエグゼクティブを独自に開発しており、テスト管理ソフトウェアをゼロから自社開発するために貴重なエンジニアリングリソースを割いてきました。このような戦略は、生産性を高めることが難しく、ソフトウェアの保守に要するリソースを長年にわたって投入し続けなければならないという課題があります。そこで、TestStandのような市販のテスト管理ソフトウェアを利用すれば、デバイスに依存しない機能の開発に費やすリソースを低減し、デバイスごとに異なるタスクを担うテストコードの開発に注力できるようになるので、生産性を最大化することが可能です。詳細については、テスト管理ソフトウェアTestStandのデモをご覧ください。
TestStandは、LabVIEW、LabWindows™/CVI、C/C++、.NET、さらにはスクリプト言語に至るまで、ほぼすべてのプログラミング環境や言語で記述されたテストコードを呼び出すことができます。ただし、汎用プログラミング言語のほとんどは、テストアプリケーションや計測アプリケーション用に最適化されていません。そのため、計測器との通信、データの解析、そのデータをエンジニアにとって意味のある形式で表示するといったタスクのコードを記述するのは難しいというのが実情です。
LabVIEWは、直感的なグラフィカルプログラミング環境によってテストアプリケーションの開発期間を短縮できるだけでなく、以下の機能を提供することで、ユーザの生産性を高めることも可能です。
NIは、従来型のテキストベース言語でテストコードを開発するためのツールも提供しています。LabWindows/CVIはANSI Cの開発環境であり、Measurement StudioはVisual Studioのプラグインです。テストや計測に固有のユーザインタフェース制御機能および解析機能をANSI Cや.NET、Microsoft Visual C++に追加することができます。
テストアプリケーションや計測アプリケーションに最適化されたプログラミング言語を選ぶことで、テストコードを開発する時間と労力を削減でき、費用対効果を劇的に改善することが可能です。詳細については、ホワイトペーパー「アプリケーションソフトウェアの開発に最適な環境を選ぶ」をご覧ください。
デバイスの複雑度が高まるとともに、開発サイクルの短縮と予算の削減が進んでいます。これはエンジニアリングチームにとって、現行の自動テスト戦略を再評価し、効率を高めつつコストを削減できる領域を探るきっかけになっています。次世代のテストシステムを設計する際には、システムの柔軟性と拡張性を高めながら、性能を改善し、システムのコストを低減しつつ、寿命を延ばせるような戦略を採用することが重要です。
ソフトウェアを中核としたモジュール式自動テストシステムは、スタンドアロン型計測器をベースにした従来のソリューションや、コストが非常に高くつく独自のATEシステムが抱えていた弱点を乗り越えることができます。テストシステムを構成する個々のコンポーネントをはっきりと切り分けて、ソフトウェアで動作を定義できるようにすることにより、テストシステムを使用して、今日の製品開発の課題に対応した、柔軟性と拡張性が高く、コストの低いソリューションを実現することが可能です。テスト管理ソフトウェアのNI TestStandとグラフィカルプログラミング言語のLabVIEWで構築したモジュール式のテストソフトウェアアーキテクチャは、最新のスマートフォンや3Dテレビから、ミッションクリティカルな次世代の防衛システムや医療機器に至るまで、幅広い用途において、テストシステムのコストを最適化して削減できることが実証されています。
LabWindowsという商標は、Microsoft Corporationからの使用許諾を得て使用しています。Windowsは、Microsoft Corporationの米国およびその他の国における登録商標です。