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の実践として、よければ参考にしてみてください。

面川泰明

August 21, 2021
Tweet

More Decks by 面川泰明

Other Decks in Programming

Transcript

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

    View Slide

  2. 自己紹介
    2

    View Slide

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

    View Slide

  4. 本題
    4

    View Slide

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

    View Slide

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

    View Slide

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

    View Slide

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

    View Slide

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

    View Slide

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

    View Slide

  11. あえてDRYをやめ、ベタ書きする
    11
    関数定義を調べる必要がなくなり、テ
    ストコードだけ読めば意味がわかる
    expect(response.message).to eq t('errors.data_not_found')
    expect(response.message).to eq 'データが見つかりません'

    View Slide

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

    View Slide

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

    View Slide

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

    View Slide

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

    View Slide