Lionas@スタジオマーブルの技術ブログ

Androidやドローンに関する技術的な記事やiRacingなどのシミュレータに関する記事

Androidテスト本を出版します

久々のブログ更新です。
本年 5/25にオライリー社から「O'Reilly Japan - 入門 Androidアプリケーションテスト入門Androidアプリケーションテスト」という本を出版します。
内容は、テストの設計方法の概要とAndroidのテスティングフレームワークの基礎です。
(※執筆から出版まで色々とあって、随分時間がかかってしまいました。。)


あくまでも入門書なので、新入社員の皆さんやテスト設計の方法を体系的に学んだことのない方に、おすすめします。逆に実務でTDDを実践しているような人には内容が簡単すぎるかも知れませんのであしからず。。

O'Reilly Japan - 入門 Androidアプリケーションテスト


個人的には、"TOYOTA86を10倍楽しむ本" とか書いてみたいんですけどねw
興味のある出版社さんいないかなー?

86峠セレクション2012アプリを公開しました

先日、TOYOTA 86を購入しました。納車待ちの期間があまりに長いので、TOYOTA 86サイトの86 SOCIETYで公開されている「86峠セレクション2012」の全ての峠を、簡単にカーナビに目的地として設定できる Android アプリを作りました。

元々は個人的なアプリとして作っていたのですが、もしかしたら他の86ユーザーにも需要があるかも?と思って公開しました。



アプリのダウンロードはこちら。アプリの説明はGoogle Playの説明文から。

TOYOTA 86 の 86 SOCIETYで公開されている "86峠セレクション"全120峠をNaviCon対応カーナビの「目的地」に簡単に設定することができるアプリです。お気に入りの峠を見つけて、実際に峠に出かけてみましょう!

トヨタ純正カーナビ(2012年版)は、NaviCon対応アプリに対応しています。
※ 本アプリはデンソー社製「NaviCon カーナビ連携」アプリと連携するため、本アプリ以外にNaviConアプリのインストールが別途必要です。アプリがインストールされていない場合は、Google Playのダウンロードページが表示されますので、NaviConアプリをダウンロードの上、ご利用下さい。
※ 本アプリは86オーナーが個人的に作成したアプリであり、トヨタ自動車並びに関連会社とは一切関係ございません。

ProGuardに関するまとめ

ADT17で変更になったProGuard(プログラム/リソースの圧縮・最適化・難読化ツール)について会社ブログの方に書いたついでに、過去のProGuardについて記事をまとめてみた。いずれも自分が書いたエントリです。

AndroidでProGuardを使わないと色々と損をすることがあるので、まだご存知でない方は一読することをオススメします。

AndroidでSDにアプリを移動した際に本体側の必要領域がゼロにならない理由

Android 2.2からアプリケーションを「携帯端末」から「SDカード」に移せるようになりました。これは携帯端末(本体)側のアプリの保存領域が限られているためで、インストールしたアプリをSDカードに移すことによって、本体側の空き容量を確保することができるようになるからです。

単純に考えると、アプリ移動後は本体側のアプリ保存領域はゼロになっても良いようにも思えますが、実際はゼロにはなりません。SDカード側に本来のアプリサイズの領域が必要な上に、本体側にも数百Kバイト〜数Mバイトの領域が必要になります。

この本体側の領域(正確には/data/以下)には「dalvik-cache」と呼ばれる、起動・実行・シャットダウンなどアプリの動作に必要なキャッシュファイルが保存されています。
dalvik-cacheは、端末の起動時にインストール済みアプリとフレームワークの情報を収集し、書き込み可能なファイルとして生成され最適化されたアプリのバイトコードを格納することで、アプリのスムーズな動作を実現しています。dalvik-cacheはAPKファイルに含まれるclass.dexからDalvikによってビルドされます。

dalvik-cacheのサイズを小さくする(=本体側の必要容量を小さくする)には、

  • プログラムのサイズを小さくする
  • Proguardでバイトコードを最適化する(難読化の他にも最適化機能があります)

などが有効です。

私が試した限りでは、proguardを適用した後にSDカードへ移す処理を行ったところ、本体側で13Mバイト程度消費していたアプリが、移動後は700Kバイト程度まで抑えられる結果となりました。

※dalvik-cacheの詳しい解説は、こちらのサイトが参考になるかもしれません。
※proguardの詳細はこちら

JSTQB 認定テスト技術者試験(Foundation)に合格しました

以前から受けたいと思っていた「JSTQB認定テスト技術者資格 第11回 Foundation Level試験」に合格しました。ソフトウェア開発者の中でも、意外とテスト技術者の資格があること自体知らない人も多いのですが、この試験は国際的なソフトウェアテスト試験「ISTQB」に準拠した国際資格です。(感覚的にLinuxの資格試験に近いかな?)

合格者番号を眺めていると、結構歯抜けな感じ。例年と変わらず合格率は50%前後なのだろうか。

今回は初めてのAdvancedの試験があったこともあり、合格発表自体が例年より2週間ほど遅かったです。

次回はAdvancedを・・・と言いたいところですが、公私に渡って忙しすぎで無理そうな予感。

ちなみにISTQBでは、「Expertレベルの試験」の検討も既に始まっているようです。

ISTQB の Expert レベル概要

仕事柄、プロジェクトマネジメントの一環でテストのマネジメントもやることがあるので、時々 ISTQB (International Software Testing Qualifications Board) のサイトを覗いたりしています。偶然、Newsのページに Expert レベルの Introduction and overview のプレゼン資料がありましたので、興味のある所だけ訳してみました。

ISTQB とは?

念のため解説すると、ISTQBとはソフトウェアテストのプロフェッショナルを認定する資格を設けることで、ソフトウェアテスト技術者の育成を図ることを目的として組織された団体です。同一の名前を試験名として用いられています。各国のソフトウェアテスト技術資格認定運営組織が加盟しており、日本からはJSTQBが加盟しています。

Expert レベル試験の区分

  1. テストマネジメント(Test Management)
  2. テストプロセスの改善(Improving the Test Process)
  3. テストの自動化(Test Automation)
  4. セキュリティテスト(Security Testing)
  5. その他

1,2 は Advanced レベルの TestManager が、3,4 は Advanced レベル の Technical Test Analyst がそれぞれ前提となっているようです。例えばテストマネジメントを極めたことを証明するために本試験を受験する場合、Advanced/TestManager 試験に合格している必要があります。

Expert レベル試験の概要

Expertレベルの資格スキームは、ステークホルダーからの期待と認識の上で、本当の意味での"エキスパート"として見られなければなりません。そのため、資格は多岐選択式セクションと記述式の小論文セクションによって構成されています。75% 以上の正答で合格となります。

  • 多岐選択式セクション
    • 試験時間:1時間
    • 問題数:20問
    • 学習カバレッジ:K2, K3, K4(Advanced レベルと同等)
  • 小論文セクション
    • 試験時間:読解30分、解答2時間(非ネイティブは+45分)
    • 問題数:5問中4問を解答
    • 学習カバレッジ:最も高いレベル K5, K6

資格は無期限ではない!

Expert レベルの資格の有効期間は5年です。資格更新は以下の2つのうちのどちらかによって行う必要があります。

  1. 5年以内に再試験を受け、合格する
  2. Certification Extension Credits(CEC) を 200 ポイント貯める。CEC は様々な方法でカウントすることができます。例えば、
    • プロのテスト活動を行う
    • 関連するトレーニングコースを受ける
    • テストカンファレンスに出席する
    • テストカンファレンスで発表する
    • テスト記事やテスト本を執筆する
    • Working Group(NG, SIGIST, ISTQB) で活動する
  3. 上記を証明する証拠を試験主催者に提出しなければなりません。
  4. ISTQB によって資格延長プログラムが提供されます。

その他

その他、トレーニングコースやシラバスの策定状況などがプレゼン資料には記載されています。興味のある方は一度ご覧になってはいかがでしょうか。

NEO SPEED PARKへ行ってきました

雨がしとしとと降る中、会社の同僚とNEO SPEED PARKへ行ってきました。
夜でかつWetなのでベストタイムは期待できませんが・・・コーナリングの良い練習になるかと思い、35周ほど走ってきました。走行タイムはこんな感じ。

  1. 40.503
  2. 39.870
  3. 39.676
  4. 39.057
  5. 39.476
  6. 39.245
  7. 39.123
  8. 38.929
  9. 39.302
  10. 39.131(1回目終了、休憩)
  11. 38.035
  12. 38.752
  13. 37.648
  14. 37.354
  15. 37.513
  16. 37.342
  17. 37.260
  18. 36.715
  19. 37.440
  20. 37.485
  21. 37.562
  22. 1'54.460(係員が周回数を間違えたためピットイン)
  23. 36.877
  24. 36.951
  25. 36.915(2回目終了、休憩)
  26. 37.638
  27. 36.857
  28. 37.368
  29. 36.754
  30. 36.557
  31. 37.123
  32. 36.517
  33. 36.929
  34. 36.794
  35. 36.402(自己ベスト)

速い人は34秒とか35秒で走るらしい。ホント速いですね・・・。

走る前、受付のお姉さんに「初めてのWetだから慎重に走るように。縁石に乗ったらイチコロですよ。」とかなり念を押されてしまったので、最初はかなり慎重に走ってましたが・・・気づいたらアクセル全開で走っている自分がいましたw

ヘアピン等では、ちょっとわざとハンドルを急に切ってやると、リアが流れるので非常に曲がりやすい感じがしました。
でも、流れすぎる事が多々あったので、やはりグリップ走行でスローイン・ファーストアウトを心がけた方がいいのかもしれません。

Dryも自身の記録に挑戦できて愉しいのですが、Wetもなかなかどうして、別のテクニックや度胸が必要なので、WetはWetで愉しむことができました。

NEO SPEED PARKは高速&高低差のあるコースなので、カートに慣れた人でないと怖いサーキットではありますが、一旦慣れてしまうと平面コースと違ってかなり楽しめるコースです。

また行きたいと思います。