RSpecテストの数が数百、数千個になってくるとテストの待ち時間が問題になってきます。個々のテストに「毎回実行する」、「たまに実行する」や「すぐ終わる」、「時間かかる」などの分類ができると便利です。
その際に使用するのがRSpecのtag機能です。
※RSpecのバージョンはRspec3を想定しています。

tagはgroup(describe、context)にもexample(it)にも指定可能で、キー・バリュー形式で指定します。
バリューにはシンボル、文字列、booleanが指定可能です。一箇所に複数のtagを指定することも可能です。
以下の例で緑の部分がtagになります。

describe 'in describe' do
  let(:b){ true }
  let(:i){ 1 }
  let(:s){ 'hello' }
  context 'in context 1', speed: :slow do
    it "is true", priority: 'high' do
      expect(b).to eq(true)
    end
    it "is 1", simple: true do
      expect(i).to eq(1)
    end
    it "is hello", priority: 'low' do
      expect(s).to eq('hello')
    end
  end
  context 'in context 2', speed: :fast do
    it "is true", priority: 'low' do
      expect(b).to eq(true)
    end
    it "is 1", simple: true, priority: 'low',speed: :slow do
      expect(i).to eq(1)
    end
    it "is hello", priority: 'high' do
      expect(s).to eq('hello')
    end
  end
end

特定のtagのみテストを実行する際にはrspecコマンドに–tag(もしくは-t)オプションを指定します。
tagキーは頭に@をつけて実行します。

speed: :slowのみをテスト

rspec spec --tag @speed:slow

priority: ‘high’のみをテスト

rspec spec --tag @priority:'high'

simple: trueのみをテスト

rspec spec --tag @simple

※booleanを指定した場合はキーのみで指定可能です。