テスト自動化チームでペアプロにトライした話2019/6/13伊藤由貴(@yoshikiito)
View Slide
自己紹介伊藤由貴(@yoshikiito)株式会社ベリサーブでテスト自動化エヴァンジェリスト的なお仕事。・教育、研修・社内外の知見の蓄積、共有を活性化・技術調査 などなどJaSST東北実行委員。2
今回のお話について概要• テスト自動化チームのペアプロによる学びをシェア• まとまった期間の知見ではなく、単発のお話• 同じような経験がある方ぜひお話し聞かせてください3
参考:ペアプログラミング• ペアでプログラミングすること• 指示を出す「オペレーター」と、実際にコードを書く「ドライバー」の2つの役割があり、これらを入れ替えながら開発を進める4
目次1. 自己紹介と前説2. ペアプロにトライした背景3. やったこと① 事前の準備など② 本番③ 実施後4. ペアプロの効果と反省点5. まとめ5
目次1. 自己紹介と前説2. ペアプロにトライした背景3. やったこと① 事前の準備など② 本番③ 実施後4. ペアプロの効果と反省点5. まとめ6
チームと業務についてテスト自動化チーム• 約10名(月1, 2名ずつJoin)でSelenium+Javaで自動化• テスト自動化経験はバラバラ• テスト自動化に慣れた人もいれば、テストに詳しいけど自動化はあまり経験ない、という人も業務内容• 自動テスト手順に基づき、コーディング• メンバー間で相互にコードレビュー7
補足:自動テスト手順• テスターさんにはおなじみExcelのテスト手順を自動化向けに詳細に書いたもの8ID 機能 手順 期待結果 備考ABC-001 機能A1. ほげほげ2. ふーばー***であることABC-002 : : :ABC-003 : : :ABC-004 : : :
困りごと• 自動テストコードの質に個人差がある• コーディング規約はあるものの、規約以外の部分で書き方がばらける• 共通クラスにメソッドがあるのに独自実装する• コードレビューでの指摘件数が多い• レビューも修正も工数がかかる• 「よりよくするには」といった建設的な指摘ではなく、重複の指摘や書き方の指摘など本質的でない指摘が多い9
(一応)やっていた対策• CheckStyleで規約違反を検出• SpotBugsで冗長な処理や明らかな問題の検出ただ、上記対策では見つけられない問題もある• 無駄な待機• 処理の重複• ロケータが変• 少しでも条件が変わったらNo such elementになるような書き方(!)10
結果・・・指摘をされると気分も良くないし、対応する時間もかかる↓仕事がなかなか進まず、残業して疲れる↓些末なミスが増える↓コードレビューで指摘をうける↓:11止めたい
そうだ、ペアプロしよう!
ペアプロに期待したこと• コードレビュー時の指摘件数が減ること• 修正工数削減• 気分↑• チーム全体の作業品質向上• 開発のプラクティスに関心を持ってくれること13
目次1. 自己紹介と前説2. ペアプロにトライした背景3. やったこと① 事前の準備など② 本番③ 実施後4. ペアプロの効果と反省点5. まとめ14
事前の準備などそもそも「ペアプロとは」の説明• メンバーはペアプロが初耳だったため。• 特に「心理的安全性大事に!」を強調した。人と場所と時間の確保• ペアの選定• 会議室の確保• 1週間程度前から時間の確保• ペアプロ本番時の説明用資料作成15
本番参加者• 伊藤が進行役• 実際に手を動かすペア• 次の進行役になってほしい後輩もオブザーバー参加流れ• ペアプロのルール説明• やることリストの提示(ブランチ切って、**書いて・・・)• 30分コーディング→役割交代してもう30分16
実施後ヒアリング実施• 実際やってみてどうだったかを、ペアの2名にヒアリング• 「時間が短かった」• 「インフラ面が難しい」(※後述)• 「楽しい」2回目実施へ• チーム内の別のペアで再度実施• 初回ペアにヒアリングした結果を踏まえて一部改善17
目次1. 自己紹介と前説2. ペアプロにトライした背景3. やったこと① 事前の準備など② 本番③ 実施後4. ペアプロの効果と反省点5. まとめ18
ペアプロの効果と反省点効果• ペアプロの場でナレッジ共有が進んだ• 効率のよいコードの書き方• IDEのショートカット操作 etc…• メンバーが「ペア作業する」発想を得た• 「この実装大変そうだからペアでやってみない?」と椅子持ってペア作業が発生• やろうと言った側からするととてもうれしい変化19
ペアプロの効果と反省点反省点• インフラ面でテスト自動化のペアプロが難しかった• テスト手順・ブラウザ・IDEで3画面ほしいが、ペアプロ時はPCとプロジェクタの2画面しかない• 待ちの時間が多い• 「実行して動くのを眺める時間」が発生するため、ペア作業ではもったいなく感じられる• 効果を定量的に出せていない• 言い出しっぺの自分が異動したことなどから、当初の課題だったレビューの件数や割合などを継続的に終えていないのが無念20
目次1. 自己紹介と前説2. ペアプロにトライした背景3. やったこと① 事前の準備など② 本番③ 実施後4. ペアプロの効果と反省点5. まとめ21
まとめ• テスト自動化(特にGUI動かすE2E)だと、ペアプロがきつい部分もある• 実際にやってみるとメンバーの行動がポジティブに変化した• (データ取って変化を追うまでできなかったが)ペアプロをやる価値はありそう22
以上、ありがとうございましたツッコミ・質問は、ぜひ個別にお声がけください☺