前編ではソフトウェア開発のボトルネックになりがちなソフトウェアテスト(以下、テスト)を変えるプラクティスとして、「テストファースト」と「継続的テスト」を提案しました。後編ではテストを継続して実施するための基盤となるテスト管理ツールを紹介します。
Excel・スプレッドシートを使ったテスト管理の限界
筆者自身、テスト管理にはExcelのようなスプレッドシートを使っていました。テストケースをマトリクスやリストで作りそれらのテスト結果を記入するのに適していましたし、またテスト結果を参照してグラフなどの統計情報を作ることもできます。必要であれば、画面のキャプチャをエビデンスとしてシートに添付することもできます。単純にテストを設計し、テスト結果を記録し、分析レポートを作るのであればスプレッドシートを活用することはとても便利でした。
ですが、ソフトウェアのリリースまでの期間が短くなり、テストファーストを意識するようになると、「機能要件とのトレーサビリティ」「同じテストを繰り返し実行して結果を記録する」「ソフトウェアの品質をリアルタイム表示」などの機能が必要になってきます。これらもスプレッドシートで管理するとなると、ファイルサイズが大きくなりメンテナンスが難しくなります。テストファーストが実現できても、今度はスプレッドシートによるテスト管理自体がボトルネックに陥る危険があると思います。
テスト管理専用ツールを使う
テストファーストを実現するなら、テスト管理専用のツールの導入を検討するのが良いと思います。オーストリアに本社を持つTricentis社はソフトウェアテストに関するツールを多く販売しており、テスト管理ツールのqTestもその1つです。qTestはテストファーストを実現するためのアジャイルテストを支援するアプリケーション群から構成されています(表3)。
表3 qTestのアプリケーション群
アプリケーション | 特徴 |
qTest Manager | すべてのテスト活動を一元管理する、qTestの中心的ツール |
qTest Explorer | 重大な欠陥の発見に役立つ探索的テストを支援する、操作記録の自動キャプチャツール |
qTest Insights | 高度で豊富なグラフとBI向けデータを管理する、分析・レポーティングツール |
qTest Launch | さまざまなテスト自動化環境の実行を制御し、テスト結果を収集するツール |
qTest Scenario | Jiraのアドオンと連携して、BDD(Behavior Driven Development)フレームワークCucumberのFeatureファイルを管理するツール |
qTest Pulse | Webフックを提供して、イベントドリブンでqTestのアプリケーションワークフローを実行するツール |
中心的ツールとなるqTest Managerはさまざまなツールとの親和性が高く、とくにAtlassianのJiraとは、Jiraの課題をqTest側にリアルタイム連携してテストケースとリンクすることができます。さらに連携されたJiraの課題側からもqTestでリンクしたテストケースおよびテスト実行履歴を閲覧でき、qTestとJiraで相互に要件とテストの連携とトレーサビリティを実現することができます。テスト管理ツールを持たないAtlassian製品にqTestを組み合わせることで、真の意味でソフトウェア開発プロセス全体をカバーできるようになります(図1~図3)。
ソフトウェアテストに大事なこと
ソフトウェア開発のレベルアップには、テストのレベルアップが不可欠です。テスト文化を変革するには技術やツールを取り入れるだけでは足りず、テストチームが顧客と製品チームと一緒になってソフトウェア開発を進めていくことが成功のカギだと思います。
次回は、さらにテストのスピードを上げて、ソフトウェアリリースを頻繁に行うために重要な継続的テストについてお話していきます。
日本だけでなく、アジア圏でもアトラシアン製品販売のトップエキスパートであるリックソフトのWebサイトでは、各アトラシアン製品の体験版を提供しているほか、アトラシアン製品専用のコミュニティも運営しています。まずはアクセスしてみては!
- 第1特集
MySQL アプリ開発者の必修5科目
不意なトラブルに困らないためのRDB基礎知識
- 第2特集
「知りたい」「使いたい」「発信したい」をかなえる
OSSソースコードリーディングのススメ
- 特別企画
企業のシステムを支えるOSとエコシステムの全貌
[特別企画]Red Hat Enterprise Linux 9最新ガイド
- 短期連載
今さら聞けないSSH
[前編]リモートログインとコマンドの実行
- 短期連載
MySQLで学ぶ文字コード
[最終回]文字コードのハマりどころTips集
- 短期連載
新生「Ansible」徹底解説
[4]Playbookの実行環境(基礎編)