More Related Content
PDF
ツール比較しながら語る O/RマッパーとDBマイグレーションの実際のところ PPTX
MVPパターンによる設計アプローチ「あなたのアプリ報連相できてますか」 PPTX
モノリスからマイクロサービスへの移行 ~ストラングラーパターンの検証~(Spring Fest 2020講演資料) PPTX
SPAセキュリティ入門~PHP Conference Japan 2021 PPTX
今から始めるWebClient(JSUG勉強会 2020年その6 LT大会) PDF
PDF
PPTX
Laravel×DevOps -インフラ構築の自動化から運用ログの監視まで- What's hot
PDF
がんばらなくても C# で Single Page Web アプリケーションが書けてしまう「Blazor」とは PDF
PDF
PDF
PPTX
PDF
怖くないSpring Bootのオートコンフィグレーション PPTX
Spring CloudとZipkinを利用した分散トレーシング PDF
Spring Boot の Web アプリケーションを Docker に載せて AWS ECS で動かしている話 PDF
強いて言えば「集約どう実装するのかな、を考える」な話 PDF
ヤフーのプライベートクラウドとクラウドエンジニアの業務について PDF
PDF
PDF
PDF
PDF
PDF
異音検知プラットフォーム開発におけるMLOpsの実際と考察 - MLOps コミュニティ #3 PDF
SQLアンチパターン 幻の第26章「とりあえず削除フラグ」 PDF
PPTX
Java 17直前!オレ流OpenJDK「の」開発環境(Open Source Conference 2021 Online/Kyoto 発表資料) PDF
Similar to C++でテスト駆動開発
PDF
TDDを一年やってみました ~シロート集団がTDDをやってはまったこと~ PDF
PPT
PDF
PDF
テスト駆動ゲーム開発をJava scriptで実践 in jscafe20 PPTX
PDF
KEY
PPTX
PDF
C# から java へのプログラム移植で体験したtddの効果は? PDF
Ruby初級者向けレッスン 第46回 ─── Test::Unit PDF
PDF
PDF
xUnit Test Patterns - Chapter11 PDF
KEY
テスト初心者Androiderのためのソフトウェアテスト入門 PDF
xUTP Chapter19 (2). Testcase Class PDF
PDF
PDF
More from Akineko Shimizu
PPTX
PDF
PDF
PDF
PDF
PDF
PDF
PDF
C++でテスト駆動開発
- 1.
- 2.
自己紹介
HN: 秋猫
Twitter: @akineko
Blog: http://d.hatena.ne.jp/Akineko/ 絶賛更新停滞中!
職歴: ホテル→Webデザイン→ゲームプログラマ
Aimingという会社でオンラインゲームの
サーバープログラマやってます
C++とかアジャイル開発が好きです
- 3.
- 4.
- 5.
- 6.
Google Test
公式:http://code.google.com/p/googletest/
ドキュメントの翻訳: http://opencv.jp/googletestdocs/
名前の通りGoogle製のC++テストライブラリ
豊富なアサーション
http://lovejava.blog85.fc2.com/blog-entry-3.html
豊富な機能
比較的癖がなく使いやすい
- 7.
- 8.
Google Testのフィクスチャ機能
class FooTest: public ::testing::Test {
public:
FooTest() { /* テストスイート単位での初期化処理 */ }
~FooTest() { /* テストスイート単位での終了処理 */ }
protected:
virtual void SetUp() { /* テスト毎の初期化処理 */ }
virtual void TearDown() { /* テスト毎の終了処理 */ }
Foo foo;
}
TEST_F(FooTest, hogeTest) { /* fooを使ったテスト */ }
- 9.
- 10.
- 11.
Cutterのフィクスチャ機能
cut_startup()
テストスイート単位での初期化処理
cut_shutdown()
テストスイート単位での終了処理
cut_setup()
テストケース単位での初期化処理
cut_teardown()
テストケース単位での終了処理
これらをnamespace内に含めればOK
- 12.
その他
CppUnit
http://sourceforge.net/apps/mediawiki/cppunit/index.php
CxxTest
http://cxxtest.com/
QTestLib
http://developer.qt.nokia.com/doc/qt-4.8/qtestlib-manual.html
UnitTest++
http://unittest-cpp.sourceforge.net/
- 13.
モックライブラリ
GoogleMock
http://code.google.com/p/googlemock/
http://opencv.jp/googlemockdocs/index.html
Mockitopp
http://code.google.com/p/mockitopp/
- 14.
- 15.
テスト駆動開発とは?
通常の開発手法
実装を行い、それに対するテストを書く
時にはテストがないものも…
テスト駆動開発
先にテストコードを書き、
そのテストが通る実装を行なっていく開発手法
あくまで開発手法でありテスト手法ではない
- 16.
テスト駆動開発のサイクル
1. テストコードを書く
2. 実行して失敗することを確認する
3. そのテストに成功する最低限の実装コードを書く
4. 実行して成功することを確認する
5. テストが通る状態のままリファクタリングを行う
6. 1〜5をリズムよく繰り返す
- 17.
- 18.
- 19.
- 20.
- 21.
- 22.
- 23.
- 24.
- 25.
- 26.
テストのレベル
単体テスト
1つのクラスや1つの関数など
プログラムの最も小さい部品に対するテスト
単体の定義は言語により様々
Cだと関数1つ、C++だとクラス1つなど
テスト駆動開発で書くテストのレベルは主にこれ
統合テスト
単体を組み合わせた1つのサブシステムに対するテスト
Etc…
- 27.
テストの種別
ブラックボックステスト
要件や仕様に基づいてどのように振る舞うべきかのテスト
内部の実装や構造の知識を必要としない
ホワイトボックステスト
内部の実装や構造に基づいたテスト
if文やcase文などの全ての経路を通っているかなど
プログラミングの知識もある程度必要なもの
- 28.
- 29.
- 30.
- 31.
- 32.
- 33.
- 34.
- 35.
- 36.
- 37.
- 38.
- 39.
- 40.
参考書籍
テスト駆動開発入門
http://amzn.to/wsqgW3
はじめて学ぶソフトウェアのテスト技法
http://amzn.to/zXZz8D
ソフトウェアテスト技法ドリル
http://amzn.to/zVkXLI
マインドマップから始めるソフトウェアテスト
http://amzn.to/w3BSN7
- 41.
参考文献
TDD AdventCalendar jp: 2011
http://atnd.org/events/22027
和田さんの資料
http://www.slideshare.net/t_wada
Twitter・Blog・Google検索いろいろ…
- 42.