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