Download free for 30 days
Sign in
Upload
Language (EN)
Support
Business
Mobile
Social Media
Marketing
Technology
Art & Photos
Career
Design
Education
Presentations & Public Speaking
Government & Nonprofit
Healthcare
Internet
Law
Leadership & Management
Automotive
Engineering
Software
Recruiting & HR
Retail
Sales
Services
Science
Small Business & Entrepreneurship
Food
Environment
Economy & Finance
Data & Analytics
Investor Relations
Sports
Spiritual
News & Politics
Travel
Self Improvement
Real Estate
Entertainment & Humor
Health & Medicine
Devices & Hardware
Lifestyle
Change Language
Language
English
Español
Português
Français
Deutsche
Cancel
Save
Submit search
EN
Uploaded by
Yoshiki Shibukawa
PPT, PDF
2,194 views
ユニットテスト 1日目
Python Developer Camp2008 ユニットテストの紹介スライド
Technology
◦
Read more
2
Save
Share
Embed
Embed presentation
Download
Downloaded 26 times
1
/ 25
2
/ 25
3
/ 25
4
/ 25
5
/ 25
6
/ 25
7
/ 25
8
/ 25
9
/ 25
10
/ 25
11
/ 25
12
/ 25
13
/ 25
14
/ 25
15
/ 25
16
/ 25
17
/ 25
18
/ 25
19
/ 25
20
/ 25
21
/ 25
22
/ 25
23
/ 25
24
/ 25
25
/ 25
More Related Content
PPT
ユニットテスト_2日目
by
Yoshiki Shibukawa
PPT
第4部「Tddとペアプロのめざめ」
by
Hiromu Shioya
PPTX
単体テストのすゝめ
by
Li Satoshi
PDF
Goroutineと channelから はじめるgo言語
by
Takuya Ueda
PDF
Goroutineとchannelから始めるgo言語@初心者向けgolang勉強会
by
Takuya Ueda
PDF
BPStudy#54 そろそろPython3
by
Atsushi Odagiri
PDF
PHPUnitTest勉強会スライド
by
ssuser7a9029
PDF
わんくま名古屋#33(20141115) TDD道場#21
by
Yasuhiko Yamamoto
ユニットテスト_2日目
by
Yoshiki Shibukawa
第4部「Tddとペアプロのめざめ」
by
Hiromu Shioya
単体テストのすゝめ
by
Li Satoshi
Goroutineと channelから はじめるgo言語
by
Takuya Ueda
Goroutineとchannelから始めるgo言語@初心者向けgolang勉強会
by
Takuya Ueda
BPStudy#54 そろそろPython3
by
Atsushi Odagiri
PHPUnitTest勉強会スライド
by
ssuser7a9029
わんくま名古屋#33(20141115) TDD道場#21
by
Yasuhiko Yamamoto
What's hot
PPT
Unit Test
by
ykhr
PPT
wankuma #28
by
高見 知英
PDF
プログラムの処方箋~健康なコードと病んだコード
by
Shigenori Sagawa
PDF
20180830 implement dqn_platinum_data_meetup_vol1
by
Keisuke Nakata
PPTX
Pythonスタートアップ勉強会201109 python入門
by
Takayuki Shimizukawa
PDF
闇魔術を触ってみた
by
Satoshi Sato
PDF
Python3 プログラミング勉強会
by
Tetsuya Morimoto
PDF
20170131 python3 6 PEP526
by
masahitojp
PDF
Python と型ヒント (Type Hints)
by
Tetsuya Morimoto
PDF
ほんとはこわくない Gentoo Linux
by
gion_XY
ODP
気の合う人達と社外で社内勉強会
by
Yu Shibatsuji
PPTX
リーダブルコード 1.0'
by
Yamamura Takashi
PDF
簡単!Groovy入門
by
Lee Choong Geun
PPTX
Pynyumon03 LT
by
drillan
PDF
Groovy indy 20120222
by
Nobuhiro Sue
PDF
良い?悪い?コードコメントの書き方
by
Shigenori Sagawa
PDF
MTDDC Hokkaido : テンプレートタグでBrainf*ckを作ってみた
by
Katsuhiro Endo
PDF
TDD のこころ
by
Takuto Wada
PDF
Pythonと型チェッカー
by
Tetsuya Morimoto
PPTX
初心者が Python で戸惑ったところ
by
Emma Haruka Iwao
Unit Test
by
ykhr
wankuma #28
by
高見 知英
プログラムの処方箋~健康なコードと病んだコード
by
Shigenori Sagawa
20180830 implement dqn_platinum_data_meetup_vol1
by
Keisuke Nakata
Pythonスタートアップ勉強会201109 python入門
by
Takayuki Shimizukawa
闇魔術を触ってみた
by
Satoshi Sato
Python3 プログラミング勉強会
by
Tetsuya Morimoto
20170131 python3 6 PEP526
by
masahitojp
Python と型ヒント (Type Hints)
by
Tetsuya Morimoto
ほんとはこわくない Gentoo Linux
by
gion_XY
気の合う人達と社外で社内勉強会
by
Yu Shibatsuji
リーダブルコード 1.0'
by
Yamamura Takashi
簡単!Groovy入門
by
Lee Choong Geun
Pynyumon03 LT
by
drillan
Groovy indy 20120222
by
Nobuhiro Sue
良い?悪い?コードコメントの書き方
by
Shigenori Sagawa
MTDDC Hokkaido : テンプレートタグでBrainf*ckを作ってみた
by
Katsuhiro Endo
TDD のこころ
by
Takuto Wada
Pythonと型チェッカー
by
Tetsuya Morimoto
初心者が Python で戸惑ったところ
by
Emma Haruka Iwao
Viewers also liked
PDF
コンカツ女子のためのIT技術者の落とし方
by
Yoshiki Shibukawa
PPT
Jissa 光が丘カップ2008
by
Yoshiki Shibukawa
PPTX
Erlang and I and Sphinx.
by
Yoshiki Shibukawa
PDF
Django_and_GTD
by
Yoshiki Shibukawa
PDF
Pomodoro technique
by
Yoshiki Shibukawa
PDF
つまみぐい勉強法。その後。
by
Yoshiki Shibukawa
PDF
Who is the person whom the IT engineers should learn next to Alexander?
by
Yoshiki Shibukawa
PDF
JavaScriptゲーム制作勉強会
by
Yoshiki Shibukawa
PDF
1日~1週間でOSSに貢献する方法
by
Yoshiki Shibukawa
コンカツ女子のためのIT技術者の落とし方
by
Yoshiki Shibukawa
Jissa 光が丘カップ2008
by
Yoshiki Shibukawa
Erlang and I and Sphinx.
by
Yoshiki Shibukawa
Django_and_GTD
by
Yoshiki Shibukawa
Pomodoro technique
by
Yoshiki Shibukawa
つまみぐい勉強法。その後。
by
Yoshiki Shibukawa
Who is the person whom the IT engineers should learn next to Alexander?
by
Yoshiki Shibukawa
JavaScriptゲーム制作勉強会
by
Yoshiki Shibukawa
1日~1週間でOSSに貢献する方法
by
Yoshiki Shibukawa
Similar to ユニットテスト 1日目
PDF
ソフトウェア工学2023 11 テスト
by
Toru Tamaki
KEY
JUnit実践入門 xUnitTestPatternsで学ぶユニットテスト
by
Shuji Watanabe
KEY
Unit testで定時帰宅!
by
Funato Takashi
KEY
テストコードのリファクタリング
by
Shuji Watanabe
PDF
PHPUnit でテスト駆動開発を始めよう
by
Yuya Takeyama
PDF
エクストリームエンジニア4
by
T-arts
PDF
Ruby初級者向けレッスン 第46回 ─── Test::Unit
by
higaki
PDF
はこだてIKA 第4回勉強会 単体テスト
by
Seiji KOMATSU
PDF
第4回勉強会 単体テストのすすめ
by
hakoika-itwg
PDF
書こう! 使おう! 単体テスト
by
ryohji ikebe
PDF
最近の単体テスト
by
Ken Morishita
PDF
書こう! 使おう! 単体テスト
by
ryohji ikebe
PDF
Spring bootでweb ユニットテスト編
by
なべ
PDF
Androidテスティング実践3 ユニットテスト・CI編
by
株式会社 NTTテクノクロス
PPTX
Pythonのユニットテスト
by
株式会社 システムヨシイ
ODP
書こう!ユニットテスト vol.1 ナンデ?
by
Takaaki Hirano
PDF
Tokyor14 - R言語でユニットテスト
by
Yohei Sato
PDF
C# から java へのプログラム移植で体験したtddの効果は?
by
Shinichi Hirauchi
PPT
Kubo100903
by
kubo
PDF
【Unite Tokyo 2019】Unity Test Runnerを活用して内部品質を向上しよう
by
UnityTechnologiesJapan002
ソフトウェア工学2023 11 テスト
by
Toru Tamaki
JUnit実践入門 xUnitTestPatternsで学ぶユニットテスト
by
Shuji Watanabe
Unit testで定時帰宅!
by
Funato Takashi
テストコードのリファクタリング
by
Shuji Watanabe
PHPUnit でテスト駆動開発を始めよう
by
Yuya Takeyama
エクストリームエンジニア4
by
T-arts
Ruby初級者向けレッスン 第46回 ─── Test::Unit
by
higaki
はこだてIKA 第4回勉強会 単体テスト
by
Seiji KOMATSU
第4回勉強会 単体テストのすすめ
by
hakoika-itwg
書こう! 使おう! 単体テスト
by
ryohji ikebe
最近の単体テスト
by
Ken Morishita
書こう! 使おう! 単体テスト
by
ryohji ikebe
Spring bootでweb ユニットテスト編
by
なべ
Androidテスティング実践3 ユニットテスト・CI編
by
株式会社 NTTテクノクロス
Pythonのユニットテスト
by
株式会社 システムヨシイ
書こう!ユニットテスト vol.1 ナンデ?
by
Takaaki Hirano
Tokyor14 - R言語でユニットテスト
by
Yohei Sato
C# から java へのプログラム移植で体験したtddの効果は?
by
Shinichi Hirauchi
Kubo100903
by
kubo
【Unite Tokyo 2019】Unity Test Runnerを活用して内部品質を向上しよう
by
UnityTechnologiesJapan002
More from Yoshiki Shibukawa
PPTX
JavaScript/TypeScript実力強化書 2章のアップデート Forkwell Library
by
Yoshiki Shibukawa
PDF
技育祭2025秋 サボろうとする生成AIの傾向と対策 登壇資料(フューチャー渋川)
by
Yoshiki Shibukawa
PPTX
Kiroを使ってみた - そこから見える今どきの開発 - Kiro Meetup Japan #1
by
Yoshiki Shibukawa
PDF
多すぎるユニットテストは却ってよくない?私が実践しているテストコードのリファクタリング
by
Yoshiki Shibukawa
PDF
ITコンサルが改善するのはビジネスだけじゃない! サークル的活動で業界貢献 技育祭2024秋
by
Yoshiki Shibukawa
PPTX
技術書執筆のススメ 〜Only1なエンジニアになるためのセルフブランディング〜の発表資料
by
Yoshiki Shibukawa
PPTX
GO本執筆者が語る、2064年もITで仕事し続けるためのキャリアプランの発表資料
by
Yoshiki Shibukawa
PPTX
Golang tokyo #7 qtpm
by
Yoshiki Shibukawa
PPTX
Chunked encoding を使った高速化の考察
by
Yoshiki Shibukawa
PPTX
Mithril
by
Yoshiki Shibukawa
PPTX
Go & multi platform GUI Trials and Errors
by
Yoshiki Shibukawa
PPTX
Excelの話
by
Yoshiki Shibukawa
PPTX
FINAL FANTASY Record Keeperを支えたGolang
by
Yoshiki Shibukawa
PPTX
アンラーニング
by
Yoshiki Shibukawa
PDF
東京Node学園 今できる通信高速化にトライしてみた
by
Yoshiki Shibukawa
PDF
Oktavia全文検索エンジン - SphinxCon JP 2014
by
Yoshiki Shibukawa
PDF
Oktavia Search Engine - pyconjp2014
by
Yoshiki Shibukawa
PDF
大規模JavaScript開発
by
Yoshiki Shibukawa
PDF
Xpjug基調lt2011
by
Yoshiki Shibukawa
PDF
Expert JavaScript Programming
by
Yoshiki Shibukawa
JavaScript/TypeScript実力強化書 2章のアップデート Forkwell Library
by
Yoshiki Shibukawa
技育祭2025秋 サボろうとする生成AIの傾向と対策 登壇資料(フューチャー渋川)
by
Yoshiki Shibukawa
Kiroを使ってみた - そこから見える今どきの開発 - Kiro Meetup Japan #1
by
Yoshiki Shibukawa
多すぎるユニットテストは却ってよくない?私が実践しているテストコードのリファクタリング
by
Yoshiki Shibukawa
ITコンサルが改善するのはビジネスだけじゃない! サークル的活動で業界貢献 技育祭2024秋
by
Yoshiki Shibukawa
技術書執筆のススメ 〜Only1なエンジニアになるためのセルフブランディング〜の発表資料
by
Yoshiki Shibukawa
GO本執筆者が語る、2064年もITで仕事し続けるためのキャリアプランの発表資料
by
Yoshiki Shibukawa
Golang tokyo #7 qtpm
by
Yoshiki Shibukawa
Chunked encoding を使った高速化の考察
by
Yoshiki Shibukawa
Mithril
by
Yoshiki Shibukawa
Go & multi platform GUI Trials and Errors
by
Yoshiki Shibukawa
Excelの話
by
Yoshiki Shibukawa
FINAL FANTASY Record Keeperを支えたGolang
by
Yoshiki Shibukawa
アンラーニング
by
Yoshiki Shibukawa
東京Node学園 今できる通信高速化にトライしてみた
by
Yoshiki Shibukawa
Oktavia全文検索エンジン - SphinxCon JP 2014
by
Yoshiki Shibukawa
Oktavia Search Engine - pyconjp2014
by
Yoshiki Shibukawa
大規模JavaScript開発
by
Yoshiki Shibukawa
Xpjug基調lt2011
by
Yoshiki Shibukawa
Expert JavaScript Programming
by
Yoshiki Shibukawa
ユニットテスト 1日目
1.
ユニットテスト -
1日目 - 渋川よしき
2.
まずは 目的 ユニットテストは何かを知る
ユニットテストは何ではないかを知る テスト駆動開発の作法を知る unittest.py, doctest を使ってみる やって欲しいこと ※ 体験->発見 いつもと違ったことをする 質問する 失敗はない、学びがある 楽しむ ユニットテスト1日目 Page ※ 六本木ヒルズでやっている NLP セミナー の手法を参考にしてます
3.
チェックイン ※ ペアを作ってください
二人一組で開発してもらいます やろうとすること、考えていることを口に出すと学習効果アップ ※ 自己紹介 (2 人で 2 分 ) 自分の名前 or ハンドルネーム Python との関わり この1時間で何を学びたいか?という決意表明をしてください ユニットテスト1日目 Page ※ 僕が勝手に 師匠と呼んでいる方の スライド を参考にしました ※ 「言語技術」が日本のサッカーを変える
4.
アジェンダ ディレクティブテスト ユニットテストとは何か?
ユニットテストとは何ではないのか? unittest.py を使ったテスト駆動開発体験 まずは開発のデモ 続きはみなさんの手で! doctest を使ってみる ユニットテスト1日目 Page
5.
テストの分類 ~ディレクティブなテスト~
6.
2種類のテスト ディレクティブなテスト 開発をディレクション
( 方向付け ) するためのテスト アジャイルソフトウェア開発で言うところのテスト マネジメントのためのテスト 品質などを管理するためのテスト いわゆる、ソフトウェア工学の教科書に出てくるテスト ユニットテスト1日目 Page
7.
この分類の発想の種 フランクリンプランナー ディレクタ・リーダ
( メンバーをひっぱる ) 戦略立案、決断、全体設計 マネージャ ( メンバーの尻をたたく ) 人・モノ・金の管理、細かい設計 ソフトウェアのテスト アジャイル開発のテスト ソフトウェア工学の本に載っているテスト ユニットテスト1日目 Page +ほりうち!師匠のスライド
8.
テスト駆動開発 (TDD) とユニットテスト
テスト駆動開発 テストを先に書き、実際のコードをその後に書くやり方 この開発手法の中で書くテストがユニットテスト eXtreme Programming で広まった手法 開発の方向付けをするディレクティブなテスト いろんな呼び方 テストファーストプログラミング デベロッパーテスト 動く仕様書 Here comes your footer Page
9.
まとめ ~ユニットテストとは?~ ユニットテストとは何か?
開発を方向付けする テスト駆動開発の中で書く ユニットテストは何ではないか 品質管理のテスト ウォーターフォールのテストフェーズのテスト Here comes your footer Page
10.
ユニットテストをテスト駆動で書く unittest.py
11.
例題:ダーツのクリケット 15 ~
20 、ブル ( 中心 ) だけを使う 交互に投げる 1つの数字に3本入ると占領 ( クローズ ) ダブルは2本分、トリプルは3本分 全員が一つの数字をクローズするとキル クローズしてキルされるまではスコアが入る 誰かが全部をクローズすると終了 スコアが高い人の勝ち 最大 20 ラウンド Here comes your footer Page 引用元: Wikipedia
12.
まずは準備 ファイルの構成はどちらでもいいです。 実際のコードとテストコードでファイル分割
テストコードも実際のコードも同じファイルにする PyScripter を使っていればスタートアップコードは不要です 最初のテストをパスするところまではデモします。真似してタイプしてみてください 二つめ以降は画面に出しませんので、 挑戦してみてください ユニットテスト1日目 Page # -*- coding: utf-8 -*- import unittest # スタートアップコード if __name__ == “__main__”: unittest.runTests()
13.
例題:ダーツのクリケット ( 今回のワークで扱う範囲
) 15 ~ 20 、ブル ( 中心 ) だけを使う -> 18 と 20 だけ使う 交互に投げる ->一人分だけ実装 1つの数字に3本入ると占領 ( クローズ ) ダブルは2本分、トリプルは3本分 全員が一つの数字をクローズするとキル クローズしてキルされるまではスコアが入る 誰かが 全部 (18 と 20) をクローズすると終了 スコアが高い人の勝ち 最大 20 ラウンド ユニットテスト1日目 Page
14.
テスト駆動開発の基本ルール テストファースト Python
が「コードを書いてくれ~」と言ってからコードを書く 具体的には AttributeError, AssertionError など 仮実装 返値が 3 なら、 return 3 と書いてしまう 三角測量 一つのメソッドにつき2つのテストケースを使う 明白な実装 分かり切っている実装は仮実装を行わないでいきなり実装 今回は封印してください ユニットテスト1日目 Page
15.
最初のメソッドを実装するまで テストケースを書く テストケースは
unittest.TestCase の子クラスとして実装します テストを書くメソッドは test から始めます TestCase クラスのメソッド (assert_, assertFalse, assertEqual など ) を使ってテストを書いていきます。 なるべく小さいステップで上れるように、階段を設定していきます。 ユニットテスト1日目 Page class TestCricket(unittest.TestCase): def test_throw_1(self): game = Cricket() game.throw(18, 1) self.assertEqual(game.get_count(18), 1)
16.
最初のメソッドを実装するまで Failure を見る->仮実装で
OK を見る 次に、 NameError( クラスが無い ) と言われるので、クラスを実装する。 NameError->AttributeError( メソッドがない ) とひとつずつ解決していくと、 Error が Failure( テスト失敗 ) に変化する Failure を見たら、仮実装 ( テストを通るだけの最低限 ) をしてテストを OK にする ユニットテスト1日目 Page class Cricket(object): def throw(self, area, count): pass def get_count(self, area): return 1 # 仮実装
17.
最初のメソッドを実装するまで 三角測量でメソッドを完成させる もう一つテストを書いて、実装を完成させます
( 三角測量 ) 第一ステップ:一つ値を設定してから取得 ( 最初の仮実装 ) 第二ステップ:もう一つ値を設定して、合計値を取得 ( 今回のステップ ) ユニットテスト1日目 Page def test_throw_2(self): game = Cricket() game.throw(18, 1) game.throw(18, 2) self.assertEqual(game.get_count(18), 3)
18.
それでは手を動かしてみて下さい 残りの仕様を実装してみてください 15
~ 20 、ブル ( 中心 ) だけを使う -> 18 と 20 だけ使う 交互に投げる ->一人分だけ実装 1つの数字に3本入ると占領 ( クローズ ) ダブルは2本分、トリプルは3本分 全員が一つの数字をクローズするとキル クローズしてキルされるまではスコアが入る 誰かが 全部 (18 と 20) をクローズすると終了 スコアが高い人の勝ち 最大 20 ラウンド ユニットテスト1日目 Page
19.
ユニットテストのその後 今回はここまではできません m(_
_)m リファクタリング 機能追加すると徐々にコードが汚くなる プログラムを整理してキレイにする 修正後のコードの動作はユニットテスト が保証する 開発のリズム レッド:テストが失敗 グリーン:テストが成功 リファクタリング:きれいなコードへ きれい 汚い ( すぐに ) 動かない ※ 角谷さんのスライド より GREEN 動く Refactoring RED ユニットテスト1日目 Page
20.
doctest を使ってみよう ユニットテスト1日目
Page
21.
doctest doctest とは?
docstring の中のテストコードを実行する仕組み コメントの中に自然に書ける インタラクティブモードをコピペすればテスト完成 文芸的なテスト Python が発祥? ユニットテスト1日目 Page import doctest def pow(x, y): """calc power. >>> pow(1, 2) 1 >>> pow(10, 2) 100 """ result = 1 for i in xrange(y): result *= x return result if __name__ == '__main__': doctest.testmod()
22.
doctest を書いてみよう 例題:先ほど作ったクリケットのクラスのテスト
ゲーム終了までの過程をインタラクティブモードで実行 それをコピペして、 docstring に書き込みます。 もしも unittest のスタートアップを書いていた場合には doctest の スタートアップに切り替えます。 実行の仕方 スタートアップコードを書いた場合にはそのままコンソールから実行できます エラーがないと何も画面には出ません -v をつけると、実況中継が出ます ユニットテスト1日目 Page
23.
doctest に関する渋川の所感 メリット
気軽に書ける コメントの中にかけるので、自然言語で補強できる ユーザの目に触れやすい ライブラリ系ならば動作可能なドキュメント / サンプルコードとして使える デメリット 複雑なテストケースが書きにくい 網羅的なテストケースが書きにくい ( 1オブジェクトにつき数パターンが限度? ) return で結果がきれい出るものじゃないと書きにくい ( 結果が DOM ツリーになるとか ) ユニットテスト1日目 Page
24.
宿題 周りの人とユニットテストについて議論してみましょう。 ダーツのクリケット
残りのルールもすべて実装してみてください ボウリング ユニットテストのサンプルとして人気の、ボウリングのスコア計算を作ってみてください 100 本ユニットテスト ※ ユニットテストを 100 本書いてみて下さい ※ MindMap のセミナー の宿題を 参考にしました ユニットテスト1日目 Page
25.
参考資料 これからユニットテストを深めていくために Python
のライブラリリファレンス unittest , doctest デブサミ 2008 和田卓人氏「デベロッパーテスティング・ライブ」 JPUG 北海道支部 /Ruby 札幌合同 角谷信太郎氏「スはスペックのス」 Google->TDD, ユニットテスト etc http://www.codeplex.com/pyspec/ - 引っ越し予定 まさ ー る 氏 Kent Beck Testing Framework 入門 ( 渋川の原点 ) – 1999 年 ユニットテスト1日目 Page
Download