技術部の松尾(@Kazu_cocoa)です。クックパッドのモバイルアプリ開発では、どのようなテストを書き、どのようなタイミングで、どのようなテストを実施するか?に関してエンジニア各位が意識を合わせるためにテストサイズを定義し運用してきました。ここでは、そんなテストサイズに関して簡単ですがまとめておこうと思います。いう言葉には出会ったことがあるかと思います。JSTQBでは、このテストレベルは"管理していくテストの活動のグループ"と定義しています*1。ない方も、俗に言う単体テスト/統合テストなど聞いたことがあるかと思いますが、その区分がここで示しているテストレベルとなります。このテストレベルはV字型と言われる開発工程と合わせて世の中で広く使われているため、社内における共通認識を構築するにあたり個々人の認識を合わせる上で手間がありました。私たちの開発スタイルに合うようにいくつかの指標を定義し、そこに沿ってテストを区分する方法をとりました。その結果、その区分に対して妥当な表現としてテストサイズ、という言葉をとりました。Sizeの影響も受けています。テストレベルに関しては安定したリリースを継続するためのテストとテストレベルの話として記事を書いたことがあります。当時はまだこのサイズに対する定義も試行錯誤の段階だったのでサイズという表現を用いてませんでした。以下では、今回の話の対象と区分、その実例に軽く触れながらどのような定義を用いているのか載せていきます。対象モバイルクライアントアプリサーバ側は対象外テストサイズと区分け表テストサイズをsmall/medium/large/Enormousに区分します。その中で、いくつかの依存する要素に対してどのような関係を持っているのかをまとめます。基準テストサイズを区分する上で、以下の要素を考慮に入れています。OSへの依存、ライブラリへの依存など。依存性が高いほど、複雑な系を対象にする。ネットワークアクセスなどなどのテスト時に依存する周辺環境これらは私たちの開発スタイルであったり、テスト容易性を考える上で特に重要な性質を持ってきています。実際にS/M/L/Eの4つのサイズに区分した例を出しました。その中で、それらを実際の業務でどのように使い分けているのかを例も交えながら取り上げていきます。例Appium手動テストTipsテストサイズが小さいうちはDIなどの技術を用いてテスト容易性を上げる、依存性を下げるなどするかと思います。一方で、テストサイズが大きくなるとテストが不安定になる要素や私たちアプリ固有の依存を持つ箇所が目立つようになります。動きを観測することで数値計測が必要になることも多々あります。その場合に対して、私たちは必要な補助ツールを用意し、適宜対応しています。その一例を載せています。テスト実施には関係ありませんが、テストをするために必要な情報を取得したり、忘れがちなところを補助するツールも作り実行頻度を調整して適用しています。wda_client(Ruby)WebDriverAgentを使う最小限のラッパーlicense-tools-plugin(Java)Androidアプリのライセンス作成を楽にするOSS最後に安定した開発サイクルを保ちサービス開発に集中できるようにするために、安定した・必要な時間内に終えることができるテストの実現は現在まだ必要とされる環境です。knowledge)を用いて対応していくことが必要です。弊社ではこのような取り組みを共に実施し、より良いサービスを提供し続ける為にエンジニアを募集しています。ご興味のある方は、是非とも覗いてみてください。技術部の松尾(@Kazu_cocoa)です。クックパッドでは、2年程前か...2016-12-09EarlGreyを使った画面操作を伴う自動テストこんにちは、技術部品質向上グループの茂呂一子です。品質向上...2016-10-04iOSアプリの継続的デリバリーへの取り組みについての勉強会を開催しました技術部モバイル基盤グループの三木(@giginet)です。去る9月1...2016-08-15OpenSTFでAndroidのCIを2倍早くするはじめまして!技術部モバイル基盤グループの加藤(@k0matatsu)...2016-08-01アプリのアップデートに依存せずにアプリの画面を改善し続ける仕組み検索事業部の日高(@kaa)です。使ったセキュリティログ検索基盤の構築サービス特性にあった検索システムの設計戦略クックパッド採用説明会「クックパッドはサービスの作り手を採用したいんです。/*}*/スターをつけました引用をストックしましたストック一覧を見る閉じる引用するにはまずログインしてくださいログイン閉じる引用をストックできませんでした。再度お試しください閉じる限定公開記事のため引用できません。