目次
序文:
アジャイル テストは、アジャイル開発テストとも呼ばれ、アジャイル開発環境でソフトウェアをテストする方法です。変化への迅速な対応、部門を超えたチームワーク、継続的なフィードバックの原則を強調しています。
従来のウォーターフォール開発モデルでは、通常、テストは開発の最後に配置されるため、テストプロセスの不足、遅延、要件変更への不十分な対応などの問題が発生する可能性があります。対照的に、アジャイル テストでは、ソフトウェアの品質が高レベルであり続けることを保証するために、テストへの早期かつ継続的な関与を重視します。
アジャイルテストの定義
Accenture によるアジャイル テストの定義 (基本的に Wikipedia の定義と一致しています) は、おおよそ次のとおりです。 アジャイル テストは、アジャイル ソフトウェア開発の原則に従ったテスト実践です。アジャイル開発モデルでは、テストを独立した段階として扱うのではなく、開発プロセス全体に統合します。したがって、テストはソフトウェア開発プロセス全体において非常に重要なリンクとなっています。アジャイル テストには、専門的なスキルを持ったテスターを含む部門横断的なチームが含まれており、この統合チームがより効果的に価値を提供し、プロジェクトのビジネス、品質、スケジュールの目標を達成できるようになります。
この定義から、アジャイル テストには 3 つの主要な中心的な意味があることがわかります。
1. アジャイル開発の原則に従う(コンプライアンス重視)
2. テストは開発プロセス全体に含まれます (統合を重視)
3. 部門横断的なチーム (コラボレーションを重視)
さらに、アジャイル テストで使用される基本的なテスト方法とテクニックは従来のテストと同じです。
アジャイルテストの特徴
アジャイルテストは新しいテスト手法ですが、どのような特徴があるのでしょうか? 「あと 4 つ」を使って要約します。
コラボレーションの強化:アジャイル開発者とテスターはより緊密に連携し、電子メール文書を介したやり取りよりも直接的なコミュニケーションを好みます。
サイクルの短縮:要件の検証またはテストにかかる時間は、月単位ではなく、日単位、さらには時間単位で計算されます。ユーザー受け入れテストは各スプリントの最後に行われます。
より柔軟な計画:アジャイル テストも変化を受け入れる必要があります。テスト計画はもはや不変の文書ではありませんが、ビジネス価値の実現の順序に従って柔軟に調整されます。より効率的な自動化: 従来のテストと比較して、自動化はより重要な役割を果たし
ます。アジャイルテストにおける役割非常に重要な役割を果たしました。短納期を実現し、品質を確保するための非常に効果的な手段です。
アジャイルテストを行う理由
非常に直接的な理由は、プロジェクト全体が 2 週間ごとのイテレーションなどのアジャイル開発モデルを採用していて、プロジェクトで従来のテスト段階についてまだ話し合っている場合、それは異なる速度を持つ 2 つの歯車のようなものであり、それは不可能であるということです。全然組み合わせられる。すべてのテスト段階は 2 週間で完了できるでしょうか? したがって、アジャイルなスモール ステップの特性にさらに適応するには、元のモデルに代わる新しいテスト手法が必要です。もちろん、開発のリズムに適応することに加えて、アジャイル テストには依然として独自の価値があります。
価値実現までの時間の短縮
アジャイル テストのモードを採用することで、アジャイル開発サイクル全体に適合できるため、アジャイル開発全体を同じ高速な反復速度とサイクルで提供できるため、エンド ユーザーはできるだけ早くビジネス価値を得ることができます。
テストのリスクを早期に検出する
アジャイル テストにより、テスターはできるだけ早くテストを開始し、システムの欠陥や既存の問題をできるだけ早く発見し、最終テスト段階ですべての問題が蓄積して「ビッグバン」結果が形成されるのを回避し、システム全体のリスクを軽減できます。
品質は全員のものであることを強調する
品質は測定するものではなく構築するものです。アジャイル テストでは、品質は全員の責任であることが常に強調されており、プロジェクト全体の品質を確保するために、テストに加えて、開発者とプロダクト マネージャーは自分の成果物の品質にも責任を負う義務があります。
簡素化してコストを節約
アジャイル テストでは、詳細なテスト計画やテスト文書が不要で、複雑なテスト プロセスや欠陥プロセスも定義されないため、軽量な管理モードにより、テスターの不要な負担が軽減され、作業負荷とコストが削減されます。
アジャイル テストVS. 従来のテスト
では、アジャイル テストと私たちがよく知っている従来のテストの違いは何でしょうか? 次の比較表を作成しました。
従来のテストからアジャイル テストに移行する方法
1. 組織文化の変化
Deloitte は、アジャイル開発の概要の中で、組織文化は、基本的な認識、態度、価値観から組織固有の言語、知識、テクノロジーに至るまで、組織のあらゆる側面をカバーするために使用される用語であると述べました。アジャイル文化では、プロセスと比較して、アジャイルは人々をより重視するため、アジャイル テスト組織は、人々を重視し、自己組織化され、協力的な文化的な雰囲気である必要があります。しかし、著者の観察によると、多くのアジャイル プロジェクトにはまだそのような文化的遺伝子が欠けています。たとえば、スタンドアップ ミーティング中、いわゆるチームリードが「C ポジション」に立ってミーティングを主催および主導し、チームは後ろに立って報告を待っていることがわかります。
2. 組織体制の調整
アジャイルはプロジェクトの特性から見ると「プロジェクトベースの強い」管理手法であるため、これまで開発部門に開発者が所属し、テスト部門にテスターが所属するといった機能別の組織構成だった場合には調整が必要となるアジャイルプロジェクトで作成されます。開発とテストは同じプロジェクトとチームに属しており、全員がプロジェクトの成功を確実にするという同じ目標を持っています。したがって、テスターは開発者のコードのレビューを手伝うこともあれば、開発者もテスターのテストを手伝うことになり、人事の役割の役割が曖昧になります。
3. 人材の育成・指導
関連するトレーニングや理解を伴わない新しい方法は、特定の実行者に不安を感じさせ、自信を持たせません。同様に、アジャイル プロジェクトのテスターも、テスト前にアジャイルの知識トレーニングを受ける必要があります。できれば経験豊富なアジャイルコーチに導入を手伝ってもらい、そのコーチの助けを受けながら成長し、間違った方向に行かないことがベストです。
4. ライトプロセス
CMMI などの従来のプロジェクト開発管理方法は、比較的プロセスが多く、多くの成果物が必要です。アジャイルでは軽量なプロセスを重視し、不要なドキュメントを最小限に抑え、開発モデル全体を軽量化します。したがって、プロセスや成果物を設計する際には、この特性を十分に考慮し、可能な限り簡素化する必要があります。もちろん、書類が減ったということは、書類を書く必要がなくなるわけではなく、必要な書類は依然として必要になります。
アジャイルテストを成功させるための重要な要素
『アジャイル ソフトウェア テスト: テスターとアジャイル チームのための実践ガイド』の中で、Lisa Crispin はアジャイル テストを成功させる 7 つの重要な要素を要約しました。これは次の 5 つの重要な要素に要約できると思います。
1. リーダーシップによる強力なサポート
いかなる変化も、指導者の強力な支援なしには成功裏に実施することはできません。リーダーの観点からは、アジャイル テスト チーム全体が自己組織化モデルを形成できるように、リラックスした環境を提供する必要があります。問題に遭遇したとき、責任を追及するのではなく、十分な信頼とサポートを与え、チームが困難を乗り越え、成長に寄り添うことが大切です。
2. テスターはアジャイルな考え方を持っています
テスターはアジャイルを理解し、アジャイルの基本的な知識と原則を習得し、アジャイル システム全体でアジャイル環境に迅速に統合して、テスト作業全体をより適切に実行できるようにする必要があります。
3. 自信を持って挑戦する
アジャイル テストは、従来のテストに比べて比較的新しいものです。多くのテスターは新しいことに挑戦することを恐れており、臆病で物事を行うのをためらっています。したがって、テスターには、うまくいかないことを恐れるのではなく、うまくいかないことを恐れて、あえて挑戦するという決意が必要です。実際にやってみると、どこがうまくいき、どこがうまくいかないのかがわかります。次に、欠点に応じて最適化して、最終的に成功を収めます。
4. すべての関係者と緊密に協力する
アジャイル プロジェクトでは、テスターと他の関係者との間の直接のコミュニケーションが非常に頻繁になります。テスターは開発者と緊密に連携するだけでなく、テスト全体をより効率的に行うために、プロダクト マネージャーやさらにはエンド ユーザーとの頻繁なコミュニケーションを維持する必要もあります。
5. 自動化、自動化
自動化はアジャイル テストの非常に重要な要素です。アジャイル開発の非常に短いデリバリーサイクルでは、手動テストのみに依存している場合、迅速なリリースの要件を満たすことが非常に困難です。したがって、自動テストは不可欠な手段です。さらに、ここで言う自動化とは、純粋に自動化されたテストを指すだけでなく、自動テストが配信パイプライン全体に統合され、配信時間全体が短縮され、継続的インテグレーションや DevOps が達成され、最終的にプロジェクトに価値がもたらされる方法も含まれます。
ここに来た者として、皆さんも寄り道は避けていただきたいと思います。
ここでは、自動テストを進める上で必要なことをいくつか共有し、お役に立てれば幸いです。
(WEB自動テスト、アプリ自動テスト、インターフェース自動テスト、継続的インテグレーション、自動テスト開発、工場面接の大きな質問、履歴書テンプレートなど)
そうすることでより良い進歩が見込めると信じています!
下の小さなカードをクリックしてください