組織にテストを書く文化を根付かせる戦略と戦術

Takuto Wada
Takuto WadaChief Executive Programmer at Towersquest
組織にテストを書く
文化を根付かせる
戦略と戦術
和田 卓人 (@t_wada)
Feb 16, 2016 @ 日本OSS推進フォーラム
和田 卓人
id: t-wada
@t_wada
github: twada
gihyo.jpの連載
『[動画で解説]和田卓人の テスト駆動開発 講座』
http://gihyo.jp/dev/serial/01/tdd/
全20回すべて動画付き解説
ニコニコ動画でも見れます
WEB+DB過去記事の特設サイトと動画も
組織にテストを書く文化を根付かせる戦略と戦術
Do you write tests?
戦略編
• レガシーコード改善に正解はない
• テスト自動化は銀の弾丸ではない
• 導入方法にも銀の弾丸はない
• 導入を目的にしてはならない
• 状況は現場によって全て異なる
銀の弾丸は無い
ストレス
テスト
自動テスト
ストレス
テストを書く時間がないので
はなく、テストを書かないか
ら時間がなくなるのです。
James Grenning
• 文化の醸成は年単位の事業になる
• 「テストを書く時間がない」のでは
なく「テストを書かないから時間が
なくなる」
• 「動くコードに触れるな」と戦う。
触れなければコードは緩やかに死ん
でいく
文化を変える
動くコードに触れなければ死あるのみ
• ToBe ではなく AsIs と NotToBe からはじめる
• 隣の芝は青い。気にしないこと
• 人は自分の速度でしか成長できない
• プロジェクトもプロジェクトの速度でしか成長
できない
• 「まわりはもうみんなやっていますよ」は劇薬
なので用法用量を守って使うこと
イマココから始める
• 快不快で動く人、損得で動く人
• リファクタリングの快感
• 回帰テストのお得感
• メトリクスの達成感
• そしてビジネス価値
人を知る
• 人はそれぞれの度合いで変化に対して
身構える
• 前例がない、事例がない
• 「リファクタリングのジレンマ」
• リファクタリングを独立タスクにす
ると、そのタスクは着手されない
変えることの難しさ
事前に許可を得るより、あと
で許してもらう方が楽
Grace Hopper
It is easier to ask
forgiveness than it is
to get permission
• 仕様が固まることはない
• 開発が終わることはない
• 理解は常に深化する
• スキルも常に深化する
• 技術も常に進化する
すべては変化する
技術的負債の四象限
設計する時間がないん
だからしょうがない
今すぐリリースしない
といけない。あとでど
うにかしよう
レイヤー化? なにそ
れ?
もっとこうすべきだっ
たなぁ
無鉄砲 慎重
意図的
不注意
http://bliki-ja.github.io/TechnicalDebtQuadrant/
• 品質が「わかる」ようになる
• わかることこそ大事
• 体重計に乗るだけでは痩せない
• テストを書くだけでは、良くはならない
• 品質を上げるのは設計とプログラミング
• 再設計とリファクタリングをテストで支える
テストは品質を上げない
戦術編
• 「何が一番やばいですか?」
• 最も困っているところから
• お金、個人情報、……
• 新機能開発から
• バグ修正のところから
• 静的解析でピンポイントに
どこからやるか
• リスク
• 手動テストのコスト
• 自動化コスト
塹壕からのテスト戦術
• 一度に多くの人を変えるのは難しい
• 育てるのではなく、自ら育つように
• 教えられる人を増やす
• ペアプロで一人ずつ
• 若手のホープか、ベテランからか
だれとやるか
• 最初から全部やろうとしない
• テスト駆動にこだわるな
• テストファーストにこだわるな
• 「ユニット」テストにこだわるな
• テストの実行速度にこだわるな
• テストの網羅性にこだわるな
こだわるな
• 良いユニットテストの指標にも優先
度がある
• 再現、繰り返し可能 (Repeatable)
• 独立している (Independent)
• 他はそれからでいい
こだわろう
• 何はなくとも読むべし
• 「仕様化テスト」のススメ
• 「絞り込み点」を探す
レガシーコード改善ガイド
• 割れ窓理論
• メトリクスを取ろう
• カバレッジが低いうちは測定は効果大
• 小うるさいツールを乗りこなす
• 分母分子を見ない。時間を追った変化
を見る。傾きを見る。
見える化
• 動的テストと静的テスト
• 全体のメトリクスを計測して俯瞰の
視点を得る
• 部分的なメトリクスを計測し続けて
傾向を見る
• PMD, rubocop, Coverity,…
静的解析を使いこなす
• コードレビューのインフラに投資す
る
• github, gitlab, gitbucket
• WIP pull request
• コードを見る文化、見られる文化を
育てる
コードレビュー
• テストがないのは既に設計が悪い兆候
• 設計/実装を変えるのが前提
• 実装のテストを書かないこと
• テストがカバーする範囲に遊びを持た
せ、カバー範囲内をリファクタリング
• 状況に応じて E2E テストを使いこなす
設計の可動域を確保する
• サンプルとデモが大事
• 真似してもらう土台を作る
• 最初はサンプルのコピペでも良い
• テストのある生活を体験してもらう
ことが大事
• 次にテストのメンテナンスを学ぶ
背中を見せる
• できるからやるのではない
• やるからできるようになる
• あなたが書けるようにならなければ、
誰も書けるようにはならない
Social Change starts with YOU
テストはプロの嗜み
ご清聴ありがとうございました
1 of 33

Recommended

Test Yourself - テストを書くと何がどう変わるか by
Test Yourself - テストを書くと何がどう変わるかTest Yourself - テストを書くと何がどう変わるか
Test Yourself - テストを書くと何がどう変わるかTakuto Wada
38.3K views49 slides
フロー効率性とリソース効率性について #xpjug by
フロー効率性とリソース効率性について #xpjugフロー効率性とリソース効率性について #xpjug
フロー効率性とリソース効率性について #xpjugItsuki Kuroda
106.3K views62 slides
テスト文字列に「うんこ」と入れるな by
テスト文字列に「うんこ」と入れるなテスト文字列に「うんこ」と入れるな
テスト文字列に「うんこ」と入れるなKentaro Matsui
178.6K views16 slides
品質を加速させるために、テスターを増やす前から考えるべきQMファンネルの話(3D版) by
品質を加速させるために、テスターを増やす前から考えるべきQMファンネルの話(3D版)品質を加速させるために、テスターを増やす前から考えるべきQMファンネルの話(3D版)
品質を加速させるために、テスターを増やす前から考えるべきQMファンネルの話(3D版)Yasuharu Nishi
20.2K views17 slides
世界一わかりやすいClean Architecture by
世界一わかりやすいClean Architecture世界一わかりやすいClean Architecture
世界一わかりやすいClean ArchitectureAtsushi Nakamura
47.2K views77 slides
TDD のこころ by
TDD のこころTDD のこころ
TDD のこころTakuto Wada
12.8K views52 slides

More Related Content

What's hot

私にとってのテスト by
私にとってのテスト私にとってのテスト
私にとってのテストTakuto Wada
16.8K views62 slides
ソフトウェアテスト入門 by
ソフトウェアテスト入門ソフトウェアテスト入門
ソフトウェアテスト入門Preferred Networks
15.5K views39 slides
Pull Request & TDD 入門 by
Pull Request & TDD 入門Pull Request & TDD 入門
Pull Request & TDD 入門ESM SEC
3.2K views80 slides
ユーザーストーリー駆動開発で行こう。 by
ユーザーストーリー駆動開発で行こう。ユーザーストーリー駆動開発で行こう。
ユーザーストーリー駆動開発で行こう。toshihiro ichitani
121.2K views66 slides
シリコンバレーの「何が」凄いのか by
シリコンバレーの「何が」凄いのかシリコンバレーの「何が」凄いのか
シリコンバレーの「何が」凄いのかAtsushi Nakada
183.9K views77 slides
探索的テスト入門 by
探索的テスト入門探索的テスト入門
探索的テスト入門H Iseri
31.4K views40 slides

What's hot(20)

私にとってのテスト by Takuto Wada
私にとってのテスト私にとってのテスト
私にとってのテスト
Takuto Wada16.8K views
Pull Request & TDD 入門 by ESM SEC
Pull Request & TDD 入門Pull Request & TDD 入門
Pull Request & TDD 入門
ESM SEC3.2K views
ユーザーストーリー駆動開発で行こう。 by toshihiro ichitani
ユーザーストーリー駆動開発で行こう。ユーザーストーリー駆動開発で行こう。
ユーザーストーリー駆動開発で行こう。
toshihiro ichitani121.2K views
シリコンバレーの「何が」凄いのか by Atsushi Nakada
シリコンバレーの「何が」凄いのかシリコンバレーの「何が」凄いのか
シリコンバレーの「何が」凄いのか
Atsushi Nakada183.9K views
探索的テスト入門 by H Iseri
探索的テスト入門探索的テスト入門
探索的テスト入門
H Iseri31.4K views
それはYAGNIか? それとも思考停止か? by Yoshitaka Kawashima
それはYAGNIか? それとも思考停止か?それはYAGNIか? それとも思考停止か?
それはYAGNIか? それとも思考停止か?
Yoshitaka Kawashima29.3K views
modern software qa - draft 1 by Yasuharu Nishi
modern software qa - draft 1modern software qa - draft 1
modern software qa - draft 1
Yasuharu Nishi3.7K views
SQLアンチパターン 幻の第26章「とりあえず削除フラグ」 by Takuto Wada
SQLアンチパターン 幻の第26章「とりあえず削除フラグ」SQLアンチパターン 幻の第26章「とりあえず削除フラグ」
SQLアンチパターン 幻の第26章「とりあえず削除フラグ」
Takuto Wada148.8K views
インセプションデッキ: やらないことリストと トレードオフスライダーをやってる話 by Nobuhiro Yoshitake
インセプションデッキ:やらないことリストとトレードオフスライダーをやってる話インセプションデッキ:やらないことリストとトレードオフスライダーをやってる話
インセプションデッキ: やらないことリストと トレードオフスライダーをやってる話
Nobuhiro Yoshitake6.6K views
Python製BDDツールで自動化してみた by KeijiUehata1
Python製BDDツールで自動化してみたPython製BDDツールで自動化してみた
Python製BDDツールで自動化してみた
KeijiUehata113.7K views
イミュータブルデータモデル(入門編) by Yoshitaka Kawashima
イミュータブルデータモデル(入門編)イミュータブルデータモデル(入門編)
イミュータブルデータモデル(入門編)
Yoshitaka Kawashima185.9K views
やはりお前らのMVCは間違っている by Koichi Tanaka
やはりお前らのMVCは間違っているやはりお前らのMVCは間違っている
やはりお前らのMVCは間違っている
Koichi Tanaka145.7K views
DXとかDevOpsとかのなんかいい感じのやつ 富士通TechLive by Tokoroten Nakayama
DXとかDevOpsとかのなんかいい感じのやつ 富士通TechLiveDXとかDevOpsとかのなんかいい感じのやつ 富士通TechLive
DXとかDevOpsとかのなんかいい感じのやつ 富士通TechLive
Tokoroten Nakayama122.3K views
SQLアンチパターン - 開発者を待ち受ける25の落とし穴 (拡大版) by Takuto Wada
SQLアンチパターン - 開発者を待ち受ける25の落とし穴 (拡大版)SQLアンチパターン - 開発者を待ち受ける25の落とし穴 (拡大版)
SQLアンチパターン - 開発者を待ち受ける25の落とし穴 (拡大版)
Takuto Wada70.7K views
DockerコンテナでGitを使う by Kazuhiro Suga
DockerコンテナでGitを使うDockerコンテナでGitを使う
DockerコンテナでGitを使う
Kazuhiro Suga18.8K views
「速」を落とさないコードレビュー by Takafumi ONAKA
「速」を落とさないコードレビュー「速」を落とさないコードレビュー
「速」を落とさないコードレビュー
Takafumi ONAKA55.5K views
Python 3.9からの新定番zoneinfoを使いこなそう by Ryuji Tsutsui
Python 3.9からの新定番zoneinfoを使いこなそうPython 3.9からの新定番zoneinfoを使いこなそう
Python 3.9からの新定番zoneinfoを使いこなそう
Ryuji Tsutsui6.9K views
テストを分類してみよう! by Kenji Okumura
テストを分類してみよう!テストを分類してみよう!
テストを分類してみよう!
Kenji Okumura29K views

Viewers also liked

事例 アジャイルと自動化 後半(ヤフオク!アプリでの自動テストの事例紹介) at Ques vol.7( #ques7 ) 11/20/2015 by
事例 アジャイルと自動化 後半(ヤフオク!アプリでの自動テストの事例紹介) at Ques vol.7( #ques7 ) 11/20/2015事例 アジャイルと自動化 後半(ヤフオク!アプリでの自動テストの事例紹介) at Ques vol.7( #ques7 ) 11/20/2015
事例 アジャイルと自動化 後半(ヤフオク!アプリでの自動テストの事例紹介) at Ques vol.7( #ques7 ) 11/20/2015Yahoo!デベロッパーネットワーク
34.4K views56 slides
OSS活動の活発さと評価の関係について by
OSS活動の活発さと評価の関係についてOSS活動の活発さと評価の関係について
OSS活動の活発さと評価の関係についてTakuto Wada
14.7K views64 slides
SQiP2016 SIG8 by
SQiP2016 SIG8SQiP2016 SIG8
SQiP2016 SIG8Masanori Kaneko
8.4K views33 slides
テストを書く文化を育てる戦略と戦術 by
テストを書く文化を育てる戦略と戦術テストを書く文化を育てる戦略と戦術
テストを書く文化を育てる戦略と戦術Takuto Wada
49.4K views24 slides
愛せないコードを書くには人生はあまりにも短い by
愛せないコードを書くには人生はあまりにも短い愛せないコードを書くには人生はあまりにも短い
愛せないコードを書くには人生はあまりにも短いTakuto Wada
26.6K views59 slides
コミュニティ活動と企業の相互作用 ~コミュニティへの貢献と組織活動への還元~ by
コミュニティ活動と企業の相互作用 ~コミュニティへの貢献と組織活動への還元~コミュニティ活動と企業の相互作用 ~コミュニティへの貢献と組織活動への還元~
コミュニティ活動と企業の相互作用 ~コミュニティへの貢献と組織活動への還元~Masahiro Hidaka
13K views39 slides

Viewers also liked(7)

事例 アジャイルと自動化 後半(ヤフオク!アプリでの自動テストの事例紹介) at Ques vol.7( #ques7 ) 11/20/2015 by Yahoo!デベロッパーネットワーク
事例 アジャイルと自動化 後半(ヤフオク!アプリでの自動テストの事例紹介) at Ques vol.7( #ques7 ) 11/20/2015事例 アジャイルと自動化 後半(ヤフオク!アプリでの自動テストの事例紹介) at Ques vol.7( #ques7 ) 11/20/2015
事例 アジャイルと自動化 後半(ヤフオク!アプリでの自動テストの事例紹介) at Ques vol.7( #ques7 ) 11/20/2015
OSS活動の活発さと評価の関係について by Takuto Wada
OSS活動の活発さと評価の関係についてOSS活動の活発さと評価の関係について
OSS活動の活発さと評価の関係について
Takuto Wada14.7K views
テストを書く文化を育てる戦略と戦術 by Takuto Wada
テストを書く文化を育てる戦略と戦術テストを書く文化を育てる戦略と戦術
テストを書く文化を育てる戦略と戦術
Takuto Wada49.4K views
愛せないコードを書くには人生はあまりにも短い by Takuto Wada
愛せないコードを書くには人生はあまりにも短い愛せないコードを書くには人生はあまりにも短い
愛せないコードを書くには人生はあまりにも短い
Takuto Wada26.6K views
コミュニティ活動と企業の相互作用 ~コミュニティへの貢献と組織活動への還元~ by Masahiro Hidaka
コミュニティ活動と企業の相互作用 ~コミュニティへの貢献と組織活動への還元~コミュニティ活動と企業の相互作用 ~コミュニティへの貢献と組織活動への還元~
コミュニティ活動と企業の相互作用 ~コミュニティへの貢献と組織活動への還元~
Masahiro Hidaka13K views
「機械学習 By スタンフォード大学」勉強会 2015.09.11 by Minoru Chikamune
「機械学習 By スタンフォード大学」勉強会 2015.09.11「機械学習 By スタンフォード大学」勉強会 2015.09.11
「機械学習 By スタンフォード大学」勉強会 2015.09.11
Minoru Chikamune84.3K views

More from Takuto Wada

unassert - encourage reliable programming by writing assertions in production by
unassert - encourage reliable programming by writing assertions in productionunassert - encourage reliable programming by writing assertions in production
unassert - encourage reliable programming by writing assertions in productionTakuto Wada
18.1K views36 slides
OSS についてあれこれ by
OSS についてあれこれOSS についてあれこれ
OSS についてあれこれTakuto Wada
41.8K views65 slides
power-assert, mechanism and philosophy by
power-assert, mechanism and philosophypower-assert, mechanism and philosophy
power-assert, mechanism and philosophyTakuto Wada
48.4K views29 slides
アジャイルサムライの次に読む技術書 by
アジャイルサムライの次に読む技術書アジャイルサムライの次に読む技術書
アジャイルサムライの次に読む技術書Takuto Wada
25.6K views30 slides
テスト用ライブラリ power-assert by
テスト用ライブラリ power-assertテスト用ライブラリ power-assert
テスト用ライブラリ power-assertTakuto Wada
12.7K views31 slides
Reviewing RESTful Web Apps by
Reviewing RESTful Web AppsReviewing RESTful Web Apps
Reviewing RESTful Web AppsTakuto Wada
9K views29 slides

More from Takuto Wada(20)

unassert - encourage reliable programming by writing assertions in production by Takuto Wada
unassert - encourage reliable programming by writing assertions in productionunassert - encourage reliable programming by writing assertions in production
unassert - encourage reliable programming by writing assertions in production
Takuto Wada18.1K views
OSS についてあれこれ by Takuto Wada
OSS についてあれこれOSS についてあれこれ
OSS についてあれこれ
Takuto Wada41.8K views
power-assert, mechanism and philosophy by Takuto Wada
power-assert, mechanism and philosophypower-assert, mechanism and philosophy
power-assert, mechanism and philosophy
Takuto Wada48.4K views
アジャイルサムライの次に読む技術書 by Takuto Wada
アジャイルサムライの次に読む技術書アジャイルサムライの次に読む技術書
アジャイルサムライの次に読む技術書
Takuto Wada25.6K views
テスト用ライブラリ power-assert by Takuto Wada
テスト用ライブラリ power-assertテスト用ライブラリ power-assert
テスト用ライブラリ power-assert
Takuto Wada12.7K views
Reviewing RESTful Web Apps by Takuto Wada
Reviewing RESTful Web AppsReviewing RESTful Web Apps
Reviewing RESTful Web Apps
Takuto Wada9K views
power-assert in JavaScript by Takuto Wada
power-assert in JavaScriptpower-assert in JavaScript
power-assert in JavaScript
Takuto Wada9K views
TDD のこころ @ OSH2014 by Takuto Wada
TDD のこころ @ OSH2014TDD のこころ @ OSH2014
TDD のこころ @ OSH2014
Takuto Wada15.8K views
SQLアンチパターン - 開発者を待ち受ける25の落とし穴 by Takuto Wada
SQLアンチパターン - 開発者を待ち受ける25の落とし穴SQLアンチパターン - 開発者を待ち受ける25の落とし穴
SQLアンチパターン - 開発者を待ち受ける25の落とし穴
Takuto Wada17.2K views
ペアプログラミング ホントのところ by Takuto Wada
ペアプログラミング ホントのところペアプログラミング ホントのところ
ペアプログラミング ホントのところ
Takuto Wada38.4K views
RESTful Web アプリの設計レビューの話 by Takuto Wada
RESTful Web アプリの設計レビューの話RESTful Web アプリの設計レビューの話
RESTful Web アプリの設計レビューの話
Takuto Wada72.2K views
例外設計における大罪 by Takuto Wada
例外設計における大罪例外設計における大罪
例外設計における大罪
Takuto Wada68.6K views
DevLOVE DDDBC by Takuto Wada
DevLOVE DDDBCDevLOVE DDDBC
DevLOVE DDDBC
Takuto Wada3.1K views
TDDBC Fukuoka Day1 by Takuto Wada
TDDBC Fukuoka Day1TDDBC Fukuoka Day1
TDDBC Fukuoka Day1
Takuto Wada22.7K views
js テスト放浪記 by Takuto Wada
js テスト放浪記js テスト放浪記
js テスト放浪記
Takuto Wada4K views
xUTP Chapter19 (2). Testcase Class by Takuto Wada
xUTP Chapter19 (2). Testcase ClassxUTP Chapter19 (2). Testcase Class
xUTP Chapter19 (2). Testcase Class
Takuto Wada2.6K views
xUTP Chapter26. Dependency Injection by Takuto Wada
xUTP Chapter26. Dependency InjectionxUTP Chapter26. Dependency Injection
xUTP Chapter26. Dependency Injection
Takuto Wada4.3K views
xUTP Chapter27 Generated Value by Takuto Wada
xUTP Chapter27 Generated ValuexUTP Chapter27 Generated Value
xUTP Chapter27 Generated Value
Takuto Wada2.1K views
The only one big thing every programmer should know by Takuto Wada
The only one big thing every programmer should knowThe only one big thing every programmer should know
The only one big thing every programmer should know
Takuto Wada7.9K views

Recently uploaded

パスキーでリードする: NGINXとKeycloakによる効率的な認証・認可 by
パスキーでリードする: NGINXとKeycloakによる効率的な認証・認可パスキーでリードする: NGINXとKeycloakによる効率的な認証・認可
パスキーでリードする: NGINXとKeycloakによる効率的な認証・認可Hitachi, Ltd. OSS Solution Center.
13 views22 slides
PCCC23:東京大学情報基盤センター 「Society5.0の実現を目指す『計算・データ・学習』の融合による革新的スーパーコンピューティング」 by
PCCC23:東京大学情報基盤センター 「Society5.0の実現を目指す『計算・データ・学習』の融合による革新的スーパーコンピューティング」PCCC23:東京大学情報基盤センター 「Society5.0の実現を目指す『計算・データ・学習』の融合による革新的スーパーコンピューティング」
PCCC23:東京大学情報基盤センター 「Society5.0の実現を目指す『計算・データ・学習』の融合による革新的スーパーコンピューティング」PC Cluster Consortium
29 views36 slides
Keycloakの全体像: 基本概念、ユースケース、そして最新の開発動向 by
Keycloakの全体像: 基本概念、ユースケース、そして最新の開発動向Keycloakの全体像: 基本概念、ユースケース、そして最新の開発動向
Keycloakの全体像: 基本概念、ユースケース、そして最新の開発動向Hitachi, Ltd. OSS Solution Center.
110 views26 slides
PCCC23:富士通株式会社 テーマ1「次世代高性能・省電力プロセッサ『FUJITSU-MONAKA』」 by
PCCC23:富士通株式会社 テーマ1「次世代高性能・省電力プロセッサ『FUJITSU-MONAKA』」PCCC23:富士通株式会社 テーマ1「次世代高性能・省電力プロセッサ『FUJITSU-MONAKA』」
PCCC23:富士通株式会社 テーマ1「次世代高性能・省電力プロセッサ『FUJITSU-MONAKA』」PC Cluster Consortium
68 views12 slides
定例会スライド_キャチs 公開用.pdf by
定例会スライド_キャチs 公開用.pdf定例会スライド_キャチs 公開用.pdf
定例会スライド_キャチs 公開用.pdfKeio Robotics Association
154 views64 slides

Recently uploaded(7)

PCCC23:東京大学情報基盤センター 「Society5.0の実現を目指す『計算・データ・学習』の融合による革新的スーパーコンピューティング」 by PC Cluster Consortium
PCCC23:東京大学情報基盤センター 「Society5.0の実現を目指す『計算・データ・学習』の融合による革新的スーパーコンピューティング」PCCC23:東京大学情報基盤センター 「Society5.0の実現を目指す『計算・データ・学習』の融合による革新的スーパーコンピューティング」
PCCC23:東京大学情報基盤センター 「Society5.0の実現を目指す『計算・データ・学習』の融合による革新的スーパーコンピューティング」
PCCC23:富士通株式会社 テーマ1「次世代高性能・省電力プロセッサ『FUJITSU-MONAKA』」 by PC Cluster Consortium
PCCC23:富士通株式会社 テーマ1「次世代高性能・省電力プロセッサ『FUJITSU-MONAKA』」PCCC23:富士通株式会社 テーマ1「次世代高性能・省電力プロセッサ『FUJITSU-MONAKA』」
PCCC23:富士通株式会社 テーマ1「次世代高性能・省電力プロセッサ『FUJITSU-MONAKA』」
光コラボは契約してはいけない by Takuya Matsunaga
光コラボは契約してはいけない光コラボは契約してはいけない
光コラボは契約してはいけない
Takuya Matsunaga30 views

組織にテストを書く文化を根付かせる戦略と戦術