Submit Search
Upload
書こう! 使おう! 単体テスト
•
1 like
•
393 views
R
ryohji ikebe
Follow
Google Test による C/C++ 単体テスト。 Python unittest パッケージによる単体テスト。 単体テストの約束とガイドライン。
Read less
Read more
Software
Report
Share
Report
Share
1 of 32
Download now
Download to read offline
Recommended
DockerコンテナでGitを使う
DockerコンテナでGitを使う
Kazuhiro Suga
Dockerコンテナ内からGitを利用する手順
PyOpenCLによるGPGPU入門
PyOpenCLによるGPGPU入門
Yosuke Onoue
DockerとPodmanの比較
DockerとPodmanの比較
Akihiro Suda
Container Runtime Meetup #3 発表資料 (2021/1/28) https://runtime.connpass.com/event/198071/
【Unite Tokyo 2019】Unity Test Runnerを活用して内部品質を向上しよう
【Unite Tokyo 2019】Unity Test Runnerを活用して内部品質を向上しよう
UnityTechnologiesJapan002
2019/9/25-6に開催されたUnite Tokyo 2019の講演スライドです。 長谷川 孝二(株式会社ディー・エヌ・エー) こんな人におすすめ ・仕様変更やイージーミスによる手戻り、リリース遅延、詫び石などに悩まされている開発者およびテストエンジニア 受講者が得られる知見 ・開発者テスト (Unit testing, Integration testing) の位置づけ・目的・ノウハウ ・ゲーム開発におけるテストコードのベストプラクティス ・Unity Test Runner及びテストツール・ライブラリの使いかた Unityのイベント資料はこちらから: https://www.slideshare.net/UnityTechnologiesJapan/clipboards
コンテナセキュリティにおける権限制御(OCHaCafe5 #3 Kubernetes のセキュリティ 発表資料)
コンテナセキュリティにおける権限制御(OCHaCafe5 #3 Kubernetes のセキュリティ 発表資料)
NTT DATA Technology & Innovation
コンテナセキュリティにおける権限制御 ~Seccompとかよくわからんけどとりあえずこれくらいはやっておこう~ (OCHaCafe5 #3 Kubernetes のセキュリティ 発表資料) 2022年3月9日(水) NTTデータ システム技術本部生産技術部 クラウド技術センタ 望月 敬太
Pythonとパッケージングと私
Pythonとパッケージングと私
Atsushi Odagiri
pyconjp 2017 発表資料
忙しい人の5分で分かるDocker 2017年春Ver
忙しい人の5分で分かるDocker 2017年春Ver
Masahito Zembutsu
Container SIG Meet-up 2017 Spring https://connpass.com/event/54774/ の、発表資料です。 ・Dockerの現状 ・バージョン表記 ・Mobyプロジェクトについて など
Dockerfileを改善するためのBest Practice 2019年版
Dockerfileを改善するためのBest Practice 2019年版
Masahito Zembutsu
2019年5月24日(金)の発表資料をベースに解説等を加えたバージョンです。 Docker Meetup Kansai #3 https://dockerkansai.connpass.com/event/129089/
Recommended
DockerコンテナでGitを使う
DockerコンテナでGitを使う
Kazuhiro Suga
Dockerコンテナ内からGitを利用する手順
PyOpenCLによるGPGPU入門
PyOpenCLによるGPGPU入門
Yosuke Onoue
DockerとPodmanの比較
DockerとPodmanの比較
Akihiro Suda
Container Runtime Meetup #3 発表資料 (2021/1/28) https://runtime.connpass.com/event/198071/
【Unite Tokyo 2019】Unity Test Runnerを活用して内部品質を向上しよう
【Unite Tokyo 2019】Unity Test Runnerを活用して内部品質を向上しよう
UnityTechnologiesJapan002
2019/9/25-6に開催されたUnite Tokyo 2019の講演スライドです。 長谷川 孝二(株式会社ディー・エヌ・エー) こんな人におすすめ ・仕様変更やイージーミスによる手戻り、リリース遅延、詫び石などに悩まされている開発者およびテストエンジニア 受講者が得られる知見 ・開発者テスト (Unit testing, Integration testing) の位置づけ・目的・ノウハウ ・ゲーム開発におけるテストコードのベストプラクティス ・Unity Test Runner及びテストツール・ライブラリの使いかた Unityのイベント資料はこちらから: https://www.slideshare.net/UnityTechnologiesJapan/clipboards
コンテナセキュリティにおける権限制御(OCHaCafe5 #3 Kubernetes のセキュリティ 発表資料)
コンテナセキュリティにおける権限制御(OCHaCafe5 #3 Kubernetes のセキュリティ 発表資料)
NTT DATA Technology & Innovation
コンテナセキュリティにおける権限制御 ~Seccompとかよくわからんけどとりあえずこれくらいはやっておこう~ (OCHaCafe5 #3 Kubernetes のセキュリティ 発表資料) 2022年3月9日(水) NTTデータ システム技術本部生産技術部 クラウド技術センタ 望月 敬太
Pythonとパッケージングと私
Pythonとパッケージングと私
Atsushi Odagiri
pyconjp 2017 発表資料
忙しい人の5分で分かるDocker 2017年春Ver
忙しい人の5分で分かるDocker 2017年春Ver
Masahito Zembutsu
Container SIG Meet-up 2017 Spring https://connpass.com/event/54774/ の、発表資料です。 ・Dockerの現状 ・バージョン表記 ・Mobyプロジェクトについて など
Dockerfileを改善するためのBest Practice 2019年版
Dockerfileを改善するためのBest Practice 2019年版
Masahito Zembutsu
2019年5月24日(金)の発表資料をベースに解説等を加えたバージョンです。 Docker Meetup Kansai #3 https://dockerkansai.connpass.com/event/129089/
Dockerイメージ管理の内部構造
Dockerイメージ管理の内部構造
Etsuji Nakai
ver1.0 公開 ver1.1 ディスクイメージを直接操作する方法を追加 (2015/02/20)
Dockerからcontainerdへの移行
Dockerからcontainerdへの移行
Kohei Tokunaga
NTT Tech Conference 2022 での「Dockerからcontainerdへの移行」の発表資料です https://ntt-techconf.connpass.com/event/241061/ 訂正: P2. . 誤: ``` Ship docker run -it --rm alpine Run docker push ghcr.io/ktock/myalpine:latest ``` 正: ``` Ship docker push ghcr.io/ktock/myalpine:latest Run docker run -it --rm alpine ```
ADRという考えを取り入れてみて
ADRという考えを取り入れてみて
infinite_loop
【タガヤス その13】ILの日常業務から 発表資料 https://tagayas.connpass.com/event/145290/
ログ解析を支えるNoSQLの技術
ログ解析を支えるNoSQLの技術
Drecom Co., Ltd.
やはりお前らのMVCは間違っている
やはりお前らのMVCは間違っている
Koichi Tanaka
PHPカンファレンス2012 & WordCampTokyo2012 LT発表資料です。 タイトルの元ネタ: http://www.amazon.co.jp/dp/4094512624
20分くらいでわかった気分になれるC++20コルーチン
20分くらいでわかった気分になれるC++20コルーチン
yohhoy
C++MIX #5 資料
【de:code 2020】 Azure Bot Services を使って Teams bot を開発する
【de:code 2020】 Azure Bot Services を使って Teams bot を開発する
日本マイクロソフト株式会社
Azure Bot Services を使って、Microsoft Teams で動く bot を開発してみる、入門セッションです
プログラマ目線から見たRDMAのメリットとその応用例について
プログラマ目線から見たRDMAのメリットとその応用例について
Masanori Itoh
2010/11/17に開催された InfiniBand Day 02 でオンライン講演した際の資料です。 システムソフトウェアの開発者の観点から見た、RDMA機能のメリットと応用についてまとめています。 VIOPSのHPからリンクされているものと同じものです。
Rustに触れて私のPythonはどう変わったか
Rustに触れて私のPythonはどう変わったか
ShunsukeNakamura17
プログラミング言語Rustの社内イベントの発表資料です
今だからこそ知りたい Docker Compose/Swarm 入門
今だからこそ知りたい Docker Compose/Swarm 入門
Masahito Zembutsu
「Docker Machine/Compose/Swarm」を使ってみよう 発表資料 https://sakura-kanto.doorkeeper.jp/events/36134 日時:2016年1月22日(金)19:00~21:00 会場:さくらインターネット 西新宿セミナールーム@東京・西新宿 対象:Dockerに関心がありDocker Machine/Compose/Swarmを触った事がない人
20111015 勉強会 (PCIe / SR-IOV)
20111015 勉強会 (PCIe / SR-IOV)
Kentaro Ebisawa
2011年10月15日勉強会@武蔵小杉 PCIe SR-IOV
自宅k8s/vSphere入門
自宅k8s/vSphere入門
富士通クラウドテクノロジーズ株式会社
2023/02/08 開催ニフクラ エンジニア ミートアップ「自宅サーバー環境構築超入門 2023年度版」における富士通クラウドテクノロジーズ株式会社 クラウドインフラ本部ファウンデーションサービス部 春名 英明のセッションスライド。 自宅サーバー環境に、Intel NUCなどを利用してvSphereの仮想環境の上にkubesprayを使ったKubernetesを導入するといった内容。自宅サーバー用の機材紹介や、選び方のコツなども。
Akkaとは。アクターモデル とは。
Akkaとは。アクターモデル とは。
Kenjiro Kubota
2/28社内勉強会用
【Unite Tokyo 2019】Understanding C# Struct All Things
【Unite Tokyo 2019】Understanding C# Struct All Things
UnityTechnologiesJapan002
2019/9/25-6に開催されたUnite Tokyo 2019の講演スライドです。 河合 宜文(株式会社Cysharp) こんな人におすすめ ・C#を極めたいエンジニア ・パフォーマンスに興味のあるエンジニア ・プログラミング言語マニア 受講者が得られる知見 ・structに関する深い知識 ・パフォーマンス向上のヒント ・C#の新しい文法と活用法 Unityのイベント資料はこちらから: https://www.slideshare.net/UnityTechnologiesJapan/clipboards
Docker Compose 徹底解説
Docker Compose 徹底解説
Masahito Zembutsu
オープンソースカンファレンス 2019 Tokyo/Spring 発表資料 #osc19tk https://www.ospn.jp/osc2019-spring/ 2019年2月22日(金)
Linux女子部 systemd徹底入門
Linux女子部 systemd徹底入門
Etsuji Nakai
Linux女子部 「Fedora最新技術情報&Systemd勉強会」 http://connpass.com/event/3859/ で使用した資料です。 変更履歴 2013/11/04 ver1.0 初版 2013/11/05 ver1.1 誤植修正、少し追記 2013/11/06 ver1.2 daemon-reload,mask,テンプレート機能を追記 2013/11/12 ver1.3 User/Groupオプションの説明追加 2013/11/24 ver1.4 誤植修正 2014/05/05 ver1.5 imjournalモジュールの説明追加
Observable Everywhere - Rxの原則とUniRxにみるデータソースの見つけ方
Observable Everywhere - Rxの原則とUniRxにみるデータソースの見つけ方
Yoshifumi Kawai
コンテナの作り方「Dockerは裏方で何をしているのか?」
コンテナの作り方「Dockerは裏方で何をしているのか?」
Masahito Zembutsu
Dockerやコンテナについての理解を目指す入門テキストです。 CloudNative Days Kansai 2019 - #CNDK2019 における発表資料です。 https://cloudnativedays.jp/cndk2019/
AlmaLinux と Rocky Linux の誕生経緯&比較
AlmaLinux と Rocky Linux の誕生経緯&比較
beyond Co., Ltd.
ビヨンド の社内勉強会で発表した「AlmaLinux と Rocky Linux の誕生経緯&比較」のスライドです。 ーーー ● AlmaLinuxとRocky Linuxの誕生経緯&比較 https://beyondjapan.com/blog/2022/08/almalinux%ef%bc%86rockylinux/ ーーー ビヨンドの業務で触れることのある「AlmaLinux」「Rocky Linux」について、誕生の発端である CentOS の説明と、CentOS 後継問題を絡めつつ、本スライドを作成しました。 *** ■ 株式会社ビヨンド ・コーポレートサイト:https://beyondjapan.com ・採用サイト:https://recruit.beyondjapan.com ・Youtube(びよまるチャンネル):https://www.youtube.com/@beyomaruch ・Twitter:https://twitter.com/beyondjapaninfo ・Instagram:https://www.instagram.com/beyondjapan_24365 ・システム開発 SEKARAKU Lab(セカラクラボ):https://sekarakulab.beyondjapan.com ・クラウド予約システム EDISONE(エジソン):https://edisone.jp ・Webサイト監視サービス Appmill(アプミル):https://appmill.work ・WordPress専用クラウド WebSpeed(ウェブスピード):https://webspeed.ne.jp
ゼロトラスト・アーキテクチャを無料で(やれるだけ)実現する
ゼロトラスト・アーキテクチャを無料で(やれるだけ)実現する
KeioOyama
ゼロトラスト・アーキテクチャの概念をよく耳にします。ただ、実際どこまで実現できるのか、無料サービスの範囲で試してみました。
書こう! 使おう! 単体テスト
書こう! 使おう! 単体テスト
ryohji ikebe
修正版あります: https://www.slideshare.net/ikebe/ss-250865623 単体テストの意義。単体テストの書きかた、使いかた。 Google Test と Bazel による C/C++ の単体テスト。 Python unittest パッケージの使いかたと単体テスト。
TDD勉強会キックオフ for Java
TDD勉強会キックオフ for Java
Yuta Kawadai
「テスト駆動開発入門」の写経をJavaで始めるにあたって、準備するものの説明。
More Related Content
What's hot
Dockerイメージ管理の内部構造
Dockerイメージ管理の内部構造
Etsuji Nakai
ver1.0 公開 ver1.1 ディスクイメージを直接操作する方法を追加 (2015/02/20)
Dockerからcontainerdへの移行
Dockerからcontainerdへの移行
Kohei Tokunaga
NTT Tech Conference 2022 での「Dockerからcontainerdへの移行」の発表資料です https://ntt-techconf.connpass.com/event/241061/ 訂正: P2. . 誤: ``` Ship docker run -it --rm alpine Run docker push ghcr.io/ktock/myalpine:latest ``` 正: ``` Ship docker push ghcr.io/ktock/myalpine:latest Run docker run -it --rm alpine ```
ADRという考えを取り入れてみて
ADRという考えを取り入れてみて
infinite_loop
【タガヤス その13】ILの日常業務から 発表資料 https://tagayas.connpass.com/event/145290/
ログ解析を支えるNoSQLの技術
ログ解析を支えるNoSQLの技術
Drecom Co., Ltd.
やはりお前らのMVCは間違っている
やはりお前らのMVCは間違っている
Koichi Tanaka
PHPカンファレンス2012 & WordCampTokyo2012 LT発表資料です。 タイトルの元ネタ: http://www.amazon.co.jp/dp/4094512624
20分くらいでわかった気分になれるC++20コルーチン
20分くらいでわかった気分になれるC++20コルーチン
yohhoy
C++MIX #5 資料
【de:code 2020】 Azure Bot Services を使って Teams bot を開発する
【de:code 2020】 Azure Bot Services を使って Teams bot を開発する
日本マイクロソフト株式会社
Azure Bot Services を使って、Microsoft Teams で動く bot を開発してみる、入門セッションです
プログラマ目線から見たRDMAのメリットとその応用例について
プログラマ目線から見たRDMAのメリットとその応用例について
Masanori Itoh
2010/11/17に開催された InfiniBand Day 02 でオンライン講演した際の資料です。 システムソフトウェアの開発者の観点から見た、RDMA機能のメリットと応用についてまとめています。 VIOPSのHPからリンクされているものと同じものです。
Rustに触れて私のPythonはどう変わったか
Rustに触れて私のPythonはどう変わったか
ShunsukeNakamura17
プログラミング言語Rustの社内イベントの発表資料です
今だからこそ知りたい Docker Compose/Swarm 入門
今だからこそ知りたい Docker Compose/Swarm 入門
Masahito Zembutsu
「Docker Machine/Compose/Swarm」を使ってみよう 発表資料 https://sakura-kanto.doorkeeper.jp/events/36134 日時:2016年1月22日(金)19:00~21:00 会場:さくらインターネット 西新宿セミナールーム@東京・西新宿 対象:Dockerに関心がありDocker Machine/Compose/Swarmを触った事がない人
20111015 勉強会 (PCIe / SR-IOV)
20111015 勉強会 (PCIe / SR-IOV)
Kentaro Ebisawa
2011年10月15日勉強会@武蔵小杉 PCIe SR-IOV
自宅k8s/vSphere入門
自宅k8s/vSphere入門
富士通クラウドテクノロジーズ株式会社
2023/02/08 開催ニフクラ エンジニア ミートアップ「自宅サーバー環境構築超入門 2023年度版」における富士通クラウドテクノロジーズ株式会社 クラウドインフラ本部ファウンデーションサービス部 春名 英明のセッションスライド。 自宅サーバー環境に、Intel NUCなどを利用してvSphereの仮想環境の上にkubesprayを使ったKubernetesを導入するといった内容。自宅サーバー用の機材紹介や、選び方のコツなども。
Akkaとは。アクターモデル とは。
Akkaとは。アクターモデル とは。
Kenjiro Kubota
2/28社内勉強会用
【Unite Tokyo 2019】Understanding C# Struct All Things
【Unite Tokyo 2019】Understanding C# Struct All Things
UnityTechnologiesJapan002
2019/9/25-6に開催されたUnite Tokyo 2019の講演スライドです。 河合 宜文(株式会社Cysharp) こんな人におすすめ ・C#を極めたいエンジニア ・パフォーマンスに興味のあるエンジニア ・プログラミング言語マニア 受講者が得られる知見 ・structに関する深い知識 ・パフォーマンス向上のヒント ・C#の新しい文法と活用法 Unityのイベント資料はこちらから: https://www.slideshare.net/UnityTechnologiesJapan/clipboards
Docker Compose 徹底解説
Docker Compose 徹底解説
Masahito Zembutsu
オープンソースカンファレンス 2019 Tokyo/Spring 発表資料 #osc19tk https://www.ospn.jp/osc2019-spring/ 2019年2月22日(金)
Linux女子部 systemd徹底入門
Linux女子部 systemd徹底入門
Etsuji Nakai
Linux女子部 「Fedora最新技術情報&Systemd勉強会」 http://connpass.com/event/3859/ で使用した資料です。 変更履歴 2013/11/04 ver1.0 初版 2013/11/05 ver1.1 誤植修正、少し追記 2013/11/06 ver1.2 daemon-reload,mask,テンプレート機能を追記 2013/11/12 ver1.3 User/Groupオプションの説明追加 2013/11/24 ver1.4 誤植修正 2014/05/05 ver1.5 imjournalモジュールの説明追加
Observable Everywhere - Rxの原則とUniRxにみるデータソースの見つけ方
Observable Everywhere - Rxの原則とUniRxにみるデータソースの見つけ方
Yoshifumi Kawai
コンテナの作り方「Dockerは裏方で何をしているのか?」
コンテナの作り方「Dockerは裏方で何をしているのか?」
Masahito Zembutsu
Dockerやコンテナについての理解を目指す入門テキストです。 CloudNative Days Kansai 2019 - #CNDK2019 における発表資料です。 https://cloudnativedays.jp/cndk2019/
AlmaLinux と Rocky Linux の誕生経緯&比較
AlmaLinux と Rocky Linux の誕生経緯&比較
beyond Co., Ltd.
ビヨンド の社内勉強会で発表した「AlmaLinux と Rocky Linux の誕生経緯&比較」のスライドです。 ーーー ● AlmaLinuxとRocky Linuxの誕生経緯&比較 https://beyondjapan.com/blog/2022/08/almalinux%ef%bc%86rockylinux/ ーーー ビヨンドの業務で触れることのある「AlmaLinux」「Rocky Linux」について、誕生の発端である CentOS の説明と、CentOS 後継問題を絡めつつ、本スライドを作成しました。 *** ■ 株式会社ビヨンド ・コーポレートサイト:https://beyondjapan.com ・採用サイト:https://recruit.beyondjapan.com ・Youtube(びよまるチャンネル):https://www.youtube.com/@beyomaruch ・Twitter:https://twitter.com/beyondjapaninfo ・Instagram:https://www.instagram.com/beyondjapan_24365 ・システム開発 SEKARAKU Lab(セカラクラボ):https://sekarakulab.beyondjapan.com ・クラウド予約システム EDISONE(エジソン):https://edisone.jp ・Webサイト監視サービス Appmill(アプミル):https://appmill.work ・WordPress専用クラウド WebSpeed(ウェブスピード):https://webspeed.ne.jp
ゼロトラスト・アーキテクチャを無料で(やれるだけ)実現する
ゼロトラスト・アーキテクチャを無料で(やれるだけ)実現する
KeioOyama
ゼロトラスト・アーキテクチャの概念をよく耳にします。ただ、実際どこまで実現できるのか、無料サービスの範囲で試してみました。
What's hot
(20)
Dockerイメージ管理の内部構造
Dockerイメージ管理の内部構造
Dockerからcontainerdへの移行
Dockerからcontainerdへの移行
ADRという考えを取り入れてみて
ADRという考えを取り入れてみて
ログ解析を支えるNoSQLの技術
ログ解析を支えるNoSQLの技術
やはりお前らのMVCは間違っている
やはりお前らのMVCは間違っている
20分くらいでわかった気分になれるC++20コルーチン
20分くらいでわかった気分になれるC++20コルーチン
【de:code 2020】 Azure Bot Services を使って Teams bot を開発する
【de:code 2020】 Azure Bot Services を使って Teams bot を開発する
プログラマ目線から見たRDMAのメリットとその応用例について
プログラマ目線から見たRDMAのメリットとその応用例について
Rustに触れて私のPythonはどう変わったか
Rustに触れて私のPythonはどう変わったか
今だからこそ知りたい Docker Compose/Swarm 入門
今だからこそ知りたい Docker Compose/Swarm 入門
20111015 勉強会 (PCIe / SR-IOV)
20111015 勉強会 (PCIe / SR-IOV)
自宅k8s/vSphere入門
自宅k8s/vSphere入門
Akkaとは。アクターモデル とは。
Akkaとは。アクターモデル とは。
【Unite Tokyo 2019】Understanding C# Struct All Things
【Unite Tokyo 2019】Understanding C# Struct All Things
Docker Compose 徹底解説
Docker Compose 徹底解説
Linux女子部 systemd徹底入門
Linux女子部 systemd徹底入門
Observable Everywhere - Rxの原則とUniRxにみるデータソースの見つけ方
Observable Everywhere - Rxの原則とUniRxにみるデータソースの見つけ方
コンテナの作り方「Dockerは裏方で何をしているのか?」
コンテナの作り方「Dockerは裏方で何をしているのか?」
AlmaLinux と Rocky Linux の誕生経緯&比較
AlmaLinux と Rocky Linux の誕生経緯&比較
ゼロトラスト・アーキテクチャを無料で(やれるだけ)実現する
ゼロトラスト・アーキテクチャを無料で(やれるだけ)実現する
Similar to 書こう! 使おう! 単体テスト
書こう! 使おう! 単体テスト
書こう! 使おう! 単体テスト
ryohji ikebe
修正版あります: https://www.slideshare.net/ikebe/ss-250865623 単体テストの意義。単体テストの書きかた、使いかた。 Google Test と Bazel による C/C++ の単体テスト。 Python unittest パッケージの使いかたと単体テスト。
TDD勉強会キックオフ for Java
TDD勉強会キックオフ for Java
Yuta Kawadai
「テスト駆動開発入門」の写経をJavaで始めるにあたって、準備するものの説明。
20190722 Building handy CI with zuul and OpenStack
20190722 Building handy CI with zuul and OpenStack
Akihiro Motoki
Presentation at OpenStack Days Tokyo 2019 (20min session) Zuul introduction, features, basic job definitions and OpenStack integration are covered.
Gamedevenvstudy1
Gamedevenvstudy1
Takashi Kokawa
ゲーム開発環境勉強会#1の資料です
Azure DevOpsとVisual Studio App CenterをモバイルアプリのCI/CDに活用しよう
Azure DevOpsとVisual Studio App CenterをモバイルアプリのCI/CDに活用しよう
Shinya Nakajima
2020/02/07(金)に開催されたクラウドモバイルビルド/テスト Meetupで発表した資料です。 https://connpass.com/event/161541/
継続的インテグレーション3分クッキング
継続的インテグレーション3分クッキング
Takayuki Kondou
PHP agile test tips
PHP agile test tips
Tsutomu Chikuba
PHPUnit_Framework_TestCase Zend_Test_PHPUnit_ControllerTestCase PHPUnit_Extensions_Selenium2TestCase
Code igniterでテスト駆動開発 資料作成中
Code igniterでテスト駆動開発 資料作成中
Takako Miyagawa
まだ作成途中ですが、意見をいただきながら作った方がよさげなので、作成途中の資料を晒してしまうことにします。
Eclipse を使った java 開発 111126 杉浦
Eclipse を使った java 開発 111126 杉浦
urasandesu
Firefoxの開発プロセス
Firefoxの開発プロセス
Makoto Kato
Getting Started with Testing using PHPUnit
Getting Started with Testing using PHPUnit
Atsuhiro Kubo
究極のバッチフレームワーク(予定)
究極のバッチフレームワーク(予定)
fumoto kazuhiro
CIBC workshop by imagire
CIBC workshop by imagire
Takashi Imagire
Pythonを取り巻く開発環境 #pyconjp
Pythonを取り巻く開発環境 #pyconjp
Yoshifumi Yamaguchi
Python Autotest pdc2008w
Python Autotest pdc2008w
Takayuki Shimizukawa
Python auto test with buildbot. (Python 自動テスト)
ALMツールたべくらべ
ALMツールたべくらべ
Kaoru NAKAMURA
2013/3/2 CHR/H 80 でのスライド
Hello. Continuous Integration
Hello. Continuous Integration
Yuki Matsumura
developer meetup 001 発表資料. CI導入に向けての一歩目.
Jenkins+Play!で気軽にCI
Jenkins+Play!で気軽にCI
Takafumi Ikeda
Jenkins+Play!で気軽にCI 第二回Jenkins勉強会 5分で終わらなかったLT
パッケージングの今
パッケージングの今
Atsushi Odagiri
Visual studio de debug
Visual studio de debug
Kazushi Kamegawa
Debugging in Windows , use Intellitrace, WER, Global Flags in Japanese
Similar to 書こう! 使おう! 単体テスト
(20)
書こう! 使おう! 単体テスト
書こう! 使おう! 単体テスト
TDD勉強会キックオフ for Java
TDD勉強会キックオフ for Java
20190722 Building handy CI with zuul and OpenStack
20190722 Building handy CI with zuul and OpenStack
Gamedevenvstudy1
Gamedevenvstudy1
Azure DevOpsとVisual Studio App CenterをモバイルアプリのCI/CDに活用しよう
Azure DevOpsとVisual Studio App CenterをモバイルアプリのCI/CDに活用しよう
継続的インテグレーション3分クッキング
継続的インテグレーション3分クッキング
PHP agile test tips
PHP agile test tips
Code igniterでテスト駆動開発 資料作成中
Code igniterでテスト駆動開発 資料作成中
Eclipse を使った java 開発 111126 杉浦
Eclipse を使った java 開発 111126 杉浦
Firefoxの開発プロセス
Firefoxの開発プロセス
Getting Started with Testing using PHPUnit
Getting Started with Testing using PHPUnit
究極のバッチフレームワーク(予定)
究極のバッチフレームワーク(予定)
CIBC workshop by imagire
CIBC workshop by imagire
Pythonを取り巻く開発環境 #pyconjp
Pythonを取り巻く開発環境 #pyconjp
Python Autotest pdc2008w
Python Autotest pdc2008w
ALMツールたべくらべ
ALMツールたべくらべ
Hello. Continuous Integration
Hello. Continuous Integration
Jenkins+Play!で気軽にCI
Jenkins+Play!で気軽にCI
パッケージングの今
パッケージングの今
Visual studio de debug
Visual studio de debug
Recently uploaded
CO2排出量見える化・削減・報告クラウド「アスエネ」サービス紹介_Saleshub.pdf
CO2排出量見える化・削減・報告クラウド「アスエネ」サービス紹介_Saleshub.pdf
yamamotominami
「ASUENE」は、複雑だったCO2排出量算出業務をカンタンにサポートする、CO2排出量見える化・削減・報告クラウドサービスです。温室効果ガス・CO2排出量の算出・可視化、削減・カーボンオフセット、Scope1-3* のサプライチェーン排出量の報告・情報開示を支援します。
Solanaで始めるRustプログラミング - Superteam Japan Developer Event
Solanaで始めるRustプログラミング - Superteam Japan Developer Event
K Kinzal
https://lu.ma/wgpk8fdp
NIST Cybersecurity Framework 2.0の変更点整理をしよう
NIST Cybersecurity Framework 2.0の変更点整理をしよう
You&I
今年2月に1.1→2.0に更新されたNIST CSFの変更内容について整理したいと思います。
クラウドネイティブにおけるセキュアなソフトウェア・サプライ・チェーンの考え方とベストプラクティス.pdf
クラウドネイティブにおけるセキュアなソフトウェア・サプライ・チェーンの考え方とベストプラクティス.pdf
TatsuyaHanayama
ソフトウェア・サプライ・チェーン攻撃は、ソフトウェア開発のプロセス自体が侵害され、その結果、重大なセキュリティインシデントが生じてしまいます。 クラウドネイティブは顧客に迅速な価値を提供できる反面、開発プロセスは複雑で、どのようにセキュリティ対策をすべきかが課題になっています。 本セッションでは改めて上記の課題について整理し、弊社のアプリケーション・セキュリティ・テスト・プラットフォームであるPolarisを用いた解決策を紹介します。
シグネチャで始めるRustプログラミング - Superteam Japan Developer Event
シグネチャで始めるRustプログラミング - Superteam Japan Developer Event
K Kinzal
https://lu.ma/wgpk8fdp
アジャイルの30年(Tree Decades of Agileというブログ記事に関する要約)
アジャイルの30年(Tree Decades of Agileというブログ記事に関する要約)
You&I
Tree Decades of Agileというブログ記事が面白そうなので、これを読んでみたいと思います。 http://www.managecomplexity.dk/blog/2024/03/12/three-decades-of-agile/
Recently uploaded
(6)
CO2排出量見える化・削減・報告クラウド「アスエネ」サービス紹介_Saleshub.pdf
CO2排出量見える化・削減・報告クラウド「アスエネ」サービス紹介_Saleshub.pdf
Solanaで始めるRustプログラミング - Superteam Japan Developer Event
Solanaで始めるRustプログラミング - Superteam Japan Developer Event
NIST Cybersecurity Framework 2.0の変更点整理をしよう
NIST Cybersecurity Framework 2.0の変更点整理をしよう
クラウドネイティブにおけるセキュアなソフトウェア・サプライ・チェーンの考え方とベストプラクティス.pdf
クラウドネイティブにおけるセキュアなソフトウェア・サプライ・チェーンの考え方とベストプラクティス.pdf
シグネチャで始めるRustプログラミング - Superteam Japan Developer Event
シグネチャで始めるRustプログラミング - Superteam Japan Developer Event
アジャイルの30年(Tree Decades of Agileというブログ記事に関する要約)
アジャイルの30年(Tree Decades of Agileというブログ記事に関する要約)
書こう! 使おう! 単体テスト
1.
書こう! 使おう! 単体テスト Ryohji Ikebe, December
19, 2021 Google Test と Python unittest での単体テスト
2.
プログラムコード の動きを確かめる 単体テストは何のために?
3.
お品書き 単体テストを使うために ❶ Bazel の導入と
Google Test での単体テスト ❷ 単体テストの約束 ❸ Python unittest パッケージでの単体テスト ❹ 単体テストのガイドライン
4.
Bazel の導入と Google Test
での単体テスト ❶
5.
前知識 Google Test: https://google.github.io/googletest/ •
「Bazel でビルド、 Bazel で実行」が唯一の公式サポート • 「有志」のコントリビューションで CMake もつかえる • 最新の「全機能」がつかえる保証はない (不足に気づいたらコントリビュートしよう!)
6.
Bazel のインストール Google による現代的な
make 実装:https://bazel.build • モジュールのビルドやテスト実行のためにつかう • 以下を bazel.exe として保存しパスを通す: https://github.com/bazelbuild/bazel/releases/download/4.2.2/ bazel-4.2.2-windows-x86_64.exe 重要:ただしい使いかた、インストール方法は公式を読んでください。 https://docs.bazel.build/versions/4.2.2/bazel-overview.html
7.
ワークスペースの設定 WORKSPACEファイル:Visual Studio の
.sln ファイル相当 • 開発ターゲットを管理するディレクトリーの最上位に配置 (bazel コマンドは「ここ」をカレントにして実行する) • 以下内容を WORKSPACE ファイルとして保存: load("@bazel_tools//tools/build_defs/repo:http.bzl", "http_archive") http_archive( name = "com_google_googletest", urls = [ "https://github.com/google/googletest/archive/refs/tags/ release-1.11.0.zip"], strip_prefix = "googletest-release-1.11.0", sha256 = "353571c2440176ded91c2de6d6cd88ddd41401d14692ec1f99e35d013feda55a", )
8.
ビルドの準備 BUILD ファイル:Visual Studio
の .vcproj ファイル相当 • test ディレクトリーをつくり以下内容の BUILD ファイルを保存: cc_test( name = "test", srcs = ["test.cc"], deps = ["@com_google_googletest//:gtest_main"], ) • ここでは test/test.cc のみからテスト実行形式を作成するように指定 • 本来の別実装ファイルをテストする方法は公式ドキュメントを参照
9.
テストの実装 test/test.cc #include <gtest/gtest.h> namespace { int
factorial(int x) { auto v = 1; for (; x; x -= 1) v *= x; return v; } } // namespace // Tests factorial of 0. TEST(FactorialTest, HandlesZeroInput) { EXPECT_EQ(1, factorial(0)); } // Tests factorial of positive numbers. TEST(FactorialTest, HandlesPositiveInput) { EXPECT_EQ(1, factorial(1)); EXPECT_EQ(2, factorial(2)); EXPECT_EQ(6, factorial(3)); EXPECT_EQ(40320, factorial(8)); } https://google.github.io/googletest/primer.html#simple-tests の例を改変して利用。
10.
Bazel でのテスト実行 • WORKSPACE
のあるディレクトリーで以下を実行: bazel test //test • テストディレクトリーでのテスト実行指示(必要ならビルドも走る)
11.
単体テストの約束 ❷
12.
テストケースの名前: test_xxx • テストケースの関数名は
test_ で始める • すべてのテストフレームワークの祖先 JUnit からの慣習 • テストケースを「リフレクション」で自動検出するための規約 • リフレクションが使えない C/C++、 Google Test では無用
13.
テストケースの本体 テストケースは assertEquals のために書く •
期待する結果を「表明」する: assertEquals("hello, world.", get_first_message()); • C言語の assert に似ているが単体テスト専用 • 失敗したら次のテストケースの確認に進む(テストはつづく) • 言語・テストフレームワークによって様々なバリエーションがある • フレームワークの仕様・ドキュメントをよく読む • Google Test は ASSERT_EQ の代わりに EXPECT_EQ を推奨
14.
1ケース、1アサーション • 各テストケースに確かめたい内容をひとつ • 実際にはいくつ書いてもよい。 しかし、いいテストはシンプルなテスト
15.
テストケースの構造 前提のセットアップ、関数呼びだし、アサート • テストケースは(ただひとつの)アサーションのためにある テストケースの書きかた: 1. とことん具体的で身もふたもない名前をテストケースにつける 2.
アサートする処理(関数)の呼びだしを書く 3. 処理の呼びだしに必要なセットアップをする
16.
テストケースに共通なセットアップ setUp() と tearDown() •
複数のテストケースで共通する準備は setUp() メソッドで • 同様にその後かたづけを tearDown() で • テストケースの呼びだしごとに、その前後で呼ばれる • Google Test では代わりに Fixture をつかう https://google.github.io/googletest/primer.html#same-data-multiple- tests
17.
Python unittest パッケージでの単体テスト ❸
18.
Unittest パッケージ 組みこみサポート: https://docs.python.org/3/library/unittest.html •
Python をインストールしたら利用できる! % python -m unittest ----------------------------------------------------------- Ran 0 tests in 0.000s OK %
19.
"""test-factorial.py""" import unittest def factorial(x:
int) -> int: """Returns x's factorial.""" return 1 class TestFactorial(unittest.TestCase): """Test factorial""" def test_handles_zero_input(self): """Tests factorial of 0.""" self.assertEqual(1, factorial(0)) 簡単のため 実装をインポートせず テスト内で定義 Python 単体テストの書きかた TestCase クラスを継承し test メソッドを追加する TestCase を継承 テストケースを メソッドで実装
20.
テストの実行 テストの検索と実行 • unittest パッケージ経由でテスト実装ファイルを実行 %
python -m unittest test-factorial . ----------------------------------------------------------- Ran 1 test in 0.000s OK %
21.
単体テストのガイドライン ❹
22.
条件分岐しない 条件の数だけテストケースを書く • ある呼びだしで結果が変わり、それを受けて次の処理が…… • テストを分ける •
セットアップで条件を「確定」する • 「この場合の結果はこれ」というテストケースを量産する • リファクタリングの際、壊した条件すべてを検出できる 不可! 断じて不可!!
23.
ゴールから書く 逆順につくる:アサートから関数呼びだし、そしてセットアップ 1. アサーション(確かめたい結果)からはじめる 2. そのアサーションにたどり着くための関数を呼びだす 3.
関数を呼べるようにセットアップする 新規実装では「使いやすい」インターフェース(API)を設計できる。 理にかなった呼びだし。(テストしやすい=直感的につかえる) 単純なセットアップ。(呼びだしの手間をとことん削減)
24.
三角測量 関数をふたつ以上のテストケースでカバー test_double_1_makes_2() = assertEq(2,
get_double(1)) • このテストだけでは get_double(_) = 2 という実装の不正を見抜けない test_double_0_makes_zero() = assertEq(0, get_double(0)) • テストケースがふたつあれば、実装の不正・サボりを見つけやすくなる
25.
Python 例のコード修正 • サボっていました。実装を •
複数のテストケースでカバー • わかりづらい実装の説明にも 三角測量の実際
26.
単体テストの(真の意味での)単体化 モックオブジェクト、依存関係の抽出 • ネットワークへのアクセス、ファイルシステム、データベース接続、…… • これらを必要とする関数にはその「模倣」オブジェクトの注入で対処 •
Dependency Injection, Mock Object • 例えば: • ファイル名を渡すのでなく、ファイル内容を渡すようインターフェース変更 • ファイルポインター渡しに変え、テストでは open_memstream に差し替え
27.
ビルドへの組みこみ ビルド後ステップで単体テストを実行 • ビルドとセットで単体テストを実行する • コードの追加・変更で既存コードを壊していないと確信できる 重要:単体テストの実行時間を短くする。(目指せ! 全ケース実行1秒以内)
28.
テストのリズム ∼ 失敗するテストから始める フレームワークに保護されていると確かめることから 1.
テストケースに assertFail() を書く • テストして「失敗」する 2. 未実装の関数呼びだしを書く • ビルドして「失敗」する 3. 「バカ」な実装でアサートを通す • テストが通る! やった! 4. バカな実装をつかまえるテストケー スを追加する • テストが「失敗」する 5. きちんと実装する • テストが通る! かんぺき 『テスト駆動開発入門』
29.
参考(?): REPL からテストへ 動かせるドキュメントの作成 •
これ、どういう動きだったっけ? • gcc <<EOF -x c && ./a.out > int main() { …; } > EOF • 確認した結果をテストに → 動く(動かせる)ドキュメントに • 開発者の代わりに利用者が書くテスト
30.
まとめ
31.
学んだこと • Google Test
での単体テストの書きかた • Python unittest での単体テストの書きかた • 単体テストの約束、ガイドライン
32.
触れ(られ)なかったトピックス • Visual Studio
2017 以降での Google Test 統合 • https://docs.microsoft.com/en- us/visualstudio/test/how-to-use- google-test-for-cpp • macOS/Linux での Google Test • 単体テストチートシート • アサートのパターン、例外のテスト • リファクタリングとテスト • 『リファクタリング』 • 『レガシーコード改善ガイド』 • テストファースト • 『テスト駆動開発入門』 • その他のテストフレームワーク • JUnit, CppUnit, …
Download now