SEが教えるテストの種類!単体テストや結合テストって何?を解決!

今回はプログラムテストの種類を紹介します。
「単体テスト」や「結合テスト」を聞いたことあるけどよくわからないという人向けの内容になります。
テストの種類は何種類かありますが、それぞれにきちんと役割があります。
ただテストの回数を重ねているというわけではない点に注意してください。
これから話す内容を聞けばプログラムテストについて理解が深まること間違いなしです!
テストの種類はざっくりこの4つ!
単体テスト
単体テストは機能単位で行うテストです。
Webアプリケーションであれば画面毎にテストするイメージになります。
開発後に行う最初のテストでかつ一番細かい動作確認を行う最後のテストとも言えます。
ここで摘み取っておかなければ最後まで見つからないような不具合が大量にあるので、後があるからと考えずにきちんとやることが大切です。
- 機能単体で仕様通りに動けばOK。
- 入力チェックや細かいデータパターンは単体テストで漏れなく確認する。
- テストデータは手作りデータが基本。稀に本番データがあることも。
- 基本はホワイトボックス。
- 同値分割や境界値分析などのブラックボックステストも行う。
結合テスト
結合テストは機能間のデータ連携などをテストしていきます。
月次処理で確定したデータが詳細画面で確認できることというイメージのテストをします。
Aで作ったデータがBでも使えることを確認するテストというと少し分かりやすくなるかもしれません。
このテストが完了すれば、ほぼほぼシステムは動作するようになっているはずです。
- 単体テストでテストした機能を繋ぎ合わせてテストします。
- 基本的にDBをいじってのテストは行わない。
- 入力値チェックなどの単体で行っているテストは行わない。
総合テスト
総合テストはシステム開発の終盤に行うテストです。
別名システムテストとも言います。
主にやることは2つ。
- シナリオテスト
- 負荷テスト
シナリオテストは、実際にユーザーが使用することを想定したテストを行います。
例えば日時を意識したテストを行ったり、業務手順に沿ったテストをしていきます。
ユーザーが使用した際に問題ないことをチェックします。
負荷テストでは、想定される最大の同時利用者数やデータ量を元にシステムに負荷をかけ、エラーとならないかを確認します。
レスポンステストもこのタイミングにやることが多く、目標タイムに届くまでひたすら頑張ります。
- 完成したシステムに不備がないか最終チェックをします。
- シナリオテストでユーザーの使用を想定したテストを行います。
- 負荷テストではシステムに負荷を与え耐えられるかを確認していきます。
受入テスト
最後は受入テストになります。
こちらは開発側が行うテストではなく、ユーザーに使用してもらい問題なく動作していることを確認してもらいます。
打合せの回数が少なかったりすると大量のフィードバックが発生してしまうので注意です。
仕様面のことから操作性のことまで様々課題要望があります。
ここを突破すると晴れてリリース可能となります。
- ユーザーに見てもらうテストです。
- 基本的にこちらが何かをするということはないです。
- アドバイザーのようなことをするために常駐する場合もあります。
- 課題要望については対応可否や有償無償の判断をしっかり下す必要があります。
テストを行う際の必須事項
尺が余りそうなので余談です。
テスト仕様書の作成
まずテストを行う際は、やみくもに始めるのではなくテスト仕様書を作成します。
簡単に言うとテストのチェックシートになります。
単体テストであれば、プログラム設計書の内容からチェックが必要なところを抜き出しテスト仕様書に書き出していきます。
結合テストや総合テストは、内部設計書や外部設計書の情報からチェックシナリオを作成していきます。
結合以降は複数機能の連携が前提となるので、シナリオ作成のイメージになります。
エビデンスの取得
エビデンスは必ず残すようにしましょう。
もちろんテストデータも残し再現できるようにしておきます。
テストをやったことの証明としても大切ですが、自分を守るためにも必須の作業になります。
後から不具合が発生した場合にきちんとテストをしていることを証明できれば身を守ることにもつながるということですね。
まとめ
今回はプログラミングテストの種類について紹介しました。
システムは不具合が出ることが当たり前なので、テストを何層にも別視点で行う工夫がされています。
IT業界に入社してすぐの頃はいろいろなテストがありよくわからないと思いますが、本記事の内容を参考にしていればスムーズに業務に入れるはずです。
個人的には単体テストが一番大事だと思っているのですが、皆さんはいかがでしょうか。
それでは、今回はこの辺で。