継続的インテグレーション(CI)とは、すべての開発者の作業コピーを1日に数回、共有リポジトリでホストされている中央のバージョンにマージするという概念です。
さらに継続的インテグレーション(CI)は、コードの構築とテストを一貫して自動化する方法でもあります。各コードの更新は自動的にチェックされ、受け入れられれば本番環境に配布することができます。配布の自動化は、継続的インテグレーションの延長線上にある継続的デリバリ(CD)につながります。
最終的にCI/CDワークフローは、開発チームのアジリティと生産性を向上させます。
リポジトリにコードを提出する前に、開発者はまず、コピーを取った後に行われた変更を反映させるためにコードを更新しなければなりません。
一般的なCIのワークフローは、以下のようなステップで構成されています。
ユニットテストは、手動で実行することもできますが、テスト ドリブンの開発手法に基づいて記述し、自動化することもできます。
開発者の変更をメインリリースに組み込む前に、開発者のローカル環境ですべてのユニットテストが合格する必要があります。これにより、開発者の作業が他の開発者のコピーを壊してしまうことを防ぐことができます。
開発者は、変更内容をリポジトリに投稿し、そのブランチのコードをメインバージョンにマージバックします。
ビルドサーバーは、定期的に、あるいはコミット毎にコードをコンパイルし、その結果を開発者に報告します。
最近の PowerBuilder には、このプロセスを簡略化する様々な機能があります。
ツール&リソース
コード検査ツールは、静的な解析を行って欠陥を発見できます。
コードの各ブロックを一連のルールに照らし合わせてチェックし、セキュリティ上の脆弱性、バグ、保守性の問題を発見します。不具合数、深刻度による弱点が分類されるレポートが自動的に生成され、ビルドが配布に適しているかどうかを評価できます。
Visual Expert Visual Expertを使用する事により、PowerBuilderやDatabaseのコードを検査できます。
継続的インテグレーションとは、検証作業と配布可能なビルド生成を自動化し、これらを可能な限り頻繁に行うことです。
テストはこのプロセスにおいて不可欠なステップであり、この目標を達成するためにはテストの自動化が必要です。各ビルドは徹底的にテストされ、自動的に生成された指標によって、ビルドが配布可能かどうかを評価できます。
もちろん、どのチームも製品をテストしています。
しかし、すべての配信には不具合が含まれています。
テスト担当者は、それらを捕まえるために努力しますが、手動でどんなに徹底的にテストしても、あるものは常に残り、あるものは再現されるのです。
テスト自動化ツールは、手動によるテストを補完し、テスト作業の効率と範囲を改善させる非常に効率的な方法です。
続きを読む: 自動テストの作成手順
前世代のツールでは、テストの作成やメンテナンスに手間がかかり、生産性の向上という目的を達成できないという評判がありました。
それらは2つの戦略に基づいています。
最新のツールでは、オブジェクト認識に基づく別のアプローチを提供しています。
続きを読む
両者の戦略を重要なKPIで比較してみましょう。
手動 | 自動 | ||
精度 | 手動テストでは、人為的なミスが発生する可能性があるため、精度が低いと言われています。 自動化されたテストは、一貫性と信頼性があります。 |
||
生産性 | たくさんの手動テストを実行するのは、時間とコストがかかります。自動化されたテストの方が早く効率的です。 何度でも繰り返し利用できるため、追加コストがかかりません。 |
||
テストの開始 | 手動テストの実行を即座に開始できます。 自動テストでは、テストとアクションを事前に定義するための予備時間が必要です。 |
||
柔軟性 | 手動テストは、より柔軟性があります。ランダムにテストを行ったり、非常に特定の分野でより深いテストをその場で即興で行うことができます。 自動テストはそうではありません。 |
自動テストは大きなメリットをもたらしますが、手動テストを完全に代替することはできません。
この2つのアプローチを、それぞれの状況に応じて賢く組み合わせることが、最良の戦略となります。
さらに進むと...
AscentialTestを使って、PowerBuilderやPowerServerのアプリケーションのテストを自動化できます。