サイトアイコン TestRail Blog

継続的テストの手引き

この記事はRaj Subrameyerによるゲスト投稿です。

組織はかつてないスピードで高品質の製品をリリースしようと奮闘しています。現在の市場で競争力を維持するためのプレッシャーは相当なものです。この市場での生き残りを可能にする人気のアジャイルアプローチがDevOpsです。

DevOpsは開発プロセスから無駄を省くのに役立ちます。そして、DevOpsの導入を成功させる鍵となるコンポーネントが継続的テスト(CT)です。

DevOpsにおける継続的テストとは

従来、QAは機能がQA環境にプッシュされて初めてアプリケーションのテストを開始していました。このアプローチの問題は、開発プロセスの後期に欠陥が見つかるため、結局、その時点では修正に時間とコストがかかりすぎるという点にありました。

継続的テスト(CT)では、テストは早期の計画フェーズから実施され、運用および監視フェーズまで開発プロセス全体を通して継続します。これは、「シフトレフト」パラダイムとも関連します。

CTでは、開発プロセスの各ステージで即座にアプリケーションに関するフィードバックが返されます。コードがチェックインされるたびに自動テストが実行されるため、すばやく情報を得て決定を下すことができます。

また、運用環境で致命的な欠陥が見つかり、無用なコスト、時間、労力を要するリスクを軽減できます。鍵となるのは、できるだけ早期にテストし、できるだけ早く欠陥を見つけることです。

継続的テストを軌道に乗せる

1.既存のテストプロセスの穴を特定する

CT導入の手順を計画する前に、CTでどのような既存の問題を解決できる可能性があるかを把握しておきましょう。現在のテスト成果物、テストプロセス(手動テスト、自動テスト、探索テストなどが含まれるでしょう)、見つかった欠陥のタイプを見直し、品質の高い機能のタイムリーなリリースを妨げているボトルネックを突き止めます。

これらの情報は、どのようにCTを導入し、どのようなテストを含め、開発プロセスのさまざまなステージで実行するかを決定するのに役立ちます。

2.インフラをセットアップする

作業を支援する適切なインフラの準備も、シームレスなCTパイプライン構築の一部です。これには以下のような作業が含まれます。

3.適切なツールとリソースの選定

さまざまなアクティビティに対して適切なツールを使用することに投資する必要があります。たとえば以下のようなツールがあります。

また、開発プロセスの中でこれらのツールを効果的に使用できるスキルの高いメンバーも必要です。レポートの分析、問題のトラブルシューティング、問題発生時の速やかな修正などを行う能力が必要です。

4.適切なトレーニングの実施

効果的なCTパイプラインを実現するには、マインドセットの変化も必要です。テストを特定の期間にだけ発生するものとして捉えるのではなく、開発プロセスのあらゆる段階に不可欠な部分として捉えなおす必要があります。

そのためには、みなが新しい考え方に適応できるよう、適切なトレーニングを実施しなければなりません。テストのシフトレフトが前進のための規範となることを受け入れることが必須です。

5.できるだけ自動化する

自動化は、CTとDevOpsパイプラインを結合する接着剤のようなものです。適切に自動化をセットアップすれば、リリースサイクルを短縮するとともに、リリースサイクルの信頼性を改善するのに役立ちます。 

自動化可能なあらゆるものを自動化するべきです。これには、単体テスト・デプロイメントテスト・インテグレーションテスト・スモークテスト・セキュリティテスト・パフォーマンステストなどが含まれるでしょう。テスターは、早期に自動化を開始し、いち早く欠陥を発見できるようにすることで、DevOpsおよびCTプロセスにおいて不可欠の役割を果たします。

6.結果を継続的にモニターする

シームレスなCTパイプラインに必要なあらゆるものをセットアップしたとしても、進捗を計測して実装がうまくいっているかどうかを把握しなければ、無駄でしかありません。

たとえば、次のような手順でCTの考課を継続的にモニターします。

CTプロセスを適切にセットアップするには反復的なアプローチが必要であり、より詳しくデータを調べるほど、プロセスを最適化するうえでよりよい洞察が得られます。

製品の品質を追跡するためのKPI

CTはDevOpsプロセスの一部であるため、DevOpsプロセスに適用されるメトリクスはCTにも適用できます。

これらのメトリクスを利用すると、実装プロセスに不足しているものを判断し、ただちに修正アクションをとることができます。

継続的テストの実装に必要なツール

開発プロセスのさまざまなフェーズで継続的テストを可能にする多数のツールやフレームワークがあります。たとえば、Travis CIやJenkinsなどのCI/CDツール、SeleniumやAppiumなどの自動テストフレームワーク、Ranorexなどのテスト自動化ツール、JUnit、NUnit、Jasmineなどの単体テストツール、SplunkやGraphiteなどのモニタリングツール、TestRailなどのテスト管理ツールがあります。

特に、テスト管理ツールは開発プロセスで行われたすべてのテストの詳細を1つのダッシュボードで参照するのに役立ちます。テスト管理ツールは、他のステークホルダーと共有可能なレポートを生成することもできます。チーム内のコラボレーションを促進し、全体的なテストの進捗を追跡できる適切なテスト管理ツールを選択することが重要です。 

たとえば、CTパイプラインでTestRailを使用すると、次のようなレポートを生成できます。

コードのチェックインによって自動化された回帰テストが実行された後に生成されたレポートのサンプル

継続的テストは、DevOpsの導入を成功させるうえで重要な役割を果たします。現在のテストプロセスの穴を特定し、CTによって穴を埋め、DevOpsに移行する必要があります。これは、欠陥を可能なかぎり早期に捕捉し、品質の高い製品を高速にデリバリーするのに役立ちます。

Raj Subrameyerは豊富な技術的バックグラウンドを持つ国際的な基調講演者、ライター、技術キャリアコーチです。自身のブログrajsubra.com/blog/では、読者がより良い人生を送るのに役立つニュース、リソース、最新情報を投稿しています。

(この記事は、開発元Gurock社の Blog 「Guide to Continuous Testing」2022年4月7日の翻訳記事です。)

関連する製品

テスト管理ツール TestRail

テストケースの管理やテスト結果の記録、チームでの情報共有など、Excelを使ったテスト管理の業務に限界を感じていませんか?TestRailはシンプルで使いやすいUIを提供し、テストにかかるさまざまな管理コストの削減に貢献します。

■ TestRailの特長 ■

日本国内では、テスト管理にExcelを使っていたお客さまからの乗り換えが多く、Web上で完結するテスト管理を実現されています。

TestRail でテスト管理のお悩みを解決しませんか?

テストの生産性向上をTestRailでお試しください

クラウドおよびオンプレミス、デモサイトでTestRailがお試しいただけます。

モバイルバージョンを終了