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
kintone開発チームの紹介
cybozuinsideout
PRO
0
75k
kintone開発のプラットフォームエンジニアの紹介
cybozuinsideout
PRO
0
63
AIツール開発ワークショップ(Dify)【サイボウズ新人研修2025】
cybozuinsideout
PRO
20
23k
モバイル【サイボウズ新人研修2025】
cybozuinsideout
PRO
3
3.8k
Git/GitHub を使う上で知っておくと嬉しいかも Tips【サイボウズ新人研修2025】
cybozuinsideout
PRO
14
10k
GitHub Copilot活用【サイボウズ新人研修2025】
cybozuinsideout
PRO
15
14k
ソフトウェアライセンス【サイボウズ新人研修2025】
cybozuinsideout
PRO
13
8.3k
エンジニアのためのアウトプット講座 〜知識をシェアするはじめの一歩〜【サイボウズ新人研修2025】
cybozuinsideout
PRO
7
4.6k
Docker入門【サイボウズ新人研修2025】
cybozuinsideout
PRO
13
12k
Other Decks in Technology
See All in Technology
いま注目のAIエージェントを作ってみよう
supermarimobros
0
360
Oracle Base Database Service 技術詳細
oracle4engineer
PRO
10
75k
フルカイテン株式会社 エンジニア向け採用資料
fullkaiten
0
8.8k
2つのフロントエンドと状態管理
mixi_engineers
PRO
3
160
現場で効くClaude Code ─ 最新動向と企業導入
takaakikakei
1
260
開発者を支える Internal Developer Portal のイマとコレカラ / To-day and To-morrow of Internal Developer Portals: Supporting Developers
aoto
PRO
1
480
Unlocking the Power of AI Agents with LINE Bot MCP Server
linedevth
0
120
「何となくテストする」を卒業するためにプロダクトが動く仕組みを理解しよう
kawabeaver
0
440
まずはマネコンでちゃちゃっと作ってから、それをCDKにしてみよか。
yamada_r
2
120
RSCの時代にReactとフレームワークの境界を探る
uhyo
11
3.5k
20250913_JAWS_sysad_kobe
takuyay0ne
2
250
人工衛星のファームウェアをRustで書く理由
koba789
15
8.3k
Featured
See All Featured
We Have a Design System, Now What?
morganepeng
53
7.8k
Designing Dashboards & Data Visualisations in Web Apps
destraynor
231
53k
Intergalactic Javascript Robots from Outer Space
tanoku
272
27k
Building a Modern Day E-commerce SEO Strategy
aleyda
43
7.6k
CoffeeScript is Beautiful & I Never Want to Write Plain JavaScript Again
sstephenson
162
15k
Rebuilding a faster, lazier Slack
samanthasiow
83
9.2k
Writing Fast Ruby
sferik
628
62k
Raft: Consensus for Rubyists
vanstee
140
7.1k
Sharpening the Axe: The Primacy of Toolmaking
bcantrill
44
2.5k
Building an army of robots
kneath
306
46k
The Pragmatic Product Professional
lauravandoore
36
6.9k
Fantastic passwords and where to find them - at NoRuKo
philnash
52
3.4k
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/