Slide 1

Slide 1 text

ユーザーストーリーの レビューを自動化してみたの 2024年4月16日 JaSST nano Vol.35

Slide 2

Slide 2 text

自己紹介 01 今日話すこと 02 ことの発端 03 技術スタック 04 動かしてみた 05 感想・まとめ 06

Slide 3

Slide 3 text

自己紹介 01

Slide 4

Slide 4 text

bun913(今泉大樹) クラスメソッド株式会社 認定試験など ・JSTQB AL Test Manager ・応用情報技術者 ・AWS認定試験12種 etc 趣味 ・ダイの大冒険 ~2018年 ~2022年 ~現在 まじりっけなしの本物の公務員 転職して開発系のエンジニアに AWSもやりながら内製化支援

Slide 5

Slide 5 text

今日話すこと 02

Slide 6

Slide 6 text

・AWSと生成AIを使って「ユーザーストーリーのレビュー」の自動化を試してみた ・なぜやろうと思ったのか? ・どういう技術スタックを利用したのか? ・どんな感じで動くのか? 今日話すこと

Slide 7

Slide 7 text

ことの発端 03

Slide 8

Slide 8 text

・まずはシラバスを読む ・心に残ったところをZennにメモ (後でブログやLTのネタにするため) JSTQB AL Test Analyst試験の学習をしていた

Slide 9

Slide 9 text

引用: https://jstqb.jp/dl/jstqb.jpdlJSTQB-SyllabusALTA_V311.J03.pdf 「5.2.2 ユーザーストーリーレビュー」が目にとまる

Slide 10

Slide 10 text

・「要件や要求、完成の定義がないとテスト以前の問題だよなぁ」という納得感 ・ 「人によって、書き方が全然違うよなぁ」という実体験があったので、レビュー の観点をチェックリストとして用意するのは良さそうだと思った ・とはいえ、例文や書き方のガイドを用意してみても、やっぱりフィードバックが ないと改善は難しかったり ・でも現実的に、「全てを人が確認する」のは結構きついと思った 気になった理由

Slide 11

Slide 11 text

・「受け入れ基準が書いてあるか?」とか「テスト可能か?」などの観点 ・生成AIに一次レビューしてもらえば、人が本質的なところに集中できるのでは? ・レビュイーも素早くフィードバックをもらえてハッピーなのでは? 「汎用的な観点は人が見なくてもよくない?」 →「えぇい!とにかくまずは作ってみるか!?」

Slide 12

Slide 12 text

技術スタック 04

Slide 13

Slide 13 text

・GitHubのIssueでユーザーストーリーを管理 ・GitHub Actionsでイベントをトリガーする ・Amazon Bedrock の Claude3 Sonnet モデル を利用 Amazon Bedrock を使ってみる

Slide 14

Slide 14 text

・AWS上で色々な生成AIのモデルを利用できるサービス Amazon Bedrock って何? ・AWS上の権限があれば簡単にAPI経由で利用可能 ・最近すごいと話題のAnthropic社の Claude 3 Haiku や Claude3 Sonnet などのモデルも利用可能

Slide 15

Slide 15 text

・(トリガー)「user-story」というタグがついたIssueを発行・更新 GitHub Actionsで自動化する ・Issueの本文と「レビュー観点」の指示を Claude3 Sonnet に与える ・帰ってきた結果を Issue のコメント欄に投稿する ・レビュー結果が問題なければ、「レビュー済み」のようなタグをつける → これらにより最低限のフィードバックをレビュイーに素早く渡したい

Slide 16

Slide 16 text

(参考)生成AIに渡しているレビュー観点

Slide 17

Slide 17 text

(未承認広告)詳しくは以下ブログを見てください 引用: https://dev.classmethod.jp/articles/userstory-review-automation-trial/

Slide 18

Slide 18 text

動かしてみた 05

Slide 19

Slide 19 text

色々と足りなそうなIssueを発行してみる

Slide 20

Slide 20 text

数十秒でレビューしてくれる

Slide 21

Slide 21 text

フィードバックを受けたのでちょっと改善

Slide 22

Slide 22 text

レビューOKのコメント投稿・タグ付けされる

Slide 23

Slide 23 text

(ちなみに)プロンプトインジェクションなどをし ようとするとエラーを返す

Slide 24

Slide 24 text

感想・まとめ 06

Slide 25

Slide 25 text

・数時間でサクッとOSS公開までできました(単に生成AIに投げるだけならとても簡 単) ・「明らかにテストできんやろ。このIssueでは」みたいな内容はほぼ指摘してくれた ・一方で「受け入れ条件の粒度」や「レビュー観点」などは組織によってカスタマイズ が必要そう ・厳密に業界特有のルール・これまでの回答履歴などを参照させるならRAGの構成が必 要になると思うが、果たしてそこまで必要なのか!? (今回は「最低限」のような観点をサクッとレビューしてもらいたかったので) ・当然「なぜユーザーストーリを書くのか」といったコミュニケーションはやっておく (やってみた・作ってみた)感想

Slide 26

Slide 26 text

・以下のブログにもやってみた内容を公開しています ・GitHubのリポジトリにソースコードや使い方も公開しているので、気になる方はご参 照ください 今日の発表内容について

Slide 27

Slide 27 text

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