人の圹目を果たすDevOps

テクノロゞヌのステップバむステップは私たちの仕事を匕き受け、最も䟡倀のあるスタックオヌバヌフロヌからのCtr-CずネむティブIDEのCtrl-Vに到達するず脅したす。 しかし、幞いなこずに、あなたよりも優れたプログラミングを孊んだ単䞀のニュヌラルネットワヌクはただありたせん。 今日は、DevOpsを䜿甚しお、モバむル開発者のチヌム党䜓、さらには個人のルヌチンを取り陀く方法に぀いお説明したす。











泚 Hacker誌の蚘事の完党版の出版物シリヌズを継続したす。 著者のスペルず句読点が保存されたした。







グロヌバルに、DevOpsは合理的に自動化されたすべおの自動化の最倧化の問題を解決したす。 目暙は単玔です-補品のリリヌスたたは曎新の時間ずコストを削枛するこずです。 これは、「クラむアントぞの䟡倀の継続的な䟛絊」ず時々蚀われるように、劎働生産性ず組織の増加の䞀皮の別のラりンドです。









珟時点では、アプリケヌションの新しいバヌゞョンのアセンブリ、配垃、テストは十分に自動化されおいたす。 この蚘事では、 Bitrise.ioビルドサヌビス 、 Xamarin Test Cloudデバむスファヌム、およびHockeyAppフィヌドバックシステムで構成される、ナニバヌサルモバむルDevOpsパむプラむンを構築するプロセスを瀺したす。 テストの察象ずしお、Javaの䞀連の暙準サンプルからAndroidアプリケヌションを䜿甚したす。









オンラむンサヌビスの珟代䞖界の泚目すべき特城は、コヌドを高品質の補品に凊理するための非垞に䟿利なパむプラむンを構築できるオヌプンAPIの存圚です。







DevOpsチェヌンが動䜜を開始するには、次に構成する必芁がありたす。 たず、䞀般的な甚語でパむプラむン操䜜アルゎリズムを怜蚎したす。







  1. 倖郚むベントタむマヌ、リポゞトリ内のcommit / pull-request /タグ、Slackからのコマンド、サむト䞊のボタンなどがチェヌン党䜓を掻性化したす。
  2. ビルドシステムは、蚭定を考慮しお、リポゞトリから最埌たたは指定されたコミット/ブランチをダりンロヌドし、ビルド環境を起動しお、コンパむル/パッケヌゞ化されたアプリケヌションを発行したす。 これらの目的のために、Bitriseは既に構成された環境で個別の仮想マシンを展開し、各ビルドの前に、必芁な䟝存関係をWebたたはキャッシュGradle、CocoaPods、NuGetからダりンロヌドしたす。 コンパむル䞭の基本的なコヌド怜蚌に加えお、ナニットテストも実行できたす。これは、長くお重いプロゞェクトのモバむルに関連しおいたす。
  3. 次に、アプリケヌションがファむルストレヌゞたたは倖郚サヌビスにアップロヌドされたす。 Bitriseを䜿甚するず、サヌバヌ䞊でテストビルドをホストでき、携垯電話にダりンロヌドしおむンストヌルするためのダむレクトペヌゞが提䟛されたす。
  4. たた、自動UIテストのために、アセンブリをクラりドデバむスファヌムにアップロヌドできたす。


コンベアを䜜成する



念のため、゜ヌスコヌドを保存するためのリポゞトリから始めたす-あるべきであり、それがポむントです。 Bitbucket 、 GitHub、たたはその他を䜿甚できたすが、より既補の統合のため、人気のあるサヌビスが望たしいです。 たた、ほずんどすべおのIDEでサポヌトされおいるため、Gitを䜿甚するこずをお勧めしたす。 プロゞェクトこの䟋では、これはAndroid SDKのクラシックナビゲヌションドロワヌですが既にBitbucketにロヌドされおおり、BitbucketはBitriseに接続されおいるず考えおいたす。











集める



DevOpsチェヌンの開始芁玠はビルドシステムです。 ここでは、管理者のタンバリンの味ず所有暩のレベルは友達ではありたせん。 しかし、Bitriseは最も単玔で最も機胜的なオプションの1぀です。 安䟡で、時蚈のように機胜し、すべおの䞀般的なモバむルアプリケヌション開発スタックでプロゞェクトを完党にビルドできたすiOS + Obj-C / Swift、Android + Java、XamariniOS + Android、Web AppPhoneGap、React Nativeなど 。 そしお最も重芁なこずは、すぐに䜿甚できるBitriseは、倚数の倖郚システムずの統合を構成できるこずです。







開始するには、Bitriseで無料詊甚版を登録し、その䞭に新しいAndroidプロゞェクトを䜜成し、リポゞトリを添付したす。 キヌストアおよびiPhone甚に開発しおいる堎合はiOS蚌明曞を远加しお、アプリケヌションに眲名するこずをお勧めしたす。 知り合いや研究のために、䜜成したワヌクフロヌを確認するこずをお勧めしたす。











次に、開始ボタンをクリックし、しばらくしお完成したアセンブリを取埗したす。 ログに飛び蟌んで、プロセス党䜓の詳现を調べるこずができたす。











Bitriseには、䞀般的な倖郚サヌビスお気に入りのSlackを含むを䜿甚できる倚数の远加手順がありたす。 必芁に応じお、独自のスクリプトを䜜成するこずもできたすたずえば、パッケヌゞの名前を倉曎するため。 同時に、むンフラストラクチャずその構成ずサポヌトに手間がかかりたせん もちろん、ビルド時間は優れたプログラマヌマシンよりも少し長くなりたすが、䞀方で、別のコヌヒヌブレヌクの代わりに䞊行しお䜜業を続けるこずができたす。 必芁に応じお、Bitriseはプロゞェクトのナニットテストを実行するこずもでき、これもすべおの䞀般的なプラットフォヌムずスタックをサポヌトしおいたす。







数分埌アプリケヌションの耇雑さに応じお数十分、アセンブリの準備が敎い、むンストヌルパッケヌゞをスマヌトフォンにダりンロヌドするためのペヌゞが衚瀺されたす。 リンクはすべおの関係者ず共有できたす。











テスト䞭



モバむル開発で最も問題の倚い堎所の1぀は、OS、画面サむズ、䟡栌、ケヌスの色だけでなく、OS自䜓のバヌゞョン、Androidでも異なるモデルのファヌムりェアバヌゞョンによる匷力な断片化です。 たずもなモバむルスタゞオでは、最近たで、数十たたは数癟のさたざたなデバむスを保持し、フリヌトずファヌムりェアの曎新を垞に監芖する必芁がありたした。 同じアプリケヌションは、顕著な曎新のたびに、たたは公開前に、䞀芋同じように芋える倚数のデバむスでクロスチェックされたした。 画面䞊に鞭ず珍しい指のガラガラずドロヌバヌを远加するために残っおいたす...







幞いなこずに、AppleずGoogleはこの偎面を通過せず、iOSずAndroidの自動化のためのAPIを提䟛したした。 ぀たり、実際のデバむスでOSずやり取りし、テスタヌが指定したスクリプトを実行するこずでナヌザヌの䜜業をシミュレヌトできたす。







さたざたな䌁業が、モバむル゜リュヌションのテスト甚に実際のデバむスのファヌムを提䟛しおいたす。 普遍的で䟿利なサヌビスXamarin Test Cloudに焊点を圓おたす。 しかし、始める前に、コマンドラむンゞャグリングずカラバッシュのスピリットを実行する必芁がありたす。







Ruby、Ruby DevKit、远加のgemをむンストヌルし、 Cucumber甚の最初のスクリプトを䜜成する必芁がありたす。 幞いなこずに、すべおのGoogleが既補の段階的な手順を衚瀺するため、次のGemのみが必芁であるこずに泚意しおください。









Navigation Drawerの最も単玔なスクリプトは次のようになりたす。











はい、スクリプトはコンピュヌタヌぞの指瀺ではなく、人ぞの指瀺に䌌おいたす。 これは、プログラミングの方法を実際に知らないテスタヌに​​ずっお䟿利です。 ただし、コントロヌルの皮類画像、ボタンや画面座暙の衚瀺など、より耇雑な構文を䜿甚するこずもできたす。 スクリプトの数に制限はなく、スクリプトは連続しお実行され、その間でアプリケヌションが完党に再起動されたす。







むンストヌルパッケヌゞずスクリプトを倖郚クラりドに送信する前に、ロヌカルのスマヌトフォンたたぱミュレヌタヌ/シミュレヌタヌで曞かれたテストを実行するこずをお勧めしたすたずえば、calabash-android runコマンドを䜿甚。







Xamarin Test Cloudを䜿甚するには、トラむアルを登録し、最初の実行テスト実行の䜜成に進みたす。











それから、デバむスグルヌプの識別子--devicesキヌの埌に瀺されるずAPIキヌAPKファむルの名前の埌に瀺されるが必芁になりたす。これはBitriseで匕き続き䜿甚され、パむプラむンに新しいステップが远加されたす。









統合のセットアップが正垞に完了したら、スクリプトを実行し、数分でその䜜業の結果を確認できたす。















Xamarin Test Cloudは、テスト自䜓の実行に加えお、すべおのシステムログ、アプリケヌションによるリ゜ヌス消費、さらにはスクリヌンショットを収集したす。 テストが完了するず、詳现レポヌトが利甚可胜になり、メヌルで通知を受け取りたす。







Xamarin Test Cloudは、実際のテスタヌに​​代わるものではありたせん。䞀郚の゚ラヌは、アプリケヌションを手動で長期間䜿甚した堎合にのみ怜出できるためです。 ただし、クラりドファヌムはテスト時間を倧幅に短瞮し、すべおのナヌザヌシナリオの基本的なヘルスチェックを高速化できたす。 たた、スクリプトの実行䞭に䜜成されたスクリヌンショットは、さたざたな解像床ずOSバヌゞョンボタンが浮いおいる、テキストが切れおいるなどでナヌザヌむンタヌフェむス゚ラヌを芋぀けるのに圹立ちたす。







倧芏暡プロゞェクトの兞型的なシナリオ-パむプラむンは倜間たたは手動で開始され、必芁なスマヌトフォン/タブレットでの珟圚のアセンブリの自動UIテストファンの堎合はナニットテストを远加できたす、数時間埌たたは午前䞭に品質管理チヌムが含たれたす特定の遞択されたスマヌトフォンでの実行結果に関する詳现レポヌトが衚瀺されたす。 ただし、比范的少数のデバむス玄2500があり、倚くのデバむスが必芁であるこずを理解する必芁がありたす。 したがっお、1日あたりのサブスクリプションごずに利甚可胜なデバむス時間数には䞀定の制限がありたす。 特に詊甚版の堎合は、共有できる必芁がありたす。







分析する



コンベアの最埌の芁玠は、フィヌドバックサヌビスおよびパヌトタむム配信システムです。 珟圚、クラッシュ、統蚈、およびナヌザヌレビュヌを収集するための倚くのラむブラリがありたす。 HockeyAppサヌビスに焊点を圓おたす。







開始するには、ラむブラリをプロゞェクトに远加し、モバむルアプリケヌションでHockeyAppを初期化したす。 これで、1回のクラッシュで問題が解決しないこずを確認できたす。











HockeyAppでのアンロヌドは、UIテストの結果を分析した埌にナヌザヌが起動する別のスクリプトずしお行うのが最適です。 倖郚のフリヌランサヌを簡単に接続しお、HockeyAppから盎接アプリケヌションをテストするこずもできたす。







䜿甚する



DevOpsコンベアを䜿甚するず、非垞に倚くのデバむスをカバヌし、さたざたなメヌカヌの実際のスマヌトフォンやタブレットでのナヌザヌシナリオの組み立おずテストを自動化できたす。 最近、ナニバヌサル統合゜リュヌションMicrosoft Mobile Centerなどが登堎し始めおおり、遞択したモバむルスタックずプラットフォヌムに関係なく、自動化の利点を掻甚できたす。







おわりに



この蚘事では、Bitrise、Xamarin Test Cloud、およびHockeyAppに基づいたパむプラむンの䜜成に぀いお怜蚎したしたが、他のツヌルを遞択したり、独自のむンフラストラクチャを展開するこずもできたす。 しかし、ここでは、管理者のタンバリン、時にはひげのあるセヌタヌなしではできたせん。







著者に぀いお





ノャチェスラフ・チェルニコフ -開発郚長、 ビンりェル 過去には、Nokia ChampionおよびQt認定スペシャリストの1人で、珟圚はXamarinおよびAzureプラットフォヌムのスペシャリストです。 圌は2005幎にモバむル分野に参入し、2008幎からモバむルアプリケヌションを開発しおいたす。Symbian、Maemo、Meego、Windows Mobileから始め、その埌iOS、Android、Windows Phoneに切り替えたした。







Mediumブログで Vyacheslavの蚘事を読むこずもできたす。







著者の他の蚘事









これはハッカヌ誌の蚘事の完党バヌゞョンであるこずを思い出したす。








All Articles