ソフトウェアというものがこの世に生まれてから、ソフトウェアテストもまた同時に発展を続けてきました。
これまでに、ソフトウェアテストの中でももっとも重要で、ソフトウェアテストに関わる多くの原理・原則に共通した考え方がソフトウェアテストの7原則。
ここでは、ソフトウェアテストの7原則について解説します。
テストでは「故障が起きた = 欠陥がある」という証明はできても、「故障が起きない = 欠陥がない」とは証明することができません。
テストをおこなうことで、故障が起きれば、そのソフトウェアに欠陥があることは分かります。また、その原因を究明すれば、欠陥を取り除くことができます。
ですが、テストをしても故障が起きなかった場合は?本当にそのソフトウェアには、欠陥がないのでしょうか。
そのテストでは故障が起きなかったが、別の条件下では故障が起きるのかもしれません。テストケースに漏れがあって、たまたま故障が起きる値でテストがされなかっただけかもしれません。
「全数テスト」とは、ソフトウェアに入力する可能性のあるパターンを、すべてテストすること。
しかし、ソフトウェアに入力する可能性のあるすべてのパターンを抽出すれば、テストケースの範囲は膨大な量。単純な機能レベルのテストなら可能かもしれませんが、より詳細なテストの場合は現実的ではありません。
そのため、実際のテストでは、ソフトウェアの性質、目的、使われ方、考えられるリスクなどにより、重点的にテストをおこなう場所を絞ったり、優先順位をつけたりしてテストをおこないます。
ソフトウェア開発の早い段階からおこなわれるのが「初期テスト」です。ソフトウェアの開発において、欠陥がないことが理想ですが、人が作っている以上は、完璧なソフトウェアを開発することは現実的ではありません。
欠陥は起こりえるものとして考えると、欠陥がいつ見つけられるかが重要です。ソフトウェアの開発開始から欠陥が発見されるまでの期間が開けば開くほど、その影響範囲は大きくなってしまいます。そのため、いち早く欠陥を見つけるために、初期テストを行います。
ソフトウェアテストの悩みは、そのほとんどが「品質・コスト・納期(QCD)」に関わる課題です。しかも早急に対応が必要なことが多いので、QCDの課題解決に長年携わってきた、実績の豊富な第三者検証会社に依頼するのがベター。このサイトでは、「テスト対象別」におすすめの3社を詳しく紹介しています。ぜひ以下のボタンからチェックしてみてください。
一説には、ソフトウェアで発見される欠陥の8割は、ソフトウェア全体の2割に集中しているともいわれています。
欠陥位置に偏りがあるというデータが存在する場合、過去の欠陥分析や直前のテスト結果を参考にして、欠陥位置を予測し、テストの焦点を絞ることが効率的だと言えます。
害虫駆除にずっと同じ殺虫剤を使っていると、そのうち耐性を持つ個体が現れ、殺虫剤が効かなくなります。
こういった耐性は、ソフトウェアテストでも同じような傾向がみられ、同じテストを何度も繰り返していると、そのテストでは新しい欠陥が見つからなくなることがあります。
同じテストをずっと続けていると、慣れから起こる見落としなどを発生させます。
そのため、ソフトウェアテストでは、同じテストをずっと繰り返すのではなく、より良いテストケースの利用やテストデータの活用など、やり方を変えていく必要があるのです。
テストは、ソフトウェアが使用される状況や、目的に合わせて内容や方法を変更する必要があります。
すべてのモジュールで使えるような万能なテストは存在せず、条件や目的に合わせたカスタマイズが必要となります。
ソフトウェアテストで欠陥をすべて見つけられたとしても、製品が必ずしも良いものになるとは限りません。
欠陥を修正したことで、修正箇所以外の箇所への影響や、新たな欠陥がないかを確認しないと、これまで出来ていた動作ができなくなったり、欠陥を修正したことで「ソフトウェアの使いやすさ」が低下する可能性もあります。
欠陥の数をなくすことが目的ではなく、あくまでユーザーの要件や期待を満たすことがソフトウェアテストの目的であるという認識をずらしてはいけません。
経済を支え続ける産業製品や、IoTとして進化する家電・自動車。
ARやVRなど新たな技術でさらに加速していくエンタメ分野。
仮想通貨の登場や貯金→投資シフトで市場規模が拡大するFintechの3つから、
それぞれおすすめの検証会社をご紹介しています。
1995年の創業以来、1,200件以上のテスト実績を持ち、豊富な経験で製品の品質向上を支援。テストだけでなく、IoT機器の分野でも改善提案も対応。
医療機器/電子工学機器/スマートホームデバイス/自動車・車載ソフトウェア/OA機器/産業用ロボット
機能検証だけでなく、UIUX・キャラクター性能バランス・クエスト難易度・ランダム要素の公平性などユーザー視点でフィードバック。
ゲーム開発/マンガアプリ/ライブ配信サービス/VR/イラスト・アニメーション/WEBサイト
生保会社出身や損保系システム検証経験者など、同業界内の知識を持つエンジニアが多く在籍するほか、脆弱性診断やペネトレーションテストも依頼可能。
キャッシュレス決裁サービス/金融商品取引/会計ツール/不動産投資/金融システム開発・保守