RSpec

この記事はRSpecについて解説した記事です。会話形式のやさしい文章で「RSpec」の用語のイメージを紹介した後に、採用に役立つRSpecの知識を解説しています。

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を採用しています。

参考:メルペイiOSでのAppium活用事例

・GMOペパボ

インターネット関連事業を手がけるGMOペパボは、新卒パートナー向けのエンジニア研修のカリキュラムとして、Rails研修やRSpecが組み込まれています。

参考:ペパボテックブログ 新卒エンジニア研修に参加しました (後編)

RSpec関連のイベント

RSpecに関するイベントとしては下記のようなものがあります。

RubyWorld Conference

RubyWorld Conferenceは、RubyWorld Conference開催実行委員会が主催しており、毎年開催されています。このイベントでは、RSpecに関するプログラムが発表されることがあります。

https://rubykaigi.org/2021-takeout/

RubyKaigiも毎年開催されているイベントであり、RSpecに関するテーマが発表されることがあります。なお、こちらは日本で開催されていますが、参加者の10〜20%は日本国外からの参加者というグローバルなイベントでもあります。

関連記事

  1. unity

    Unity

  2. TensorFlow

  3. Bash

  4. SpringBoot

  5. COBOL

  6. C++

    C++