# 元のコード # Mutation(変異) if user.admin? if !user.admin? grant_access grant_access end end テストが落ちなければ、そのテストは偽陰性を含んでいる可能性が高い。 テストを追加して検出力を上げ、正しく落ちるように改善していく。 →こうして信頼性を育てることができる。 11
true for age 19' do def adult? expect(Person.new(age: 19).adult?).to be(true) @age >= 18 end end it 'returns false for age 17' do end expect(Person.new(age: 17).adult?).to be(false) end mutantを実行すると、17件の変異のうち2件が生き残ってしまった Mutations: 17 Results: 17 Kills: 15 Alive: 2 def adult? - @age >= 18 + @age > 18 end → age == 18 の境界値テストが不足していたことが分かった。 13