Upgrade to Pro
— share decks privately, control downloads, hide ads and more …
Speaker Deck
Features
Speaker Deck
PRO
Sign in
Sign up for free
Search
Search
試験に役立つモデリングの紹介/The Introduction to Modeling for...
Search
Sponsored
·
Your Podcast. Everywhere. Effortlessly.
Share. Educate. Inspire. Entertain. You do you. We'll handle the rest.
→
Cybozu
PRO
September 12, 2020
Technology
340
0
Share
試験に役立つモデリングの紹介/The Introduction to Modeling for Testing
Cybozu
PRO
September 12, 2020
More Decks by Cybozu
See All by Cybozu
kintone リサーチ副部/UXリサーチャー 業務紹介
cybozuinsideout
PRO
0
23
サイボウズ 開発本部採用ピッチ / Cybozu Engineer Recruit
cybozuinsideout
PRO
10
77k
私たちが『JaSST協賛』から『外部コネクト』チームになった理由
cybozuinsideout
PRO
0
160
LLMでもいつものテスト技術〜意外と半分はこれまでのテストでした〜
cybozuinsideout
PRO
1
430
kintone開発のプラットフォームエンジニアの紹介
cybozuinsideout
PRO
0
1k
LLMアプリの品質保証
cybozuinsideout
PRO
1
450
技術広報チームに丸投げしない!「一緒につくる」スポンサー活動
cybozuinsideout
PRO
0
200
テクニカルライター (グループウェア) について
cybozuinsideout
PRO
0
170
つけまが降ってきた日
cybozuinsideout
PRO
1
640
Other Decks in Technology
See All in Technology
昔話で振り返るAWSの歩み ~S3誕生から20年、クラウドはどう進化したのか~
nrinetcom
PRO
0
120
Sansanの認証基盤を支えるアーキテクチャとその振り返り
sansantech
PRO
1
120
SaaSに宿る21g
kanyamaguc
2
180
ブラックボックス化したMLシステムのVertex AI移行 / mlops_community_62
visional_engineering_and_design
1
250
VSCode中心だった自分がターミナル沼に入門した話
sanogemaru
0
870
AIにより大幅に強化された AWS Transform Customを触ってみる
0air
0
240
SaaSの操作主体は人間からAIへ - 経理AIエージェントが目指す深い自動化
nishihira
0
130
AWS DevOps Agent or Kiro の使いどころを考える_20260402
masakiokuda
0
120
JEDAI認定プログラム JEDAI Order 2026 受賞者一覧 / JEDAI Order 2026 Winners
databricksjapan
0
410
15年メンテしてきたdotfilesから開発トレンドを振り返る 2011 - 2026
giginet
PRO
2
250
脳が溶けた話 / Melted Brain
keisuke69
1
1.1k
JAWS DAYS 2026でAIの「もやっと」感が解消された話
smt7174
1
120
Featured
See All Featured
The Myth of the Modular Monolith - Day 2 Keynote - Rails World 2024
eileencodes
26
3.4k
Helping Users Find Their Own Way: Creating Modern Search Experiences
danielanewman
31
3.1k
Believing is Seeing
oripsolob
1
100
How to build a perfect <img>
jonoalderson
1
5.3k
Practical Orchestrator
shlominoach
191
11k
Raft: Consensus for Rubyists
vanstee
141
7.4k
Improving Core Web Vitals using Speculation Rules API
sergeychernyshev
21
1.4k
Everyday Curiosity
cassininazir
0
180
How Software Deployment tools have changed in the past 20 years
geshan
0
33k
Deep Space Network (abreviated)
tonyrice
0
98
Done Done
chrislema
186
16k
Conquering PDFs: document understanding beyond plain text
inesmontani
PRO
4
2.5k
Transcript
試験に役⽴つ モデリングの紹介 サイボウズ 株式会社 渡邉 豊幹
渡邉 豊幹 ⾃⼰紹介 2011年新卒⼊社、QA 現在は販売管理システムを担当 サイボウズ株式会社 開発本部
中⼩企業向けグループウェア ⼤企業向けグループウェア 業務アプリ構築クラウド メール共有システム 製品紹介
• モデルを作成し、試験に活⽤した話 • メリットと作成時のポイント お話しすること
アジェンダ 担当プロダクト/チームの紹介と抱えていた問題 実施した解決策「モデルセットを作成する」 作成時のポイントとコストについて 今後の展望
担当プロダクト • ⽶国市場向けの販売管理システム • ユーザー 1. 製品のエンドユーザー • 試⽤申し込みや契約 など
2. 社内のセールスチーム • 特別価格での発注やライセンス管理、 キャンペーンの設定 など ൢചཧγεςϜ ֎෦αʔϏε End User Sales Team
チームの紹介 チーム構成 開発スタイル 状況
チームの紹介 チーム構成 開発スタイル 状況 • 開発チームは6名(うち QAは3⼈) • セキュリティ検証は社内専⾨チームに依頼 QA
チームの紹介 チーム構成 開発スタイル 状況 • スクラム開発(1スプリント1週間) • リリース頻度は約2回/週 試験後に QA
がリリース
チームの紹介 チーム構成 開発スタイル 状況 実装前に全て設計することや、内部の詳細な ドキュメントを作成することはせず、 段階的に開発を⾏いリリースしている 事前に全てを 設計しない
チームの紹介 開発スタイル 状況 1. 開発が進むにつれて処理が複雑になる 2. 各機能の仕様書はあるが、全体像を把握で きるドキュメントが無い チーム構成 個々の
機能仕様書は あるけど…
開発上の問題点 試験の影響範囲が把握しにくい 新規メンバー/他チームへの教育コストが⾼い
開発上の問題点 試験の影響範囲が把握しにくい 新規メンバー/他チームへの教育コストが⾼い 連携している外部サービスとのシステム境界が 複雑になり、試験設計の難易度が上がる
開発上の問題点 試験の影響範囲が把握しにくい 新規メンバー/他チームへの教育コストが⾼い 個々の機能の詳細な仕様書はあるが、 全体像を把握するための資料が無い
開発上の問題点 試験の影響範囲が把握しにくい 新規メンバー/他チームへの教育コストが⾼い 基本的なケースのモデルを 作成して解決できないか
なぜモデルが必要? ひも? • ⽂書よりイメージの⽅が概要をうまく掴める • 細かい点だけに着⽬すると全体像を掴みにくい かべ?
モデルに着⽬したきっかけ 平鍋健児さんを招いて開催された社内勉強会 • アジャイルにおいて必要⼗分な設計とは? • ⼀貫性を保って開発するには? • 効果的な対話のために必要なものは? → シンプルなモデルセット(Keeps)を
作成する、というアイディアを知る Keeps!
Keeps? モデル モデルとして残すもの ・安定している ・寿命が⻑い Keeps 残さないもの ・実装中に変わる ・⼀度共有して捨てる Temps
Keeps? モデル モデルとして残すもの ・安定している ・寿命が⻑い Keeps 残さないもの ・実装中に変わる ・⼀度共有して捨てる Temps
共通理解を促す シンプルな モデルセット
作成したKeepsの紹介 Keeps システム全体の構造を表すもの Architecture 業務で扱う対象とそれらの繋がりを表したもの Domain Model ユーザーから⾒たシステムの代表的な使い⽅ Key Use
Cases
作成したKeepsの紹介 Keeps システム全体の構造を表すもの Architecture 業務で扱う対象とそれらの繋がりを表したもの Domain Model ユーザーから⾒たシステムの代表的な使い⽅ Key Use
Cases
作成したKeepsの紹介 Keeps システム全体の構造を表すもの Architecture 業務で扱う対象とそれらの繋がりを表したもの Domain Model ユーザーから⾒たシステムの代表的な使い⽅ Key Use
Cases
作成したKeepsの紹介 Keeps システム全体の構造を表すもの Architecture 業務で扱う対象とそれらの繋がりを表したもの Domain Model ユーザーから⾒たシステムの代表的な使い⽅ Key Use
Cases
作成したKeepsの紹介 Keeps システム全体の構造を表すもの Architecture 業務で扱う対象とそれらの繋がりを表したもの Domain Model ユーザーから⾒たシステムの代表的な使い⽅ Key Use
Cases ユースケース図 コミュニケーション図
ユースケース図 ※⼀部秘密情報のため、実際の表現を変えています
ユースケース図 特定の操作の 影響範囲がわかる ※⼀部秘密情報のため、実際の表現を変えています
コミュニケーション図 渡されるデータや 実⾏ API を記載 ※⼀部秘密情報のため、実際の表現を変えています
改善できた点 試験の影響範囲が把握しにくい 新規メンバー/他チームへの教育コストが⾼い
改善できた点 試験の影響範囲が把握しにくい 新規メンバー/他チームへの教育コストが⾼い 1. 連携サービスとの境界や、サービスが実⾏される タイミングが分かりやすくなった 2. 仕様書では細かい挙動に注⽬しがちだが、 俯瞰して影響範囲を⾒ることができる
改善できた点 試験の影響範囲が把握しにくい 新規メンバー/他チームへの教育コストが⾼い 1. システム全体で各ユーザーがどのような操作を ⾏うのか、俯瞰して⾒ることができる 2. 各ユースケースごとのシステムの振る舞いに ついても概要が把握しやすい
改善できた点 試験の影響範囲が把握しにくい 新規メンバー/他チームへの教育コストが⾼い その他 1. モニタリング対象の API を洗い出す際に活⽤ 2. E2E
のテストの改善で活⽤
作成時のポイント ⽬的を明確にする チーム内で合意をとる ツールを活⽤する
作成時のポイント ⽬的を明確にする チーム内で合意をとる ツールを活⽤する 1. スコープを明確にし、作りすぎを防ぐ 2. 作成するケースを最⼩限に抑える ゴール
作成時のポイント ⽬的を明確にする チーム内で合意をとる ツールを活⽤する 1. メンテナンスコスト含めて検討する 2. 更新すべき情報について共有する 協⼒が不可⽋
作成時のポイント ⽬的を明確にする チーム内で合意をとる ツールを活⽤する PlantUML を使⽤し作成コストを抑えた
作成時のポイント 1. 誰でも同じような図を作成できる 2. コードなので git でバージョン管理できる ⾒た⽬の微調整が難しいが、厳密な表現より 概要を把握できることを優先して使⽤ PlantUML
コードで UML を作成するツール
メンテナンスについて ルール 作成コスト メンテナンスコスト
メンテナンスについて ルール 作成コスト メンテナンスコスト • 開発時(仕様変更時)に PG/QA が修正 • 上記ルールは他の機能仕様書などと同様
既存のプロセスに 合わせる形で開始
メンテナンスについて ルール 作成コスト メンテナンスコスト • 10⼈⽇程度 • 計11枚の図と説明を作成 クラス図 ×1
オブジェクト図×1 ER図×1 コミュニケーション図×1 ユースケース図×7
メンテナンスについて ルール 作成コスト メンテナンスコスト • 2020年6⽉の運⽤開始後、誤りを⼀度修正 • 仕様変更による修正はまだ無し
今後の展望 チーム内⽤語を記載 ADR の記載
今後の展望 チーム内⽤語を記載 ADR の記載 チーム特有の⽤語を定義し記載することで 認識に齟齬が⽣じることを防ぐ
今後の展望 チーム内⽤語を記載 ADR の記載 Architecture Decision Records と呼ばれる、 アーキテクチャ上重要な意思決定の 背景を記載し、暗黙知が増えることを防ぐ
まとめ • 下記問題を解決するために Keeps を作成した • 試験の影響範囲が把握しにくい • 新規メンバー/他チームの教育コストが⾼い •
作成ポイント • ⽬的を明確にする • チーム内で作成について合意をとる • 楽に作成できるツールを活⽤する • メンテナンスのルールを決める • 今後の展望 • ⽤語の定義と ADR を記載する
参考情報 • 平鍋健児さんの資料 「 Modeling in the Agile Age」 https://www.slideshare.net/hiranabe/modelin
g-in-the-agile-age-228224347 • PlantUML https://plantuml.com/