中年エンジニアの開発と生活の日々

中年エンジニアがソフトウェア開発や日々の生活で得た知見の備忘録

27.5 プラスの MTB を日常で使ってみる

先日、Chain Reaction Cycles で 27.5プラスのマウンテンバイクを購入して、しばらく待ち乗りメインで使ってみました。 良いところ、辛いところが見えてきたので、少し紹介してみたいと思います。 27.5プラスとは 27.5プラスというのはMTBの規格(というか、…

iOSとAndroidのAppiumスクリプトを共通化する (その2)

前回、iOS と Android の Appium スクリプトを共通化するお話を書きました。前回、分量の関係で書けませんでしたが、iOS と Android のスクリプトを共通化する場合、避けて通れない話があります。 iOS と Android で find_element() の挙動が違うお話 iOS と…

iOSとAndroidのAppiumスクリプトを共通化する

iOS と Android のクロス開発を行っていますが、双方のプラットフォームで作成したアプリケーションを Appium を使用してシステム検証を行っています。 Appium はマルチプラットフォームのモバイルアプリケーションテストフレームワークなので、iOSもAndroid…

Chain Reaction Cycles で自転車を買ってみた

たまには趣味の話をと言うことで… Chain Reaction Cycles でマウンテンバイクを買ってみました。 Chain Reaction Cycles (以降 CRC) は Wiggle と並ぶ自転車の海外通販の大手です。海外通販は安いけど怖いと言う方に注文から乗り出しまで、こんな感じですと…

Appium でタッチ操作を実行するには

事の発端 スマートフォン向けアプリのテストを Turnip と RSpec で作成していて、画面をスワイプしてスクロールする必要に迫られて、ユーザーのタッチ操作をどのようにスクリプト記述するのかを調べながら実装してみました。 一般に Appium でテストスクリプ…

Turnip の RSpec で関数を定義して呼び出すには

現在、Turnip と RSpec を組み合わせて Ruby でテストスクリプトを作成しているのですが、共通な処理を関数にまとめる方法についてまとめてみました。 Turnip については以下のサイトが詳しいです Rubyist Magazine - エンドツーエンドテストの自動化は Cucu…

Appium のテストスクリプトで長めの Sleep を入れる

本日は小ネタです。 内部の実装上の都合で、Appium のテストスクリプト (Rubyで書いてます) の中で長めの Wait を入れる必要がありました。テストスクリプトの中で sleep 90 とか、長めの Sleep を入れたところ、テストスクリプトの実行時に以下のようなエラ…

Circle CI でバックグラウンド処理を行う

CI におけるバックグラウンドプロセスの実行について Circle CI でバックグラウンドプロセスを起動したいことがままあります。たとえば、自動検証を行う際に appium のサーバープロセスを起動するなどです。 普通、Unix系のコマンドではコマンドの後ろに ‘&’…

Ruby の空白の洗礼を受けたお話

最近、AppiumにTurnipとRSpecを組み合わせてテストスクリプトを書き始めています。 今までのエンジニア人生でRubyを本格的に開発に使用するのが初めてなので、Rubyのエキスパートから見たらどうしょうもないところでつまづいてしまいました。 自分の恥を晒す…

自動署名のXcodeプロジェクトをfastlaneでビルドする

自動署名とは iOS アプリの開発においてXcode8 から導入された機能で、アプリケーションをビルド&アーカイブする際に選択した使用方法に合わせた署名をつけてくれます。 通常、署名の種類は開発用(Development)、検証用(Adhoc)、リリース用の3種類の署名があ…

限られた工数でテストケースの品質を上げる

最近、検証エンジニアも兼務すること多く、2年くらい前からテスト設計からテストの実行までやるようになりました。 その際に、見極めが難しいのが、テストケースをどこまで掘り下げて書くかと言うことでした。 基本 おおよそのテスト設計の教科書には以下の…

appium-desktop を Android アプリで使ってみる

先日 appium-desktop を紹介しましたが、Android 編のリクエストがありましたので、追加して見ました。 android で appium-desktop を使う利点 android については 古い desktop 版の appium Ver.15.x でも Inspector 機能を使うには支障がなかったため、app…

fastlane のプラグインを使ってみよう

iOS アプリの継続的インテグレーションで有名な fastlane ですが、今日はそのプラグイン機能について紹介します。 fastlane plug-in とは fastlane はかなり多機能ですが、標準のコマンドでサポートされていない機能をプラグインを使用して機能を拡張できま…

appium-desktop の紹介

はじめに Xcode 8 になり、UI Automation が廃止された関係で、アプリ版の appium (Ver.15.x) が使えなくなっていました。自動テスト自体はコマンドライン版の appium Ver.16 を使用すれば良いのですが、自動テストのスクリプトを書く際に UI パーツの ID な…

Circle CI で iOS アプリと Android アプリのビルド番号を更新する

Circle CI のビルド番号を Android と iOS のアプリのビルド番号に反映させる方法を紹介します。 Circle CI のビルド番号とは Circle CI ではビルドごとに一意の値が決まるようにビルド番号を環境変数で用意しています。 CIRCLE_BUILD_NUM この環境変数は Ci…

iOSとAndroidの同時開発で Circle CI を使用する

はじめに iOSとAndroidのクロス開発を行なっているのですが、Circle CIを使用してインテグレーションすることになったので、概要をまとめてみました。 Circle CI の仮想環境は Mac OS を使用する Circle CI では仮想環境をLinuxとMac OS から選ぶことができ…

ブログ開設にあたって

長年付き合いのある知人から「会社に引きこもってばかりいるのはイクナイ、何かアウトプットするのが良い(意訳)」とアドバイスをもらい、確かに何かアウトプットしないとバランスが良くないよなぁということと、自分が普段の開発で得られた知見を整理して…