システム開発においてテストはとても重要ですが、どのようなことをしているのかよく分からず不安に感じていませんか? 予算を割いてシステム開発を委託してもちゃんとテストをしていなければ、どんな不具合が出るか分かりません。
そこで今回はシステム開発のテストの工程を紹介するので、ぜひ参考にしてみてください。
システム開発におけるテスト工程
テストは委託側の要望を満たしているか、バグはないかなどをチェックし、システムのクオリティを上げるために行なわれます。そのため多くの試験を実施することになるのですが、システムを開発する種類によって違いが生まれます。
システム開発にはウォーターフォール型とアジャイル型がある
代表的な開発手法に、ウォーターフォール型とアジャイル型があります。それぞれ特徴のあるやり方で作業をすすめるため、試験に対する考え方も大きく違います。まず、ウォーターフォール型がどのように作業をすすめるのか、テスト工程はどうなっているのかを確認してみましょう。
ウォーターフォール型とは
システム開発の代表的なスタイルで、大規模なものや品質を重要視する場合などに向いています。では、ウォーターフォール型を採用すると、どのように作業が進むのでしょうか?
- 要件定義
- 基本設計
- 詳細設計
- 開発
- 単体テスト
- 結合テスト
- 総合テスト
- 受け入れテスト
ウォーターフォール型だとおおよそ上記のように作業が進み、問題がなければシステムの導入となります。そして、バグなどを調べるために3つのテストを実施しますが、一体どのようなテストなのか一緒に見ていきましょう。
テスト工程1)単体テスト
その名のとおりプログラムを1つずつ正常に動作するかをチェックします。システムは複数のプログラムが集まって構成されています。単体テストではそれぞれが、設計したとおりに問題なく機能するかをチェックするのです。
テスト工程2)結合テスト
複数のプログラムを結合させ、問題なく動作するかを確認します。単体テストでバグが見つからなくても、結合したことで発生するエラーもあります。そういった問題点を見逃さないために慎重に進める必要があります。
テスト工程3)総合テスト(システムテスト)
全部のハードウェアとプログラムをつなぎ合わせ、実際に使用するときと同じ負荷をかけても正常に動くかをチェックします。開発側の最終試験のため、確認すべきことも多いです。詳細は後ほど詳しく紹介します。
テスト工程4)受け入れテスト(ユーザーテスト)
ユーザーテストとも呼ばれ、委託したユーザー側が行う最終チェックです。総合テストを終えていても、開発側に正しくこちらの要望が伝わっていない恐れもあります。自分たちで目的通りの使い方をして不都合がないか、足りないところがないかなどを詳しく確認しましょう。
総合テストの内容
ユーザーの要望どおりに操作できるか、動作するかなどをチェックします。ユーザーの要望や開発するシステムにより違いはあるのですが、総合テストでは主に以下の3つのことを確認します。
- 確認テスト
- 負荷テスト
- 評価テスト
それぞれどのような事をするのか見てみましょう。
確認テスト
確認テストは、さらに2つに分かれます。
- リグレッションテスト:プログラムを修正した際に、ほかの部分に影響を与えて不具合が発生していないかをチェックします。回復テストとも呼ばれます。
- デグレードチェックテスト:プログラムを修正したにも関わらず、問題が再発していないか、新たな不具合が発生していないかをチェックします。
負荷テスト
大きな負荷をかけることでシステムに問題が発生しないかをチェックします。5つの代表的な方法があるので、それぞれどのような事をするのか確認してみましょう。
- 性能テスト:システムに負荷をかけ仕様どおりの性能を発揮できるか確認します。
- ロングランテスト:システムを長時間稼働させることで、機能が低下したり停止したりしないかを確かめます。
- ストレステスト:システムに大量のアクセスをすることで大きな負荷をかけ、その状況でも問題なく稼働するかをチェックします。
- ロードテスト:通常時・ピーク時に予測される状態の負荷をかけ、問題なく稼働しつづけられるか、耐えられるかを確かめます。
- キャパシティテスト:アクセス数・データ量が増えた場合、システムがどのように対処するかを確認します。
評価テスト
評価テストは、主に以下の3つの方法でシステムを評価します。
- セキュリティテスト:外部からのハッキング、情報漏洩などのセキュリティシステムがちゃんと働くかを確かめます。
- ユーザビリティテスト:ユーザーがストレスなく快適に使用できるかをチェックします。
- 障害許容性テスト:障害が発生した状況においても最低限の機能を維持し、稼働し続けられるかを確かめます。
このように総合テストではシステムの完成に向け、より細かいテストをいくつもくり返し、不具合が発生しないかをチェックしています。
アジャイル型の工程とテスト
アジャイル型はウォーターフォール型に比べると、短い期間で開発が可能で、仕様の変更にも柔軟に対応できます。そんなアジャイル型はどのような工程でシステム開発をするのか、テストはどのようにするのかを確認してみましょう。
アジャイル型の工程
アジャイル型では、開発の工程を1~4週間程度の短い期間に区切って作業をすすめます。
- 計画
- 設計
- 実装
- テスト
上記の4つの流れをくり返し、優先度の高い部分から開発していきます。次々に機能を追加していく方式なので柔軟な仕様変更も可能です。
アジャイル型のテスト
上記で紹介したとおり、1つのサイクルの最後にテストをやります。計画・設計・実装・テストの流れをくり返すため、ウォーターフォール型のように後から総合テストを行なうようなことは基本的にありません。
開発期間を短くすることに重きを置いているため、試験にそれほど時間を割かないのです。そのこともあり、現在は自動化する傾向にあります。またユーザーが実際に使用してみて、問題点を開発側に伝えて修正していくというやり方がこの型では一般的です。
アジャイル開発は、仕様の変更に柔軟に対応できるだけでなく、必要最低限の部分だけを完成したらその状態でリリースして、後から他の機能をつけ加えるということもできます。その一方で、作業の最終地点が見えにくいため大きなシステム開発には向いていません。
小規模のシステムならアジャイル型が、大規模ならウォーターフォール型が向いていると言えます。
正しい工程による精度の高いテストで質の高い開発を実現しよう
今回はウォーターフォール型とアジャイル型のテスト工程を紹介してきました。ウォーターフォール型では受け入れテストで、アジャイル型では実際に使用することでユーザー側も試験をすることになります。
テスト工程を理解し、できるだけ早くシステムの不具合を見つけて改善できるようにしましょう。
また、システム開発の外注先選びでお困りの方は、弊社までお気軽にご相談ください。
当社がこれまで支援してきた開発事例のご紹介から、企画・コンサルティング・要件定義や実際の開発支援まで包括的にサポートさせていただくことが可能です。
システム開発を失敗しないために、弊社が見積もりなどをサポートさせていただくことも可能です。むやみな営業電話などは決して行いませんので、まずは無料のご相談をお待ちしております。