ソフトウェアテスト手法

# ソフトウェアテスト手法 
​​
## 1. ブラックボックステスト(Black-BoxTest)​ 
 - プログラムの外部規格書に基づき、入力データと出力データの関係が規格書に定められた結果を得たかどうかを調査、試験する方法である。 テスト対象となる実装物の内部構造およびソースコードへのアクセスが必要ないという点で、ブラックボックス試験と呼ぶ。 
​
 - この方式の試験事例を設計するために決定表(decisiontable)が用いられることもある。 モジュールが要求に合わせてうまく作動するかに焦点を置いて、モジュールの外形(入力、出力)とモジュールの機能中心の検査が進行される。 
​
​
​
## 2. ホワイトボックステスト(White-BoxTest) 
 - テスターがプログラムのコードやモジュールに接近して要求に合わせてうまく作動するかに焦点を置いたテストをいう。 プログラム内部構造の妥当性をテストし、内部構造を解析してプログラムのすべての処理ルーチンについてテストする基本事項である。 
 - たまに発生する条件も考慮して処理ルーチンを検証するための試験データを作成し、試験を実施する必要がある。 
​
​
​
## 3. 単位テスト(UnitTest) 
 - モジュールテスト(ModuleTest)とも呼ばれ、システムでテスト可能な最小単位を個別にテストを行う。 一般的に開発される製品やシステムの単位クラスや関数をテスト対象とする。
​
​​
## 4. 統合テスト(IntegrationTest) 
​ - プログラムまたはその構成要素であるモジュール等の情報システム一つ一つの構成要素を結合して構成要素間のインターフェースと各結合段階での機能を確認するテストである。 コンポーネントやサブシステムのような統合単位をテストする。 
​
## 5. システムテスト(SystemTest) 
 - 実装されたシステムが定められた要件に適合しているかどうかを評価するために、実際の運用と同じ環境でシステム全体に対して行うテストをいい、全体のアプリケーションまたはシステムをテストする。 
​
## 6. 引数テスト(AcceptanceTest)
 - 契約上の要求事項が満たされていることを確認するため、設置後、購入者の現場において納品者も参加し、購入者によって実施されるシステム又は機能単位のテストを行う。
 - 配布可否を決定するためにエンドユーザーによって遂行される完全なシステムに対するテストを行う。
​​
## 7. ベンチマークテスト(BenchmarkTest)
​ - ある機械やシステムを実際に使用することと同じ条件で性能を測定するために行う様々なテストをいう。 通常、1つまたは複数の代表的なプログラムを比較しようとするコンピュータに遂行させて性能を測定することによって、コンピュータの速度や単位時間当たりの仕事の処理量などを比較することができる。
​ - 広く知られているワークロードまたはシステムと新たに生成したテスト対象の性能を比較する。 
​​
## 8. 構成テスト(ConfigurationTest) 
​ - 様々なハードウェアとソフトウェアを構成し、テスト対象が正しく動作するかを検証する。 
ハードウェアおよびソフトウェアを構成するのに多くの時間がかかる。 
​
## 9. 機能テスト(Functiontest) 
 - ほとんどの動作が装備の制限された種類の機能で構成されているという点を利用して行う機能的なテストをいう。 10~15個の機能に対する全体の組み合わせはかなり多い分量なので、ただいくつかの機能だけで動作を構成する。 ソフトウェアの機能的試験は、構造的機能についてあるプログラムの機能についての試験である。 テスト対象が要求される機能を適切に遂行するかを検証する。 
​
## 10. インストールテスト(Installationtest) 
​ - テスト対象が使用システムに正しくインストールされているかを検証する。 
 - インストールされるSWの機能に応じて、フォルダおよびインストールの多様な管理方法、そして除去のほぼ完璧性を確認する。 
​
## 11. 完全性テスト(Integritytest) 
 - プログラミング言語の文法と構文を遵守したか、 システムリソースを適切に使用したかのようなコードの信頼性およびコードの堅牢性を検証する。

## 12. 負荷テスト(Loadtest)
 - 多様なワークロードでテストすることで、テスト対象の運営上の限界を評価するテストをいい、テスト対象の買収可否を判断することができる。 
​
## 13. ストレステスト(Stresstest) 
 - 負荷、メモリ不足、特定のサービスやハードウェアが使用不可能な場合のような異常な条件でテスト対象が機能を適切に遂行するかをテストする。 プログラムが異常な状況に置かれた時のために設計されており、異常な量、密度、大きさ、資源などを要求する。 
​
## 14. ボリュームテスト(VolumeTest) 
 - サーバ等のデータ処理するプログラムについてデータ量の取扱能力をテストする。 
​
## 15. 性能テスト(PerformanceTest)
​ - 開発されたアプリケーションが与えられた環境下で応答速度、処理量、処理速度などの項目に対して要求された目標値を達成するかどうかのテストである。 統合試験前後の段階でSWのリアルタイム性能を試験するために実施し、強度試験とともに実施されることもある。 厳格な形式で資源の利用率測定が必要である。
​
## 16. 信頼性テスト(ReliabilityTest) 
​ - プログラム、システム、またはハードウェア装置がどれほど失敗なく与えられた機能を遂行できるかという能力の測定、または装備が総運用時間に対して正常な機能を遂行した時間がどの程度かを示す稼働率を測定する。 機能に対してシステムおよびアプリケーションがダウンせずに安定的に実行されるかを確認するテストである。 
​
## 17. ユーザーインターフェーステスト(User-InterfaceTest) 
- ユーザーインターフェイスが一貫性を維持するかどうかは、標準を遵守して適切に設計され、開発されたかを確認するテストである。 
​
## 18. 回帰テスト(RegressionTest)
 - アプリケーションに対して変更、不具合修正又は機能改善等の原因によりプログラムコードに対して物理的な変更が発生した場合、新たな不具合に備えて既に実施していたテストケースについて、全体又は一部を再試験するテストである。 
​
## 19. 記憶容量テスト(Data-StorageTest) 
​ - 大容量のデータをシステムに入力させ、その反応を試験し、データの量やファイルサイズが変わるにつれてシステムの反応の変化があるかを試験して日常的な作業を遂行するのに十分な記憶容量を推定できるように助けるテストだ。 
​
## 20. 復旧テスト(RecoveryTest) 
​ - ハードウェア的エラー、回路エラー、停電、プログラムエラーなどで引き起こされるその他の障害から決められた時間内にシステムがどのように復旧するかをテストする。 
特に会計システムでは、いかなる資料も処理中に失われてはならないため、不慮のすべての事故からシステムが復旧することが絶対的に重要であり、二つの復旧システムに分ける。 
​
### 1.1  自動復旧システムの場合、再初期化、チェックポイントメカニズム、データ復旧、再起動などが正確に行われるかをテストする。
### 1.2  受動的復旧システムの場合、復旧までにかかる平均時間が収容可能かテストする。
​

## 21. セキュリティテスト(SecurityTest) 
 - 最近のコンピュータシステムに対する各種脅威の増加により、権限のないユーザーのデータアクセスおよび修正を防止するためのセキュリティ機能は必須であるため、システム上のセキュリティ機能が業務環境に適切かをテストする。 特に外部コンピュータネットワークとコミュニケーションがあるシステムの場合、コミュニケーションメッセージの機密性、整合性、ユーザ認証、アクセス制御、否認封鎖などのセキュリティ機能が適切に提供されているかをテストする。 
​
## 22. 互換性テスト(CompatibilityTest)
 - 現システムを他のハードウェアとシステムソフトウェアに切り替えたり、現在のシステムに重要な新機能を追加する場合に適用し、変更によって発生するかもしれない欠点に備えてシステムのすべての部分をテストする。 そのためには、新システムの試験結果と比較できる現在のシステムの試験結果の保存が必要である。