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
Yuki Matsumura
1,480 views
UnitTest
ソフトウェア開発の課題である"ソフトウェアの変更による破壊の回避"と, ソフトウェア破壊を検知するユニットテストについて.
Engineering
◦
Read more
2
Save
Share
Embed
Embed presentation
Download
Download to read offline
1
/ 60
2
/ 60
3
/ 60
4
/ 60
5
/ 60
6
/ 60
7
/ 60
8
/ 60
9
/ 60
10
/ 60
11
/ 60
12
/ 60
13
/ 60
14
/ 60
15
/ 60
16
/ 60
17
/ 60
18
/ 60
19
/ 60
20
/ 60
21
/ 60
22
/ 60
23
/ 60
24
/ 60
25
/ 60
26
/ 60
27
/ 60
28
/ 60
29
/ 60
30
/ 60
31
/ 60
32
/ 60
33
/ 60
34
/ 60
35
/ 60
36
/ 60
37
/ 60
38
/ 60
39
/ 60
40
/ 60
41
/ 60
42
/ 60
43
/ 60
44
/ 60
45
/ 60
46
/ 60
47
/ 60
48
/ 60
49
/ 60
50
/ 60
51
/ 60
52
/ 60
53
/ 60
54
/ 60
55
/ 60
56
/ 60
57
/ 60
58
/ 60
59
/ 60
60
/ 60
More Related Content
PDF
Hello. Continuous Integration
by
Yuki Matsumura
PDF
Dependency injection
by
Yuki Matsumura
PDF
SEゼミ2015 - OSS Hack 4 Beginners - フィードバック
by
Kouhei Sutou
PDF
[Android] モジュール管理で ビルド高速化!
by
ichigotake .
PPTX
第9回Jenkins勉強会 超簡単Pipeline講座
by
Hiroko Tamagawa
PDF
Ciじゃない方のJenkins
by
Katsuhiro Miura
PDF
Javaユーザに贈るJenkins 25のTips
by
Masanori Satoh
PDF
快適・簡単・安心なアプリE2Eテストの実行環境 #stac2017
by
Yahoo!デベロッパーネットワーク
Hello. Continuous Integration
by
Yuki Matsumura
Dependency injection
by
Yuki Matsumura
SEゼミ2015 - OSS Hack 4 Beginners - フィードバック
by
Kouhei Sutou
[Android] モジュール管理で ビルド高速化!
by
ichigotake .
第9回Jenkins勉強会 超簡単Pipeline講座
by
Hiroko Tamagawa
Ciじゃない方のJenkins
by
Katsuhiro Miura
Javaユーザに贈るJenkins 25のTips
by
Masanori Satoh
快適・簡単・安心なアプリE2Eテストの実行環境 #stac2017
by
Yahoo!デベロッパーネットワーク
What's hot
PDF
Jenkinsを用いたAndroidアプリビルド作業効率化
by
Kenichi Kambara
PDF
改訂第3版 Jenkins 実践入門 what's newから見るJenkinsのUpdate
by
Yuki Iwanari
PDF
Jenkinsで始める継続的デリバリーと実践の道程
by
Masanori Satoh
PPTX
グループ制作注意
by
MakotoItoh
PDF
20151021 cookpad talk_test_engineer
by
Kazuaki Matsuo
PDF
ドリコムJenkins勉強会資料
by
Go Sueyoshi (a.k.a sue445)
PDF
iOSにおけるコードレビューを一歩先へ進める
by
Shunsuke Maeda
PPTX
Sansan における Android アプリ自動テスト導入事例
by
Kenichi Tatsuhama
PPTX
Multibranch Pipeline with Docker 入門編
by
kimulla
PPTX
Dangerでpull requestレビューの指摘事項を減らす
by
Shunsuke Maeda
PDF
20121019 jenkins勉強会lt資料
by
Hiroko Tamagawa
PPTX
RESTful API (JAX-RS) 書くだけで仕様書も自動で作られていく話 with MicroProfile Open API
by
Kohei Saito
PPTX
Jenkinsを使った初めての継続的インテグレーション
by
dcubeio
PPTX
Git & GitHub & kintone でウルトラハッピー!
by
ymmt
PPTX
Dockerで始める Java EE アプリケーション開発 for JJUG CCC 2017
by
Kohei Saito
PPTX
Jenkins使ってみた~Windows編~
by
Yuta Matsumura
KEY
継続的インテグレーションとテストの話
by
Preferred Networks
PDF
Jenkins 再入門
by
Jumpei Miyata
PDF
Jenkinsユーザカンファレンス2015 前座資料
by
ikikko
PPTX
Net なプロジェクトでも jenkins を使ってみた
by
Oda Shinsuke
Jenkinsを用いたAndroidアプリビルド作業効率化
by
Kenichi Kambara
改訂第3版 Jenkins 実践入門 what's newから見るJenkinsのUpdate
by
Yuki Iwanari
Jenkinsで始める継続的デリバリーと実践の道程
by
Masanori Satoh
グループ制作注意
by
MakotoItoh
20151021 cookpad talk_test_engineer
by
Kazuaki Matsuo
ドリコムJenkins勉強会資料
by
Go Sueyoshi (a.k.a sue445)
iOSにおけるコードレビューを一歩先へ進める
by
Shunsuke Maeda
Sansan における Android アプリ自動テスト導入事例
by
Kenichi Tatsuhama
Multibranch Pipeline with Docker 入門編
by
kimulla
Dangerでpull requestレビューの指摘事項を減らす
by
Shunsuke Maeda
20121019 jenkins勉強会lt資料
by
Hiroko Tamagawa
RESTful API (JAX-RS) 書くだけで仕様書も自動で作られていく話 with MicroProfile Open API
by
Kohei Saito
Jenkinsを使った初めての継続的インテグレーション
by
dcubeio
Git & GitHub & kintone でウルトラハッピー!
by
ymmt
Dockerで始める Java EE アプリケーション開発 for JJUG CCC 2017
by
Kohei Saito
Jenkins使ってみた~Windows編~
by
Yuta Matsumura
継続的インテグレーションとテストの話
by
Preferred Networks
Jenkins 再入門
by
Jumpei Miyata
Jenkinsユーザカンファレンス2015 前座資料
by
ikikko
Net なプロジェクトでも jenkins を使ってみた
by
Oda Shinsuke
Similar to UnitTest
KEY
テスト初心者Androiderのためのソフトウェアテスト入門
by
Satoshi Watanabe
PDF
Re-collection of embedded software qa in the last decade
by
Yasuharu Nishi
PDF
Hachiojipm 28
by
moznion
KEY
テストコードのリファクタリング
by
Shuji Watanabe
PDF
テスト駆動開発のはじめ方
by
Shuji Watanabe
KEY
JUnit実践入門 xUnitTestPatternsで学ぶユニットテスト
by
Shuji Watanabe
PPTX
JaSST'16 Tokyo モバイルセッション
by
mirer
PDF
Unit test in android
by
Tatsuya Maki
PDF
Software Frontloading and QA
by
Yasuharu Nishi
PDF
テスト駆動開発の進化
by
Yukei Wachi
PDF
ぼくのかんがえた iOSテスト戦略
by
Naoki Umehara
PDF
Androidテスティング実践 基礎編
by
株式会社 NTTテクノクロス
PDF
はじめてのテスト技法
by
Tatsuya Saito
PDF
Qs info002
by
Kei Nakahara
PDF
Team Foundation Server ~ 今を生きるエンジニアのための開発基盤とは 【BPStudy #63】
by
智治 長沢
PPT
レガシーコード読書会 20120618
by
Suguru Shirai
PDF
JS開発におけるTDDと自動テストツール利用の勘所
by
Koji Nakamura
PDF
ABC 2011 Summer
by
miyatay
PDF
ABC
by
Yumi Miyata
KEY
テストとの上手な付き合い方
by
Akira Suenami
テスト初心者Androiderのためのソフトウェアテスト入門
by
Satoshi Watanabe
Re-collection of embedded software qa in the last decade
by
Yasuharu Nishi
Hachiojipm 28
by
moznion
テストコードのリファクタリング
by
Shuji Watanabe
テスト駆動開発のはじめ方
by
Shuji Watanabe
JUnit実践入門 xUnitTestPatternsで学ぶユニットテスト
by
Shuji Watanabe
JaSST'16 Tokyo モバイルセッション
by
mirer
Unit test in android
by
Tatsuya Maki
Software Frontloading and QA
by
Yasuharu Nishi
テスト駆動開発の進化
by
Yukei Wachi
ぼくのかんがえた iOSテスト戦略
by
Naoki Umehara
Androidテスティング実践 基礎編
by
株式会社 NTTテクノクロス
はじめてのテスト技法
by
Tatsuya Saito
Qs info002
by
Kei Nakahara
Team Foundation Server ~ 今を生きるエンジニアのための開発基盤とは 【BPStudy #63】
by
智治 長沢
レガシーコード読書会 20120618
by
Suguru Shirai
JS開発におけるTDDと自動テストツール利用の勘所
by
Koji Nakamura
ABC 2011 Summer
by
miyatay
ABC
by
Yumi Miyata
テストとの上手な付き合い方
by
Akira Suenami
Recently uploaded
PDF
ソフトとハードの二刀流で実現する先進安全・自動運転のアルゴリズム開発【DENSO Tech Night 第二夜】 ー高精度な画像解析 / AI推論モデル ...
by
dots.
PDF
ソフトウェアエンジニアがクルマのコアを創る!? モビリティの価値を最大化するソフトウェア開発の最前線【DENSO Tech Night 第一夜】
by
dots.
PPTX
君をむしばむこの力で_最終発表-1-Monthon2025最終発表用資料-.pptx
by
rintakano624
PDF
2025/12/12 AutoDevNinjaピッチ資料 - 大人な男のAuto Dev環境
by
Masahiro Takechi
PDF
krsk_aws_re-growth_aws_devops_agent_20251211
by
uedayuki
PDF
音楽アーティスト探索体験に特化した音楽ディスカバリーWebサービス「DigLoop」|Created byヨハク技研
by
yohakugiken
ソフトとハードの二刀流で実現する先進安全・自動運転のアルゴリズム開発【DENSO Tech Night 第二夜】 ー高精度な画像解析 / AI推論モデル ...
by
dots.
ソフトウェアエンジニアがクルマのコアを創る!? モビリティの価値を最大化するソフトウェア開発の最前線【DENSO Tech Night 第一夜】
by
dots.
君をむしばむこの力で_最終発表-1-Monthon2025最終発表用資料-.pptx
by
rintakano624
2025/12/12 AutoDevNinjaピッチ資料 - 大人な男のAuto Dev環境
by
Masahiro Takechi
krsk_aws_re-growth_aws_devops_agent_20251211
by
uedayuki
音楽アーティスト探索体験に特化した音楽ディスカバリーWebサービス「DigLoop」|Created byヨハク技研
by
yohakugiken
UnitTest
1.
Unit Test
2.
WHO? • 松村 勇輝 •
Twitter. @Yuki_312 • Yukiの枝折. http://yuki312.blogspot.jp/ • Android Developer
3.
CONTENTS • ソフトウェアの変更 • ユニットテスト •
テスタビリティ • 依存性の排除 • Mockito
4.
ソフトウェアの変更
5.
ソフトウェアの変更 • ソフトウェアを育てるには変更作業が必要
6.
ソフトウェアの変更 • ソフトウェアを育てるには変更作業が必要 • 新しい価値の追加
7.
ソフトウェアの変更 • ソフトウェアを育てるには変更作業が必要 • 新しい価値の追加 •
バグの修正
8.
ソフトウェアの変更 • ソフトウェアを育てるには変更作業が必要 • 新しい価値の追加 •
バグの修正 • コードの改善
9.
ソフトウェア開発の課題 プログラムを壊さずに変更しなければならない プログラムが壊れる原因はいつも“開発者の変更”
10.
恐怖
11.
恐怖 • 複雑で, 理解し難く,
調べても確証を得られない
12.
恐怖 • 複雑で, 理解し難く,
調べても確証を得られない • “成功しますように”と祈りながらリリースする
13.
恐怖 • 複雑で, 理解し難く,
調べても確証を得られない • “成功しますように”と祈りながらリリースする 変更によるソフトウェア破壊の恐怖
14.
悪影響・悪循環
15.
悪影響・悪循環 • 変更することに対して消極的になる
16.
悪影響・悪循環 • 変更することに対して消極的になる • 動いている(ように見える)から触らない
17.
悪影響・悪循環 • 変更することに対して消極的になる • 動いている(ように見える)から触らない •
暫定対処, 応急処置ばかりのツギハギコード
18.
悪影響・悪循環 • 変更することに対して消極的になる • 動いている(ように見える)から触らない •
暫定対処, 応急処置ばかりのツギハギコード • コードの臭いを放置する
19.
悪影響・悪循環 • 変更することに対して消極的になる • 動いている(ように見える)から触らない •
暫定対処, 応急処置ばかりのツギハギコード • コードの臭いを放置する • リファクタリングしたくない
20.
悪影響・悪循環 • 変更することに対して消極的になる • 動いている(ように見える)から触らない •
暫定対処, 応急処置ばかりのツギハギコード • コードの臭いを放置する • リファクタリングしたくない 技術的負債が増すばかりで改善されない
21.
恐怖にどうやって立ち向かうのか
22.
ユニットテスト
23.
ユニットテスト
24.
ユニットテスト • システムに期待する“振る舞い”を記述するテスト
25.
ユニットテスト • システムに期待する“振る舞い”を記述するテスト • プログラマ自身が書くDeveloper
Testing
26.
ユニットテスト • システムに期待する“振る舞い”を記述するテスト • プログラマ自身が書くDeveloper
Testing • ユニットテスト≠単体テスト
27.
ユニットテスト • システムに期待する“振る舞い”を記述するテスト • プログラマ自身が書くDeveloper
Testing • ユニットテスト≠単体テスト • 小さなパーツ(クラス相当)がテスト対象
28.
ユニットテスト • システムに期待する“振る舞い”を記述するテスト • プログラマ自身が書くDeveloper
Testing • ユニットテスト≠単体テスト • 小さなパーツ(クラス相当)がテスト対象 • 自動化されて頻繁な実行が可能
29.
sample test code.
30.
Product code
31.
Test code
32.
ユニットテスト
33.
ユニットテスト • 素直にテストコードが書けることは稀
34.
ユニットテスト • 素直にテストコードが書けることは稀 • 既存コードにポン載せできるほど甘くない
35.
ユニットテスト • 素直にテストコードが書けることは稀 • 既存コードにポン載せできるほど甘くない •
テストできるようにコードを変更する必要がある
36.
horror code.
37.
Product code
38.
Test code
39.
どうやってテストできるコードにするのか
40.
考慮すべきはTestability
41.
Testability
42.
Testability • Testabilityはソフトウェア品質特性の1つ • 試験性,
テスト容易性 • 拡張性や再利用性とは毛色が違う
43.
Testability • Testabilityはソフトウェア品質特性の1つ • 試験性,
テスト容易性 • 拡張性や再利用性とは毛色が違う • Testabilityは意識しないと向上させるのが難しい • テストのために設計・実装変更する必要がある • 美的感覚に反する変更を必要とするケースがある
44.
ユニットテストまとめ • ソフトウェアの破壊を検知できる • 素早いフィードバックが得られる •
リファクタリング効果がある • 品質保証のツールではない
45.
write testable code.
46.
依存コンポーネント @Test Target Network Database 依存コンポーネント テストケース • テスト対象が関連を持つ“依存コンポーネント” テスト対象
47.
依存コンポーネント • テストの安定性や速度のリスクが増す • 間接入出力の検証が困難 •
テスト対象の依存性排除が課題 Database 間接入出力の検証 Target@Test
48.
依存性の排除 Target • 依存コンポーネントのテストダブルを用意 • テスト可能
+ テストパフォーマンスUP @Test Test Double 代替品で置き換える
49.
testable code.
50.
依存性の排除 • テストできない構造 –
Singleton • テストダブルが作りづらい • テストできない実装 • 依存オブジェクトの排除ができない • テストできない領域 – Library • ライブラリクラスのリファクタリングができない
51.
test double.
52.
Test Double • Test
Stub • Test Spy • Mock Object • Fake Object • Dummy Object
54.
Mockito • Java向けモックライブラリ • テスト対象の依存コンポーネントのダブルを生成 •
完全なモック • 既存クラスの完全なモックを生成する • 部分的なモック • 既存クラスの部分的なモックを生成する
55.
mock
56.
mock
58.
おわりに • 祈ることをやめ, 恐怖に打ち勝つ対策を打とう •
ソフトウェアの破壊を手軽に検知できる仕組みが大切 • コードの改善に努めよう • 依存性の排除にはMockitoが便利 • CIとの相性○ • Writable → Readable → Testable
59.
よりテスタブルなソフトウェアを目指して, DI, アーキテクチャにも取り組みましょう.
60.
以上 ご清聴ありがとうございました
Download