1
0

RSpecなどでテストをする理由とテストの種類

Last updated at Posted at 2021-10-05

なぜテストのコードを書く必要があるのか

Webアプリケーションを開発するときに、必ず必要になるのがテストです。
Railsで開発する場合RSpecと言います。
テストはコードは、こちらが動いて欲しいような動作をしてくれるかを
検証するために書きます。

テストをしないとサービスをリリースするときに、
ちゃんと動作せずにリリースすることになり、
クライアントなどに迷惑がかかってしまうのでテストは重要です。

この記事は有益なので、よかったら読んでみてください‼︎

テストの種類

単体テスト
一つのプログラムを各機能ごとで正常に動くかを確認するのが単体テストです。
modelのテストでよく使います。

⚫︎結合テスト
複数の機能を合わせてテストするのが結合テストです。
インターフェースが正常に動いているかをテストします。
controllerやrequest などのAPI関連のテストです。

⚫︎システムテスト
システム全体をテストするテストです。
その中でも負荷テスト、機能テスト、性能テストがあるみたいです。

テストの流れの順番

単体テスト

2 結合テスト

3 システムテスト

がテストの流れみたいです。

さらに細かいテストについて

 
1 まず単体テストはモジュールを検証するテストです。

⚫︎単体テストのブラックボックステストとホワイトボックステスト
単体テストの中にはブラックボックステストとホワイトボックステストがあるみたいです。

ブラックボックステスト
このテストはシステムの仕様を確認するためのテストです。
モジュールの中までは検証しないテストです。

ホワイトボックステスト
このテストはプログラムが想定通り動くかをテストします。
モジュールの中まで確認して検証をします。

2 次に結合テストはモジュール間のインターフェースを検証するテストです。

⚫︎結合テストのトップダウンテストとボトムアップテスト
結合テストの中にはトップダウンテストとボトムアップテストがあるみたいです。

トップダウンテスト
このテストは上位モジュールを先にテストし、それから下位モジュールをテストしていきます。

不具合を早期発見できるみたいです。
下位モジュールはテストをやっていない場合があるのでstubという仮モジュールを作ります。

ボトムアップテスト
このテストは下位モジュールを先にテストし、それから上位モジュールをテストしていきます。
システム開発と並行してテストができるみたいです。

下位からテストをするので、上位は未テストなのでドライバという仮モジュールを作ります。

⚫︎リグレッションテスト
このテストは退行テストといい、コードを修正したときに、
修正したことにより今まで動作していたテストに異常がないかを確認するためのテストです。

最後に

自分は未経験の状態で書いているので説得力がないと思うのですが、
実務ではコードレビューはスクールみたいな動作チェックではないみたいです。
RSpec(テスト)で動作チェックするみたいです。
自分の想像ですが、納期があり、コードが何百行もあるため動作チェックを
コードレビューでいちいちやっている時間がないのだと思います。
初学者の方はてすとの学習は絶対にやってから実務に入るべきかと思います。

自動テストが大事な理由

Cherry本で有名な伊藤さんがこちらで言及されています。

各テストの資料

https://qiita.com/koki_73/items/0d6177b3869eb0128d86
https://qiita.com/yumi1003/items/4a5d871da6dda69596eb
https://hnavi.co.jp/knowledge/blog/white-box-test/
https://qiita.com/yosuke_takeuchi/items/915fc3092ee88bed3ff2

参考資料

https://note.com/ruquia7/n/n00ff04fc9129#wt7gL
https://note.com/h_three_22/n/n68cb15b8118c
https://ssaits.jp/promapedia/method/topdown-bottomup.html
https://ssaits.jp/promapedia/method/topdown-bottomup.html

1
0
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
1
0