android usb アンドロイド adk deb android twilio boundio test ci build jenkins monkeyrunner
前回の第1回Androidテスト祭りでは、開発者テストを中心とした下層テストに焦点を当てたが、第2回では、ユーザーや第三者での検証が中心となる上層テスト(上層と下層の区別はソフトウェア開発のV字モデルによるもの)に焦点を当てたイベントとして企画したことを述べた。 一部、セキュリティ設計、CI(Continuous Integration、継続的インテグレーション)など、下層テストの話題も含んでおり、テスト担当者や受注側のユーザー以外にも魅力的な企画も盛り込んだ内容となった。主な講演内容は以下の通り。 セキュリティ設計は開発の初期段階から検討すべし 「受け入れテストガイドライン」はユーザーに役立つのか Androidアプリ開発にはCIツール「Jenkins」が効果的 LT【1】Jenkins+コードレビュー「Geritt」がさらに効果的 LT【2】Androidテストの効率化ノウハウ 増加す
流れ的に説明を省略してしまった箇所がいくつかあるので、ここでまとめて触れておきます。 Jenkinsのセキュリティ設定 Jenkinsはブラウザ経由で操作します。標準の状態では、ブラウザでそのマシンにアクセスできる人であれば、誰でも自由に設定を変更したりビルドを実行できてしまいます。実際にJenkinsの運用を始める前にセキュリティの設定を変更しておきましょう。 Jenkinsの管理 – システムの設定から「セキュリティを有効化」にチェックを入れると、アクセス制限をかける事ができるようになります。ユーザについてはJenkins上で作成・管理することもできますが、Macの場合は「Unixユーザ/グループ データベース」を選択すればそのMac上のユーザデーターベースを使えて便利です。 権限管理の欄でユーザごとの権限を設定できます。気をつけなければいけないのはデフォルトの権限設定で、どうやらJe
Test After Buildの仕組みを利用して、実際にテストを実行してみましょう。 テスト用ターゲット Xcodeビルドの設定で、テスト用のターゲットを設定します。 iOSの標準のテスト(SenTestingKit)はシミュレータ上でしか走らせる事ができないので、SDKには明示的にiphonesimulatorを指定します。iphonesimulator5.1のようにバージョンを指定することもできます。これを指定しないとデバイス用のSDKが使われる事になるので、エラーが発生します。 この状態で一度ジョブを実行してみましょう。コンソール出力を確認して、テスト実行のログが残っているか確認しましょう。 Test Suite '/Users/foo/.jenkins/jobs/bar/workspace/build/Debug-iphonesimulator/bar.octest(Tests)
Jenkinsを使ってビルドを自動化することができました。この後、ビルドしたアプリをTestFlight経由でいつでも簡単にインストールできるようにしていきたいのですが、手順の都合から先にテストの自動化について確認しておきましょう。 継続的なテスト SQLiteのテストコードは実に9000万行を超えているそうです。バグを早期に発見しつぶすためにテストは重要ですが、一方で開発が進むにつれて増大していくテストコードを、プログラマがコードをコミットする前に毎回全部実行するのは、時間がかかり非効率的です。 そこで、プログラマは自分のコミットに影響があると思われる部分(この見積もりは大事だけれど)のみコミット前にテストを実行し、後はコミットした後でJenkinsにテストさせていくようにして、バグの早期発見とスピードのバランスをとっていきましょう。 Xcode Pluginを使って実行できるテストの制
まずは難しい事を考えずに、一度JenkinsからXcodeを使ってプロジェクトをビルドしてみましょう。Jenkinsを使ってiOSアプリをビルドするには、最初にいくつか設定をする必要があります。 必要なもの 最新のXcode 最新版のXcodeが必要です。ちなみに、JenkinsはXcode.appではなくxcodebuildコマンドを使ってiOSアプリケーションをビルドします。xcodebuildはXcodeをインストールすると使えるようになるコマンドです。 プロビジョニング類 実機用のビルドを行うには、通常の実機用ビルド同様、ビルドに使うProvisioningファイル類(秘密鍵・証明書・プロビジョニングファイル)が必要です。シミュレータでテストを行うだけであればこれらはなくても大丈夫です。 プラグイン シェルスクリプトでビルド用のコマンドを書いてもよいのですが、プラグインを使うと設定
手始めに、Jenkinsを使ってプロジェクトの最新のソースコードをGitレポジトリから取得してきてみましょう。Jenkinsは標準でCVSやSVNに対応していますが、残念ながらGitに対応していません。Gitを使うには別途プラグインをインストールする必要があります。 Gitプラグインのインストール JenkinsのプラグインはWeb UI上でインストールできます。 Web UI(localhost:8080)の左上のメニューから「Jenkinsの管理」を開きます。 「プラグインの管理」を選びます。 プラグイン管理画面が開いたら、「利用可能」タブを選択します。しばらく待つと、利用可能なプラグインの一覧が表示されます。待っても表示されない場合はリロードしてみるとうまくいったりします。 「Git Plugin」というプラグインにチェックを入れて、「再起動せずにインストール」します。 以上でGit
Cronでビルド用のスクリプトを定期的に実行するだけでも、完全自動のCIを実現できますが、CIツールを使うとより簡単に実現できます。今回はiOSアプリ開発(とくにUnityを使ったゲーム開発)で最近よく使われているJenkinsというCIツールを試してみます。まずはインストール。 Jenkinsを使うとなにがよいのか 「レポジトリから最新のソースコードを一式取得してきて、テストする。また、ビルドしてTestFlightにアップロードする」一連の流れをゼロからスクリプトで記述するのはかなり面倒です。エラーハンドリングを含めると、コードはどんどん長くなり導入コストが大きくなってしまいます。 JenkinsをはじめとするCIツールでは、これらの各処理をパラメータを指定するだけで実行できるようになっており、自動ビルドの導入コストが大幅に圧縮されます。また、スクリプトだけでは実現が難しい過去の履歴の
エクストリーム・プログラミングのプラクティスの一つに、継続的インテグレーション(CI)があります。iOSアプリ開発のフローにもCIを取り入れてみましょう。ここではJenkinsというツールを使って具体的にiOSアプリのビルド・テストの自動化を試みながら、iOSアプリ開発にCIを取り入れる上でのメリットや課題について見ていきます。 バグの早期発見 実際にチームでプロジェクトを開発していると、バグは勿論、ビルドできないコードがコミットされてしまうことがあります。継続的にビルド・テストをしていると問題があるコードがコミットされた時にすぐに気がつきます。 ノンエンジニアへのビルドの共有 TestFlight等と組み合わせると、開発環境を持っていないノンエンジニアの人がいつでも開発中のアプリの最新版を自分の端末上にインストールできるようになります。これはエンジニア・ノンエンジニア両方にとってストレス
LuaridaのスクリプトをAndroidマーケットに登録するために、assetsフォルダに登録したスクリプトをLuaridaにintentするだけのアプリを作りました。このアプリ自体は一回作ったら変更することなく、変更するのは、assetsフォルダに登録するスクリプトファイルだけなので、いちいちeclipseを立ち上げなくてもapkビルドを行う方法を防備録として書いておきます。 文章中のPath名はインストールした場所によって違うので、適当に置き換えて判断してください。 Android update project --path eclipseを起動しないでapkを作るということは、antコマンドを打ってapkを作成することになります。しかしながら、eclipseのプロジェクトには、antコマンドが必要とするbuild.xmlなどの設定ファイルが存在しません。 そこで、先ずこれらの設定フ
はじめに 近年、iOSやAndroid向けのアプリケーション開発が盛んに行われ、これまでWebが中心であったソーシャルアプリ開発も、徐々にブラウザの枠を超えたところに手を伸ばしつつあります。ソーシャルアプリ開発のプロジェクトは、多くの場合、スモールスタートで始まりますが、開発を続けていくにつれて、コードが増え、端末が増え、人が増え、気がつけば、機能を実現するための実装と関係ない部分でのタスクが膨れあがっていきます。そんなコストを技術的に解決するためのしくみがあれば、もっと本質的な部分に時間を割くことができるはずです。 今回は、CI(継続的インテグレーション)ツールのJenkinsと内製のQA向けダウンロードツール、コードレビューツールのGerritを組み合わせた、継続的な開発をサポートするしくみ作りについて、ミクシィでのAndroidアプリケーション開発の事例を取り上げてご紹介します。 1
はじめに 2月21日に楽天株式会社様の会場をお借りして、100名程度の参加者とともに第5回Jenkins勉強会を開催いたしました。本稿では、本イベントをレポートします。 今回の勉強会では、前半はいつものように有識者数名の発表を聴講し、後半はビアバッシュ形式で参加者皆さんと共に親睦を深めました。 なお、当日のUstreamをはじめ、各発表者の発表資料や参加者の感想ブログはwiki.jenkins-ci.orgにまとめられています。本レポートの補足として参照ください。 DEV@cloudの実装~Jenkins-as-a-Serviceはどうやって動いているか~ 川口氏の今回の発表は、CloudBeesが提供しているJenkinsホスティングサービスDEV@cloudを構成する要素の紹介です。 EC2上で提供されているDEV@cloudでは、ProvidoreというJenkinsのスレーブをプー
オライリーさんから献本いただきました。オライリーさん、ありがとうございます。 Jenkinsをバリバリ使う人はカエル本を手元に1冊おいておくことをお勧めします。 カエル本、内容と感想 原著ではJenkins: The Definitive Guideということで、その名に恥じず、非常に濃い内容に仕上がっています。 インストールだけで23ページ、Debian系、Redhat系、SUSE系、Windows系へのインストール+αと盛りだくさんの内容です。 ビルドから自動テスト、コード品質といったCIの基本的なところから、Jenkinsをヘビーに使いこなす高度なビルド、分散ビルド、更には最近のホットトピックスである継続的デリバリまで、幅広くカバーしています。個人的には、最近興味津々の継続的デリバリが取り扱われているのが嬉しかったです。 そして、洋書にしては珍しくキャプチャが多くて、読みやすいです。
前回 はSenTestKitを用いてJenkins上で単体テストの自動実行を行いました。今回はGHUnitを使った単体テストの自動実行にチャレンジしてみたいと思います。またついでといっては何ですが、単体テスト時に必要になってくるモックを作成するためのライブラリOCMockも同時に導入してみようと思います。 ■なぜGHUnitを使うのか GHUnitを使うことで、SenTestingKitと比べて以下のようなメリットが得られます。 非同期処理のテストを行うための仕組みが用意されている(GHAsyncTestCase)これをSenTestingKitないし他のテスティングフレームワークでやろうとすると大変骨が折れます。 .app形式(要するに実際のiOSアプリケーション)でテストを実行するため、UIApplicationやUIWindowといったUIコンポーネントを使うクラスのテストが可能にな
はじめに はじめまして。(株)ミクシィの加藤和良です。2008年度に入社し、2011年1月からはシステム本部 技術部に所属しています。技術部は、日記やコミュニティといった特定のサービスに紐づかない、mixi全体を裏から支える部署です。「支える」ための方法は、実際のサービスの一部として動作する共通基盤から、開発効率を上げるために社内で動作しているものまで、多岐にわたります。 mixiでは、ここ数年で自動テストの導入が急速に進みました。図1は、mixiのソースツリーにおけるコードと、そのテストコードの毎月1日のバイト数をグラフにしたものです。2008年の頭には少なかったテストが急速に増え、今年の5月にはコード量をも追い越しているのがわかります。 携帯電話向けmixiである「mixiモバイル」の開始が2004年、mixiニュースが2006年ですから、2008年当時のmixiも、それなりに大き
最近、iOSアプリの開発でも継続的インテグレーション(CI)を取り入れていくプロジェクトが増加傾向にあるようで、各種ツールやライブラリ、ノウハウが出回ってきているように感じられます。そこで私も早速iOSアプリ開発でのCI導入を試してみることにしました。今回の導入試験では、以下のような環境を想定して行いました。 iOSアプリの開発を、Xcode 4.X系のプロジェクトとして行う。 VCSにはgitを採用し、githubの公開リポジトリをリポジトリサーバーとして使用する。 CIサーバにはMacを採用し、プロジェクトをビルドするためにXcode 4.Xをインストールしておく。 ■必要なツールを準備する CIといったら、まずは何はなくともJenkinsです。 http://jenkins-ci.org/ ここでは導入について詳しくは挙げませんが、私は以下の本を参考にしました。 https://gi
Created by Unknown User (sogabe), last modified on Jul 24, 2008 オリジナル: Standard Security Setup ここでは、おそらく一番一般的な設定 — Hudson自身でユーザーを管理し(ユーザーがサインアップしてアカウントを作成できる)、管理者であるあなたがHudsonで誰が何をできるのかを決めることができる — を説明します。 Initial steps システムの設定画面(http://server/hudson/configure)にいって、"セキュリティを有効化"を選択します。 ユーザー情報の"Hudsonのユーザーデータベース"を選択します。 "ユーザーにサインアップを許可する"をチェックします。 権限管理の"行列による権限設定"を選択します。 匿名ユーザーに参照権限(read)を与えます。 表の下の
ผู้ช่วย ผู้บังคับบัญชาตร. ยืนยันมิได้แกล้ง กรณีส่งตำรวจไปถามลูกค้าที่ซื้อสลากฯ จากกองสลากพลัส แค่ต้องการเก็บหลักฐาน จากกรณี แม่ค้าออนไลน์ที่ จังหวัดจังหวัดเชียงใหม่ เผยแพร่คลิปวีดีโอเหตุการณ์ที่มีตำรวจ ขี่รถเครื่องมาหยุดที่หน้าบ้านเมื่อวันที่ 1 กุมภาพันธ์ ขอให้ไปให้ปากคำกับตำรวจ สภ.สารภี จังหวัดเชียงใหม่ โดยขอให้ปากคำในฐานะผู้เห็นเหตุการณ์คดีกองสลากพลัส ขายสลากเกินราคา แต่เจ้าของบ้านไม่สบายไป ถัดม
10月 10th, 2011 by mattari Hudson改め Jenkins で Android Test Project を自動実行してカバレッジを採取する方法をまとめます。 準備 (1) Jenkins に以下のプラグインをインストール Android Emulator Plugin (2) Ubuntu に Emma をインストール sudo apt-get install libemma-java (3) テスト対象Projectと、その Android Test Project の両方に ant でのビルド用に build.xml を用意しておく。 Jenkinsジョブの設定 テスト対象Projectを jenkins のジョブに登録し、「設定」メニューで以下の設定を行います。 (1) 「ソースコード管理システム」の設定 テスト対象Project の取得を設定し、 ./t
Jenkins Advent Calander 2011と、思いきや、まったく関係なくJenkinsのTipsを書きます。 Jenkinsの生みの親である 川口さんが勤めている会社である、CloudBeesでは、Jenkins のSaaSサービスである、dev@cloudや、JavaのPaaSサービスである、run@cloudを展開しています。 CloudBeesさんは太っ腹で、dev@cloudもrun@cloudも制限があるもののFreeプランがあります。 そこで、早速試してみましたので紹介します。こんなにいろいろできて全部無料なんて素晴らしい! 今回はリポジトリにGithubを使いました。ちなみに、CloudBeesではリポジトリのレンタルサービスもあるようです。 大まかな流れは、こんな感じです。 Githubにリポジトリを作成 dev@cloudのアカウント設定 Jenkinsの設
リリース、障害情報などのサービスのお知らせ
最新の人気エントリーの配信
処理を実行中です
j次のブックマーク
k前のブックマーク
lあとで読む
eコメント一覧を開く
oページを開く