Submit Search
Upload
iOSアプリの自動テストをはじめよう
•
Download as PPTX, PDF
•
11 likes
•
17,546 views
Toshiyuki Hirata
Follow
「iOS Test Night #1」での発表資料です。
Read less
Read more
Technology
Slideshow view
Report
Share
Slideshow view
Report
Share
1 of 21
Download now
Recommended
キーワード駆動によるシステムテストの自動化について 2015
キーワード駆動によるシステムテストの自動化について 2015
Toru Koido
幅広なテスト分析ができるようになろう
幅広なテスト分析ができるようになろう
scarletplover
テスト計画の立て方 WACATE2019 夏
テスト計画の立て方 WACATE2019 夏
Naoki Nakano
ソフトウェアテストことはじめ2016年ver
ソフトウェアテストことはじめ2016年ver
Kosuke Fujisawa
規模の見積もり WACATE 2016 winter
規模の見積もり WACATE 2016 winter
Tomoaki Fukura
クラシフィケーション・ツリー法入門
クラシフィケーション・ツリー法入門
H Iseri
QA組織とiOSのテスト
QA組織とiOSのテスト
LINE Corporation
Eclipseデバッガを活用するための31のtips
Eclipseデバッガを活用するための31のtips
Hiroki Kondo
Recommended
キーワード駆動によるシステムテストの自動化について 2015
キーワード駆動によるシステムテストの自動化について 2015
Toru Koido
幅広なテスト分析ができるようになろう
幅広なテスト分析ができるようになろう
scarletplover
テスト計画の立て方 WACATE2019 夏
テスト計画の立て方 WACATE2019 夏
Naoki Nakano
ソフトウェアテストことはじめ2016年ver
ソフトウェアテストことはじめ2016年ver
Kosuke Fujisawa
規模の見積もり WACATE 2016 winter
規模の見積もり WACATE 2016 winter
Tomoaki Fukura
クラシフィケーション・ツリー法入門
クラシフィケーション・ツリー法入門
H Iseri
QA組織とiOSのテスト
QA組織とiOSのテスト
LINE Corporation
Eclipseデバッガを活用するための31のtips
Eclipseデバッガを活用するための31のtips
Hiroki Kondo
Wacate2018 winter jstqb-al-ta
Wacate2018 winter jstqb-al-ta
kauji0522
アジャイル開発とメトリクス
アジャイル開発とメトリクス
Rakuten Group, Inc.
テストを分類してみよう!
テストを分類してみよう!
Kenji Okumura
Automatic Summarization
Automatic Summarization
Hitoshi Nishikawa
品質を加速させるために、テスターを増やす前から考えるべきQMファンネルの話(3D版)
品質を加速させるために、テスターを増やす前から考えるべきQMファンネルの話(3D版)
Yasuharu Nishi
自己紹介LT(公開版)
自己紹介LT(公開版)
Ken Muryoi
DevOps勉強会
DevOps勉強会
Shuntaro Saiba
JaSST'15 Tokyo 初心者向けチュートリアル -初心者からの脱出!-
JaSST'15 Tokyo 初心者向けチュートリアル -初心者からの脱出!-
崇 山﨑
早わかり匠Method
早わかり匠Method
Hagimoto Junzo
【CEDEC2018】一歩先のUnityでのパフォーマンス/メモリ計測、デバッグ術
【CEDEC2018】一歩先のUnityでのパフォーマンス/メモリ計測、デバッグ術
Unity Technologies Japan K.K.
AWS社員による怒涛のLTチャレンジ! AWS IoT EduKitで遊ぼうぜ!
AWS社員による怒涛のLTチャレンジ! AWS IoT EduKitで遊ぼうぜ!
Amazon Web Services Japan
タウンワークアプリの案件開発を支えるオフショアチームの成り立ちとこれから / iOSDC Japan 2021
タウンワークアプリの案件開発を支えるオフショアチームの成り立ちとこれから / iOSDC Japan 2021
Ataru Osaka
JaSST Tokyo 2022 アジャイルソフトウェア開発への統計的品質管理の応用
JaSST Tokyo 2022 アジャイルソフトウェア開発への統計的品質管理の応用
Akinori SAKATA
Kpt×ナース(公開版)
Kpt×ナース(公開版)
Noriyuki Nemoto
組合せ最適化を体系的に知ってPythonで実行してみよう PyCon 2015
組合せ最適化を体系的に知ってPythonで実行してみよう PyCon 2015
SaitoTsutomu
テスト計画セッション
テスト計画セッション
Tomoaki Fukura
アジャイルとスクラムとは 原則、価値、プラクティス
アジャイルとスクラムとは 原則、価値、プラクティス
Yasui Tsutomu
LINE Developer Meetup in Tokyo #39 Presentation
LINE Developer Meetup in Tokyo #39 Presentation
Yasuharu Nishi
C# 8.0 非同期ストリーム
C# 8.0 非同期ストリーム
信之 岩永
トヨタ生産方式とアジャイル開発20121210
トヨタ生産方式とアジャイル開発20121210
Kazutaka Sankai
iOSアプリ開発のテスト環境 - テストをはじめる最初の一歩 -
iOSアプリ開発のテスト環境 - テストをはじめる最初の一歩 -
Toshiyuki Hirata
Bluepillを使ったiOS自動テストの並列化
Bluepillを使ったiOS自動テストの並列化
Toshiyuki Hirata
More Related Content
What's hot
Wacate2018 winter jstqb-al-ta
Wacate2018 winter jstqb-al-ta
kauji0522
アジャイル開発とメトリクス
アジャイル開発とメトリクス
Rakuten Group, Inc.
テストを分類してみよう!
テストを分類してみよう!
Kenji Okumura
Automatic Summarization
Automatic Summarization
Hitoshi Nishikawa
品質を加速させるために、テスターを増やす前から考えるべきQMファンネルの話(3D版)
品質を加速させるために、テスターを増やす前から考えるべきQMファンネルの話(3D版)
Yasuharu Nishi
自己紹介LT(公開版)
自己紹介LT(公開版)
Ken Muryoi
DevOps勉強会
DevOps勉強会
Shuntaro Saiba
JaSST'15 Tokyo 初心者向けチュートリアル -初心者からの脱出!-
JaSST'15 Tokyo 初心者向けチュートリアル -初心者からの脱出!-
崇 山﨑
早わかり匠Method
早わかり匠Method
Hagimoto Junzo
【CEDEC2018】一歩先のUnityでのパフォーマンス/メモリ計測、デバッグ術
【CEDEC2018】一歩先のUnityでのパフォーマンス/メモリ計測、デバッグ術
Unity Technologies Japan K.K.
AWS社員による怒涛のLTチャレンジ! AWS IoT EduKitで遊ぼうぜ!
AWS社員による怒涛のLTチャレンジ! AWS IoT EduKitで遊ぼうぜ!
Amazon Web Services Japan
タウンワークアプリの案件開発を支えるオフショアチームの成り立ちとこれから / iOSDC Japan 2021
タウンワークアプリの案件開発を支えるオフショアチームの成り立ちとこれから / iOSDC Japan 2021
Ataru Osaka
JaSST Tokyo 2022 アジャイルソフトウェア開発への統計的品質管理の応用
JaSST Tokyo 2022 アジャイルソフトウェア開発への統計的品質管理の応用
Akinori SAKATA
Kpt×ナース(公開版)
Kpt×ナース(公開版)
Noriyuki Nemoto
組合せ最適化を体系的に知ってPythonで実行してみよう PyCon 2015
組合せ最適化を体系的に知ってPythonで実行してみよう PyCon 2015
SaitoTsutomu
テスト計画セッション
テスト計画セッション
Tomoaki Fukura
アジャイルとスクラムとは 原則、価値、プラクティス
アジャイルとスクラムとは 原則、価値、プラクティス
Yasui Tsutomu
LINE Developer Meetup in Tokyo #39 Presentation
LINE Developer Meetup in Tokyo #39 Presentation
Yasuharu Nishi
C# 8.0 非同期ストリーム
C# 8.0 非同期ストリーム
信之 岩永
トヨタ生産方式とアジャイル開発20121210
トヨタ生産方式とアジャイル開発20121210
Kazutaka Sankai
What's hot
(20)
Wacate2018 winter jstqb-al-ta
Wacate2018 winter jstqb-al-ta
アジャイル開発とメトリクス
アジャイル開発とメトリクス
テストを分類してみよう!
テストを分類してみよう!
Automatic Summarization
Automatic Summarization
品質を加速させるために、テスターを増やす前から考えるべきQMファンネルの話(3D版)
品質を加速させるために、テスターを増やす前から考えるべきQMファンネルの話(3D版)
自己紹介LT(公開版)
自己紹介LT(公開版)
DevOps勉強会
DevOps勉強会
JaSST'15 Tokyo 初心者向けチュートリアル -初心者からの脱出!-
JaSST'15 Tokyo 初心者向けチュートリアル -初心者からの脱出!-
早わかり匠Method
早わかり匠Method
【CEDEC2018】一歩先のUnityでのパフォーマンス/メモリ計測、デバッグ術
【CEDEC2018】一歩先のUnityでのパフォーマンス/メモリ計測、デバッグ術
AWS社員による怒涛のLTチャレンジ! AWS IoT EduKitで遊ぼうぜ!
AWS社員による怒涛のLTチャレンジ! AWS IoT EduKitで遊ぼうぜ!
タウンワークアプリの案件開発を支えるオフショアチームの成り立ちとこれから / iOSDC Japan 2021
タウンワークアプリの案件開発を支えるオフショアチームの成り立ちとこれから / iOSDC Japan 2021
JaSST Tokyo 2022 アジャイルソフトウェア開発への統計的品質管理の応用
JaSST Tokyo 2022 アジャイルソフトウェア開発への統計的品質管理の応用
Kpt×ナース(公開版)
Kpt×ナース(公開版)
組合せ最適化を体系的に知ってPythonで実行してみよう PyCon 2015
組合せ最適化を体系的に知ってPythonで実行してみよう PyCon 2015
テスト計画セッション
テスト計画セッション
アジャイルとスクラムとは 原則、価値、プラクティス
アジャイルとスクラムとは 原則、価値、プラクティス
LINE Developer Meetup in Tokyo #39 Presentation
LINE Developer Meetup in Tokyo #39 Presentation
C# 8.0 非同期ストリーム
C# 8.0 非同期ストリーム
トヨタ生産方式とアジャイル開発20121210
トヨタ生産方式とアジャイル開発20121210
Similar to iOSアプリの自動テストをはじめよう
iOSアプリ開発のテスト環境 - テストをはじめる最初の一歩 -
iOSアプリ開発のテスト環境 - テストをはじめる最初の一歩 -
Toshiyuki Hirata
Bluepillを使ったiOS自動テストの並列化
Bluepillを使ったiOS自動テストの並列化
Toshiyuki Hirata
iOSアプリにおけるリリースフローとCI環境
iOSアプリにおけるリリースフローとCI環境
Toshiyuki Hirata
Androidアプリ開発のテスト環境
Androidアプリ開発のテスト環境
Toshiyuki Hirata
Xcodeの管理を楽に - Jenkins編 -
Xcodeの管理を楽に - Jenkins編 -
Toshiyuki Hirata
TDDを一年やってみました ~シロート集団がTDDをやってはまったこと~
TDDを一年やってみました ~シロート集団がTDDをやってはまったこと~
Tomomi Kajita
5minQues - SWET近況報告
5minQues - SWET近況報告
Masaki Nakagawa
TDDはじめる前に
TDDはじめる前に
Yasui Tsutomu
UIテストの実行時間の短縮の方法
UIテストの実行時間の短縮の方法
Toshiyuki Hirata
STFとAppiumをもちいたAndroidアプリの自動テスト
STFとAppiumをもちいたAndroidアプリの自動テスト
Toshiyuki Hirata
バージョンアップの対応を軽減するためのサービスの構築
バージョンアップの対応を軽減するためのサービスの構築
Toshiyuki Hirata
java-ja TDD 2nd
java-ja TDD 2nd
Takuto Wada
2015/10/14 JJUGナイトセミナー「テスト駆動開発ここが聞きたい」
2015/10/14 JJUGナイトセミナー「テスト駆動開発ここが聞きたい」
Hiroyuki Ohnaka
[iOS 8] 測れる!パフォーマンス
[iOS 8] 測れる!パフォーマンス
Takeshi Fukasawa
新技術で未来の扉を開け! - Node-REDの環境構築と社内導入 -
新技術で未来の扉を開け! - Node-REDの環境構築と社内導入 -
Makoto SAKAI
20140903 じどうかの窓口特別編 君にもなれる!?テスト自動化エンジニア
20140903 じどうかの窓口特別編 君にもなれる!?テスト自動化エンジニア
SHIFT Inc.
Sue445 Style TDD #atest_hack
Sue445 Style TDD #atest_hack
Go Sueyoshi (a.k.a sue445)
マスティフ (for Xcode beta) - バージョンアップ対応を軽減するためのサービス
マスティフ (for Xcode beta) - バージョンアップ対応を軽減するためのサービス
Toshiyuki Hirata
20140918 i os8勉強会_performance
20140918 i os8勉強会_performance
Takeshi Fukasawa
SeasarCon 2009 White TDD
SeasarCon 2009 White TDD
Takuto Wada
Similar to iOSアプリの自動テストをはじめよう
(20)
iOSアプリ開発のテスト環境 - テストをはじめる最初の一歩 -
iOSアプリ開発のテスト環境 - テストをはじめる最初の一歩 -
Bluepillを使ったiOS自動テストの並列化
Bluepillを使ったiOS自動テストの並列化
iOSアプリにおけるリリースフローとCI環境
iOSアプリにおけるリリースフローとCI環境
Androidアプリ開発のテスト環境
Androidアプリ開発のテスト環境
Xcodeの管理を楽に - Jenkins編 -
Xcodeの管理を楽に - Jenkins編 -
TDDを一年やってみました ~シロート集団がTDDをやってはまったこと~
TDDを一年やってみました ~シロート集団がTDDをやってはまったこと~
5minQues - SWET近況報告
5minQues - SWET近況報告
TDDはじめる前に
TDDはじめる前に
UIテストの実行時間の短縮の方法
UIテストの実行時間の短縮の方法
STFとAppiumをもちいたAndroidアプリの自動テスト
STFとAppiumをもちいたAndroidアプリの自動テスト
バージョンアップの対応を軽減するためのサービスの構築
バージョンアップの対応を軽減するためのサービスの構築
java-ja TDD 2nd
java-ja TDD 2nd
2015/10/14 JJUGナイトセミナー「テスト駆動開発ここが聞きたい」
2015/10/14 JJUGナイトセミナー「テスト駆動開発ここが聞きたい」
[iOS 8] 測れる!パフォーマンス
[iOS 8] 測れる!パフォーマンス
新技術で未来の扉を開け! - Node-REDの環境構築と社内導入 -
新技術で未来の扉を開け! - Node-REDの環境構築と社内導入 -
20140903 じどうかの窓口特別編 君にもなれる!?テスト自動化エンジニア
20140903 じどうかの窓口特別編 君にもなれる!?テスト自動化エンジニア
Sue445 Style TDD #atest_hack
Sue445 Style TDD #atest_hack
マスティフ (for Xcode beta) - バージョンアップ対応を軽減するためのサービス
マスティフ (for Xcode beta) - バージョンアップ対応を軽減するためのサービス
20140918 i os8勉強会_performance
20140918 i os8勉強会_performance
SeasarCon 2009 White TDD
SeasarCon 2009 White TDD
More from Toshiyuki Hirata
iOSにおけるパフォーマンス計測
iOSにおけるパフォーマンス計測
Toshiyuki Hirata
iOSにおけるパフォーマンス計測
iOSにおけるパフォーマンス計測
Toshiyuki Hirata
iOSにおける自動テストの並列化
iOSにおける自動テストの並列化
Toshiyuki Hirata
UIテスト(Espresso)の高速化をさらにすすめる
UIテスト(Espresso)の高速化をさらにすすめる
Toshiyuki Hirata
Xcode10での テスト周りの進化をふりかえる
Xcode10での テスト周りの進化をふりかえる
Toshiyuki Hirata
UIテストの実行時間を短縮させる方法
UIテストの実行時間を短縮させる方法
Toshiyuki Hirata
我が家のLINEを中心とした情報共有
我が家のLINEを中心とした情報共有
Toshiyuki Hirata
レビューのコストを削減するための施策
レビューのコストを削減するための施策
Toshiyuki Hirata
fastlane snapshotの並列実行についてまとめてみた
fastlane snapshotの並列実行についてまとめてみた
Toshiyuki Hirata
DeNAにおけるSWETの役割
DeNAにおけるSWETの役割
Toshiyuki Hirata
コードレビューをより良くする Danger x Android
コードレビューをより良くする Danger x Android
Toshiyuki Hirata
2017年のiOSアプリ開発におけるCI事情
2017年のiOSアプリ開発におけるCI事情
Toshiyuki Hirata
バージョンアップ対応を軽減するサービス:マスティフ
バージョンアップ対応を軽減するサービス:マスティフ
Toshiyuki Hirata
fastlane x iOSアプリのCI
fastlane x iOSアプリのCI
Toshiyuki Hirata
iOSアプリ開発のCI環境 - Jenkins編 -
iOSアプリ開発のCI環境 - Jenkins編 -
Toshiyuki Hirata
More from Toshiyuki Hirata
(15)
iOSにおけるパフォーマンス計測
iOSにおけるパフォーマンス計測
iOSにおけるパフォーマンス計測
iOSにおけるパフォーマンス計測
iOSにおける自動テストの並列化
iOSにおける自動テストの並列化
UIテスト(Espresso)の高速化をさらにすすめる
UIテスト(Espresso)の高速化をさらにすすめる
Xcode10での テスト周りの進化をふりかえる
Xcode10での テスト周りの進化をふりかえる
UIテストの実行時間を短縮させる方法
UIテストの実行時間を短縮させる方法
我が家のLINEを中心とした情報共有
我が家のLINEを中心とした情報共有
レビューのコストを削減するための施策
レビューのコストを削減するための施策
fastlane snapshotの並列実行についてまとめてみた
fastlane snapshotの並列実行についてまとめてみた
DeNAにおけるSWETの役割
DeNAにおけるSWETの役割
コードレビューをより良くする Danger x Android
コードレビューをより良くする Danger x Android
2017年のiOSアプリ開発におけるCI事情
2017年のiOSアプリ開発におけるCI事情
バージョンアップ対応を軽減するサービス:マスティフ
バージョンアップ対応を軽減するサービス:マスティフ
fastlane x iOSアプリのCI
fastlane x iOSアプリのCI
iOSアプリ開発のCI環境 - Jenkins編 -
iOSアプリ開発のCI環境 - Jenkins編 -
Recently uploaded
【早稲田AI研究会 講義資料】3DスキャンとTextTo3Dのツールを知ろう!(Vol.1)
【早稲田AI研究会 講義資料】3DスキャンとTextTo3Dのツールを知ろう!(Vol.1)
Hiroki Ichikura
スマートフォンを用いた新生児あやし動作の教示システム
スマートフォンを用いた新生児あやし動作の教示システム
sugiuralab
論文紹介:Semantic segmentation using Vision Transformers: A survey
論文紹介:Semantic segmentation using Vision Transformers: A survey
Toru Tamaki
TSAL operation mechanism and circuit diagram.pdf
TSAL operation mechanism and circuit diagram.pdf
taisei2219
Open Source UN-Conference 2024 Kawagoe - 独自OS「DaisyOS GB」の紹介
Open Source UN-Conference 2024 Kawagoe - 独自OS「DaisyOS GB」の紹介
Yuma Ohgami
Postman LT Fukuoka_Quick Prototype_By Daniel
Postman LT Fukuoka_Quick Prototype_By Daniel
danielhu54
論文紹介:Content-Aware Token Sharing for Efficient Semantic Segmentation With Vis...
論文紹介:Content-Aware Token Sharing for Efficient Semantic Segmentation With Vis...
Toru Tamaki
論文紹介:Automated Classification of Model Errors on ImageNet
論文紹介:Automated Classification of Model Errors on ImageNet
Toru Tamaki
SOPを理解する 2024/04/19 の勉強会で発表されたものです
SOPを理解する 2024/04/19 の勉強会で発表されたものです
iPride Co., Ltd.
[DevOpsDays Tokyo 2024] 〜デジタルとアナログのはざまに〜 スマートビルディング爆速開発を支える 自動化テスト戦略
[DevOpsDays Tokyo 2024] 〜デジタルとアナログのはざまに〜 スマートビルディング爆速開発を支える 自動化テスト戦略
Ryo Sasaki
Recently uploaded
(10)
【早稲田AI研究会 講義資料】3DスキャンとTextTo3Dのツールを知ろう!(Vol.1)
【早稲田AI研究会 講義資料】3DスキャンとTextTo3Dのツールを知ろう!(Vol.1)
スマートフォンを用いた新生児あやし動作の教示システム
スマートフォンを用いた新生児あやし動作の教示システム
論文紹介:Semantic segmentation using Vision Transformers: A survey
論文紹介:Semantic segmentation using Vision Transformers: A survey
TSAL operation mechanism and circuit diagram.pdf
TSAL operation mechanism and circuit diagram.pdf
Open Source UN-Conference 2024 Kawagoe - 独自OS「DaisyOS GB」の紹介
Open Source UN-Conference 2024 Kawagoe - 独自OS「DaisyOS GB」の紹介
Postman LT Fukuoka_Quick Prototype_By Daniel
Postman LT Fukuoka_Quick Prototype_By Daniel
論文紹介:Content-Aware Token Sharing for Efficient Semantic Segmentation With Vis...
論文紹介:Content-Aware Token Sharing for Efficient Semantic Segmentation With Vis...
論文紹介:Automated Classification of Model Errors on ImageNet
論文紹介:Automated Classification of Model Errors on ImageNet
SOPを理解する 2024/04/19 の勉強会で発表されたものです
SOPを理解する 2024/04/19 の勉強会で発表されたものです
[DevOpsDays Tokyo 2024] 〜デジタルとアナログのはざまに〜 スマートビルディング爆速開発を支える 自動化テスト戦略
[DevOpsDays Tokyo 2024] 〜デジタルとアナログのはざまに〜 スマートビルディング爆速開発を支える 自動化テスト戦略
iOSアプリの自動テストをはじめよう
1.
Copyright © DeNA
Co.,Ltd. All Rights Reserved. iOS Test Night #1 2016/11/18(Fri) 平田敏之@DeNA iOSアプリの自動テストを はじめよう
2.
Copyright © DeNA
Co.,Ltd. All Rights Reserved. 自己紹介 平田 敏之@DeNA ⁃ 経歴 • GWの開発 → ホムペサービスの開発、iOSアプリの開発 → SWET ⁃ SWET(Software Engineer in Test) • 事業サポートチーム / テスト基盤チーム • ミッション ⁃ DeNAサービス全般の品質向上 ⁃ DeNAエンジニアの開発生産性向上 ⁃ 私がやっていること(の一部) • クライアントアプリ周りのテスト戦略、自動テストの開発 • CI/CD環境整備 • テスト基盤環境の開発
3.
Copyright © DeNA
Co.,Ltd. All Rights Reserved. 今日の発表の流れ 本日のプロローグ ⁃ iOS Test Nightを開催した理由 本日のメイン ⁃ iOSの自動テストをはじめるにあたって • 自動テストを書く際におきがちなこと • どうやって自動テストをはじめるか
4.
Copyright © DeNA
Co.,Ltd. All Rights Reserved. iOS Test Nightを開催した理由 iOSにおけるテスト周りに関する情報がまだまだ少ない(と感じている) ⁃ Qiitaのキーワード検索結果(11/18時点) • XCTest: 159 • XCUITest: 10 • EarlGrey: 3 • Espresso: 127 • Appium: 124 • JUnit: 866 • RSpec: 1728 • fastlane: 113 しかし、興味はあるはず(と信じている) ⁃ 参加者が少なかったらどうしようと震えながら本勉強会を開催しました 勉強会を開催すれば知見が共有できて良い循環がまわるはず
5.
Copyright © DeNA
Co.,Ltd. All Rights Reserved. IOSの自動テストをはじめるにあたって 主な対象ユーザ: これから自動テストを書こうかなと思っている人 コンテンツ 1) 自動テストを書く際におきがちなこと 2) どうやって自動テストをはじめるか
6.
Copyright © DeNA
Co.,Ltd. All Rights Reserved. 自動テストを書く際に起きがちなこと いきなり闇雲に自動テストを書いてもうまくいかないことが往々にしてあります
7.
Copyright © DeNA
Co.,Ltd. All Rights Reserved. 自動テストを書く際に起きがちなこと 闇雲に書きはじめると以下の様なことがおきたりします 意味のないテストコードを書く ⁃ テストになっていないテスト 読めないテストコードを書く ⁃ 可読性が悪く何をしているのかが分からない ⁃ なんのテストをしているのかが分からない 自分の環境でしか動かないテストコードを書く ⁃ 他の人の環境やCI上では動かない テスト結果が分かりづらくなるコードを書く ⁃ テストが落ちたときの調査が大変 無駄な(不必要な)テストコードを書く ⁃ テストの実行時間だけが増える
8.
Copyright © DeNA
Co.,Ltd. All Rights Reserved. 自動テストを書く際に起きがちなこと(1/3) 意味のないテストコードを書いてしまう 例)テストになっていないテスト ⁃ 自動テストで確認する箇所が不適切 • UIテストでいえば要素が「存在する」のか「叩ける」のか etc • 手動用のテスト項目を自動テスト化すると発生しがち ⁃ 手動用のテスト項目は曖昧に書かれていることがある ⁃ 失敗することがないテスト • 常にgreenになる
9.
Copyright © DeNA
Co.,Ltd. All Rights Reserved. 自動テストを書く際に起きがちなこと(2/3) テスト結果が分かりづらいコードを書いてしまう 例)使うべきAssertionが不適切 ⁃ XCTAssertTrue(expression1== expression2) • Xode • JUnit x Jenkins ⁃ XCTAssertEqual(expression1, expression2) • Xode • JUnit x Jenkins
10.
Copyright © DeNA
Co.,Ltd. All Rights Reserved. 自動テストを書く際に起きがちなこと(3/3) 無駄な(不必要な)テストコードを書いてしまう 例)パラメータだけを変えたテストを「無駄に」増やす • どのテストレベルでも起こりうる • 境界値や同値とかを意識していない ⁃ 「自動テスト」だからといってむやみに増やすケースがある その結果、実行時間の増加につながっていく
11.
Copyright © DeNA
Co.,Ltd. All Rights Reserved. おとずれる自動テストとのお別れ テストの実行結果からコードを追うのが大変 可読性が悪くコードを読むのに時間がかかる どのようなテストをしているのかがわからない テストコードを直すコストが高すぎて失敗が放置される 失敗したまま放置されだすと • 割れ窓理論(1つがredになりだすと..) • 聞こえてくるこわい声 ⁃ 「この落ちているテストは落ちてて問題ないテストです」 ⁃ 「とりあえずredなのを全てdisableにさせておこう」 そして自動テストは放置され価値を無くし、 「自動テスト=良くない」という認識が..
12.
Copyright © DeNA
Co.,Ltd. All Rights Reserved. 自動テストをはじめるにあたって 「どこから」「どこまで」「どうやって」やるかを考えましょう
13.
Copyright © DeNA
Co.,Ltd. All Rights Reserved. そもそも「テスト」とは? よく言われることですが、 テスト自体はプロダクトの「品質」をあげてはくれません 現時点での品質が「わかる」だけです その品質を良くするのは自分たちです テストは、その良くしようとする行為を支えてくれます ⁃ 適切な自動テストは力強く支えてくれます
14.
Copyright © DeNA
Co.,Ltd. All Rights Reserved. まずはじめに 闇雲に書き出しても求めているものは得られません まずは以下の3つを考えましょう ⁃ 「どこからやるか」 ⁃ 「どこまでやるか」 ⁃ 「どのようにやるか」
15.
Copyright © DeNA
Co.,Ltd. All Rights Reserved. 「どこから」やればいいですか? まず書きはじめるところを見つけましょう Unitテストで基盤といえるControllerに関わるModel周り UIテストでアプリで共通となっている画面フロー周り ⁃ ログインがあるアプリならログイン周りだけやるという手も あなたが不安を感じているところから ⁃ 開発者の不安は当たります • ただし不安なところはテストコードが書きづらいことも多い バグを修正するタイミングで該当機能に対して 新機能追加のタイミングで新機能に対して
16.
Copyright © DeNA
Co.,Ltd. All Rights Reserved. 「どこまで」やればいいですか? 最初からやりすぎようとしない ⁃ やりすぎると息切れをおこす ⁃ カバレッジ100%とかを意識しすぎない まずは小さく「はじめる」のが良い ⁃ 小さく作って運用にのせていく • CI環境で動かせるようにするのが良い 運用に乗り始めてから少しずつ改善していく ⁃ テストの網羅性 ⁃ テストの実行速度 ⁃ アプリのバージョンカバレッジ ⁃ OSカバレッジ ⁃ 画面カバレッジ
17.
Copyright © DeNA
Co.,Ltd. All Rights Reserved. 「どのように」やればいいですか? テスティングフレームワークの選定 ⁃ XCTest / Quick etc ⁃ XCUITest / EarlGrey / Appium etc テストコードを書く際には以下の点に注意 ⁃ テストの独立性 ⁃ テストの再現可能 ⁃ テストが繰り返し可能 ⁃ テストが自分の環境以外でも動く 文化を育てるためにも ⁃ サンプルとなるコードをしっかりと用意 • 他の人がはじめやすいようにする ⁃ 実行結果などの見える化
18.
Copyright © DeNA
Co.,Ltd. All Rights Reserved. iOSの自動テストのために付き合う必要があるもの テスティングフレームワークのバグ ⁃ XcodeのRelease Notesの「Testing」のコーナを見るようにしま しょう • 既知のバグに対するworkaroundがのってたりもします バージョンアップ対応 ⁃ Xcodeのバージョンアップに対応する必要があったりもします • 例) Xcode8.1のRelease Notesより ⁃ UI tests may fail to run for apps written with Swift 2.3
19.
Copyright © DeNA
Co.,Ltd. All Rights Reserved. 自動テストのステップ例 どのようなステップですすめていくかの例 セットアップ ⁃ 自分のマシンのセットアップ ⁃ CI環境のセットアップ • 誰もが見れる環境でも動かせるようにする • fastlaneを使うのが良い ⁃ セットアップのためのREADMEを用意 テストコードの実装 ⁃ テストを書くところを決める ⁃ テストを書く ⁃ 書いたテストをCI環境で動かす • PR状態のbranchで動かし続けるのが良い
20.
Copyright © DeNA
Co.,Ltd. All Rights Reserved. 「自動テストをはじめましょう」 iOSに根を下ろし、Appleと共に生きよう テストと共にリリースを乗り越え ユーザと共に新バージョンを歌おう ラピュタより
21.
Copyright © DeNA
Co.,Ltd. All Rights Reserved. さいごに 「どこから」「どこまで」「どうやって」を考えて、是非テストをはじ めてみてください テストをはじめて得た知見をiOS Test Nightで是非発表をしてください その話を聞いた人がその知見を元に新たな知見を得て発表をしてくれる と思います ⁃ これが幸せなループになると思っています 皆様の応募をお待ちしております!!
Download now