
目次
アルゴリズム・データ構造とシステムのテスト
今回は、ITパスポートのテクノロジ系に分類されているアルゴリズム・データ構造と、マネジメント系に分類されているシステムのテストについて解説していきたいと思います。
アルゴリズムとデータ構造はシステムを組み立てるときに良く使用されているものを多く紹介していくので是非覚えて行ってください。
また、システムのテストについても、システムを導入した後に良く行われる事になる行為になってきていますので、知っていて損はないでしょう。
それでは早速見ていきましょう!
アルゴリズム
プログラムを書く際に、最終的に処理させたい内容が同じだったとしても、それまでに何通りもの処理手順が考えられます。
例えば、大量のデータから目的のデータを取り出す処理の際に、端から順番に探す方法や、ランダムに探す方法など、いくつもの手順が存在します。
この何通りもある処理手順の1つひとつのことを「アルゴリズム」と呼びます。
よりよいアルゴリズムを使用してプログラミングすることにより、処理が速く、無駄のないプログラムを作成することが可能となります。
フローチャート
アルゴリズムは、複雑になってくると頭の中だけで整理するのは難しくなってきます。そのため、図式化して把握する必要が出てきます。
アルゴリズムは「フローチャート(流れ図)」と呼ばれる図に表すことができます。
<フローチャート>
<フローチャートで使用される記号>
記号 | 名称 | 意味 |
端子 | フローチャートの始めと終わり | |
線 | ||
処理 | 代入・演算等の処理 | |
分岐、判断 | 条件による分岐処理の判断 | |
ループ端(開始) | ループのはじめ | |
ループ端(終了) | ループの終わり |
データ構造
コンピュータは、プログラムの内容に従ってメモリからデータを取り出し、処理を行います。そのため、適切なアルゴリズムでプログラミングを行うためには、データがメモリ上にどのような構造で保存されているかということも考慮していかなければなりません。
代表的なデータ構造は次のようなものがあります。
<データ構造の種類>
種類 | 特徴 |
配列 | 同じ形式の要素がいくつも並んだ構造。目的のデータが「何番目にあるか」を指定する事で、データを取り出すことが可能となる。データの順番を表す数のことを「添字」と呼ぶ。Excelのセルのような感じである |
キュー | 先に入れたデータを先に取り出す、先入れ先出し方法、またはFIFO(First In First Out)と呼ばれる構造。先頭のデータを取り出すのに効率的な構造。イメージとしては、底の抜けた水筒。 |
スタック | 最後に入れたデータから先に取り出す、後入れ先出しまたは、LIFO(Last In First Out)と呼ばれる構造。積み上げ形式の構造で、良く使用されるデータが常に上にあるので、効率よく取り出すことが可能。データを入れることを「Push」、出すことを「Pop」と呼ぶ。イメージとしては積み木。 |
木(tree) | 複数の節(node:ノード、要素)を階層状に枝でつないだ形をとる。上位にある節を親、下位にある節を子と呼ぶ。 |
リスト | 複数の要素を直線状につないだ構造。要素から要素への繋がりをたどることで、要素の探索を可能としている。
一般に、リストの各要素には、データ部とポインタ部を持っており、データ部にはその要素が所持するデータが収納されており、ポインタ部には「次の要素はどれか」を指し示す位置情報が収納されている。 |
テスト
プログラムは人の手によって書かれているため、どうしても間違いが発生してしまいます。プログラムの間違いのことを「バグ」と呼びます。
バグがそのまま残らないようにプログラミングを行ったらその都度綿密なテストを行って、バグを修正していきます。このことを「デバッグ」と呼びます。
また、システム開発プロセスにおけるテストでは、ただ単にプログラムがきちんと動作するかどうかだけではなく、「10秒以内に結果を出力する」といったシステムの性能についてもテストする必要が出てきます。
単体テスト
プログラムをここの機能単位に分割したものを「モジュール」と呼びます。
テストの際、まずはモジュールごとに正しく動作するかをテストしていきます。このことを「単体テスト」と呼びます。
単体テストには、「ホワイトボックステスト」と「ブラックボックステスト」の2つがあります。
ホワイトボックステストは、モジュールの内部構造に着目して、1つひとつが正常に動作するかをテストしていきます。
ブラックボックステストは、モジュールの内部構造は考慮せずに、入力したデータに対して仕様書通りの出力が得られているかどうかをテストしていきます。
統合テスト
単体テストが完了した複数のモジュールを結合して、正しく動作するかをテストしていきます。このテストのことを「結合テスト」と呼び、モジュール間のデータのやり取りや他のモジュールの呼び出しが正しく行われているかを確認します。
結合テストには、ボトムアップテストとトップダウンテストの2つがあります。
ボトムアップテスト
下位のモジュールから上位のモジュールへと順にテストする方法のことを「ボトムアップテスト」と呼びます。
上位には「ドライバ」と呼ばれるデミーモジュールを用意して行います。ダミーモジュールとは、中身が何もないモジュールで、処理を行わないため、他への影響がないようにします。
トップダウンテスト
上位のモジュールから下位のモジュールへと順にテストする方法のことを「トップダウンテスト」と呼びます。
下位には「スタブ」と呼ばれるダミーモジュールを用意して行っていきます。
システムテスト
統合テストが終了したら、プログラムのみでなくハードウェアなどと組み合わせてシステム全体をテストする「システムテスト」を行います。
システムがきちんと作動するかどうかをテストするほかに、大量のデータを処理させてレスポンスタイムを計測するなど、システムの持つ性能もテストしていきます。
単体テストからこのシステムテストまで、開発者が中心となって行っています。
運用テスト
最後に、実際にシステムを運用する本番の環境できちんと動作するかをテストする「運用テスト」を行います。
利用者が中心となり、業務手順通りに操作して問題なく動作するかを確認していきます。
<各テストで確認している内容>
要件定義 ⇔ 運用テスト
外部設計 ⇔ システムテスト
内部設計 ⇔ 結合テスト
詳細設計 ⇔ 単体テスト
とこれまで紹介してきたテストは、それぞれシステム設計のプロセスで設計された内容について正しく動作しているかどうかを確認しているのです。
退行テスト
プログラムにバグが見つかり、修正を行った場合はその修正によって他の部分に影響を及ぼしていないかどうかもテストしていく必要があります。これを「退行テスト(レグレッションテスト)」と呼びます。
まとめ
今回はアルゴリズムとデータ構造、テストについて解説していきました。
データ構造については若干わかりにくい部分もありますが、表で示したイメージをもっていただけたら分かりやすくなると思います。
ITパスポートの試験では優先度は少し低めになっていますが、それでも出題されることはあるので、一つ一つ丁寧に覚えて行ってくださいね!
それでは今回はここまでです!
ITパスポート試験におすすめのテキスト
ここでは、数あるITパスポート試験対策用のテキストの中から特におすすめのテキストを紹介していきます。
栢木先生のITパスポート教室
令和03年 イメージ&クレバー方式でよくわかる 栢木先生のITパスポート教室
- 栢木 厚
- 技術評論社
- Amazonで探す
この、栢木先生のITパスポート教室は書籍の帯に「103万人が選んだ教科書」と書いてあるように、毎年多くの受験者に読まれている参考書です。
テキストの中でも図を使った解説やイラスト分けを利用した分かりやすい解説が行われており、各章の終わりには問題演習を行う事もできるようになっており、インプットとアウトプットが同時にできるようになっています。
更に、アルファベットで書かれた用語は日本語で読み方を記載しておりますので読み方を調べたりする手間がかかりません。
IT系の知識にこれまで全く縁がなく、これから学習する人の気持ちに寄り添ったテキストだと言えます。
キタミ式イラストIT塾 ITパスポート
キタミ式イラストIT塾 ITパスポート 令和03年 (情報処理技術者試験)
- きたみりゅうじ
- 技術評論社
- Amazonで探す
この、キタミ式イラストIT塾は全体的に学習漫画のような書き方がされており、難解なIT用語を暑かったりしているにもかかわらず、スラスラと読みやすいのが特徴です。
おすすめ書籍の例に漏れず、過去問を掲載しているためインプットと同時にアウトプットを行い知識の定着をしっかりと確認しながら進める事ができます。
上記の「栢木先生のITパスポート教室」よりも更にイラストが多く活用されているため、活字を読んで学習するのが苦手だという方や、本当に読み進めやすいテキストを求めている方にもおすすめです。
いちばんやさしいITパスポート 絶対合格の教科書+出る順問題集
【令和3年度】 いちばんやさしいITパスポート 絶対合格の教科書+出る順問題集
- 高橋 京介
- SBクリエイティブ
- Amazonで探す
このテキストは出題範囲の広いITパスポート試験の中から、試験に出てくる重要なポイントに絞って重点的に解説をしているため、無駄なく短期間で合格を目指したい人におすすめの書籍です。
重要なポイントだけだから穴があると言ったこともなく、しっかりと基本知識を身につける事が出来る非常に良い書籍です。
重要用語を暗記するためのページもあるため、コツコツと隙間時間を使って暗記をする時にも非常に良い使い方ができるでしょう。