自動テストが注目され始めたアプリの開発において,品質を担保するために欠かせない工程がテストです。アプリ開発におけるテストには,アプリの各機能が正しく動くかテストする「単体(ユニット)テスト」や,ユーザにとってよりよいものとして動くかテストする「UIテスト」などがあります。自動テストとは,このようなテストをその名のとおり自動で行うものです。開発者たちの間では,この自動テストが注目され始めています。iOSアプリの開発始まってから10年が経ち,昔に比べてアプリの開発はどんどん複雑になり,対応するべきiOS端末の数もどんどん増えてきました。そんな中で,開発者やテスターによる手動のテストだけでは,開発スピードや品質を保つことが難しくなってきてしまいました。テストを自動化するか自動テストを取り入れると,開発のスピードアップと品質向上につながります。それは,自動テストが以下の4つを得意としているからです。自動的にテストを行えることで,開発に必要なテストをスピーディにくり返し行えるので,開発スピードが上がりまます。自動化されたテストは,手動テストで起こり得る人為的なミスを減らしてくれます。自動テストを書くことで,テストや開発仕様を外部に書き出すので,プログラムの属人性を排除し,メンテナンス性や開発効率をアップできます。テストピラミッドを知る自動テストの実装するうえで大切なことを,ここでは1つだけ紹介しましょう。大切なことは,テストピラミッドを意識することです。Agile』の中で紹介したもので,各種テストの時間やコストの理想的なバランスを表しています。テストピラミッドテストピラミッドでは,下層のユニットテストほど多く,上層のテストほど少ないテストケースで担保するのがよいとされています。一般的に,UIテストなど上層のテストほど担保できる範囲は広くなります。すべてのテストをUIテストで行うのは,開発のコストや安全性の面からよくありません。開発コストが高い上位のテスト量が増えてしまうと,逆ピラミッドの形になってしまい,不安定な状態が続いてしまいます。テストピラミッドのように,できるだけ下位のテストで担保できる部分を増やし,上位のテスト量を少なくすることが,安定したテストにつながります。テストを自動化する際にも,このテストピラミッドの安定性を意識することが大切です。iOSアプリ開発の自動テストを学ぶ自動テストをもっと学ぶには,iOSテスト標準のXCTestによるユニットテストやUIテスト,サードパーティのOSSの活用,fastlane・アプリ配信サービスデバイスファームを駆使したCI/CDなど,広範囲の技術を押さ得ることが重要です。~XCTestによるユニットテスト・UIテストから,CI/CD,デバッグ技術まで」は,「⁠iOSアプリ開発における自動テストの地図」になるように,自動テストにかかわる広範囲の知識・ノウハウを押さえています。「⁠これからは自動テストもしっかりと押さえないと」「⁠開発をもっとスピードアップしたい」「⁠アプリの品質をしっかりしたい」というエンジニアにお勧めの1冊です。2019」を開催しました。DAY1・DAY2の様子を注目セッションとともにお伝えします。LINEのエンジニア3名がイベントに先駆けて見どころを紹介します。コードの安全性・安定性を高める開発サイクル~テスト管理の効率を上げ,脆弱性診断を自動で行う~本連載では,連載「業務を改善する情報共有の仕掛け」を受けつつ,安全性・安定性を加えた開発サイクルについて考えていきます。書店・販売店の皆様へデベロッパアドミニストレータWEB+デザインライフスタイルサイエンスニュース&レポートメールでのお知らせメールで次の案内をお送りしております。メールの配信を希望する方は,利用したい項目をチェックしてメールアドレスを入力し,[登録]ボタンをクリックしてください。UPDATES[ほぼ週間に1回]新刊メールマガジン[ほぼ週間に1回]電脳会議の各号案内[ほぼ1ヵ月半に1回]※変更する場合や停止する場合は,登録情報変更ページをご覧ください。※登録いただいたメールアドレスには,そのお知らせ以外,配信いたしません。Ltd.ページ内容の全部あるいは一部を無断で利用することを禁止します。個別にライセンスが設定されている記事等はそのライセンスに従います。