SeleniumでGUI操作するテストをチームで自動化していたときに、
- プロジェクトに参加したばかりのメンバーのスキル的なキャッチアップに時間がかかる
- 成果物としてのコードに差があり、レビュー時に指摘が多い
- プロジェクトに長くいるメンバーのマンネリ感
などなど、問題がいくつか発生していました。
そこで、ペアプロを導入することで改善できるのでは?と思ってトライしてみたお話です。
なお、今回のトライでは導入前後の適量的な差などは出せていないので、あくまでも「こんな気づきがあったよ!」程度です。
導入前の状況
業務
SeleniumでGUI操作のテストを自動化する業務をチームで行なっていました。
自動化を行うインプットとして、具体的なテストデータや手順が書かれたドキュメントがあり、それに従ってテストを自動化するのが主なタスクでした。
メンバー
テスト自動化のプロフェッショナルばかりではなく、開発経験があるものの画面操作のテスト自動化は初めてというメンバーや、逆にテストのプロだけど自動化はあまり慣れていないというメンバーも含んでいました。
かつ、チーム内にペアプロの経験者はおらず、自分も「知識として持っている」だけでした。
そんななかでのトライでした。
やったこと
1. 事前学習
自分含めてだれもペアプロしたことがない状態で「やろうぜ」と言い始めたので、言い出しっぺの自分がまず進め方について調べました。
もともと知っていた内容に加えて、ソフトウェアテストコミュニティでペアプロ経験がある方に話を聞いたりなどして、「自分たちの職場ではこうしたら良さそう」を考えました。
2. 資料作成
チーム内でペアプロをする際の説明用に、パワポで資料を作りました。
内容は大まかに
- なぜやるのか
- どうやるのか
- 心がまえ
などです。
特に心がまえについては、責めるのはナシね、とか、どんどん発話しましょうね、なんてところを念押ししました。
3. 実践
会議室を2時間程度確保して、プロジェクターを用意して行いました。
事前に用意した資料を見ながらやり方を説明して、実際にペアプロをやってもらいました。
メンバー構成は進行役の自分と、実際に作業するペア、あとはオブザーバー1人の4名。進行役の自分がタイムキープしつつ、やりながら「ペアプロってこれでいいの?」「こんなときどうするの?」などの疑問に答えながらで進めました 。
4. 感想ヒアリング
実際やってみてどうだった?を個別にヒアリングしました。
ただ、ペアプロやった時点でそこそこ時間を使っていたため、1on1のような形ではなく、テキストに起こして送ってもらいました。
ペアプロしてみた結果
ざっくり以下のような結果に。
設備・インフラ面が難しい
今回はペアがそれぞれノートPCを持ち込み、ドライバーのPCをプロジェクターにつないで行なったのですが、Seleniumを使ったGUIのテストのペアプロを2画面で行うのが厳しかったです。
- 自動化のインプットとなるドキュメント
- テスト対象
- IDE
を行き来しながら作業したいので、画面が3つあると良かったというか、ないと逆に作業効率落ちるな、という声がたくさん聞かれました。
画面操作見るのに時間かかりすぎる
GUI操作のテストを自動化するので、書いたコードを実行すると画面操作の時間がかかります。
この見ている時間が、ペアで作業している時にはもったいなく感じられました。
特にペアプロで効果がありそうな「不慣れな人」は、少し書いて実行、また少し書いて実行、と進めがちなので、少しもったいない時間の使い方になってしまいました。
「ちょっとペアプロしてみようか!」が生まれた
上の2点のように、正直「なかなかうまくいかないねー」というムードがチームに漂っていた一方、一度ペアプロを経験したことで、一部のメンバーが「この部分コード書くの難しそうだから、ペアプロでやってみようか!」となっていました。
個人的にはこれが大きな収穫で、がっちりお膳立てしなくても必要に応じて「ペアでやってみる」という選択肢がメンバーの中に生まれたことは大きな成果だな、と思っています。
まとめ
全体的なまとめとしては
- GUI操作する、Seleniumを使った自動テストのコーディングでは、一般的なプロダクトコードのペアプロよりも成果は得づらそう
- 一方、試験的にペアプロをしたことによってメンバーが柔軟にペア作業をするきっかけになったのは良かった
です。
個人的にはペアプロはもっとうまくやればSelenium等で自動テスト書く時にも効果があると思っているので、引き続きトライ続けたいです。
Posted from するぷろ for iOS.