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

QAエンジニアが「開発者になる」と自動テスト運用は上手くいく/ソフトウェアテスト自動化カンファレンス2023

 QAエンジニアが「開発者になる」と自動テスト運用は上手くいく/ソフトウェアテスト自動化カンファレンス2023

自動テストに取り組むにあたり、QAエンジニアである私は「開発者になる」ことにしました。自らコードを書き、リリースをし、失敗する自動テストに腹を立てました。実体験をベースに、自動テストの運用にQAとしてどう向き合うべきかを考えます。

Kazuki Nishizono

December 12, 2023
Tweet

More Decks by Kazuki Nishizono

Other Decks in Technology

Transcript

  1. ©NewsPicks Inc. All Rights Reserved. 西薗 和希 (X: @yurizono) NewsPicks

    QAエンジニア STUDY: 大阪府立高専→近大→奈良先端大 WORK: 野村総合研究所 (6年半) → 開発、PjM、QA SHIFT ASIA @ベトナム (2年) → QA 無職で子育て @鹿児島 (1年) → 専業主夫 UZABASE - NewsPicks (2年半) → 一人目QA
  2. ©NewsPicks Inc. All Rights Reserved. 自動テスト Canary (1) Canary に撒く

    (2) 自動テストする (3) OKなら全体適用 開発者
  3. ©NewsPicks Inc. All Rights Reserved. 自動テスト 開発者 Canary (1) Canary

    に撒く (5) 諦めて手で確認 (2) 自動テストする (3) 失敗。再ランする (4) 失敗。 (6) OK?なので全体適用
  4. ©NewsPicks Inc. All Rights Reserved. Q. なぜ、こうなってしまったのだろう? A. 自動テストが適切にメンテナンスされていないから。 •

    E2Eは4年前に導入、近年の更新頻度は低かった。つい最近、自動テストの調子が悪くなった。 Q. では、なぜメンテナンスされなかったのだろう? A. 自動テストのオーナーがいないから。 • 開発チームが10以上あり、そのどれもが今回のSUTのオーナーでない。 • QAチームは私含めてメンバーが2人しかおらず、自動テストにまで手を出せていない。
  5. ©NewsPicks Inc. All Rights Reserved. リリースは1日に4回、5回と行われる。 1. 失敗率が極めて高かったため、1日に3回、4回とメン ション来る 2.

    メンション=「リリースしたい!助けて!」 3. 毎回焦る 4. イライラする 5. 他のタスクの優先度を下げて、こちらに取り組む。 6. そればかりで仕事にならなくなるので、根本対策! 優先度が上がった! QA
  6. ©NewsPicks Inc. All Rights Reserved. リリースをほぼ毎週する。 1. そして、ほぼ失敗する。 2. 「またか……」とリトライする。

    3. 場合によっては手動確認する。 リリースは1日に4回、5回と行われる。 1. 失敗率が極めて高かったため、1日に3回、4回とメン ション来る 2. メンション=「リリースしたい!助けて!」 3. 毎回焦る 4. イライラする QA 開発者
  7. ©NewsPicks Inc. All Rights Reserved. リリースをほぼ毎週する。 1. そして、ほぼ失敗する。 2. 「またか……」とリトライする。

    3. 場合によっては手動確認する。 リリースは1日に4回、5回と行われる。 1. 失敗率が極めて高かったため、1日に3回、4回とメン ション来る 2. メンション=「リリースしたい!助けて!」 3. 毎回焦る 4. イライラする QA 新鮮 慣れ 開発者 大きな違い
  8. ©NewsPicks Inc. All Rights Reserved. 自動テスト 馴化 自動テスト
 自動テスト 自動テスト

    馴化 「失敗した! さっさと直してやる……」 「時間ができたら まとめて直したいなぁ」 「(無言でリラン)」
  9. ©NewsPicks Inc. All Rights Reserved. つまり、 常に自動テストに困らされている開発者より 一時的に「開発者になってみた」QAエンジニアの方が、 より開発者の(当初の)気持ちがわかる。 1.

    QAエンジニアは普段、開発をしない。リリースもしない。 2. 「リリースする開発者が自動テストに抱く気持ち」を一時的に体験。 3. 自動テストが失敗するってこんなに嫌なものなのか!と再認識。 4. 新鮮な気持ちでいられるうち(今回は1ヶ月程度)に、改善テーマを洗い出し、立 て続けに実施した。
  10. ©NewsPicks Inc. All Rights Reserved. 1. 古ーいChromeで動いていたので、最新化した。 2. すでにサービス終了している機能のテストを廃止した。 3.

    自動テストを手元(Apple Sillicon Mac)で簡単に動かせるようにした。 → 2020年初頭の当時はM1がアナウンスされたばかりだった 4. 自動テスト失敗時にスクショを取得するようにした。 5. 自動テスト失敗時にリトライするようにした。 6. テストが実行順に依存していたので、全ケース独立して実行できるようにした。 7. コーディングスタイルをフレームワーク標準に合わせて変更。 8. 旧基盤WEB(Thymeleaf + Coffee Script + jQuery)から、現在移行中の 新基盤WEB(Next.js + React + TypeScript)にテストを対応させた。 9. ついでにWEB開発チームと話をつけ、WebdriverIO→Playwrightの移行を開始。
  11. ©NewsPicks Inc. All Rights Reserved. sns • @yurizono テスト管理や、一人目QAについてよく書いてます。 •

    一人目QAとして働く、という選択 • テストカバレッジはテストの家計簿だよねって話 素材: いらすとや https://www.irasutoya.com/ DALL・E https://labs.openai.com/