従来のウォーターフォール型開発であれば、開発前に全体的な要件や仕様を決めてから進めていきます。途中で前のプロセスに戻ることはなく、開発全体に時間がかかるほか途中での要件変更に対応しにくい点が特徴です。

そこで、近年活用されているのがプロセスごとにリリースしていくアジャイル開発です。この記事では、アジャイル開発の特徴やウォーターフォール型開発との違いについて詳しく説明していきます。

アジャイル開発とは?

アジャイル開発とは?

アジャイル開発とは、ソフトウェアやシステムを開発するプロジェクト開発手法の1つです。

ウォーターフォール型開発と違い、大きな単位で区切らないで小さな単位で実装とテストを繰り返します。開発期間が短くなることから、近年需要が高まっている開発方法です。

これまではウォーターフォールモデル型の開発がメインでした。ウォーターフォールモデル型のアイ発は開発前に全体の機能設計から計画までを計画して進めていく方法であり、現在でも利用されています。

アジャイル開発の2つの流れ

アジャイル開発の2つの流れ

アジャイル開発は、設計の段階では詳細に仕様や設計をきめずプロセスごとにリリースをしていく開発方法です。ウォーターフォールモデル型と比べて開発期間の短縮を実現できます。

アジャイル開発の一般的な流れは次の2つです。

  • リリース計画
  • イテレーション

プロセスを細かくわけてリリースを進めるため、途中で変更があっても臨機応変に対応できます。

1.リリース計画

アジャイル開発は、計画段階で開発全体的な仕様を決めずにある程度の仕様と要求だけを決めて進めていく方法です。アジャイル開発では、開発をしている途中で設計や仕様の変更は当然のようにあるといった考えのもと進めていくためです。

2.イテレーション

アジャイル開発では開発前にある程度の仕様と要求を決めた後、細かいサイクルを繰り返して開発を進めますが、このサイクルを反復を意味するイテレーション(iteration)とよびます。

アジャイル開発は計画、設計、実装、テストを繰り返すことが一般的です。イテレーションは1〜2週間ごとに設定することが多く、それぞれのイテレーションのたびにリリースを繰り返していきます。

アジャイル開発におけるQAで知っておきたい2つのポイント

アジャイル開発におけるQAで知っておきたい2つのポイント

アジャイル開発を進めるうえで、知っておきたいのは次の2つのポイントです。

  • ウォーターフォール型開発テストとの違い
  • アジャイルテストのテストレベル

アジャイルテストは従来のウォーターフォール型と大きく異なるため、違いを把握しておくことが重要です。また、テストレベルが明確に定義されているウォーターフォール型と違い、アジャイルテストレベルは異なる点があります。

1.ウォーターフォール型開発テストとの違い

ウォーターフォール型開発では、開発前に要求分析や設計を十分におこないます。全体的に開発が終わった後にテストをおこないリリースとなる流れです。このため途中で前のプロセスに戻ることはありません。

最終的におこなうテストにおいても、単体テストの完了が終わってから開始していきます。ウォーターフォール型開発では、最終的にリリースをするまで1年以上かかることも少なくありません。

アジャイルテストは短いサイクルで繰り返す

アジャイル開発はウォーターフォール型開発と違い、1〜2週間ほどの短いスパンでイテレーションとよばれる開発サイクルで進めていきます。イテレーションごとにプロダクトのリリースやフィードバックを重ねていく方法です。

それぞれのイテレーションにおいてテストまで進めることや短期間で開発を進めるため、高い効率性が必要となります。

2.アジャイルテストのテストレベル

ウォーターフォール型開発では、システムテストや結合テストなどテストごとのレベルが明確に設定されていることが一般的です。

しかし、アジャイル開発ではプロジェクトごとにテストレベルが異なります。プロジェクトニーズに合わせて内容を検討、実施することが求められています。

さらに、それぞれのイテレーションにおいてテストケースを設定することも少なくありません。

アジャイル開発QAの役割

アジャイル開発QAの役割

アジャイル開発QA(Quality Assurance)における主な業務は製品の品質保証です。それぞれの開発において具体的にするべきことが決まっているわけではありません。

ウォーターフォール型開発であれば、単体テストやシステムテスト、結合テストなど明確に定義されていますが、アジャイル開発はプロジェクトごとにするべきテストが異なります。

アジャイルQAの目標

アジャイルQAの目標

アジャイルQAの主な目標として、開発者がスムーズに開発を進められるような土台を作ることが挙げられます。そのため、品質を上げることだけが目標というわけではありません。

品質は顧客満足と直結することから、品質管理をするためには常に顧客視点であることが重要です。品質を保証するための方法を決める場合に、顧客の視点を持つようにしましょう。

QAメンバーが行うこと

QAメンバーが行うこと

QAメンバーは品質向上につなげるために、まず品質の可視化が必要です。さらに、単体テストや機能テストなどを自動化する仕組や非機能テストを作ったり、CI/CDプロセスの構築を求められます。

他にも、機能を追加、変更した場合にレビューをしたり、開発メンバーと製品や開発プロセスにおいて認識の相違をなくすことも重要です。

アジャイルQAエンジニアに求められる4つの能力

アジャイルQAエンジニアに求められる4つの能力

アジャイルQAは、1つのプロセスにおいて要件や仕様の設定、開発、テストまでおこなうためさまざまな知識や技術が求められます。アジャイルQAエンジニアになるためには、次の4つの能力が求められます。

  • ソフトウェア開発に関する知識
  • テスト技法に関する知識
  • 品質マネジメントに関する知識
  • レポート・プレゼンスキル

1.ソフトウェア開発に関する知識

アジャイルQAには、まずソフトウェア開発に関する知識が必要です。テストケースを設計したり改善をしたりするために必要な知識となります。

開発されている製品が実装されるためのプロセスについて詳しく把握していると、どのようなテストケースになるか、またはテストケースが必要であるかどうかの判断をしやすくなるでしょう。

2.テスト技法に関する知識

アジャイルQAには、テスト技能に関する知識が求められます。アジャイル開発ではプロセスごとにテストをおこなうことが一般的です。

QAエンジニアは動作テスト以外に、リソースや納期にあわせて最適なテストをするためにどのようなテストを進めるべきか判断する能力が求められます。そのためには、想定できるあらゆるテストについて把握しておくことが重要です。

3.品質マネジメントに関する知識

アジャイルQAには、品質マネジメントに関する知識が求められます。QAエンジニアの主な業務は製品の品質を上げることです。

そのためには、品質保証に関連する知識は必要不可欠です。さらに、適切なテスト工程にするためにマネジメント能力も必要になります。プロジェクトによっては、ISOの知識も求められるでしょう。

4.レポート・プレゼンスキル

アジャイルQAには、レポート・プレゼンスキルが必要です。QAエンジニアはテストを実施したり分析したりするだけが業務内容ではありません。

なぜそのテストをするべきか、また分析した結果においてエビデンスが必要です。そのため、分析結果がわかりやすくなるように関連した資料やレポート作成をすることが一般的です。

アジャイルQAに関するよくある3つの質問

アジャイルQAに関するよくある3つの質問

アジャイルQAに関するよくある次の3つの質問をまとめました。

  • アジャイル開発に将来性はありますか?
  • QAエンジニアのキャリアパスを教えてください
  • アジャイル開発の弱点は何ですか?

アジャイル開発そのものの必要性からキャリアパス、弱みなどを知りたい人が多いようです。アジャイルQAになりたい人の中でよくある質問なので、ぜひ参考にしてください。

質問1.アジャイル開発に将来性はありますか?

どのようなソフトウェアやサービス、製品であっても必ず品質管理が求められます。そのため、QAエンジニアの需要が下がることはないでしょう。多くの製品が発表されていますが、それぞれに高い品質が求められます。

品質は顧客満足度に直結するため、高いスキルを持つQAエンジニアはより多くの現場において求められるでしょう。

質問2.QAエンジニアのキャリアパスを教えてください

QAエンジニアに長年就いてさまざまな経験やノウハウを積み重ねると次のような職へのキャリアパスとなります。

  • マネジメント職
  • シニアQAエンジニア

QAエンジニアでのスキルや経験を活かして、マネージャーやチームリーダーといったマネジメントをするポジションへ進むことができるでしょう。エンジニアとしてのスキル以外に、マネジメントやコミュニケーション能力が求められます。

QAエンジニアは開発者が進めやすいように進めることが必要であり、製品や開発において考え方のずれがおこらないような能力が必要です。そのため、マネジメント職に就きやすい場合があります。

また、シニアQAエンジニアとよばれるQAエンジニアよりも高い技術力が求められるスペシャリスト職に就くことも可能です。プロジェクトマネジメントに携わることもあるので、マネジメント能力が求められます。

質問3.アジャイル開発の弱点は何ですか?

アジャイル開発はプロセスごとに要件設定からテストまでをおこなうため、短期間で開発が終わり修正にも対応できます。しかし、次のような弱点もあるので注意が必要です。

  • プロセスがないことから、チームがまとまりにくい
  • コレボレーションのレベルが不安定になりがち
  • プロセスごとにデリバリーをすることから長期的プロジェクトに悪い影響のある場合がある

まとめ

まとめ

アジャイル開発はウォーターフォール型開発と比べて、プロセスごとに要件や仕様を設定して、開発、テストまで進めることが一般的です。短期間でおこなう開発手法であるため、開発や品質管理において高い質が求められます。

プロセスごとに要件や仕様を設定するために、途中で開発内容の変更が可能であるため顧客満足度を上げやすくなる点が大きなメリットです。