Suche senden
Hochladen
継続的インテグレーションとテストの話
•
Als KEY, PDF herunterladen
•
37 gefällt mir
•
10,003 views
Preferred Networks
Folgen
Melden
Teilen
Melden
Teilen
1 von 46
Jetzt herunterladen
Empfohlen
60分でわかった気になるISO29119 #wacate
60分でわかった気になるISO29119 #wacate
Kinji Akemine
分散システムについて語らせてくれ
分散システムについて語らせてくれ
Kumazaki Hiroki
シリコンバレーの「何が」凄いのか
シリコンバレーの「何が」凄いのか
Atsushi Nakada
コンテナ未経験新人が学ぶコンテナ技術入門
コンテナ未経験新人が学ぶコンテナ技術入門
Kohei Tokunaga
ドキュメントを作りたくなってしまう魔法のツールSphinx
ドキュメントを作りたくなってしまう魔法のツールSphinx
Takayuki Shimizukawa
「UXデザインとは」からはじめる「本流」のUXデザインはじめの一歩 | UXデザイン基礎セミナー 第1回
「UXデザインとは」からはじめる「本流」のUXデザインはじめの一歩 | UXデザイン基礎セミナー 第1回
Yoshiki Hayama
「顧客の声を聞かない」とはどういうことか
「顧客の声を聞かない」とはどういうことか
Yoshiki Hayama
「のどが渇いた」というユーザーに何を出す? ユーザーの「欲しい」に惑わされない、本当のインサイトを見つけるUXデザイン・UXリサーチ
「のどが渇いた」というユーザーに何を出す? ユーザーの「欲しい」に惑わされない、本当のインサイトを見つけるUXデザイン・UXリサーチ
Yoshiki Hayama
Empfohlen
60分でわかった気になるISO29119 #wacate
60分でわかった気になるISO29119 #wacate
Kinji Akemine
分散システムについて語らせてくれ
分散システムについて語らせてくれ
Kumazaki Hiroki
シリコンバレーの「何が」凄いのか
シリコンバレーの「何が」凄いのか
Atsushi Nakada
コンテナ未経験新人が学ぶコンテナ技術入門
コンテナ未経験新人が学ぶコンテナ技術入門
Kohei Tokunaga
ドキュメントを作りたくなってしまう魔法のツールSphinx
ドキュメントを作りたくなってしまう魔法のツールSphinx
Takayuki Shimizukawa
「UXデザインとは」からはじめる「本流」のUXデザインはじめの一歩 | UXデザイン基礎セミナー 第1回
「UXデザインとは」からはじめる「本流」のUXデザインはじめの一歩 | UXデザイン基礎セミナー 第1回
Yoshiki Hayama
「顧客の声を聞かない」とはどういうことか
「顧客の声を聞かない」とはどういうことか
Yoshiki Hayama
「のどが渇いた」というユーザーに何を出す? ユーザーの「欲しい」に惑わされない、本当のインサイトを見つけるUXデザイン・UXリサーチ
「のどが渇いた」というユーザーに何を出す? ユーザーの「欲しい」に惑わされない、本当のインサイトを見つけるUXデザイン・UXリサーチ
Yoshiki Hayama
Ansibleで始めるインフラ構築自動化
Ansibleで始めるインフラ構築自動化
dcubeio
ソフトウェアテスト入門
ソフトウェアテスト入門
Preferred Networks
ちょっと明日のテストの話をしよう
ちょっと明日のテストの話をしよう
Yasuharu Nishi
ネットワーク ゲームにおけるTCPとUDPの使い分け
ネットワーク ゲームにおけるTCPとUDPの使い分け
モノビット エンジン
インフラエンジニアの綺麗で優しい手順書の書き方
インフラエンジニアの綺麗で優しい手順書の書き方
Shohei Koyama
Mercari JPのモノリスサービスをKubernetesに移行した話 PHP Conference 2022 9/24
Mercari JPのモノリスサービスをKubernetesに移行した話 PHP Conference 2022 9/24
Shin Ohno
【Unite Tokyo 2019】Unityだったら簡単!マルチプレイ用ゲームサーバ開発 ~実践編~
【Unite Tokyo 2019】Unityだったら簡単!マルチプレイ用ゲームサーバ開発 ~実践編~
UnityTechnologiesJapan002
新入社員のための大規模ゲーム開発入門 サーバサイド編
新入社員のための大規模ゲーム開発入門 サーバサイド編
infinite_loop
Dockerからcontainerdへの移行
Dockerからcontainerdへの移行
Kohei Tokunaga
マイクロにしすぎた結果がこれだよ!
マイクロにしすぎた結果がこれだよ!
mosa siru
Confluenceショートカットキー表 v1
Confluenceショートカットキー表 v1
Naho Inuyama
DockerからKubernetesへのシフト
DockerからKubernetesへのシフト
masaki nakayama
テスト文字列に「うんこ」と入れるな
テスト文字列に「うんこ」と入れるな
Kentaro Matsui
Docker Compose 徹底解説
Docker Compose 徹底解説
Masahito Zembutsu
トランクベース開発を活用して爆速に開発した話
トランクベース開発を活用して爆速に開発した話
Tier_IV
【BS15】.NET アップグレード アシスタントで簡単にできます! .NET Framework アプリの .NET 6 へのマイグレーション
【BS15】.NET アップグレード アシスタントで簡単にできます! .NET Framework アプリの .NET 6 へのマイグレーション
日本マイクロソフト株式会社
Cognitive Complexity でコードの複雑さを定量的に計測しよう
Cognitive Complexity でコードの複雑さを定量的に計測しよう
Shuto Suzuki
良い?悪い?コードコメントの書き方
良い?悪い?コードコメントの書き方
Shigenori Sagawa
Webアプリを並行開発する際のマイグレーション戦略
Webアプリを並行開発する際のマイグレーション戦略
Takayuki Shimizukawa
チケット駆動開発の解説~タスク管理からプロセス改善へ
チケット駆動開発の解説~タスク管理からプロセス改善へ
akipii Oga
Cibc lecture imagire
Cibc lecture imagire
Takashi Imagire
継続的デリバリー読書会 第 7 章 コミットステージ
継続的デリバリー読書会 第 7 章 コミットステージ
Yasutomo Arai
Weitere ähnliche Inhalte
Was ist angesagt?
Ansibleで始めるインフラ構築自動化
Ansibleで始めるインフラ構築自動化
dcubeio
ソフトウェアテスト入門
ソフトウェアテスト入門
Preferred Networks
ちょっと明日のテストの話をしよう
ちょっと明日のテストの話をしよう
Yasuharu Nishi
ネットワーク ゲームにおけるTCPとUDPの使い分け
ネットワーク ゲームにおけるTCPとUDPの使い分け
モノビット エンジン
インフラエンジニアの綺麗で優しい手順書の書き方
インフラエンジニアの綺麗で優しい手順書の書き方
Shohei Koyama
Mercari JPのモノリスサービスをKubernetesに移行した話 PHP Conference 2022 9/24
Mercari JPのモノリスサービスをKubernetesに移行した話 PHP Conference 2022 9/24
Shin Ohno
【Unite Tokyo 2019】Unityだったら簡単!マルチプレイ用ゲームサーバ開発 ~実践編~
【Unite Tokyo 2019】Unityだったら簡単!マルチプレイ用ゲームサーバ開発 ~実践編~
UnityTechnologiesJapan002
新入社員のための大規模ゲーム開発入門 サーバサイド編
新入社員のための大規模ゲーム開発入門 サーバサイド編
infinite_loop
Dockerからcontainerdへの移行
Dockerからcontainerdへの移行
Kohei Tokunaga
マイクロにしすぎた結果がこれだよ!
マイクロにしすぎた結果がこれだよ!
mosa siru
Confluenceショートカットキー表 v1
Confluenceショートカットキー表 v1
Naho Inuyama
DockerからKubernetesへのシフト
DockerからKubernetesへのシフト
masaki nakayama
テスト文字列に「うんこ」と入れるな
テスト文字列に「うんこ」と入れるな
Kentaro Matsui
Docker Compose 徹底解説
Docker Compose 徹底解説
Masahito Zembutsu
トランクベース開発を活用して爆速に開発した話
トランクベース開発を活用して爆速に開発した話
Tier_IV
【BS15】.NET アップグレード アシスタントで簡単にできます! .NET Framework アプリの .NET 6 へのマイグレーション
【BS15】.NET アップグレード アシスタントで簡単にできます! .NET Framework アプリの .NET 6 へのマイグレーション
日本マイクロソフト株式会社
Cognitive Complexity でコードの複雑さを定量的に計測しよう
Cognitive Complexity でコードの複雑さを定量的に計測しよう
Shuto Suzuki
良い?悪い?コードコメントの書き方
良い?悪い?コードコメントの書き方
Shigenori Sagawa
Webアプリを並行開発する際のマイグレーション戦略
Webアプリを並行開発する際のマイグレーション戦略
Takayuki Shimizukawa
チケット駆動開発の解説~タスク管理からプロセス改善へ
チケット駆動開発の解説~タスク管理からプロセス改善へ
akipii Oga
Was ist angesagt?
(20)
Ansibleで始めるインフラ構築自動化
Ansibleで始めるインフラ構築自動化
ソフトウェアテスト入門
ソフトウェアテスト入門
ちょっと明日のテストの話をしよう
ちょっと明日のテストの話をしよう
ネットワーク ゲームにおけるTCPとUDPの使い分け
ネットワーク ゲームにおけるTCPとUDPの使い分け
インフラエンジニアの綺麗で優しい手順書の書き方
インフラエンジニアの綺麗で優しい手順書の書き方
Mercari JPのモノリスサービスをKubernetesに移行した話 PHP Conference 2022 9/24
Mercari JPのモノリスサービスをKubernetesに移行した話 PHP Conference 2022 9/24
【Unite Tokyo 2019】Unityだったら簡単!マルチプレイ用ゲームサーバ開発 ~実践編~
【Unite Tokyo 2019】Unityだったら簡単!マルチプレイ用ゲームサーバ開発 ~実践編~
新入社員のための大規模ゲーム開発入門 サーバサイド編
新入社員のための大規模ゲーム開発入門 サーバサイド編
Dockerからcontainerdへの移行
Dockerからcontainerdへの移行
マイクロにしすぎた結果がこれだよ!
マイクロにしすぎた結果がこれだよ!
Confluenceショートカットキー表 v1
Confluenceショートカットキー表 v1
DockerからKubernetesへのシフト
DockerからKubernetesへのシフト
テスト文字列に「うんこ」と入れるな
テスト文字列に「うんこ」と入れるな
Docker Compose 徹底解説
Docker Compose 徹底解説
トランクベース開発を活用して爆速に開発した話
トランクベース開発を活用して爆速に開発した話
【BS15】.NET アップグレード アシスタントで簡単にできます! .NET Framework アプリの .NET 6 へのマイグレーション
【BS15】.NET アップグレード アシスタントで簡単にできます! .NET Framework アプリの .NET 6 へのマイグレーション
Cognitive Complexity でコードの複雑さを定量的に計測しよう
Cognitive Complexity でコードの複雑さを定量的に計測しよう
良い?悪い?コードコメントの書き方
良い?悪い?コードコメントの書き方
Webアプリを並行開発する際のマイグレーション戦略
Webアプリを並行開発する際のマイグレーション戦略
チケット駆動開発の解説~タスク管理からプロセス改善へ
チケット駆動開発の解説~タスク管理からプロセス改善へ
Ähnlich wie 継続的インテグレーションとテストの話
Cibc lecture imagire
Cibc lecture imagire
Takashi Imagire
継続的デリバリー読書会 第 7 章 コミットステージ
継続的デリバリー読書会 第 7 章 コミットステージ
Yasutomo Arai
Jenkins ユーザ・カンファレンス 2012 東京 S406-4/マルチステージ型継続的インテグレーションのすすめ
Jenkins ユーザ・カンファレンス 2012 東京 S406-4/マルチステージ型継続的インテグレーションのすすめ
atsushi_tmx
ワンクリックデプロイ101 #ocdeploy
ワンクリックデプロイ101 #ocdeploy
Ryutaro YOSHIBA
Team Foundation Server ~ 今を生きるエンジニアのための開発基盤とは 【BPStudy #63】
Team Foundation Server ~ 今を生きるエンジニアのための開発基盤とは 【BPStudy #63】
智治 長沢
Jenkinsstudy#4kokawa
Jenkinsstudy#4kokawa
Takashi Kokawa
MakeGoodで快適なテスト駆動開発を
MakeGoodで快適なテスト駆動開発を
Atsuhiro Kubo
【JaSST'11 Tokyo】 テスト イノベーション
【JaSST'11 Tokyo】 テスト イノベーション
智治 長沢
VCS - Version Control System at Security and Programming camp 2011
VCS - Version Control System at Security and Programming camp 2011
Hiro Yoshioka
Devsumi2008
Devsumi2008
Agata Toshikata
「継続的デリバリー」読書会 第3章 継続的デリバリー
「継続的デリバリー」読書会 第3章 継続的デリバリー
Norikazu Hiraki
SI現場のテスト自動化への挑戦〜フルコンテナ構成のCI/CD環境〜
SI現場のテスト自動化への挑戦〜フルコンテナ構成のCI/CD環境〜
Daiki Kawanuma
ぼくのかんがえた iOSテスト戦略
ぼくのかんがえた iOSテスト戦略
Naoki Umehara
VSUG Day 2010 Summer Tokyo - keynote
VSUG Day 2010 Summer Tokyo - keynote
Takeshi Shinmura
Code igniterでテスト駆動開発 資料作成中
Code igniterでテスト駆動開発 資料作成中
Takako Miyagawa
1891件以上のカーネルの不具合修正に貢献した再現用プログラムを自動生成するsyzkallerのテスト自動化技術(NTT Tech Conference ...
1891件以上のカーネルの不具合修正に貢献した再現用プログラムを自動生成するsyzkallerのテスト自動化技術(NTT Tech Conference ...
NTT DATA Technology & Innovation
Vsug day2010 osaka_s1
Vsug day2010 osaka_s1
mizusawa
Vsug day2010 osaka_1
Vsug day2010 osaka_1
mizusawa
Enterprise TEST Forum 2012
Enterprise TEST Forum 2012
智治 長沢
【Agile Forum in Gifu】 Visual Studio 2010 でみる、アジャイル開発における開発支援ツールの活用
【Agile Forum in Gifu】 Visual Studio 2010 でみる、アジャイル開発における開発支援ツールの活用
智治 長沢
Ähnlich wie 継続的インテグレーションとテストの話
(20)
Cibc lecture imagire
Cibc lecture imagire
継続的デリバリー読書会 第 7 章 コミットステージ
継続的デリバリー読書会 第 7 章 コミットステージ
Jenkins ユーザ・カンファレンス 2012 東京 S406-4/マルチステージ型継続的インテグレーションのすすめ
Jenkins ユーザ・カンファレンス 2012 東京 S406-4/マルチステージ型継続的インテグレーションのすすめ
ワンクリックデプロイ101 #ocdeploy
ワンクリックデプロイ101 #ocdeploy
Team Foundation Server ~ 今を生きるエンジニアのための開発基盤とは 【BPStudy #63】
Team Foundation Server ~ 今を生きるエンジニアのための開発基盤とは 【BPStudy #63】
Jenkinsstudy#4kokawa
Jenkinsstudy#4kokawa
MakeGoodで快適なテスト駆動開発を
MakeGoodで快適なテスト駆動開発を
【JaSST'11 Tokyo】 テスト イノベーション
【JaSST'11 Tokyo】 テスト イノベーション
VCS - Version Control System at Security and Programming camp 2011
VCS - Version Control System at Security and Programming camp 2011
Devsumi2008
Devsumi2008
「継続的デリバリー」読書会 第3章 継続的デリバリー
「継続的デリバリー」読書会 第3章 継続的デリバリー
SI現場のテスト自動化への挑戦〜フルコンテナ構成のCI/CD環境〜
SI現場のテスト自動化への挑戦〜フルコンテナ構成のCI/CD環境〜
ぼくのかんがえた iOSテスト戦略
ぼくのかんがえた iOSテスト戦略
VSUG Day 2010 Summer Tokyo - keynote
VSUG Day 2010 Summer Tokyo - keynote
Code igniterでテスト駆動開発 資料作成中
Code igniterでテスト駆動開発 資料作成中
1891件以上のカーネルの不具合修正に貢献した再現用プログラムを自動生成するsyzkallerのテスト自動化技術(NTT Tech Conference ...
1891件以上のカーネルの不具合修正に貢献した再現用プログラムを自動生成するsyzkallerのテスト自動化技術(NTT Tech Conference ...
Vsug day2010 osaka_s1
Vsug day2010 osaka_s1
Vsug day2010 osaka_1
Vsug day2010 osaka_1
Enterprise TEST Forum 2012
Enterprise TEST Forum 2012
【Agile Forum in Gifu】 Visual Studio 2010 でみる、アジャイル開発における開発支援ツールの活用
【Agile Forum in Gifu】 Visual Studio 2010 でみる、アジャイル開発における開発支援ツールの活用
Mehr von Preferred Networks
PodSecurityPolicy からGatekeeper に移行しました / Kubernetes Meetup Tokyo #57
PodSecurityPolicy からGatekeeper に移行しました / Kubernetes Meetup Tokyo #57
Preferred Networks
Optunaを使ったHuman-in-the-loop最適化の紹介 - 2023/04/27 W&B 東京ミートアップ #3
Optunaを使ったHuman-in-the-loop最適化の紹介 - 2023/04/27 W&B 東京ミートアップ #3
Preferred Networks
Kubernetes + containerd で cgroup v2 に移行したら "failed to create fsnotify watcher...
Kubernetes + containerd で cgroup v2 に移行したら "failed to create fsnotify watcher...
Preferred Networks
深層学習の新しい応用と、 それを支える計算機の進化 - Preferred Networks CEO 西川徹 (SEMICON Japan 2022 Ke...
深層学習の新しい応用と、 それを支える計算機の進化 - Preferred Networks CEO 西川徹 (SEMICON Japan 2022 Ke...
Preferred Networks
Kubernetes ControllerをScale-Outさせる方法 / Kubernetes Meetup Tokyo #55
Kubernetes ControllerをScale-Outさせる方法 / Kubernetes Meetup Tokyo #55
Preferred Networks
Kaggle Happywhaleコンペ優勝解法でのOptuna使用事例 - 2022/12/10 Optuna Meetup #2
Kaggle Happywhaleコンペ優勝解法でのOptuna使用事例 - 2022/12/10 Optuna Meetup #2
Preferred Networks
最新リリース:Optuna V3の全て - 2022/12/10 Optuna Meetup #2
最新リリース:Optuna V3の全て - 2022/12/10 Optuna Meetup #2
Preferred Networks
Optuna Dashboardの紹介と設計解説 - 2022/12/10 Optuna Meetup #2
Optuna Dashboardの紹介と設計解説 - 2022/12/10 Optuna Meetup #2
Preferred Networks
スタートアップが提案する2030年の材料開発 - 2022/11/11 QPARC講演
スタートアップが提案する2030年の材料開発 - 2022/11/11 QPARC講演
Preferred Networks
Deep Learningのための専用プロセッサ「MN-Core」の開発と活用(2022/10/19東大大学院「 融合情報学特別講義Ⅲ」)
Deep Learningのための専用プロセッサ「MN-Core」の開発と活用(2022/10/19東大大学院「 融合情報学特別講義Ⅲ」)
Preferred Networks
PFNにおける研究開発(2022/10/19 東大大学院「融合情報学特別講義Ⅲ」)
PFNにおける研究開発(2022/10/19 東大大学院「融合情報学特別講義Ⅲ」)
Preferred Networks
自然言語処理を 役立てるのはなぜ難しいのか(2022/10/25東大大学院「自然言語処理応用」)
自然言語処理を 役立てるのはなぜ難しいのか(2022/10/25東大大学院「自然言語処理応用」)
Preferred Networks
Kubernetes にこれから入るかもしれない注目機能!(2022年11月版) / TechFeed Experts Night #7 〜 コンテナ技術を語る
Kubernetes にこれから入るかもしれない注目機能!(2022年11月版) / TechFeed Experts Night #7 〜 コンテナ技術を語る
Preferred Networks
Matlantis™のニューラルネットワークポテンシャルPFPの適用範囲拡張
Matlantis™のニューラルネットワークポテンシャルPFPの適用範囲拡張
Preferred Networks
PFNのオンプレ計算機クラスタの取り組み_第55回情報科学若手の会
PFNのオンプレ計算機クラスタの取り組み_第55回情報科学若手の会
Preferred Networks
続・PFN のオンプレML基盤の取り組み / オンプレML基盤 on Kubernetes 〜PFN、ヤフー〜 #2
続・PFN のオンプレML基盤の取り組み / オンプレML基盤 on Kubernetes 〜PFN、ヤフー〜 #2
Preferred Networks
Kubernetes Service Account As Multi-Cloud Identity / Cloud Native Security Co...
Kubernetes Service Account As Multi-Cloud Identity / Cloud Native Security Co...
Preferred Networks
KubeCon + CloudNativeCon Europe 2022 Recap / Kubernetes Meetup Tokyo #51 / #k...
KubeCon + CloudNativeCon Europe 2022 Recap / Kubernetes Meetup Tokyo #51 / #k...
Preferred Networks
KubeCon + CloudNativeCon Europe 2022 Recap - Batch/HPCの潮流とScheduler拡張事例 / Kub...
KubeCon + CloudNativeCon Europe 2022 Recap - Batch/HPCの潮流とScheduler拡張事例 / Kub...
Preferred Networks
独断と偏見で選んだ Kubernetes 1.24 の注目機能と今後! / Kubernetes Meetup Tokyo 50
独断と偏見で選んだ Kubernetes 1.24 の注目機能と今後! / Kubernetes Meetup Tokyo 50
Preferred Networks
Mehr von Preferred Networks
(20)
PodSecurityPolicy からGatekeeper に移行しました / Kubernetes Meetup Tokyo #57
PodSecurityPolicy からGatekeeper に移行しました / Kubernetes Meetup Tokyo #57
Optunaを使ったHuman-in-the-loop最適化の紹介 - 2023/04/27 W&B 東京ミートアップ #3
Optunaを使ったHuman-in-the-loop最適化の紹介 - 2023/04/27 W&B 東京ミートアップ #3
Kubernetes + containerd で cgroup v2 に移行したら "failed to create fsnotify watcher...
Kubernetes + containerd で cgroup v2 に移行したら "failed to create fsnotify watcher...
深層学習の新しい応用と、 それを支える計算機の進化 - Preferred Networks CEO 西川徹 (SEMICON Japan 2022 Ke...
深層学習の新しい応用と、 それを支える計算機の進化 - Preferred Networks CEO 西川徹 (SEMICON Japan 2022 Ke...
Kubernetes ControllerをScale-Outさせる方法 / Kubernetes Meetup Tokyo #55
Kubernetes ControllerをScale-Outさせる方法 / Kubernetes Meetup Tokyo #55
Kaggle Happywhaleコンペ優勝解法でのOptuna使用事例 - 2022/12/10 Optuna Meetup #2
Kaggle Happywhaleコンペ優勝解法でのOptuna使用事例 - 2022/12/10 Optuna Meetup #2
最新リリース:Optuna V3の全て - 2022/12/10 Optuna Meetup #2
最新リリース:Optuna V3の全て - 2022/12/10 Optuna Meetup #2
Optuna Dashboardの紹介と設計解説 - 2022/12/10 Optuna Meetup #2
Optuna Dashboardの紹介と設計解説 - 2022/12/10 Optuna Meetup #2
スタートアップが提案する2030年の材料開発 - 2022/11/11 QPARC講演
スタートアップが提案する2030年の材料開発 - 2022/11/11 QPARC講演
Deep Learningのための専用プロセッサ「MN-Core」の開発と活用(2022/10/19東大大学院「 融合情報学特別講義Ⅲ」)
Deep Learningのための専用プロセッサ「MN-Core」の開発と活用(2022/10/19東大大学院「 融合情報学特別講義Ⅲ」)
PFNにおける研究開発(2022/10/19 東大大学院「融合情報学特別講義Ⅲ」)
PFNにおける研究開発(2022/10/19 東大大学院「融合情報学特別講義Ⅲ」)
自然言語処理を 役立てるのはなぜ難しいのか(2022/10/25東大大学院「自然言語処理応用」)
自然言語処理を 役立てるのはなぜ難しいのか(2022/10/25東大大学院「自然言語処理応用」)
Kubernetes にこれから入るかもしれない注目機能!(2022年11月版) / TechFeed Experts Night #7 〜 コンテナ技術を語る
Kubernetes にこれから入るかもしれない注目機能!(2022年11月版) / TechFeed Experts Night #7 〜 コンテナ技術を語る
Matlantis™のニューラルネットワークポテンシャルPFPの適用範囲拡張
Matlantis™のニューラルネットワークポテンシャルPFPの適用範囲拡張
PFNのオンプレ計算機クラスタの取り組み_第55回情報科学若手の会
PFNのオンプレ計算機クラスタの取り組み_第55回情報科学若手の会
続・PFN のオンプレML基盤の取り組み / オンプレML基盤 on Kubernetes 〜PFN、ヤフー〜 #2
続・PFN のオンプレML基盤の取り組み / オンプレML基盤 on Kubernetes 〜PFN、ヤフー〜 #2
Kubernetes Service Account As Multi-Cloud Identity / Cloud Native Security Co...
Kubernetes Service Account As Multi-Cloud Identity / Cloud Native Security Co...
KubeCon + CloudNativeCon Europe 2022 Recap / Kubernetes Meetup Tokyo #51 / #k...
KubeCon + CloudNativeCon Europe 2022 Recap / Kubernetes Meetup Tokyo #51 / #k...
KubeCon + CloudNativeCon Europe 2022 Recap - Batch/HPCの潮流とScheduler拡張事例 / Kub...
KubeCon + CloudNativeCon Europe 2022 Recap - Batch/HPCの潮流とScheduler拡張事例 / Kub...
独断と偏見で選んだ Kubernetes 1.24 の注目機能と今後! / Kubernetes Meetup Tokyo 50
独断と偏見で選んだ Kubernetes 1.24 の注目機能と今後! / Kubernetes Meetup Tokyo 50
継続的インテグレーションとテストの話
1.
PFIセミナー 継続的インテグレーションと
テストの話 Eiichiro Iwata 2012年 5月 10日
2.
自己紹介 岩田 英一郎
(@eiichiroi) 元さいたまな人 経歴 2009年6月∼ アルバイト 2010年3月 埼玉大学 大学院理工学研究科 修了 2010年8月∼ PFI入社 所属 製品開発部 Sedueプロジェクト 仕事 Sedue(検索エンジン)の開発 コア∼運用ツールを幅広く 研究開発成果の取り込み 2
3.
本日の内容
3
4.
本日の内容
型? 残念ながら違います 3
5.
本日の内容 型?
残念ながら違います 継続的インテグレーション 概要/流れ/価値/懸念点/導入 テスト 単体テスト/統合テスト/システムテスト/受け入れテスト 結論 継続的インテグレーションとテストは重要 3
6.
本日の内容 型?
残念ながら違います 継続的インテグレーション 概要/流れ/価値/懸念点/導入 テスト 単体テスト/統合テスト/システムテスト/受け入れテスト 結論 継続的インテグレーションとテストは重要 注意 基礎的な話が多めなので、ご存知の方はあまり面白くないかも 3
7.
継続的インテグレーションとは? インテグレーション
複数のコンポーネントで構成されるソフトウェアが一つのシステム として機能することを検証すること 継続的? 変更がある度に! 目的 ソフトウェア品質の向上 特に重要なこと 迅速なフィードバックを得られるようにすること 自動化が効果的(ボタン一発!) 4
8.
継続的インテグレーションの流れ
監視 バージョン管理 インテグレーション システム サーバー (git, subversion, ...) (jenkins, ...) 5
9.
継続的インテグレーションの流れ
監視 バージョン管理 インテグレーション システム サーバー (git, subversion, ...) (jenkins, ...) 1.開発/検証/パッチレビュー 2.プライベートビルド 5 (開発環境でのビルド)
10.
継続的インテグレーションの流れ
監視 変更をコミット バージョン管理 インテグレーション システム サーバー (git, subversion, ...) (jenkins, ...) 1.開発/検証/パッチレビュー 2.プライベートビルド 5 (開発環境でのビルド)
11.
継続的インテグレーションの流れ
監視 実行 変更をコミット ビルドスクリプト バージョン管理 インテグレーション 1.コンパイル システム サーバー 2.テストの実行 (git, subversion, ...) (jenkins, ...) 3.インスペクションの実行 (コードの解析) 4.デプロイ 1.開発/検証/パッチレビュー (パッケージ作成など) 2.プライベートビルド 5 (開発環境でのビルド)
12.
継続的インテグレーションの流れ
フィードバックの生成 監視 実行 変更をコミット ビルドスクリプト バージョン管理 インテグレーション 1.コンパイル システム サーバー 2.テストの実行 (git, subversion, ...) (jenkins, ...) 3.インスペクションの実行 (コードの解析) 4.デプロイ 1.開発/検証/パッチレビュー (パッケージ作成など) 2.プライベートビルド 5 (開発環境でのビルド)
13.
継続的インテグレーションの流れ
フィードバックの通知 フィードバックの生成 監視 実行 変更をコミット ビルドスクリプト バージョン管理 インテグレーション 1.コンパイル システム サーバー 2.テストの実行 (git, subversion, ...) (jenkins, ...) 3.インスペクションの実行 (コードの解析) 4.デプロイ 1.開発/検証/パッチレビュー (パッケージ作成など) 2.プライベートビルド 5 (開発環境でのビルド)
14.
ビルドの種類
プライベートビルド インテグレーションビルド リリースビルド 種類 プライベートビルド インテグレーションビルド リリースビルド 実行される場所や内容が異なる 迅速なフィードバックを得られるようにするため 6
15.
ビルドの種類 - プライベートビルド
プライベートビルド インテグレーションビルド リリースビルド 開発環境でのビルド リポジトリに変更をコミットする前に実行する 個人(開発者)向け ビルドの範囲 コンパイル 軽量なテスト(単体テスト) 実行時間の目安 10分以内 7
16.
ビルドの種類 - インテグレーションビルド(1/3)
プライベートビルド インテグレーションビルド リリースビルド インテグレーションサーバーでのビルド 開発チーム向け 分類 コミットビルド 2次ビルド 8
17.
ビルドの種類 - インテグレーションビルド(2/3)
プライベートビルド インテグレーションビルド リリースビルド コミットビルド リポジトリに変更がコミットされる度に実行される ビルドの範囲 コンパイル 軽量なテスト(単体テスト) 実行時間の目安 10分以内 9
18.
ビルドの種類 - インテグレーションビルド(3/3)
プライベートビルド インテグレーションビルド リリースビルド 2次ビルド コミットビルドが成功した後に実行される(場合によって日次/週次) ビルドの範囲 コンパイル 軽量なテスト(単体テスト) 重量なテスト(統合テスト/システムテスト/受け入れテスト) インスペクション デプロイ 実行時間の目安 10分∼数時間以内 10
19.
ビルドの種類 - リリースビルド
プライベートビルド インテグレーションビルド リリースビルド リリース前に行うビルド ユーザ(顧客)向け ビルド範囲 コンパイル テスト 単体テスト/統合テスト/システムテスト/受け入れテスト 性能テスト/負荷テストを含めることも インスペクション デプロイ 実行時間の目安 インテグレーションビルドと同様 + α 11
20.
継続的インテグレーションの価値
12
21.
継続的インテグレーションの価値
検証コストの削減 ビルドの自動化による恩恵 常にデプロイ可能なソフトウェアを提供できる 迅速なフィードバックによりバグの混入∼修正まで短時間で 失敗したら最優先で直す 修正/機能追加を自信を持って行える 既存のテストを壊してないかすぐ分かる 12
22.
継続的インテグレーションの価値
検証コストの削減 ビルドの自動化による恩恵 常にデプロイ可能なソフトウェアを提供できる 迅速なフィードバックによりバグの混入∼修正まで短時間で 失敗したら最優先で直す 修正/機能追加を自信を持って行える 既存のテストを壊してないかすぐ分かる 品質の高いソフトウェアへ 12
23.
継続的インテグレーションの懸念点
CIシステムの構築が大変? 出来ればプロジェクトの初期から導入するのが望ましい プロジェクトの途中から導入する場合はやや大変 自動化に必要な機能開発など 段階的導入を検討する ‒ 日次ビルド、コンパイルと単体テスト∼ ハードウェア/ソフトウェアの費用は? 削減できる検証コストに比べれば微々たるもの 開発環境で走らせれば良いのでは? クリーンなビルド環境は重要です プライベートビルドが通っても、インテグレーションビルドが通ら ないこともあります(迫真) 13
24.
継続的インテグレーションの導入
Jenkins Travis CI インテグレーションサーバーのセットアップ Jenkins Travis CI ビルドの自動化 1. コンパイル 2. テスト 3. インスペクション 4. デプロイ 14
25.
Jenkins - セットアップ
Jenkins Travis CI Jenkins インストール 起動 ブラウザ経由でポチポチ設定 リポジトリの場所の登録 ビルドスクリプトの登録 ビルド結果の通知方法の設定 ビルド結果もブラウザで確認できる プラグインも豊富 続きは Jenkins実践入門 Jenkins ユーザ・カンファレンス 2012 東京 15
26.
Jenkins - 色々なフィードバック手段を試してみる
Jenkins Travis CI フィードバック手段 メール 光(ランプ) 音 タスクバー、Growl ブラウザのプラグイン いつ、だれに、何をフィードバックするのかを考慮しつつ決める 16
27.
Jenkins - 最近リリースされたDashbozu
Jenkins Travis CI 今回は試す時間が確保できず...紹介のみ 17
28.
Travis CI
Jenkins Travis CI Travis CI 継続的インテグレーションを提供するサービス オープンソース向け GitHubと連携 http://travis-ci.org/ ※公式対応言語に注意(C++とかD言語とか公式対応してません) セットアップ 1. GitHubとの連携を許可 2. リポジトリ毎にTravisの有効/無効を設定 3. ビルドスクリプトを書いてリポジトリにコミット .travis.ymlをリポジトリのトップディレクトリへ pficommonをforkして登録してみた http://travis-ci.org/#!/eiichiroi/pficommon 18
29.
継続的インテグレーションの導入
コンパイル テスト インスペクション デプロイ インテグレーションサーバーのセットアップ Jenkins Travis CI ビルドの自動化 1. コンパイル 2. テスト 3. インスペクション 4. デプロイ 19
30.
ビルドの自動化 - 1.コンパイル
コンパイル テスト インスペクション デプロイ コンパイル手順の自動化 waf autotools make rake ant (言語やプロジェクトに応じて選択) 20
31.
ビルドの自動化 - 2.テストの実行
コンパイル テスト インスペクション デプロイ テストフレームワーク Google Test, Boost.Test (言語やプロジェクト、テストの種類に応じて選択) テストの実行範囲が重要 迅速にフィードバックを得られるように、分類して実行範囲を絞る 段階的にテストを実施すると良い 軽量なテスト 単体テスト 重量なテスト 統合テスト/システムテスト/受け入れテスト/... データベースのセットアップなどが必要になることも多い 21
32.
ビルドの自動化 - 3.インスペクションの実行(1/2)
コンパイル テスト インスペクション デプロイ ソースコードの静的解析・動的解析 コーディング規約違反の検出(cpplint) コピペの検出 各種コードメトリクスの計測 クラス数 メソッド数 テストの網羅率(カバレッジ) 注意点 解析をして終わりにしない。何かしらの対処を行う コーディング規約違反を直す コピペは共通化できるなら直す カバレッジが低いところを補強する 22
33.
ビルドの自動化 - 3.インスペクションの実行(2/2)
コンパイル テスト インスペクション デプロイ pficommonのカバレッジを測定してみた gcc + gcov + lcov スクリプト https://gist.github.com/2643761 結果 http://eiichiroi.github.com/pficommon/ network...(^p^)...pull requestお待ちしております 23
34.
ビルドの自動化 - 4.デプロイ
コンパイル テスト インスペクション デプロイ ソフトウェアを利用可能な状態で提供すること デプロイ対象のプラットフォームごとに (テストやインスペクションの実施) パッケージの作成 設定ファイルの準備 ... 継続的にデプロイまで行うのは割と大変 短期間でのリリースを行う場合はほぼ必須になる 24
35.
テスト
単体テスト 統合テスト システムテスト 受け入れテスト テストのないコードはレガシーコード! ソフトウェアの品質を担保するために必要 テストの分類(IEEE標準規格) 単体テスト 統合テスト システムテスト 受け入れテスト 注意 組織によっては分類が少ないことも コンパイル 単体テスト 統合テスト システムテスト 受け入れテスト インスペクション デプロイ プライベートビルド コミットビルド 2次ビルド リリースビルド 25
36.
単体テスト
単体テスト 統合テスト システムテスト 受け入れテスト 個々のコンポーネントに対して個別に行うテスト コンポーネント 車の場合 関数 エンジン クラス キャリブレータ 他のエンジン部品 ...ねじ? テストする人 燃料モジュール 空気モジュール 各コンポーネントの開発者 ねじ1 ねじX 何か ねじ1 何か 優れた単体テスト 実行速度が速い(1テスト0.1秒では遅い) 問題箇所の特定がしやすい 26
37.
単体テストの例: pficommon
単体テスト 統合テスト システムテスト 受け入れテスト 27
38.
単体テストの例: pficommon
単体テスト 統合テスト システムテスト 受け入れテスト 文字列をbase64エンコードする関数 テストコード 27
39.
単体テストの注意点
単体テスト 統合テスト システムテスト 受け入れテスト 単体テストではないもの 外部リソースに依存するテスト データベース/ネットワーク/ファイルシステムにアクセスする →モックオブジェクトなどで分離 細かいテクニックはレガシーコード改善ガイドを参照 ソフトウェアを変更するにはテストが重要 テストのない状況からテストを整備していく方法 依存関係を排除するテクニック集 28
40.
統合テスト
単体テスト 統合テスト システムテスト 受け入れテスト システムの一部を対象とするテスト 複数のコンポーネントが依存関係を持つテスト 外部リソースへ依存するテスト データベース/ネットワーク/ファイルシステムにアクセスする 車の場合 テストする人 開発チームの人 エンジン 優れた統合テスト キャリブレータ 他のエンジン部品 網羅率が高い 燃料モジュール 空気モジュール 単体テストと統合テストの境界 ソフトウェアの規模による ねじ1 ねじX 何か ねじ1 何か テストの実行時間が十分少ないときには分けないことも 29
41.
統合テストの例: pficommon
単体テスト 統合テスト システムテスト 受け入れテスト pfi::text::jsonのテスト pficommon/src/text/json_test.cpp 粒度が粗めのテストが多い pfi::data::serializationのテスト pficommon/src/data/serialization_test.cpp 色んな型の変数をファイルへシリアライズしている 興味ある型はgithubを見てください 30
42.
システムテスト
単体テスト 統合テスト システムテスト 受け入れテスト システム全体を対象とするテスト 車の場合 UIやAPIを経由してテストする 車 テストする人 テストチーム 駆動装置 HVAC 他の車体部品 優れたシステムテスト 幅広いテスト エンジン トランスミッション 機能/負荷/性能テストなど キャリブレータ 他のエンジン部品 統合テストとシステムテストの境界 ソフトウェアの規模によって変わる 何を「システム」と定義するか?サブシステムに分割することも 統合テストとシステムテストを合わせて結合テストと呼ぶことも? 組織によって違ったりしてカオス 31
43.
受け入れテスト
単体テスト 統合テスト システムテスト 受け入れテスト ユーザの要件を満たしているかどうかのテスト アルファテスト 開発者側で行う受け入れテスト ベータテスト 顧客側で行う受け入れテスト ユーザビリティのテストなども行う テストする人 顧客 顧客層を代表する人 顧客やソフトウェアのユースケースを良く理解している 優れた受け入れテスト 実環境とテスト環境が同じ ハードウェア/ソフトウェア/データ/人 32
44.
まとめ 継続的インテグレーション
概要/流れ/価値/懸念点/導入 テスト 単体テスト/統合テスト/システムテスト/受け入れテスト 結論 継続的インテグレーションとテストは重要 検証コストの削減 常にデプロイ可能なソフトウェアを提供できる 修正/機能追加を自信を持って行える 段階的にでも良いので導入しましょう 33
45.
参考文献
継続的インテグレーション入門 やや古くなっているが、まとまっている Jenkins実践入門 Jenkins導入するなら 体系的ソフトウェアテスト入門 テストプロセス、テスト計画、テスト実行 レガシーコード改善ガイド 開発者は読むべき 34
46.
Copyright © 2006-2012 Preferred
Infrastructure All Right Reserved.
Hinweis der Redaktion
\n
\n
\n
\n
\n
\n
\n
\n
\n
\n
\n
\n
\n
\n
\n
\n
\n
\n
\n
\n
\n
\n
\n
\n
\n
\n
\n
\n
\n
\n
\n
\n
\n
\n
\n
\n
\n
\n
\n
\n
\n
\n
\n
\n
\n
\n
\n
Jetzt herunterladen