情報処理技術者試験では出題されないのですが、IT技術者として当然知っておくべきテスト手法として「現新比較」というものがあります。
これは、システムを改修した際に思わぬ箇所に影響が出ていないことを確認する(無影響確認)ための手法であり、改修前の出力と改修後の出力を比較し、改修の影響を受けるべき箇所以外は差異がないことを確認する、というものです。
この手法は単体テストからリリース後の確認まで工程を問わず使用される手法です。
例えば、プログラムを製造する場面で、「販売情報管理システムの取引ファイル出力プログラムについて、ポイント払いのレコード(ポイント払いされた場合)にポイントの有効期限を更新するように改修する。それ以外の箇所は変更しない。」という改修を行った場合、単体テストでは「ポイント払いのレコードはポイントの有効期限以外は現新で差異が無いこと」「ポイント払い以外のレコードは現新で差異が無いこと」を検証するべきです。
直すべきところだけ直したつもりなのに、知らず知らずの内に他の箇所にも影響していたというのは意外とよくあります。
現新比較を行わないと、本来見つかるはずのバグが見つからず、後でバグが見つかることになってしまいます。
システム開発に慣れ始めた頃が危ないです。「この改修で他に影響するわけないだろう」と思わず、現新比較はしっかり行うようにして下さい。
現新比較の具体的な方法としては、以下のようなものがあります。
1.ファイル・テーブル・電文のレコード等、出力が文字列の場合
・WindowsのfcコマンドやLinuxのdiffコマンド
完全一致する場合等、ごく簡単な場合に。
・WinMerge等の差異比較用のソフトウェア
1レコードの内の一部が異なっている場合がある等、少し複雑な場合に。
・Excelやjava等で作成した独自ツール
複雑なデータ加工が必要な場合に。
改行コード付与や一部項目除外等で済むなら、Linuxのfoldコマンドやcutコマンド等を組み合わせるだけでも十分です。
2.Windowsで生成した帳票・ハガキ等、出力がPDFファイルの場合
・2つのPDFファイルを開き、画面を切り替えて目視
アナログですが、簡単な比較なら結局これが一番早いです。
・AdobeAcrobatやDiffPDF等のPDF比較用のソフトウェア
大量のPDFファイルを機械的に比較する必要があるなら必要です。
3.Web画面のキャプチャ等、出力が画像の場合
・2つの画像を異なるファイルの同じ個所に張り付け、画面を切り替えて目視
アナログですが、簡単な比較なら結局これが一番早いです。
・ImageMagick等の画像比較用のソフトウェア
ソフトウェアを導入することで、流行りの自動化も可能になります。
4.プリンターで出力した帳票やハガキ等、出力が紙媒体の場合
・出力された紙を重ねて透かして目視
アナログですが、これしか手段がない気がします。
いかがでしたでしょうか。
現新比較について研修という形で座学で教わることは少ないと思いますが、実務では重要になります。
まだ実務で現新比較をあまり行ったことがないのであれば、こういったことを実務では行っているということを知っておいた方がスムーズに仕事に取り掛かれると思います。
次回からも役に立つ情報を提供していきたいと思います!
コメント