ダウンロード

【第一弾】JSTQB Foundation Level試験の勉強

JSTQBとは

最近、システム障害や不具合騒動などテスト不足をよく目にする。これは業界全体でテストの技術力が低迷しているからである。ソフトウェア技術者向けの資格はたくさんあるが、テスト技術力向上させるきっかけとしてJSTQB(日本ソフトウェアテスト資格認定委員会:Japan Software Testing Qualifications Board)が、テスト技術者の資格認定制度を開始した。

JSTQBはISTQB(International Software Testing Qualifications Board)に加盟しているため、JSQTBが運営するソフトウェアテスト技術者資格は海外でも有効な資格である。

Foundation Level試験

Foundation Levelは最低限のソフトウェアテスト技術のスキルを認定するもので、資格試験はISTQBテスト技術者資格制度シラバスをベースに出題される。上位資格としては、Advanced Level(テストマネージャー、テストアナリスト、テクニカルテストアナリストの3つの構成)、Expert Levelがある。

2011年10月時点でのISTQB加盟各国のFoundation Level資格取得者数
・米国 3646人
・ベルギー、オランダ 5522人
・ドイツ 7012人
・インド 9530人
・日本 3191人
・英国 40297人

ソフトウェアの欠陥用語

ソフトウェアの欠陥と一言で表現することは多いが、必ずしも正確な言い方ではない。ISTQBでは、欠陥に関する用語を以下の4つに分類している。

エラー(誤り)
エラーとは間違った結果を生み出す人間の行為と定義している。
フォールト(fault)
要求された機能をコンポーネントまたはシステムに果たせなくする、コンポーネントまたはシステムの中の不備と定義している。
故障(failure)
コンポーネントやシステムが、期待した機能、サービス、結果を提供できないことと定義している。
インシデント
ソフトウェアシステムを実際に使うユーザやテスト担当者が期待する動きと、実際の動きが一致しない事象と定義している

デバッグとは?

デバッグとテストは違う。テストとは、欠陥から発生する故障を発見することを目的としている。これに対してデバッグとは、故障の原因を突き止め、解析し、取り除く一連の開発の活動である。

ソフトウェアテストの原則

原則1:テストは欠陥があることしか示せない
テストをして故障を見つけることができない場合、本当にソフトウェアに欠陥がないか、たまたま故障しなかっただけかもしれない。テストでは、「故障する=欠陥がある」ことは示すことができるが「故障しない=欠陥がない」ことは示すことができない。

原則2:全数テストは不可能
全数テストとは、ソフトウェアに入力する可能性のある、全てのパターンをテストすることである。2つの数の和を求めるプログラムがあり、入力できる数が2桁までの入力の場合、正常系だけでも100×100=10000通りになり、異常系(-1や100など)を入れると物凄い数になり、これらの組み合わせを考えると更に多くなる。

原則3:初期テスト
テストはソフトウェア開発もしくはシステム開発のなるべく早い時期に開始し、なるべく早い時期に欠陥を見つけるようにすることが良い。欠陥を見つけるのがその欠陥を作りこんでしまった時期から離れてしまうほど、修正コストは指数関数的に大きくなる。例えば、大きな壁の色ぬりでペンキの色を間違えてしまった場合、ペンキを用意した時点で気づけばペンキを取り替えれば済み、塗り始めなら塗り直せば良い。塗り終わった後だとペンキ代もペンキを塗るのに費やした時間も丸々無駄になってしまう。

原則4:欠陥の偏在
ソフトウェアの品質は均一なものではなく、欠陥が見つかるのはある部分に集中していることがよくある。一説には、ソフトウェアの欠陥の8割は全体の2割の箇所に集中して存在しているという話もある。このような欠陥の偏在は、過去の不具合分析や、直近のテスト結果によって予測することができるため、予測結果に基づいて重点的にテストする箇所を絞り込むことで効率よくなる。

原則5:殺虫剤のパラドックス
害虫を退治するのに、同じ殺虫剤をずっと使い続けていると、体制ができてだんだん効かなくなってしまう。一つのソフトウェアに対して同じテストを何度も繰り返すと、欠陥をどんどん直しているため、最終的にはそのテストでは新しい欠陥を見つけられなくなる。なので、ソフトウェアテストでは、新しい内容のテストを常に作っていく必要がある。

原則6:テストは条件次第
ソフトウェアが使われる状況、目的によって、テストの方法を変える必要がある。24時間稼働し続けなければならないシステムではシステムが落ちないようなテスト、eコマースのシステムであればセキュリティや正確性を重要視する必要がある。このように、全てのソフトウェアに共通するテストはない。

原則7:バグゼロの落とし穴
ソフトウェアテストで故障を見つけて、欠陥を完全に直したとしても、ソフトウェアとしては役に立たないことがある。とある値が入力できないため、その値を入力できるように修正しても、その修正により入力してから出力するまでの時間が10倍になってしまっては意味がない。よって修正を行うことは大切だが、修正を行う際に、機能や性能、システム全体に影響がないか、といった確認することも修正する上で大切。


宣伝

ITエンジニア向けの勉強会での記事を投稿しています。
興味がある方はnoteアカウントをフォローして頂けると嬉しいです。
Twitterもよろしくお願いします。@TTrpbm

最後まで見て頂きありがとうございます! フォローやサポートして頂けると、励みになります。