Upgrade to Pro — share decks privately, control downloads, hide ads and more …

意外とカンタン!?テストコードの改善から始めるシステム開発の効率化 / a little good way to improve software using readable test codes

意外とカンタン!?テストコードの改善から始めるシステム開発の効率化 / a little good way to improve software using readable test codes

ソフトウェアのテストって大変ですよね。生産性を崩さずに品質の高い状態を保つのが何よりも難しい。

そんな課題を、テストコードを改善するという観点から解決する取り組みをしてみました。DevOpsの実践として、よければ参考にしてみてください。

79fc33e55cacc42beef647541de24d58?s=128

面川泰明

August 21, 2021
Tweet

Transcript

  1. 意外とカンタン!? テストコードの改善から 始めるシステム開発の効率化 開発×テスト LT会 #devtestlt | 2021/8/25 | @omokawa_yasu

    キーワードは「読みやすさ」 1
  2. 自己紹介 2

  3. 3 副業でキャリアカウンセラーしてます。 興味があればTwitterから連絡ください!

  4. 本題 4

  5. こんなことありませんか? 5

  6. テストやっててつらいこと 6 • 考慮漏れしたテストケースで不具合を発見できない • テスト用のドキュメントをいちいち作成/更新するのが面倒

  7. テスト精度もテスト効率も 悪くなってテンションが下 がりがち 7 この状態が続くと、

  8. 8 読みやすいテストコードで 改善を試みました! ※ 今回はRSpecを使いました

  9. 今回取り組んだ内容 9 • テストコードは適切にケース分けする • あえてDRYをやめ、ベタ書きする

  10. 適切にケース分けする 10 見やすくなり、気づきが増える • 「Cの場合はどうなる?」 • 「Bのテスト数は適切か?」 it 'Aのときは◦◦すること' it

    'Aのときは△△しないこと' it 'Bのときは□□すること' context 'Aの場合' do it '◦◦すること' it '△△しないこと' end context 'Bの場合' do it '□□すること' end
  11. あえてDRYをやめ、ベタ書きする 11 関数定義を調べる必要がなくなり、テ ストコードだけ読めば意味がわかる expect(response.message).to eq t('errors.data_not_found') expect(response.message).to eq 'データが見つかりません'

  12. これらの取り組みを続けてよかったこと 12 • エンジニア ◦ テストケースの考慮漏れに気づきやすくなった • テスター ◦ テスト用のドキュメントを作成/更新する手間が削減された

  13. テスターがテストコードを書 き、受け入れテストを実施 する 今回の取り組みを発展させたら出来るかもしれないと思ってること 13

  14. ソフトウェアの品質を高め るために、読みやすいテス トコードから始めよう! 14 まとめ

  15. ご清聴ありがとうございました! 15