1分で分かる!RSpecとは?
ジャバード先生、Rubyで聞きたいことがあるんだけどいいかな?
もちろんいいよ。どうしたの??
少し前にキリンさんがRubyやRuby on Railsで、Webアプリケーションを開発しているって話したじゃん?
あぁ、覚えているよ。それがどうしたの??
キリンさんから相談を受けたんだけど、Webアプリケーションの品質があまり良くないみたいなんだ。
ふむ。もう少し詳しく教えてくれる?
キリンさん、ちゃんとテストしているらしいんだけど、機能の追加や改修を繰り返していく間に、どうしてもバグが発生しちゃうみたいなんだよね。
※ 内部リンク:結合テスト、総合テスト
なるほど。ちなみにテストは自動化しているのかな?RSpec (アールスペック)とか使ってる??
テストの自動化??RSpec??どういうこと??
テストの実行方法は2つに分けることができるんだ。1つは「手動テスト」、もう1つは「自動テスト」だよ。
テストって、エンジニアさんが1つずつ確認していくんじゃないの??
ことりん君が言っているのは、手動テストだね。手動テストでは、エンジニアがテストで確認すべき項目を洗い出して、対象となるアプリケーションを動かしながら確認していく実行方法だよ。
あぁ、それそれ。
手動テストは、結局人の手でやるしかないから、どうしても時間がかかっちゃうし、バグを見逃してしまうリスクもあるんだ。
なるほど…。それがテスト自動化だとどうなるの??
テスト自動化っていうのは、アプリケーションとは別にテスト用のコード (プログラム)を書くんだ。そして、テストを実行するときは、そのプログラムを実行するだけで、すべてのテスト結果がでちゃうんだ。
なんかすごい簡単そう…。
テストコードを書くという作業には時間がかかるけど、一度テストコードを書いてしまえば、何回でも好きなときに好きなだけテストを実行できるからね。
それは確かに嬉しいところだね!あ、それでさっき言っていたRSpecっていうのは何??
RSpecっていうのは、RubyやRuby on Railsのテストフレームワークだよ。
あれ?Ruby on RailsもRubyのフレームワークじゃないの??
Ruby on Railsは、RubyでWebアプリケーションを開発するためのフレームワークだよ。RSpecは、RubyやRuby on Railsでテストを自動化するためのフレームワークなんだ。
あぁ、そっか。同じフレームワークでも目的が違うんだね。
そういうこと!フレームワークにもいろいろあるから、混同しないようにしようね!
なるほどね!ちなみにRSpec以外にRubyのテストフレームワークはあるの?
あるよ!具体的にはMinitestとかtest-unitあたりだね。ただ、一番人気があるのはRSpecなんだ。
そうなんだ!じゃあ、キリンさんにはRSpecを使ってみるようにすすめるね!ジャバード先生、ありがとう!
はーい!キリンさん問題が解決するといいね!
RSpecとは?採用に役立つ基礎知識
RSpecは、RubyやRuby on Railsでテストを自動化するためのフレームワーク(テストフレームワーク)です。
RSpecは、テストのプログラムをRubyで書くことができます。そのため、Rubyエンジニアであれば学習コストが低く、すぐに習得できるというメリットがあります。
また、テスト結果をHTML形式で出力してくれるため、どのテストがOKで、どのテストがNGなのかを一目で理解できます。さらに、テストの網羅性を確認するカバレッジツールなどとの連携も可能です。
RSpecを使うエンジニア
RSpecは、RubyやRuby on Railsでアプリケーションのテストを行うためのものです。そのため、Rubyでサーバーサイドを開発するサーバーサイド(バックエンド)エンジニアなどが使用します。
RSpecを使うエンジニアの特徴と在籍業界
Rubyエンジニアは、Web業界に多くいます。そのため、RSpecを使うエンジニアも、Web業界に多くいます。ただ、最近では、Pythonなどの新しいプログラミング言語の影響もあり、Rubyの人気は下降気味です。
採用する時に知っておくとよいこと
RSpecのシェア
一定のキャリアを持つRubyエンジニアであれば、Rubyのテストフレームワークに関する開発経験も求めたいところです。今回紹介したRSpecの他にも、いくつかのテストフレームワークがあります。ちなみに、シェアとしては今回のテーマであるRSpecのシェアが群を抜いています。
Minitest
Minitestは、Rubyインストール時に、あわせてインストールされるテストフレームワークです。そのため、導入が容易というメリットがあります。
test-unit
test-unitも、かつてはRubyのデフォルトテストフレームワークというポジションでした。ただ、その後、Rubyのデフォルトテストフレームワークは、先ほど紹介したMinitestとなりました。そのため、現在、test-unitのシェアはかなり低下しています。
求人のポイント
求人を作成する時は、下記の内容を求人に入れるとよいです。
1システム(サービス)の詳細
※特にそのシステム(サービス)をなぜ作っているのかを熱量をもって記載する。
2開発環境
3現在のエンジニア組織の体制
4現行システムの課題と募集の背景
5求められる業務と期待値
6エンジニアとしてのスキルアップ支援制度の有無と詳細
7エンジニアチーム内での相互成長のための仕組み(勉強会やLT会など)の有無と詳細
8選考フロー
9待遇
10キャリアパス
RSpecの豆知識
RSpecを使った有名な企業・サービス
RSpecは様々な企業やサービスが導入しています。ここでは一例をあげておきます。
・メルペイ
メルペイのiOSチームでは、テスト自動化環境の一環としてRSpecを採用しています。
・GMOペパボ
インターネット関連事業を手がけるGMOペパボは、新卒パートナー向けのエンジニア研修のカリキュラムとして、Rails研修やRSpecが組み込まれています。
参考:ペパボテックブログ 新卒エンジニア研修に参加しました (後編)
RSpec関連のイベント
RSpecに関するイベントとしては下記のようなものがあります。
RubyWorld Conferenceは、RubyWorld Conference開催実行委員会が主催しており、毎年開催されています。このイベントでは、RSpecに関するプログラムが発表されることがあります。
・https://rubykaigi.org/2021-takeout/
RubyKaigiも毎年開催されているイベントであり、RSpecに関するテーマが発表されることがあります。なお、こちらは日本で開催されていますが、参加者の10〜20%は日本国外からの参加者というグローバルなイベントでもあります。