ウォーターフォール型開発とアジャイル型開発で求められるテストとは

    こんにちは。ポールトゥウィンオウンドメディアチームです。<br />
わたしたちが日々の生活を営む環境には、スマートフォンやパソコンで使われるアプリやシステムから、IoT機器のような機材に組み込まれているシステムまで、多種多様なソフトウェアが存在しています。<br />
そういったソフトウェアの開発にあたって、開発方法の主流とされているのが、「ウォーターフォール型」と「アジャイル型」といわれるものです。<br />
二つの手法での開発の進め方には大きな違いがあり、当社が提供するサービスのひとつである「ソフトウェアテスト」を行う場合も、その違いを考慮したソフトウェアテストを行っています。<br />
ここでは、代表的な開発手法とされている「ウォーターフォール型開発」と「アジャイル型開発」の特徴と、それぞれの開発手法にて、ソフトウェアテストを実施する際に求められるスキルについてお話しいたします。

    こんにちは。ポールトゥウィンオウンドメディアチームです。
    わたしたちが日々の生活を営む環境には、スマートフォンやパソコンで使われるアプリやシステムから、IoT機器のような機材に組み込まれているシステムまで、多種多様なソフトウェアが存在しています。
    そういったソフトウェアの開発にあたって、開発方法の主流とされているのが、「ウォーターフォール型」と「アジャイル型」といわれるものです。
    二つの手法での開発の進め方には大きな違いがあり、当社が提供するサービスのひとつである「ソフトウェアテスト」を行う場合も、その違いを考慮したソフトウェアテストを行っています。
    ここでは、代表的な開発手法とされている「ウォーターフォール型開発」と「アジャイル型開発」の特徴と、それぞれの開発手法にて、ソフトウェアテストを実施する際に求められるスキルについてお話しいたします。

    ウォーターフォール型開発

    ウォーターフォール型開発では、「要件定義→設計→製造(コーディング)→テスト」の開発工程は1つずつしかなく、それぞれを完了させてから次の工程に進みます。
    「テスト」工程では、上位工程が完了している前提の為、「仕様」がしっかりと決まっている状態です。
    つまり、「仕様(期待する結果)の通りに動くか?」を検証する「答え合わせ」のテストが求められます。

    アジャイル型開発

    一方、アジャイル型では、「仕様(答え)」が詳細に決まっておらず、積極的に変わっていきます。
    アジャイル型では、「要件定義→設計→製造(コーディング)→テスト」の開発工程を、スプリントと呼ばれる短い期間で反復させながら、次第にプロダクトを成熟させていきます。
    Webやクラウド型のSaaS等を中心に昨今よく用いられていますが、多くは「MVP」という考え方に沿っています。

    MVPとは、「実用最小限の製品: minimum viable product」の略で、製品を提供する上で必要最小限の機能のみをもつ、もっともシンプルな製品を指し、一般的には「顧客価値があり、利益を生み出せる最小限のもの」という考え方です。

    つまり、アジャイル型の開発には「ユーザーにとって価値があり、利益を生む、最低限の製品を少しずつ作り、成熟させていく」という思想があるため、テストも、確かな答えがないプロダクトに対して、開発チームと共に「答え」を探しながら、このMVPの部分の品質を効率的に検証することが、重要なミッションになります。

    このMVPの部分をどのようにテストするか?に決まった解はありませんが、その時点のプロダクトとして「ユーザーに価値があり、利益を生む最小限のもの」が何を指すか、機能的なアプローチだけでなく、ユーザーが体験する事となる、サービス利用開始(商品購入)から利用後(商品購入後)までの、UX(User Experience ユーザーエクスペリエンス)を考えたアプローチなど、非機能的な要素を掛け合わせ考えることも重要です。

    バグ報告の内容も「答え合わせ」と「答え探し」では大きく異なります。
    「答え探し」でのバグ報告では明らかに誰が見ても問題があると分かるバグだけではなく、「これはおかしい気がする」といった、感覚的な気づきや違和感も重要となり、報告するだけでなく、「それならどうすれば良いか」、「どうあるべきか」まで考えて、提案することが重要です。

    まとめ

    ここまでで、「ウォーターフォール型」開発と「アジャイル型」開発の違いや、それぞれの開発手法で、どういったテストが求められかについて説明してきましたが、まとめると、以下のようになります。

    「ウォーターフォール型」開発のテストアプローチ

    ・仕様が決まっており、その通りに動作するかを検証する「答え合わせのテスト」が主となる。
    ・バグは、報告する事が主となる。
    ・テストチームが開発に対して受動的な立場になる。

    「アジャイル型」開発のテストアプローチ

    ・仕様の成熟にあわせて、ユーザーに価値があり利益を生み出す最低限の製品として、開発チームと協議しながら「答え探し」のテストをする。
    ・バグは、報告だけでなく、提案までする事が求められる。
    ・テストチームが開発と能動的に伴走する立場になる。

    それぞれのテストアプローチの仕方に優劣はなく、開発の手法に合わせたQA・テストのアプローチを考えていくことが、ソフトウェアテストの効果をより高くするためには重要な事と言えます。

    ポールトゥウィンのテストチーム

    ポールトゥウィンのソフトウェアテストチームには、
    ソフトウェアテストの国際的な資格である「JSTQB認定テスト技術者資格」を取得したエンジニアが、多数在籍しており、2022年4月時点でISTQBパートナープログラムにて「Platinum Partner」にも認定されています。

    「JSTQB認定テスト技術者資格」はブログページでも紹介しています。

    本記事で紹介している「アジャイル型開発」「ウォーターフォール型開発」でのソフトウェアテストにつきましても、分野を問わず幅広い対応実績があります。
    ソフトウェアテストの事でお悩みなどありましたら、お気軽にご相談ください。

    お問い合わせはこちら

    関連サービスの詳細はこちら