プログラマを目指す学生であれば、何らかの資格取得を目指して勉強していると思います。資格を取得して勉強している時や友達との会話にもあるかもしれませんが、「資格は役立つのだろうか」という疑問です。「就職には有利になりそうだけど実際の仕事では役に立つのか」という疑問は、私も学生時代から勉強中に考えていたことです。そこで、私が仕事をしている中で、これは資格取得で役立った点を紹介していきます。また、資格は抽象的に説明されることが多いので参考書よりは偏ってしまうかもしれませんが、私が経験した範囲の実態で書こうと思っています。
その1は、単体テストに付いてです。はじめに紹介するのが「単体テスト」と思われるかもしれませんが、アルバイトやはじめの仕事に単体テストを任されることもありますし、プログラミングには慣れていても単体テストはやったことがなかったりすると思います。私自身は、基本情報を勉強中に単体テストが実際にどのように行うのが分からなかった一つでもあります。
単体テストは、プログラマの仕事の範囲なので、資格では、「基本情報技術者試験」や「ソフトウェア開発技術者」などが、該当するでしょう。単体テストをするには、何をテストするかを記入するために、マトリックスを使用することが多いようです。マトリックスは、設計やテストに関係なく情報整理にも使われているため、「初級システムアドミニストレータ」でもテスト範囲です。はじめに言っておくと単体テストに限定しても「基本情報技術者試験」、「ソフトウェア開発技術者」や「初級システムアドミニストレータ」は仕事の役に立っていると私自身は感じています。
単体テストの説明を少ししておきましょう。単体テストは、ウォータフォールモデルのプログラミングに該当します。テスト対象範囲は、自分が作成したモジュールのテストです。プログラミングが完了するとおおよそのテスト数を決め、チェックリスト(テスト内容)を作成しチェックリストに基づいてテストを行います。私自身は、プロジェクトにかかわった件数は少ないですが、テストを実施する場合は、チェックリストに基づいて証拠を取ることが多いということを聞きました。証拠の話は、参考書に記述さていないので参考になると思います。
テスト数を決めるのは、基本情報やソフ開で勉強したのがそのまま役立ちます。ただ、資格の場合、特に情報処理技術者試験は抽象的、学術的な事が問われるので、単体テストの経験が無いとより難しく考えてしまう説明が多いように感じます。ソフ開では、「ファンクションポイント」や「COCOMO」が中心となって出題されますが、それ以外にも「ハルステッドモデル」や「SLIM」などの説明が記述されていることから難しく考えてしまう点かもしれません。
私が経験したのが、ステップ法のNCLOC法です。LOC法は、ソースプログラムの行数からステップ数を決める方法で、1万行あれば、1万ステップ(10K)です。LOC法は、ただ単純なソースプログラムの行数ですが、NCLOC法ではコメント行を抜いた行数からステップ数を決めます。NCLOC法で10Kならどれくらいテスト数をこなせば良いかですが、独学などで勉強するのであれば、1割の1,000個を目標にテストを作成すると実態に近くなってくると思います。
次回は、ブラックボックスに付いてです。