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
270
試験に役立つモデリングの紹介/The Introduction to Modeling for Testing
Cybozu
PRO
September 12, 2020
Tweet
Share
More Decks by Cybozu
See All by Cybozu
kintone開発組織のAWSエンジニアの紹介
cybozuinsideout
PRO
0
41
kintone開発組織のサービスプラットフォームチームの紹介
cybozuinsideout
PRO
0
31
サイボウズフロントエンドエキスパートチームについて / FrontendExpert Team
cybozuinsideout
PRO
6
40k
2024/11/25 ReDesigner Online Meetup 会社紹介
cybozuinsideout
PRO
0
400
サイボウズ 開発本部採用ピッチ / Cybozu Engineer Recruit
cybozuinsideout
PRO
9
50k
テクニカルライティング
cybozuinsideout
PRO
4
620
サイボウズのアジャイルクオリティ2024
cybozuinsideout
PRO
3
510
モブに早く慣れたい人のためのガイド2024
cybozuinsideout
PRO
3
690
モバイル
cybozuinsideout
PRO
3
380
Other Decks in Technology
See All in Technology
Pwned Labsのすゝめ
ken5scal
2
590
x86-64 Assembly Essentials
latte72
4
760
マーケットプレイス版Oracle WebCenter Content For OCI
oracle4engineer
PRO
3
550
OSSの実装を参考にBedrockエージェントを作る
moritalous
2
300
サイト信頼性エンジニアリングとAmazon Web Services / SRE and AWS
ymotongpoo
8
1.9k
DeepSeekとは?何がいいの? - Databricksと学ぶDeepSeek! 〜これからのLLMに備えよ!〜
taka_aki
2
200
入門 PEAK Threat Hunting @SECCON
odorusatoshi
0
190
Amazon Bedrock 2025 年の熱いアップデート (2025/3 時点)
icoxfog417
PRO
3
380
OCI IAM Identity Domains Entra IDとの認証連携設定手順 / Identity Domain Federation settings with Entra ID
oracle4engineer
PRO
1
1.3k
職位にかかわらず全員がリーダーシップを発揮するチーム作り / Building a team where everyone can demonstrate leadership regardless of position
madoxten
35
24k
リクルートのエンジニア組織を下支えする 新卒の育成の仕組み
recruitengineers
PRO
2
210
Amazon Q Developerの無料利用枠を使い倒してHello worldを表示させよう!
nrinetcom
PRO
2
130
Featured
See All Featured
"I'm Feeling Lucky" - Building Great Search Experiences for Today's Users (#IAC19)
danielanewman
227
22k
RailsConf 2023
tenderlove
29
1k
Building Applications with DynamoDB
mza
93
6.3k
How to Ace a Technical Interview
jacobian
276
23k
Easily Structure & Communicate Ideas using Wireframe
afnizarnur
193
16k
Into the Great Unknown - MozCon
thekraken
35
1.7k
Fantastic passwords and where to find them - at NoRuKo
philnash
51
3k
A designer walks into a library…
pauljervisheath
205
24k
Principles of Awesome APIs and How to Build Them.
keavy
126
17k
Understanding Cognitive Biases in Performance Measurement
bluesmoon
27
1.6k
The Language of Interfaces
destraynor
156
24k
Dealing with People You Can't Stand - Big Design 2015
cassininazir
366
25k
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/