Successfully reported this slideshow.
We use your LinkedIn profile and activity data to personalize ads and to show you more relevant ads. You can change your ad preferences anytime.

アジャイルソフトウェア開発における テスティングの課題およびその解決アプローチ

5,216 views

Published on

SESワークショップで発表した資料
http://ses.sigse.jp/2018/workshop.html#ws3

Published in: Engineering
  • Be the first to comment

アジャイルソフトウェア開発における テスティングの課題およびその解決アプローチ

  1. 1. Copyright (C) 2018 DeNA Co.,Ltd. All Rights Reserved.Copyright (C) 2018 DeNA Co.,Ltd. All Rights Reserved. アジャイルソフトウェア開発における テスティングの課題およびその解決アプローチ ソフトウェア・エンジニアリングシンポジウム2018 併設ワークショップ 2018年9月5日(水) 河野 哲也 システム本部 品質管理部 株式会社 ディー・エヌ・エー 1 当日の発表資料から一部スライドを削除して公開しております
  2. 2. Copyright (C) 2018 DeNA Co.,Ltd. All Rights Reserved. 発表の目的 アジャイル・リーンスタートアップアプローチの開発 におけるテスティングの課題を共有する ⁃ 生々しい事例を交えながら解説 その解決アプローチについて議論する ⁃ 学術的な観点からのフィードバック ⁃ アプローチに関しての批評やアイデアのフィードバック 2
  3. 3. Copyright (C) 2018 DeNA Co.,Ltd. All Rights Reserved. 発表の流れ  発表の目的  導入 ⁃ 自己紹介 ⁃ 対象事例のサービスの概説 ⁃ 不具合事例の共有とテストの捉え方  開発とQAのコンテキスト  課題の整理 ⁃ アジャイル開発における課題 ⁃ 本事例の課題  解決アプローチ ⁃ 3つの解決策を紹介  まとめ 3
  4. 4. Copyright (C) 2018 DeNA Co.,Ltd. All Rights Reserved. はじめに  大小さまざまなサービス・プロダクトが開発されている ⁃ 特にゲーム系以外が顕著  多くの開発はアジャイル・スタートアップのアプローチを採用 ⁃ 本事例では、以上のサービス開発のうち リーンスタートアップアプローチの開発を対象とする  本発表ではテスト自動化はスコープ外 ⁃ もちろん議論ではテスト自動化のトピックも有 4
  5. 5. Copyright (C) 2018 DeNA Co.,Ltd. All Rights Reserved. スクリプトテスト / 探索的テスト  スクリプトテスト ⁃ 古くからある従来のテストのやり方 • テスト設計を行い、事前にテスト手順をドキュメント化する テスト手順に従ってテストを実施する  探索的テスト(https://www.slideshare.net/goyoki/ss-34292539 を参考にした) ⁃ 非公式なテスト設計技法の一つ。テストを実施する過程で、 テスト担当者がテスト実施情報を活用しながらテスト設計をコントロールし、 積極的に質の高い新しいテス トケースを設計する。[JSTQB用語集] ⁃ スクリプトテストからの対比 • テスト手順のドキュメント化を行わない • 事前分析情報・実施者の能力・動かして得られたフィードバックなどを 活用して、テストの構築と実施を並行的に行う ⁃ いくつかスタイルがある • フリースタイル/テストチャータを用いるスタイル/セッションベース 5
  6. 6. Copyright (C) 2018 DeNA Co.,Ltd. All Rights Reserved. テストチャータを用いる探索的テスト テストチャータ ⁃ テストの目的達成のための方針や目印 ⁃ 例えば、抽象度の高いテストケース、機能リスト、リスク一覧 例: ⁃ 目的:ユーザビリティに関する問題を検出する テストチャータ:ユーザビリティの原則的なチェックリスト ⁃ 目的:致命的な不具合を検出する テストチャータ:過去のトラブル集、対象サービスのリスク一覧 6
  7. 7. Copyright (C) 2018 DeNA Co.,Ltd. All Rights Reserved. Verification/Validation  Verification(検証):仕様適合性を確認する ⁃ 正しくプロダクトを作っているか? ⁃ 適切に製品を作っているか?  Validation(妥当性確認):ニーズ充足性を確認する ⁃ 正しいプロダクトを作っているか? ⁃ 適切な製品を作っているか? 7 仕様ベースの スクリプトテスト 探索的テスト Verification 不具合事例2 Validation 不具合事例1 実装 仕様 プログラム 要求 Verification Validation
  8. 8. Copyright (C) 2018 DeNA Co.,Ltd. All Rights Reserved. 本発表の課題整理の枠組み  スクリプトテスト/探索的テストとVerification/Validationの対応 8 仕様ベースの スクリプトテスト 探索的テスト Verification ◎ × Validation △ ◎ 注力の程度 小←----→大 × △ 〇 ◎
  9. 9. Copyright (C) 2018 DeNA Co.,Ltd. All Rights Reserved. 発表の流れ  発表の目的  導入 ⁃ 自己紹介 ⁃ 対象事例のサービスの概説 ⁃ 不具合事例の共有とテストの捉え方  開発とQAのコンテキスト  課題の整理 ⁃ アジャイル開発における課題 ⁃ 本事例の課題  解決アプローチ ⁃ 3つの解決策を紹介  まとめ 9
  10. 10. Copyright (C) 2018 DeNA Co.,Ltd. All Rights Reserved. 開発とQAの組織体制  開発部門(事業部)と品質保証(QA)部門に分かれている ⁃ 事業部に対してQAチーム(リソースプール)がアサインされている • サービス・プロダクト単位で更に小さなQAチームを編成するようなヒエラルキー構造 ⁃ 必要に応じてテストベンダと協業  プロジェクト立ち上げ時にチーム編成 ⁃ 機能テスト以降をQAチームに依頼しているような状況 10
  11. 11. Copyright (C) 2018 DeNA Co.,Ltd. All Rights Reserved. 開発のコンテキスト  4名が専任、1名オンデマンド ⁃ サーバ、フロント、プロダクト、ビジネス、デザイン • ドキュメンテーションできるほど工数・予算的に余裕がない  MVP(Minimum Viable Product)版の開発 ⁃ MVP:顧客に提供できる最小限のプロダクト  開発プロセス:リーンスタートアップ開発+ アジャイル・スクラムのプラクティスをいくつか導入  QAの単位:実装の終わった機能からQAにリリース(QAサイクル) ⁃ 基本的には機能テスト以降を実施 • 開発者はローカル環境で簡単な機能テストを実施してリリース 11
  12. 12. Copyright (C) 2018 DeNA Co.,Ltd. All Rights Reserved. QAのコンテキスト  DeNAの従来のテスティング ⁃ テストレベル:機能テスト以降 ⁃ 標準的なテストプロセス(かなり分業されている) • テスト計画→テスト設計→テスト項目設計→テスト実行→テスト報告 • 探索的テストは一般化しておらずモンキーテストのほうが主流 ⁃ 必要に応じてテスト自動化  本事例におけるQAのコンテキスト ⁃ オンデマンドで3人体制 • 0.3人くらいが専任 ⁃ 低予算→テスト工数が限られており詳細なテスト項目を設計することが難しい • 開発ドキュメントが不確定な点も難しさの原因の一つ 12
  13. 13. Copyright (C) 2018 DeNA Co.,Ltd. All Rights Reserved. 課題の整理  従来の進め方と本事例のQAコンテキストを踏まえた課題 ⁃ 課題1:テスト設計するための成果物が十分ではない ⁃ ユーザ要求やビジネス要求に照らし合わせたテストが限定的になる ⁃ 詳細なテスト項目まで設計することが難しい 13 仕様ベースの スクリプトテスト 探索的テスト Verification ◎→△ ×→NA Validation △→△ ◎→NA
  14. 14. Copyright (C) 2018 DeNA Co.,Ltd. All Rights Reserved. アジャイル開発で想定される課題  テスト設計を行うための十分な開発ドキュメントが用意されない  開発ドキュメントが不確定なため詳細なテスト項目設計ができない 14 仕様ベースの スクリプトテスト 探索的テスト Verification ◎→△ × Validation △ ◎
  15. 15. Copyright (C) 2018 DeNA Co.,Ltd. All Rights Reserved. 発表の流れ  発表の目的  導入 ⁃ 自己紹介 ⁃ 対象事例のサービスの概説 ⁃ 不具合事例の共有とテストの捉え方  開発とQAのコンテキスト  課題の整理 ⁃ アジャイル開発における課題 ⁃ 本事例の課題  解決アプローチ ⁃ 3つの解決策を紹介  まとめ 15
  16. 16. Copyright (C) 2018 DeNA Co.,Ltd. All Rights Reserved. 解決アプローチ  アプローチ1:QAプロセスの構築(Dev環境の活用)  アプローチ2:チャータベースの探索的テスト  アプローチ3:テスト設計技法の導入 16 仕様ベースの スクリプトテスト 探索的テスト Verification ◎→△→〇 アプローチ1 ×→NA→× Validation △→△→△ ◎→NA→〇 アプローチ2
  17. 17. Copyright (C) 2018 DeNA Co.,Ltd. All Rights Reserved. アプローチ1:QAプロセスの構築(Dev環境の活用)  Dev環境をテストベースとして活用 17 企画/ 仕様 開発 Dev 環境 Test 環境 テスト 計画書 テスト 仕様書 テスト 計画 テスト 設計 テスト 実行 機能 仕様書 作成 機能仕様書 (Wiki)
  18. 18. Copyright (C) 2018 DeNA Co.,Ltd. All Rights Reserved. アプローチ2:テストチャータベースの探索的テスト  テストチャータを設定して探索的テストを計画的に実施 ⁃ 特にValidationを意識してテストチャータを設定  具体例 ⁃ 目的:ユーザがエントリーでつまずかないことを確認 テストチャータ:ペルソナを元に整理した特徴 (クライアントはスマホ、面倒な手続きは苦手、など) ⁃ 目的:エラー(メッセージ)でつまづかないことを確認 テストチャータ:エラーメッセージが出力される機能一覧 ⁃ 目的:ライフサイクル(エントリー→一通り使用→退会など)における正常動作の確認 テストチャータ:ライフサイクルの一覧 • 例:エントリー→一通り使用→退会、エントリー→退会、エントリー→アカウント停止→退会、など  副次的効果 ⁃ エントリーの導線がわかりにくいことがわかったので QAメンバでトライアルユーザを集め問題点を収集し改良に貢献した 18
  19. 19. Copyright (C) 2018 DeNA Co.,Ltd. All Rights Reserved. テスト設計技法の導入 テスト効率化のためにテスト設計技法を導入した ⁃ CFD(原因流れ図)法 ⁃ 状態遷移テスト ⁃ デシジョンテーブル 工夫点 ⁃ ハイレベルテストケースのみを記述、 ローレベルテストケースは戦略的に省略した • ただし詳細な動作保証が必要なところは詳細なテスト項目を設計した ⁃ メンバすべてが技法に精通していたわけではないため 技法の使いどころを解説をしながら、ライブで設計を行った 19
  20. 20. Copyright (C) 2018 DeNA Co.,Ltd. All Rights Reserved. 発表の流れ  発表の目的  導入 ⁃ 自己紹介 ⁃ 対象事例のサービスの概説 ⁃ 不具合事例の共有とテストの捉え方  開発とQAのコンテキスト  課題の整理 ⁃ アジャイル開発における課題 ⁃ 本事例の課題  解決アプローチ ⁃ 3つの解決策を紹介  まとめ 20
  21. 21. Copyright (C) 2018 DeNA Co.,Ltd. All Rights Reserved. まとめ  発表の目的 ⁃ アジャイル・リーンスタートアップアプローチの開発における テスティングの課題を共有する ⁃ その解決アプローチについて議論する • 学術的な観点からのフィードバック/ アプローチやアイデアのフィードバック  導入 ⁃ 対象事例のサービスの概説 / 不具合事例の共有とテストの捉え方  開発とQAのコンテキスト  課題の整理 ⁃ アジャイル開発における課題 / 本事例の課題  解決アプローチ:3つの解決策を紹介 21
  22. 22. Copyright (C) 2018 DeNA Co.,Ltd. All Rights Reserved.Copyright (C) 2018 DeNA Co.,Ltd. All Rights Reserved. アジャイルソフトウェア開発における テスティングの課題およびその解決アプローチ ソフトウェア・エンジニアリングシンポジウム2018 併設ワークショップ 2018年9月5日(水) 河野 哲也 システム本部 品質管理部 株式会社 ディー・エヌ・エー 22 ご清聴ありがとうございました 以降の議論の参考になれば幸いです DeNA 品質管理部では一緒に働いてくれる仲間を募集しております

×