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
Cybozu
PRO
September 12, 2020
Technology
0
300
試験に役立つモデリングの紹介/The Introduction to Modeling for Testing
Cybozu
PRO
September 12, 2020
Tweet
Share
More Decks by Cybozu
See All by Cybozu
AIツール開発ワークショップ(Dify)【サイボウズ新人研修2025】
cybozuinsideout
PRO
19
19k
モバイル【サイボウズ新人研修2025】
cybozuinsideout
PRO
3
3.5k
Git/GitHub を使う上で知っておくと嬉しいかも Tips【サイボウズ新人研修2025】
cybozuinsideout
PRO
12
9.2k
GitHub Copilot活用【サイボウズ新人研修2025】
cybozuinsideout
PRO
14
13k
ソフトウェアライセンス【サイボウズ新人研修2025】
cybozuinsideout
PRO
12
7.9k
エンジニアのためのアウトプット講座 〜知識をシェアするはじめの一歩〜【サイボウズ新人研修2025】
cybozuinsideout
PRO
7
4.3k
Docker入門【サイボウズ新人研修2025】
cybozuinsideout
PRO
12
11k
セキュリティ【サイボウズ新人研修2025】
cybozuinsideout
PRO
2
3.1k
TLS 1.3をざっと理解する【サイボウズ新人研修2025】
cybozuinsideout
PRO
2
1.9k
Other Decks in Technology
See All in Technology
LLM 機能を支える Langfuse / ClickHouse のサーバレス化
yuu26
7
780
アカデミーキャンプ 2025 SuuuuuuMMeR「燃えろ!!ロボコン」 / Academy Camp 2025 SuuuuuuMMeR "Burn the Spirit, Robocon!!" DAY 1
ks91
PRO
0
130
人に寄り添うAIエージェントとアーキテクチャ #BetAIDay
layerx
PRO
9
2.1k
薬屋のひとりごとにみるトラブルシューティング
tomokusaba
0
120
Agent Development Kitで始める生成 AI エージェント実践開発
danishi
0
130
Kiroから考える AIコーディングツールの潮流
oikon48
4
680
Segment Anything Modelの最新動向:SAM2とその発展系
tenten0727
0
550
Intro to Software Startups: Spring 2025
arnabdotorg
0
210
【新卒研修資料】数理最適化 / Mathematical Optimization
brainpadpr
25
12k
2025新卒研修・HTML/CSS #弁護士ドットコム
bengo4com
3
13k
AI時代の経営、Bet AI Vision #BetAIDay
layerx
PRO
1
1.8k
Lambda management with ecspresso and Terraform
ijin
2
150
Featured
See All Featured
Bootstrapping a Software Product
garrettdimon
PRO
307
110k
The Illustrated Children's Guide to Kubernetes
chrisshort
48
50k
Agile that works and the tools we love
rasmusluckow
329
21k
Designing for humans not robots
tammielis
253
25k
Fantastic passwords and where to find them - at NoRuKo
philnash
51
3.4k
KATA
mclloyd
32
14k
Producing Creativity
orderedlist
PRO
347
40k
Cheating the UX When There Is Nothing More to Optimize - PixelPioneers
stephaniewalter
283
13k
Optimising Largest Contentful Paint
csswizardry
37
3.4k
ピンチをチャンスに:未来をつくるプロダクトロードマップ #pmconf2020
aki_iinuma
126
53k
Why You Should Never Use an ORM
jnunemaker
PRO
58
9.5k
4 Signs Your Business is Dying
shpigford
184
22k
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/