Get a Free Trial
Creating, executing, and maintaining reliable tests has never been easier.
品質保証から品質エンジニアリングへの移行は、アジャイルやDevOpsのプラクティスへの移行と似ており、しばしば絡み合っています。DevOpsと同様に、品質エンジニアリングは、ソフトウェア開発組織がより良い製品をより高い信頼性でより速いペースで構築できるようにするテクノロジーに支えられた文化的・手続き的な転換となります。しかし、DevOpsが適応性とチームコラボレーションの向上に重点を置いているのに対して、品質エンジニアリングはデータドリブンなソフトウェアテストによるソフトウェア品質の向上、テスト自動化によるテストの高速化と拡張、および品質文化の創造に重点を置いています。
mablの「2021年 DevOpsにおけるテストの現状」レポートでは、DevOps導入のハードルとして最も多いのが、変化のスピードの遅さであることが明らかになっています。多くのアジャイルプロジェクトやDevOpsプロジェクトは、大きな期待と熱意を持ってスタートしますが、ソフトウェア開発プロセス全体を変革する現実は、最終的に勢いを失い、多くのチームが導入の初期または中期段階にとどまっています。しかし、このような組織的なハードルを乗り越えることができたチームは、DevOpsの勢いを維持するための最善の方法について、いくつかの光を見せてくれています。レポートからは、最も成熟したDevOps組織が、ソフトウェアテストの民主化、QAと開発者間の合理的なコラボレーション、高いテストカバレッジなど、品質エンジニアリングのコアとなる考え方を実践していることが見てとれます。
ソフトウェアの開発ライフサイクルに品質エンジニアリングを組み入れる
企業がアジャイルとDevOpsへの移行を計画し始めたばかりでも、すでに主要なアジャイルプラクティスを採用している場合でも、品質エンジニアリングをDevOpsロードマップに組み込むことで、より優れたソフトウェア開発プロセス、ひいてはより優れた製品をサポートすることができます。最もインパクトのあるスタート地点は、スプリントサイクルです。
質の高いスプリント計画のメリット
品質重視のスプリントサイクルを作成することは、一般的な長期的変革の計画よりもはるかに簡単な作業です。なぜなら、スプリントサイクルは、多くの場合、わずか数週間という短期間で実施するように設計されているからです。また、計画やレビューの議論が組み込まれており、品質エンジニアリングチームは、スプリント中にソフトウェアテストがどのように機能したか(および機能しなかったか)を、より大きな開発チームと共に振り返る機会を得ることができます。時間が経つにつれて、QAリーダーは、スプリントサイクル全体でソフトウェアテストと品質エンジニアリングの改善状況を追跡し、より良い実践を構築し、経営層に進捗状況を示し、アジャイルとDevOpsの採用に貢献することができます。
スプリント計画における品質エンジニアリングの採用事例
残念ながらほとんどのソフトウェア開発チームはスプリントサイクルを計画する際に品質エンジニアリングを考慮しておらず、QAのスペシャリストが変化を上手に主張することが難しくなっています。しかしデータは言葉よりもパワフルです。QAチームが変化を主張するために使用できるデータポイントは以下の通りです。
- 予定外の作業の量:どのスプリントプランにも、予想外の作業に対する余裕があります。たとえば、予想以上に時間がかかったバグの手直しや、当初の計画よりも時間がかかったストーリーポイントなどです。しかし、ソフトウェア開発チームが日常的に大量の未計画な作業をスプリントで行っている場合、テストを行う時期が開発サイクルの中で遅すぎるという兆候である可能性があります。
- 作成されたチケットの数: Jiraのような課題管理プラットフォームは、ソフトウェア開発プロセスにおけるコラボレーションを改善するための貴重なツールですが、現在のスプリント計画プロセスの有効性についても有用な洞察を提供することができます。チケットの量が異常に多い、または一貫して増加している場合は、チームの既存のソフトウェアテスト戦略がDevOpsパイプライン内に集中しすぎている、またはQAと開発が不具合の解決に共同で取り組むのに苦労していることを示すことがあります。
- 目標と成果の比較:予定外の作業、大量のチケット、その他の障害がスプリントを圧迫し始めると、ソフトウェア開発チームは目標を達成できなくなり、計画したリリースを遅らせる可能性があります。スプリントゴールとスプリント成果の間にギャップが生じたとき、品質エンジニアリング(QE)リーダーは、品質中心のスプリントプランニングプロセスの必要性について説明する機会を得ます。
QEをスプリントに統合するためのベストプラクティス
品質チームがスプリント結果のギャップを特定すると、スプリント計画を主導するプロダクトマネージャーや開発マネージャーに対して、品質エンジニアリングプラクティスの改善を訴えることができるようになります。チームごとに目標や課題、規模は異なりますが、DevOpsの成熟度にかかわらず、ほとんどのチームに広く適応できるベストプラクティスがあります。
- アンサンブルプログラミング: スプリントサイクル中にソフトウェアテスターとソフトウェアエンジニアをペアリングすることで、ソフトウェア開発の初期段階での直接的なコラボレーションを可能にし、DevOpsと品質エンジニアリングの両方の目標に対応します。QAとエンジニアリングが別々のステージではなく、隣り合わせで作業することで、重要な作業のサイロがなくなり、両チームメンバーは質問をし合い、互いに挑戦し、コードベースに対する理解を共有できるようになります。アンサンブルプログラミングは、スプリントサイクル中に予定外の作業を引き起こし、生産性を低下させる、長時間同じ不具合を周回することが多いチームをサポートします。
- テストのシフトレフト: 過剰な数のJiraチケットや大量の予定外の作業に悩むチームは、スプリントサイクル中にコードをテストするタイミングを再考する必要があるかもしれません。mablのレポートでは、DevOpsの成熟度、不具合を迅速に解決する能力、そしてソフトウェア開発ライフサイクルの早期かつ頻繁にソフトウェアテストが行われる品質文化との間に強い関係があることがわかりました。テストを開発プロセス全体にシフトすることで、チームはバグを特定・修正しやすくなり、スプリントサイクル中に必要な予定外の再作業を減らすことができます。
品質重視の文化を創造する
DevOpsと品質エンジニアリングの導入を成功させるために必要なシステム上の変更には、企業全体で長期的な集中と努力が必要であり、完全な移行を維持するのは難しい場合があります。しかし、スプリントサイクルレベルで段階的なプロセス改善を行えば、より管理しやすいプロセスになります。適切なデータを用いることで、QAチームは品質エンジニアリングの歩みをリードし、DevOpsの採用をサポートするための準備をすることができます。
アジャイルチームとDevOpsチームのために設計されたローコードテスト自動化で、品質を重視したスプリントを開始してみませんか?mablの14日間無料トライアルはこちらからご登録いただけます。