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

テスト自動化チームでペアプロにトライした話 / trying to pair programming on test automation team

テスト自動化チームでペアプロにトライした話 / trying to pair programming on test automation team

YoshikiIto

June 13, 2019
Tweet

More Decks by YoshikiIto

Other Decks in Technology

Transcript

  1. テスト自動化チームで
    ペアプロにトライした話
    2019/6/13
    伊藤由貴(@yoshikiito)

    View Slide

  2. 自己紹介
    伊藤由貴(@yoshikiito)
    株式会社ベリサーブで
    テスト自動化エヴァンジェリスト的なお仕事。
    ・教育、研修
    ・社内外の知見の蓄積、共有を活性化
    ・技術調査 などなど
    JaSST東北実行委員。
    2

    View Slide

  3. 今回のお話について
    概要
    • テスト自動化チームのペアプロによる学びをシェア
    • まとまった期間の知見ではなく、単発のお話
    • 同じような経験がある方ぜひお話し聞かせてください
    3

    View Slide

  4. 参考:ペアプログラミング
    • ペアでプログラミングすること
    • 指示を出す「オペレーター」と、実際にコードを書く「ドラ
    イバー」の2つの役割があり、これらを入れ替えながら開発を
    進める
    4

    View Slide

  5. 目次
    1. 自己紹介と前説
    2. ペアプロにトライした背景
    3. やったこと
    ① 事前の準備など
    ② 本番
    ③ 実施後
    4. ペアプロの効果と反省点
    5. まとめ
    5

    View Slide

  6. 目次
    1. 自己紹介と前説
    2. ペアプロにトライした背景
    3. やったこと
    ① 事前の準備など
    ② 本番
    ③ 実施後
    4. ペアプロの効果と反省点
    5. まとめ
    6

    View Slide

  7. チームと業務について
    テスト自動化チーム
    • 約10名(月1, 2名ずつJoin)でSelenium+Javaで自動化
    • テスト自動化経験はバラバラ
    • テスト自動化に慣れた人もいれば、テストに詳しいけど
    自動化はあまり経験ない、という人も
    業務内容
    • 自動テスト手順に基づき、コーディング
    • メンバー間で相互にコードレビュー
    7

    View Slide

  8. 補足:自動テスト手順
    • テスターさんにはおなじみExcelのテスト手順を
    自動化向けに詳細に書いたもの
    8
    ID 機能 手順 期待結果 備考
    ABC-001 機能A
    1. ほげほげ
    2. ふーばー
    ***である
    こと
    ABC-002 : : :
    ABC-003 : : :
    ABC-004 : : :

    View Slide

  9. 困りごと
    • 自動テストコードの質に個人差がある
    • コーディング規約はあるものの、規約以外の部分で
    書き方がばらける
    • 共通クラスにメソッドがあるのに独自実装する
    • コードレビューでの指摘件数が多い
    • レビューも修正も工数がかかる
    • 「よりよくするには」といった建設的な指摘ではなく、
    重複の指摘や書き方の指摘など本質的でない指摘が多い
    9

    View Slide

  10. (一応)やっていた対策
    • CheckStyleで規約違反を検出
    • SpotBugsで冗長な処理や明らかな問題の検出
    ただ、上記対策では見つけられない問題もある
    • 無駄な待機
    • 処理の重複
    • ロケータが変
    • 少しでも条件が変わったらNo such elementになるような
    書き方(!)
    10

    View Slide

  11. 結果・・・
    指摘をされると気分も良くないし、
    対応する時間もかかる

    仕事がなかなか進まず、残業して疲れる

    些末なミスが増える

    コードレビューで指摘をうける


    11
    止めたい

    View Slide

  12. そうだ、ペアプロしよう!

    View Slide

  13. ペアプロに期待したこと
    • コードレビュー時の指摘件数が減ること
    • 修正工数削減
    • 気分↑
    • チーム全体の作業品質向上
    • 開発のプラクティスに関心を持ってくれること
    13

    View Slide

  14. 目次
    1. 自己紹介と前説
    2. ペアプロにトライした背景
    3. やったこと
    ① 事前の準備など
    ② 本番
    ③ 実施後
    4. ペアプロの効果と反省点
    5. まとめ
    14

    View Slide

  15. 事前の準備など
    そもそも「ペアプロとは」の説明
    • メンバーはペアプロが初耳だったため。
    • 特に「心理的安全性大事に!」を強調した。
    人と場所と時間の確保
    • ペアの選定
    • 会議室の確保
    • 1週間程度前から時間の確保
    • ペアプロ本番時の説明用資料作成
    15

    View Slide

  16. 本番
    参加者
    • 伊藤が進行役
    • 実際に手を動かすペア
    • 次の進行役になってほしい後輩もオブザーバー参加
    流れ
    • ペアプロのルール説明
    • やることリストの提示(ブランチ切って、**書いて・・・)
    • 30分コーディング→役割交代してもう30分
    16

    View Slide

  17. 実施後
    ヒアリング実施
    • 実際やってみてどうだったかを、ペアの2名にヒアリング
    • 「時間が短かった」
    • 「インフラ面が難しい」(※後述)
    • 「楽しい」
    2回目実施へ
    • チーム内の別のペアで再度実施
    • 初回ペアにヒアリングした結果を踏まえて一部改善
    17

    View Slide

  18. 目次
    1. 自己紹介と前説
    2. ペアプロにトライした背景
    3. やったこと
    ① 事前の準備など
    ② 本番
    ③ 実施後
    4. ペアプロの効果と反省点
    5. まとめ
    18

    View Slide

  19. ペアプロの効果と反省点
    効果
    • ペアプロの場でナレッジ共有が進んだ
    • 効率のよいコードの書き方
    • IDEのショートカット操作 etc…
    • メンバーが「ペア作業する」発想を得た
    • 「この実装大変そうだからペアでやってみない?」と椅子持って
    ペア作業が発生
    • やろうと言った側からするととてもうれしい変化
    19

    View Slide

  20. ペアプロの効果と反省点
    反省点
    • インフラ面でテスト自動化のペアプロが難しかった
    • テスト手順・ブラウザ・IDEで3画面ほしいが、
    ペアプロ時はPCとプロジェクタの2画面しかない
    • 待ちの時間が多い
    • 「実行して動くのを眺める時間」が発生するため、
    ペア作業ではもったいなく感じられる
    • 効果を定量的に出せていない
    • 言い出しっぺの自分が異動したことなどから、
    当初の課題だったレビューの件数や割合などを
    継続的に終えていないのが無念
    20

    View Slide

  21. 目次
    1. 自己紹介と前説
    2. ペアプロにトライした背景
    3. やったこと
    ① 事前の準備など
    ② 本番
    ③ 実施後
    4. ペアプロの効果と反省点
    5. まとめ
    21

    View Slide

  22. まとめ
    • テスト自動化(特にGUI動かすE2E)だと、ペアプロ
    がきつい部分もある
    • 実際にやってみるとメンバーの行動がポジティブに
    変化した
    • (データ取って変化を追うまでできなかったが)
    ペアプロをやる価値はありそう
    22

    View Slide

  23. 以上、
    ありがとうございました
    ツッコミ・質問は、
    ぜひ個別にお声がけください☺

    View Slide