HOME > ソフテックだより > 第345号(2020年1月8日発行) 技術レポート「試験項目の分類について」

「ソフテックだより」では、ソフトウェア開発に関する情報や開発現場における社員の取り組みなどを定期的にお知らせしています。
さまざまなテーマを取り上げていますので、他のソフテックだよりも、ぜひご覧下さい。

ソフテックだより(発行日順)のページへ
ソフテックだより 技術レポート(技術分野別)のページへ
ソフテックだより 現場の声(シーン別)のページへ


ソフテックだより 第345号(2020年1月8日発行)
技術レポート

「試験項目の分類について」

1. はじめに

私が携わった組込み開発で、CPUの生産中止により、他のCPUに置き換えて同じ機能を実現する案件がありました。
その案件では、基本の開発をした時に作成した試験項目書を利用して、試験を実施する予定でした。
しかし、試験項目書を確認したところ、仕様書に記載している機能的な確認が主な内容で、CPUを置き換えた基板の動作確認用としては、不十分な内容でした。
このため、新たに試験項目書を作成して試験を実施しました。
今回のソフテックだよりでは、新たに試験項目書を作成する時に意識した点について、紹介します。

2. テストの分類について

ISO9126(ソフトウェア品質評価に関する国際規格)では、ソフトウェア品質特性を定義しています。
試験項目書を作成する時は、このソフトウェア品質特性を網羅できるようにテストを分類分けして、作成しました。
なお、ISO9126のソフトウェア品質特性については、ソフテックだより167号「システム項目のリストアップ方法」でも紹介しています。

私は以下の表にとおりにテストの目的を分類分けしました。

表1.  テスト分類

No. テスト分類 ソフトウェア品質特性 内容
1 機能テスト 機能性 機能仕様書に記載された機能仕様を確認するテスト。
2 ストレステスト 効率性 短期間で重い負荷をシステムにかけるテスト。
3 ボリュームテスト 効率性 大容量のデータでシステムを確認するテスト。
4 設置テスト 使用性、保守性、可搬性 システムの起動など現場設置に関するテスト。
5 効率テスト 効率性 応答時間や処理時間等の検証をおこなうテスト。
6 回復テスト 信頼性 システムの回復機能に関するテスト。
7 信頼性テスト 信頼性 システムの信頼性を確認するテスト。

このようにテスト項目を分類すると、元の試験項目書は、No1の機能テストに偏っており、No.2〜7のテストが不十分であることが見えてきたため、不足している部分の試験項目を追加して試験項目書を作成しました。

以降では、試験項目の内容や試験項目にまとめたときに注意した点を具体的に紹介します。

3. 試験項目について

3.1 機能テスト

3.1.1 内容

機能テストでは、機能仕様書の内容を確認するテストのため、機能仕様書の項目を塗りつぶして、試験項目の記載漏れが無いことをチェックしながら、試験項目書を作成しました。

3.1.2 注意点

○入力内容や出力内容を明確にする
機能テストに限ることではありませんが、入力内容や出力内容を明確にすることが重要です。
試験項目を作成する際、入力内容に「正常値」、「異常値」と曖昧な記述にすると、テスト担当者によって入力する値が変わってしまいます。
また、出力内容についても「正常動作」や「異常動作」と記載すると、テスト担当者の判定基準によって結果が変わる可能性があります。
例えば10年後に違う人がテストをしても、同じ結果になるように、試験項目書を作る時は、曖昧な記載はしてはいけません。

入力内容を決める方法として、同値分割・境界値分析※があります。
この方法で、テストとして意味のある入力値を指定します。
出力内容は、出力のチェック漏れを無くするために、チェックすべき箇所を全て試験項目書に書き出す必要があります。
この時に注意する点は、試験項目の「記入漏れ」を無くするために、出力内容に「空白」を作らないことです。
出力内容として変化しない場合は、出力内容を空白にしてしまうことがありますが、試験項目書には「変化しない」と明確に記載する必要があります。

※さまざまなテストで利用できるテスト技法のひとつです。
例えば、テスト結果をグループ1(正常)、グループ2(正常)、グループ3(異常)、グループ4(異常)などとグループ分けして、それぞれ任意の入力値を選択してテストします。

○組み合わせやタイミングに注意する
入力内容や出力内容を明確にすることが重要と紹介しましたが、それだけでは、確認が不足する場合があります。
例えば、機能の組み合わせや、操作の順番によって、その機能の動作が変わる場合があります。
このような機能については、状態(条件の組み合わせ)と発生イベント(タイミング)をまとめた、状態遷移表※形式にして機能の動きを表現すると漏れなく機能の確認をすることが出来ます。

※状態遷移表は、2次元の表で表します。状態の軸とイベントの軸があり、交差するマスに遷移先と動作を記述します。

3.2 ストレステスト

3.2.1 内容

複数機能の同時実行や通信処理の負荷など、さまざまな種類の負荷をシステムにかける試験項目を作成しました。

3.2.2 注意点

○負荷がかかる機能や条件を把握する
機能や接続機器によって、短期間に負荷が集中する条件は異なります。
このため、システム全体を把握し、負荷がかかるポイントを把握する必要があります。
例えば、LCDの描画と通信が重なった場合の負荷や、短時間に大量のデータを受信した場合の負荷について、発生条件を検討し、実際に負荷をかけて確認をします。

3.3 ボリュームテスト

3.3.1 内容

ログの最大件数や接続機器の最大、受信バッファの最大値など、数量に関する試験項目を作成しました。
ストレステストとの違いは、時間に関する要素が無いことです。

3.3.2 注意点

○テスト環境の準備が重要
通常は、ログ件数の最大値や接続機器の最大台数は仕様で決められています。
このため、試験項目書にテスト項目を抜き出すことは可能です。
しかし、実際にテストをする場合に、最大の機器数を準備出来ない場合や、ログを最大件数蓄積するために、数日かかる可能性もあります。
試験項目書に記載しても、それが現実的ではなく、試験出来ないのでは意味がありません。
このような部分は、テスト方法や必要な機材について、顧客とも事前に相談する必要があります。

3.4 設置テスト

3.4.1 内容

システムの起動や起動時の条件など、現場での設置を想定した試験項目を作成しました。
システムの起動は、接続している機器の起動順を替えて確認する試験項目にします。

3.4.2 注意点

○異常状態での起動を意識する
システムを導入する際にすべての機器が正常状態になっている保障は、どこにもありません。
機器が未接続状態で起動した場合は、異常を検出できることを確認する試験項目を作成します。
さらに、異常が復帰することを確認する試験項目も必要です。
また、入力信号も、設置時に必ずOFFとは限りません。
システムを起動した時に、入力信号がONになっているケースの確認も重要です。

3.5 効率テスト

3.5.1 内容

通信等の応答時間、状態の検出時間、データの保存時間など性能を測定する項目を作成しました。

3.5.2 注意点

○同じ測定を複数回、複数パターン実施する
タイミングやシステム構成に応じて、測定時間にばらつきが出ます。
タイミングを狙って測定することが難しいので、複数回測定をおこなうように試験項目に記載します。
また試験項目書には、ばらついた場合の上限値と下限値を記載し、合否判定の基準を明確にしておくことも必要です。

3.6 回復テスト

3.6.1 内容

異常の発生と回復を確認する試験項目を作成しました。
発生すると回復できない(システムの再起動が必要)異常があるため、発生と回復を対にして試験項目を作成する必要があります。

3.6.2 注意点

○異常の発生と回復の条件を明確にする
異常の発生条件が複数ある場合、試験項目にすべての条件で確認するように記載します。
通信異常の発生を例にすると、「通信ケーブルの切断」と「通信相手のソフト終了」というように複数の条件を試験項目に記載します。
また、異常回復の試験項目も同様に回復条件を明確にします。

3.7 信頼性テスト

3.7.1 内容

72時間以上のヒートランや1万回の状態発生/復帰の繰り返し動作、通信異常の発生/復帰の繰り返し動作を確認する項目を作成しました。

3.7.2 注意点

○試験方法、結果判断基準を意識する
信頼性テストは、他の試験項目に比べて、時間がかかるため、何回も試験をするということができません。
そのため、事前に試験方法や結果判断基準を明確にして、操作の間違いが出ないように試験をする必要があります。
また、通信異常の発生/復帰の繰り返し確認については、リレーとPLCで通信ケーブルの断線と復帰を繰り返すような、仕組みを作りも必要になります。

4. おわりに

私が携わった開発で作成した試験項目書とそのとき感じた注意点について、紹介しました。

最近は、「画面の見やすさ」、「システムの使いやすさ」に関する試験項目も必要だと考えることがありました。
しかし、曖昧な部分が多く、合否判定もテスト担当者に依存してしまうため、実現出来ていません。
このような課題もありますが、試験項目書の作りの奥深さを考えながら品質向上に努めたいと思います。

(T.M.)


関連ページへのリンク

関連するソフテックだより

ページTOPへ