ソフトウエア開発に関する資格試験
世の中にはさまざまな資格試験があります。たとえば、車を運転するためには運転免許試験に合格しなければなりませんし、医師や弁護士など試験に合格しないと就けない職業もあります。
一方、システムエンジニアやプログラマーなどのソフトウエア開発者になるには資格は必要ありません。ソフトウエア開発者向けにも、経済産業省が認定する情報処理技術者試験参考1や、ITベンダーなどが認定する資格などがあります。それらの資格をもっていると企業の採用で優遇されることはありますが、絶対にもっていなければならないわけではありません。言葉は悪いですが、なろうと思えば誰でもなれてしまうのがソフトウエア開発者です。
しかし、実際にソフトウエアを開発するためには、一定水準以上のスキルがないと難しいでしょう。そのスキルを測るために、先に挙げたような資格試験を活用できます。たとえば情報処理技術者試験では、ソフトウエア開発全般にわたる基礎知識、あるいはデータベース、ネットワークなどの特定技術分野に特化したスキルを認定します。また、ITベンダーが認定する資格では、特定のプログラミング言語やミドルウエアなどを使いこなすスキルがあるかどうかを認定します。
ソフトウエア開発プロジェクトのチーム編成をする際には、これらの資格の保有状況を参考にして、適切なスキルをもった人材に適切な役割を与えるのが望ましいでしょう。また逆に、期待する役割を果たしてもらえるように人材育成をする上で、これらの資格試験でスキルレベルを測るという活用もできます。
そこで今回は、「品質の高いソフトウエアを開発する」ことに焦点を当て、ソフトウエア品質に関する2つの資格試験を紹介します。ソフトウエア開発に関わるすべての人がソフトウエア品質に関わると言っても過言ではありません。つまり、ソフトウエア開発者やプロジェクトマネージャー、ソフトウエア開発会社の品質保証部門のスタッフだけでなく、ソフトウエアの営業やソフトウエアを発注する立場の方なども身につけておいたほうがよいスキルであると考えます。
JSTQB認定テスト技術者資格
1つ目に紹介するのはNPO法人ソフトウエアテスト技術振興協会(ASTER)参考2が運営するJSTQB(Japan Software Testing Qualifications Board)参考3です。この資格は、文字通り「ソフトウエアテスト」の領域に特化したものですが、ソフトウエアテストを広い意味で捉えており、「レビュー」もソフトウエアテストの一部(静的テスト)としています。つまり、ソフトウエアの品質保証に不可欠な技術であるソフトウエアテストやレビューのスキルを認定するための資格試験です。
JSQTBの特長は国際的に通用する資格であることです。JSTQBはソフトウエアテストに関する国際的な資格であるISTQB(International Software Testing Qualifications Board)参考4と相互認証しています。したがって、日本でJSTQBの資格をとれば、アメリカや中国に行って「ISTQBの資格を持っている」と言って通用することになります。
JSTQBの資格は図1のように大きく3つのレベルに分かれています。
図1:JSTQB(ISTQB)の資格レベルと資格種別の構成(2015年11月末時点)
最初のレベルはFoundation Levelで、ソフトウエアテストに関する基本的かつ幅広い知識が求められます。Foundation Levelの合格者数は全世界で40万人を超え、2006年から試験が始まった日本でも1万人以上の合格者がいます(2015年11月末時点)。
Foundation Levelよりも上位のAdvanced Levelでは、より高度な知識が求められます。Advanced Levelはソフトウエアテストでの役割に応じた3つの資格種別に分かれています。Test Managerはテストの計画立案や管理をする人、Test Analystは主に機能テストのテストケースを作成する人、Technical Test Analystはプログラマーに近いレベルのテストや非機能テストをする人に向けた資格種別となっています。
このうち、日本ではTest Managerの試験が2010年から始まり、400人弱が合格しています(2015年11月末時点)。さらに、2016年2月にTest Analystの第1回試験参考5が開催されることになり、多くの受験者が見込まれています。
ソフトウエア品質技術者資格認定(JCSQE)
2つ目に紹介するのは日本科学技術連盟が主催するソフトウエア品質技術者資格認定参考6です。これは以前のイマ旬参考7でも取り上げたソフトウエア品質知識体系ガイド(SQuBOK®ガイド)参考8を基にした資格試験です。SQuBOKガイドでは、ソフトウエアテストやレビューのみならず、ソフトウエア品質の定義・概念や品質管理、さらには品質保証に必要な技術に至るまで、ソフトウエア品質に関するあらゆるトピックを網羅しています。したがって、出題範囲が多岐にわたります。ソフトウエア品質技術者資格認定は初級、中級、上級の3つのレベルに分かれており、初級試験、中級試験の有資格者はそれぞれ1834名、78名で、上級試験は今後設置の予定となっています(2015年11月末時点)。
初級、中級のシラバス、すなわち出題範囲は、ともにSQuBOKガイドが基になっているため、学習項目は共通です。ただし、各学習項目に対して求める知識レベルが異なります。知識レベルの定義と初級、中級での学習項目数の違いは表1の通りです。たとえば構成管理という学習項目は、初級ではレベルL2だったものが、中級では2つの学習目標に分かれて、それぞれレベルL3、L4に上がります。初級はシラバスを暗記すれば解ける問題が多いかもしれませんが、中級になると知識を活用・応用する能力が問われるようになることが分かります。
表1:ソフトウエア品質技術者資格認定の知識レベルと学習項目数
資格試験の活用
よく言われることですが、資格試験は合格することが目的になりがちです。会社のノルマであったり、合格すると報奨金が出たりすると特にその傾向が強くなります。しかし本来は、試験に合格するに足る知識やスキルを身につけることが重要で、資格試験はその達成度を測るための手段にすぎません。
したがって、今回ご紹介した資格試験も、決して受験することを勧めているわけではありません。最も重要なのは、これらの試験で求められている学習内容を理解することです。JSTQBでは試験のシラバス(学習事項)が無料で公開参考9されていますし、ソフトウエア品質技術者資格認定では先ほども紹介したSQuBOKガイドが参考図書となっています。どちらもソフトウエアテストやソフトウエア品質に関する方法論、技法、ノウハウといったものが体系的にまとめられた非常に有用な教科書です。また、JSTQBが提供しているソフトウエアテストの標準用語集を使えば、異なる会社や異なる国の方々と共通の用語で話ができるようになり、コミュニケーションロスを減らせるメリットがあります。資格試験を受験する、しないにかかわらず、これらのシラバスや用語集を一読することをお勧めします。その上で、本当に正しく理解できているかどうかを客観的に知りたいという方で、かつ予算に余裕のある方は、力試しに受験してみてはいかがでしょうか。
NTTデータでは、社内の資格認定の条件にソフトウエア品質技術者資格認定を採用しています。また、社内の開発・管理標準TERASOLUNA®の策定に、JSTQBのシラバス・用語集やSQuBOKガイドを参考にしています。
参考文献
- 参考1IPA 独立行政法人 情報処理推進機構:情報処理技術者試験(外部リンク)
- 参考2NPO法人 ソフトウエアテスト技術振興協会(ASTER)(外部リンク)
- 参考3JSTQB 認定テスト技術者資格(外部リンク)
- 参考4ISTQB(International Software Testing Qualifications Board)(外部リンク)
- 参考5JSTQB認定テスト技術者資格試験実施要綱(外部リンク)
- 参考6ソフトウエア品質技術者資格認定(JCSQE)(外部リンク)
- 参考7SWEBOKとSQuBOK®~2つの知識体系ガイドの改訂~
- 参考8SQuBOK策定部会(編), ソフトウエア品質知識体系ガイド(第2版) -SQuBOK Guide V2-, オーム社
- 参考9JSTQB 認定テスト技術者資格-シラバス(学習事項)・用語集(外部リンク)