SHOEISHA iD

※旧SEメンバーシップ会員の方は、同じ登録情報(メールアドレス&パスワード)でログインいただけます

CodeZine編集部では、現場で活躍するデベロッパーをスターにするためのカンファレンス「Developers Summit」や、エンジニアの生きざまをブーストするためのイベント「Developers Boost」など、さまざまなカンファレンスを企画・運営しています。

特集記事

LeSSやSAFeなど、大規模アジャイルにおけるソフトウェア品質の課題とは?

  • X ポスト
  • このエントリーをはてなブックマークに追加

課題解決のためのアプローチ

 ここまで述べた3つの課題に対しての解決アプローチを挙げます。

課題に対するアプローチ
課題 解決アプローチ
各チームによる自動テストの運用保守の効率化 自動テスト実装・保守支援ツールの活用
統合チームによる手動テストの運用保守の効率化 テスト管理ツールの活用
各開発チームによる製品全体像の把握の促進 探索的テストの活用

 各アプローチについて詳細に見ていきましょう。

1.自動テスト実装・保守支援ツールの活用

 従来、自動テストの適用を支援するツールといえば、テストの実行を自動化するものが大半で、テスト実装など、テスト実行の前工程に対する自動化の支援機能はほとんどありませんでした。そのため、自動テストを実施するには、プロダクトコード開発と同様に、テストスクリプト開発を行う必要がありました。

 ところが近年は、ツールによる支援範囲が拡大し、テスト実装についても支援機能が強化されています。例えば、扱う製品がWebアプリケーションやモバイルアプリケーションの場合、実際の製品画面を操作しながらテストの実行スクリプトを自動で生成する、あるいは、テストエンジニアがGUI上で即時編集するといったことが可能になっています。また、開発の結果として製品の内部構造に変化があった場合、テスト実行の過程でその変化を検知し、自動でテストスクリプトの修正を提案してくれるといった保守支援機能を搭載した商用ツールも出てきています。

 こうした市販ツールを活用できる場合は、積極的に取り入れることによって効果が期待できます。一方、市販ツールでは対応できない製品の場合は、一定の投資は必要になりますが、長期にわたる開発が見込めるならば、プロジェクト内で製品に合った高度自動テスト支援ツールを開発し運用することもアジリティ向上に寄与します。

2.テスト管理ツールの活用

 自動テストでは一般的に、実行基盤であるCI/CDツールなどがテスト結果を自動的にレポートしてくれます。ただ、大規模アジャイル開発では、前述したように自動テストに加えて手動テストも運用することになるケースが多くあります。手動テストについて、迅速にテスト計画を立案し実施状況を可視化するには、テスト管理ツールの導入が有効です。その際のテスト管理ツールには、以下の3つの機構が備わっていることが求められます。

  • 製品バージョンに追随する形でテストケースのバージョンが管理可能:製品仕様とテストケースそれぞれの変更の同期が取れるため、テストケースの運用保守が容易になる。
  • テストケースそのものとその実行結果について、独立して管理可能:繰り返し実行されるテストについて、テストケースを毎回作り直すことなく、特定の開発期間におけるテストの実行結果を管理・可視化することができる。
  • テスト結果の記入とリアルタイムでの集計・可視化が可能:統合チームだけでなく、企画チームを含むプロジェクト関係者全員が常にテストの最新状況を把握できるため、迅速な意思決定が可能になる。

3.探索的テストの活用

 前述したように、分業体制を取る大規模アジャイル開発では、各開発チームは製品の全体像を把握する機会がほぼありません。こうした状況を避けるためには、統合された製品を各開発チームが動作させる時間を、正式な開発プロセスとして組み込むことが有効です。もちろん、各メンバーが自由に製品を触るだけでも一定の効果はありますが、開発チームによる探索的テストの時間を確保することで、より効率的な開発プロセスとすることができます。

 探索的テストは、通常のテストとは異なります。事前に詳細なテストケースを用意せずに、テストの指針のみを決めた上で、テスト実施者が製品を動作させながら、その動きを見て「次は何をテストするべきか」を考えるテスト手法です。

 開発チームが定期的に探索的テストを実施すると、開発チームの各メンバーは常に製品全体の振る舞いを把握することができます。その過程で得られた気付きを全体へ共有すれば、企画チームは製品の改善につながるヒントとすることができ、プロジェクト全体にメリットをもたらすことができます。

おわりに

 本記事では、アジャイル開発、特に大規模アジャイル開発において顕在化しやすいソフトウェアテストの課題と、その解決アプローチについてご紹介しました。これらを実践していただければ、チームや製品規模が大きくなっても、ソフトウェアテストの生産性を落とすことはなく、また、チーム全体が自律的に開発製品へ向かうことで、アジリティの高い大規模製品開発を実現することができるでしょう。

参考

この記事は参考になりましたか?

  • X ポスト
  • このエントリーをはてなブックマークに追加
特集記事連載記事一覧

もっと読む

この記事の著者

朱峰 錦司(株式会社ベリサーブ)(アケミネ キンジ)

 東京工業大学 大学院情報理工学研究科にて計算工学を専攻し修了。その後、2009年より大手SIerにて、ソフトウェアテストやアジャイル開発に関する研究開発や研究開発成果の顧客向けの普及展開活動・案件適用支援に従事。2021年に株式会社ベリサーブに入社。ベリサーブが展開するQualityForward...

※プロフィールは、執筆時点、または直近の記事の寄稿時点での内容です

この記事は参考になりましたか?

この記事をシェア

  • X ポスト
  • このエントリーをはてなブックマークに追加
CodeZine(コードジン)
https://codezine.jp/article/detail/15453 2022/06/22 11:00

おすすめ

アクセスランキング

アクセスランキング

イベント

CodeZine編集部では、現場で活躍するデベロッパーをスターにするためのカンファレンス「Developers Summit」や、エンジニアの生きざまをブーストするためのイベント「Developers Boost」など、さまざまなカンファレンスを企画・運営しています。

新規会員登録無料のご案内

  • ・全ての過去記事が閲覧できます
  • ・会員限定メルマガを受信できます

メールバックナンバー

アクセスランキング

アクセスランキング