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等と組み合わせると、開発環境を持っていないノンエンジニアの人がいつでも開発中のアプリの最新版を自分の端末上にインストールできるようになります。これはエンジニア・ノンエンジニア両方にとってストレス
前回 は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
This document summarizes the key differences between centralized version control systems (CVS) and distributed version control systems (DVCS). It explains that DVCS allow for non-linear development with features like rebasing and branching that are not possible in CVS. Examples of DVCS like Git and Mercurial are given. The document also discusses how to migrate from CVS to a DVCS and advantages of
この記事はCakePHP1.2系またら1.3系を対象としており、CakePHP2.0系では別のアプローチになります。 不思議なことにCakePHPアプリの開発でHudson使って継続的インテグレーションしている事例をほとんど見たことがないんだけど、個人的にはPHPアプリだって全部HudsonでCIすべきと思っているのでやってみた。 (ちなみに最近までphpUnderControlでCIしていた) 概略 CakePHPアプリでCIやろうとして問題になるのは、 CakePHPでのテストライブラリがSimpleTestでありJUnit互換のテスト結果を出力できないこと さらにSimpleTestでは一応XMLでの結果出力ができるのに、CakePHPのreporterにcake_xml_reporterとかが無くて、html出力かテキスト出力しかできない という2点にあるので、この2点をクリアする
Jenkins Build great things at any scale The leading open source automation server, Jenkins provides hundreds of plugins to support building, deploying and automating any project. We stand with the people of Ukraine. Please assist humanitarian efforts for the Ukrainian people and those affected by the military invasion of Ukraine by supporting international aid organizations, including the Ukrainia
開発とテストの融合こそゴール。続、グーグルはあれほど多くのソフトウェアのテストをどのように行っているのか? グーグルでTest Engineering Directorを務めるJames A Whittaker氏が書いたエントリを紹介した先日の記事「グーグルはあれほど多くのソフトウェアのテストをどのように行っているのか?」が非常に好評で、「続きがあれば読みたい」というコメントをいただいていました。 Whittaker氏がそのエントリの続き「How Google Tests Software - Part Threeを公開していますので、ご要望に応えて紹介することにしましょう。 品質は開発の問題であってテストの問題ではない 品質とはどのように実現するものなのか? という問いに対して、Whittaker氏は次のように書いています。 The simple solution to this con
5分で出来たjenkins導入ですが、PHPのプロジェクトが動かずひたすらはまりました Template for Jenkins Jobs for PHP Projectsを参考にしつつ足りていない情報があるので補完します PHPのバージョン PHP.5.2.x以上を求められるのでPHP5.3.xを入れちゃうほうが楽です(テスト環境が本番環境とバージョンが違っていいのかという問題はさておき) PHP5.3のインストール方法⇒開発環境を構築する時用のメモ Apache・PHP・MySQL | のぶろぐ 必要なpearモジュールのインストール ~~~ pear channel-discover pear.pdepend.org pear channel-discover pear.phpmd.org pear channel-discover pear.phpunit.de pear chan
リリース、障害情報などのサービスのお知らせ
最新の人気エントリーの配信
処理を実行中です
j次のブックマーク
k前のブックマーク
lあとで読む
eコメント一覧を開く
oページを開く