[ITパスポート]ライフサイクル(テスト・保守)[無料講座]

2020年4月23日

パソコンとグラフ

今回はITパスポートのライフサイクルにおける、テストと保守について学習していきます。

キュー
キュー
せっかくいい品物が出来てもエラーが発生したら事故になりかねんからな
くろん
くろん
ここが一番重要なポイントだにゃ

テストと保守の流れ

製品のプロトタイプが仕上がったら、最後はエラーが無いかチェックするためにテストを行います。

テストの目的はエラーなく動くことを確認するのではなく、エラーを検出することにあります。

特にソフトウェアにおいては複雑な動作を求めれば求めるほどエラーも発生しやすくなるので、それを見つけることがテストの目的となります。

テストでエラー(バグ)が発生した場合、そのエラーを取り除くためにデバッグと呼ばれる作業を行います。

テストが無事に終了すれば新システムに移行し、稼働後に保守(メンテナンス)を行います。さらに具体的な流れを見ていきましょう。

システムのテスト

設計作業においては大きなシステムを機能ごとに分割していき、最終的には最小単位であるモジュールに分割されます。

その後コーディングを行い作り上げていきますが、テストの場合は逆に小さい単位からテストを開始し、それを結合したテストを行っていきます。

システムのテストには以下のようなものがあります。

単体テスト

モジュール単位で行うテストになります。

結合テスト

機能ごとに分割・構造化された複数のモジュールを段階的に組み合わせて実施するテストになります。

システムテスト

サブシステム単位・システム単位でのテストです。テストする内容によってさらに以下の様に細分化されます。

  • 機能テスト・・・システム仕様書の機能を満たしているか
  • 性能テスト・・・要求される処理能力や応答時間を満たしているか
  • 例外テスト・・・操作ミスや例外的なデータが入力されても正常に動作するか
  • 障害テスト・・・障害発生時に回復機能が働くかどうか
  • 負荷テスト・・・大量のデータ処理や長時間の稼働など大きな負荷をかけても動作するか
  • 操作性テスト・・・ユーザが使いやすいかどうか

運用テスト

実際の運用と同じ条件下でテストします。

実際に業務等で使用する実データを用いて問題なく動作するか確認します。

受入テスト

作成されたシステムが仕様どおりに問題なく動作するかどうかをユーザ側が検証するテストになります。

最終段階のテストのため、ユーザが業務等で実際に使用するデータや操作方法を用いて行われます。

リグレッションテスト

保守作業の後に行われるテストで、保守において変更した箇所が他に影響しないかを確認します。

カズ
カズ
リグレッションテストってそんなに大事なの?
キュー
キュー
このサイトでもログインシステムを弄ったときに進捗管理が出来なくなった不具合があったけど、リグレッションテストを怠るとこういった不具合に気づけんくなるんや

テストの手法

システムのテストでは何をテストするかについて触れましたが、それ以外にどのようなテストをするかといった観点についても考える必要があります。

特にテストケースの設定方法は良く問われる内容なので、以下の二つのテストについて押さえて置いてください。

ブラックボックステスト

プログラムの内部構造を考えずに外部仕様に基づいてテストケースの設計を行うテストをブラックボックステストと言います。

モナ
モナ
文字通り、中の見えない箱に何を入れたら何が出てくるかをテストするんだニャ

ブラックボックステストではさらに以下の2つの方法に分けられます。

同値分割

入力に対して有効値と無効値を用意する方法を同値分割と呼びます。

中でも有効な値を有効同値クラス、無効な値を無効同値クラスと呼びます。

例えば偏差値40~60が対象データの場合において、35や66などは無効同値クラスとなり、45や58などは有効同値クラスになります。

限界値分析

判断の境目となるデータを中心にテストケースの設計を行う方法を限界値分析と呼びます。

有効な値の上限と下限のデータの周辺を重点的に検査していきます。

上記の例でいえば39、40、41や59、60、61辺りを重点的に調べていく形になりますね。

ホワイトボックステスト

ブラックボックステストとは逆に、システムの内部に着眼しテストケースを設計する方法をホワイトボックステストと呼びます。

具体的な手法は主に以下の二つです。

  • 命令網羅・・・全ての命令を一度は実行するようにテストケースを準備する
  • 分岐網羅・・・全ての分岐で真(YES)と偽(NO)を通るようにテストケースを準備する

いずれにしても内部のロジックを把握する必要があります。

システムの移行

新システムが完成してサービスを開始する場合、最後の工程で行うのがシステムの移行になります。

現行システムから引き継ぐべきデータやネットワーク、クライアントなどを新システムに移し替え、新システムに基づく業務に切り替える必要があります。

新システムへの移行では十二分に移行計画を練り上げ、準備を行う必要があります。また、多くのケースでは旧システムと新システムを並行稼働し、徐々に新システムへと切り替えていきます。

システムの保守

システム保守プロセスでは、障害対応、性能改善などを行うために、納入後のシステムやソフトウェアを修正したり改変したりする必要があります。

カズ
カズ
時代に合わせてメンテナンスを行わなければユーザに不便な思いをさせちゃうもんね

保守に関しては対象となるものによって以下の二種類に分かれます。

  • ハードウェア保守・・・機器の故障や寿命による交換など、物理的な設備の更新や改修をする
  • ソフトウェア保守・・・運用開始後のソフトウェアに対して変更や機能改善への対応、プログラムの欠陥への対応や環境の変化に応じたプログラム修正作業を実施する

次に、目的による分類は以下の三つに分かれます。

  • 予防保守・・・定期的にシステムのメンテナンスを行う事で、障害発生を未然に防ぐために行う
  • 事後保守・・・障害が発生した際に、それを取り除くために行う
  • 定期保守・・・計画的、定期的に行う

暗記事項

コードレビュー・・・人がプログラミング言語で書いた言語をソースコードと呼びますが、そのソースコードを記述者とは別の人が詳細に調べ、記述者にフィードバックを行う事を言います。

検収・・・発注に応じて納められた品などを、注文の際の条件に合っていると確かめたうえで受け取る事です。

スポンサーリンク

ライフサイクル(テスト・保守)・例題

実際に例題を解いて問題に慣れていきましょう。

問題

問1

ホワイトボックステストのテストケース作成に関する記述のうち,適切なものはどれか。(H.25/春)

ア 入力条件が数値である項目に対して,文字データを設定してテストケースを作成する。
イ 入力データと出力データを関係グラフで表現し,その有効な組合せをテストケースとして作成する。
ウ 人の体重を入力するテストで,上限値を300kg,下限値を500gと設定してテストケースを作成する。
エ プログラムの全ての分岐経路を少なくとも1回実行するようにテストケースを作成する。

問2

ソフトウェア保守に関する説明として,適切なものはどれか。(H.31/春)

ア 稼働後にプログラム仕様書を分かりやすくするための改善は,ソフトウェア保守である。
イ 稼働後に見つかった画面や帳票の軽微な不良対策は,ソフトウェア保守ではない。
ウ システムテストで検出されたバグの修正は,ソフトウェア保守である。
エ システムを全く新規のものに更改することは,ソフトウェア保守である。

問3

システム開発のテストを,単体テスト,結合テスト,システムテスト,運用テストの順に行う場合,システムテストの内容として,適切なものはどれか。(H.28/春)

ア 個々のプログラムに誤りがないことを検証する。
イ 性能要件を満たしていることを開発者が検証する。
ウ プログラム間のインタフェースに誤りがないことを検証する。
エ 利用者が実際に運用することで,業務の運用が要件どおり実施できることを検証する。

解説(クリックで展開)

ライフサイクル(テスト・保守)・まとめ

今回はライフサイクルにおけるテストについて学習を深めていきました。

今回でライフサイクルマネジメントに関する内容はおしまいになりますが、テストではよく問われる部分です。

技術的要素よりも覚えることが多いので、何度も図に書きながら学習していきましょう。

カズ
カズ
モデルとかケースは視覚的に覚えよう!

次回はプロジェクトマネジメントに関して学習します。


スポンサーリンク