MasaoApril's Library.

Software Testingなネタを書いてみた。

テストエンジニアとしての土台

 開発の中でテストを考えるとき、学んだことのベースを活用していることが多々あります。テスト技術を進化させ、開発にフィードバックするためには様々な学の基礎を固める必要があります。組み込み機器開発の場合はどうなのか、まとめてみます。

ドメイン共通

 組み込みシステムに限らず、どのドメインでも必要なものを以下に示します。

英語

 情報収集手段として、IEEE/ISO/IECの規格やIETFなどの標準仕様を把握したり、世界中の技術動向を知ることです。日本語でも情報収集はできますが、翻訳されたものは数年後という場合や永遠に無いこともあるため、技術的にハンディキャップがあります。また、製品が海外展開されるときは海外のエンジニアやお客様とコミュニケーションすることもありますので、コミュニケーション手段としては必要になります。

数学

 (その他あると思いますが)以下4点が挙げられます。

 「函数」は、入力と出力の関係を考えるときに概念として必要です。「集合論」は、境界値分析や同値分割で必須です。「論理学」は、デジションテーブルを圧縮するときに必要な考え方です。「統計学」は、メトリクスを取るときに必要です。

学生実験/授業レポート

 理工系学部の方は必須科目でお馴染みですが、開発者に上手く伝わるインシデントレポートを作成するときに活かされます。特に「現象の記録」「データ整理」「考察」は、インシデントレポートを作成するときにノウハウとして蓄積されているとよいです。

組み込みシステム

 組み込みシステムで必要になりそうなものを以下に示します。

電気工学/電子工学

 「電気回路」で過渡現象による電圧低下時の不具合を見つけたり、「電子回路」や「ディジタル回路」でセンサの挙動を知り、テスト結果の判断に利用します。また、「ディジタル回路」で論理回路を設計するときにカルノー図を書きますが、デジションテーブルを圧縮するときに応用できます。

通信工学/無線工学

 OSI参照モデルの第1層(物理層)~第2層(データリンク層)を知った上でハードウェアを考慮すると、ハードウェア故障時のふるまいがどうなっていればよいか検討しやすくなります。

情報工学

 ハードウェア絡みのソフトウェアアーキテクチャを理解するときの一助になります。

さいごに

 テスト設計で数学に助けられた面が大きいので、高校数学や大学数学を復習すると吉。