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

Weitere ähnliche Inhalte

Was ist angesagt?

DeNA QA Night#2 Game QA part
DeNA QA Night#2 Game QA partDeNA QA Night#2 Game QA part
DeNA QA Night#2 Game QA partYukihiro Yamamoto
 
リバースモデリングを用いたテスト観点標準化の取り組み
リバースモデリングを用いたテスト観点標準化の取り組みリバースモデリングを用いたテスト観点標準化の取り組み
リバースモデリングを用いたテスト観点標準化の取り組みNaokiKashiwagura
 
KDDI Business ID におけるアジャイル開発と検証フロー
KDDI Business ID におけるアジャイル開発と検証フローKDDI Business ID におけるアジャイル開発と検証フロー
KDDI Business ID におけるアジャイル開発と検証フローques_staff
 
テスト計画の立て方 WACATE2019 夏
テスト計画の立て方 WACATE2019 夏テスト計画の立て方 WACATE2019 夏
テスト計画の立て方 WACATE2019 夏Naoki Nakano
 
WebのQAを5年間運営してみた
WebのQAを5年間運営してみたWebのQAを5年間運営してみた
WebのQAを5年間運営してみたTakayoshi Sakaino
 
タウンワークアプリの案件開発を支えるオフショアチームの成り立ちとこれから / iOSDC Japan 2021
タウンワークアプリの案件開発を支えるオフショアチームの成り立ちとこれから / iOSDC Japan 2021タウンワークアプリの案件開発を支えるオフショアチームの成り立ちとこれから / iOSDC Japan 2021
タウンワークアプリの案件開発を支えるオフショアチームの成り立ちとこれから / iOSDC Japan 2021Ataru Osaka
 
テストプロセス改善モデルの最新動向
テストプロセス改善モデルの最新動向テストプロセス改善モデルの最新動向
テストプロセス改善モデルの最新動向崇 山﨑
 
Agile RCA Presentation
Agile RCA PresentationAgile RCA Presentation
Agile RCA PresentationAtsushi Nagata
 
Icml2018読み会_overview&GANs
Icml2018読み会_overview&GANsIcml2018読み会_overview&GANs
Icml2018読み会_overview&GANsKentaro Tachibana
 
テストスキルを測ってみよう
テストスキルを測ってみようテストスキルを測ってみよう
テストスキルを測ってみようAkira Ikeda
 
DeNA QA night #2 presentation
DeNA QA night #2 presentationDeNA QA night #2 presentation
DeNA QA night #2 presentationYasuharu Nishi
 
アジャイルクオリティの探求
アジャイルクオリティの探求アジャイルクオリティの探求
アジャイルクオリティの探求atsushi nagata
 
TPI NEXT ざっくり概要
TPI NEXT ざっくり概要TPI NEXT ざっくり概要
TPI NEXT ざっくり概要Akira Ikeda
 
ザ・ジェネラリスト #5000dai
ザ・ジェネラリスト #5000daiザ・ジェネラリスト #5000dai
ザ・ジェネラリスト #5000daikyon mm
 
「事実にもとづく管理」によるソフトウェア品質の改善 ー ヒンシツ大学 Evening Talk #04
「事実にもとづく管理」によるソフトウェア品質の改善 ー ヒンシツ大学 Evening Talk #04「事実にもとづく管理」によるソフトウェア品質の改善 ー ヒンシツ大学 Evening Talk #04
「事実にもとづく管理」によるソフトウェア品質の改善 ー ヒンシツ大学 Evening Talk #04Makoto Nonaka
 
アジャイル開発と品質保証の密なる関係 #quesqa
アジャイル開発と品質保証の密なる関係 #quesqaアジャイル開発と品質保証の密なる関係 #quesqa
アジャイル開発と品質保証の密なる関係 #quesqaques_staff
 
SQiP2012 - 質問表の活用によるプロジェクトの早期リスク検出
SQiP2012 - 質問表の活用によるプロジェクトの早期リスク検出SQiP2012 - 質問表の活用によるプロジェクトの早期リスク検出
SQiP2012 - 質問表の活用によるプロジェクトの早期リスク検出Takanori Suzuki
 
TOC/CCPM+アジャイルで不確実性をマネジメントする
TOC/CCPM+アジャイルで不確実性をマネジメントするTOC/CCPM+アジャイルで不確実性をマネジメントする
TOC/CCPM+アジャイルで不確実性をマネジメントするESM SEC
 

Was ist angesagt? (20)

DeNA QA Night#2 Game QA part
DeNA QA Night#2 Game QA partDeNA QA Night#2 Game QA part
DeNA QA Night#2 Game QA part
 
リバースモデリングを用いたテスト観点標準化の取り組み
リバースモデリングを用いたテスト観点標準化の取り組みリバースモデリングを用いたテスト観点標準化の取り組み
リバースモデリングを用いたテスト観点標準化の取り組み
 
KDDI Business ID におけるアジャイル開発と検証フロー
KDDI Business ID におけるアジャイル開発と検証フローKDDI Business ID におけるアジャイル開発と検証フロー
KDDI Business ID におけるアジャイル開発と検証フロー
 
テスト計画の立て方 WACATE2019 夏
テスト計画の立て方 WACATE2019 夏テスト計画の立て方 WACATE2019 夏
テスト計画の立て方 WACATE2019 夏
 
WebのQAを5年間運営してみた
WebのQAを5年間運営してみたWebのQAを5年間運営してみた
WebのQAを5年間運営してみた
 
タウンワークアプリの案件開発を支えるオフショアチームの成り立ちとこれから / iOSDC Japan 2021
タウンワークアプリの案件開発を支えるオフショアチームの成り立ちとこれから / iOSDC Japan 2021タウンワークアプリの案件開発を支えるオフショアチームの成り立ちとこれから / iOSDC Japan 2021
タウンワークアプリの案件開発を支えるオフショアチームの成り立ちとこれから / iOSDC Japan 2021
 
テストプロセス改善モデルの最新動向
テストプロセス改善モデルの最新動向テストプロセス改善モデルの最新動向
テストプロセス改善モデルの最新動向
 
Agile RCA Presentation
Agile RCA PresentationAgile RCA Presentation
Agile RCA Presentation
 
Icml2018読み会_overview&GANs
Icml2018読み会_overview&GANsIcml2018読み会_overview&GANs
Icml2018読み会_overview&GANs
 
テストスキルを測ってみよう
テストスキルを測ってみようテストスキルを測ってみよう
テストスキルを測ってみよう
 
DeNA QA night #2 presentation
DeNA QA night #2 presentationDeNA QA night #2 presentation
DeNA QA night #2 presentation
 
アジャイルクオリティの探求
アジャイルクオリティの探求アジャイルクオリティの探求
アジャイルクオリティの探求
 
TPI NEXT ざっくり概要
TPI NEXT ざっくり概要TPI NEXT ざっくり概要
TPI NEXT ざっくり概要
 
Agile and Quality
Agile and QualityAgile and Quality
Agile and Quality
 
ザ・ジェネラリスト #5000dai
ザ・ジェネラリスト #5000daiザ・ジェネラリスト #5000dai
ザ・ジェネラリスト #5000dai
 
「事実にもとづく管理」によるソフトウェア品質の改善 ー ヒンシツ大学 Evening Talk #04
「事実にもとづく管理」によるソフトウェア品質の改善 ー ヒンシツ大学 Evening Talk #04「事実にもとづく管理」によるソフトウェア品質の改善 ー ヒンシツ大学 Evening Talk #04
「事実にもとづく管理」によるソフトウェア品質の改善 ー ヒンシツ大学 Evening Talk #04
 
アジャイルRCA
アジャイルRCAアジャイルRCA
アジャイルRCA
 
アジャイル開発と品質保証の密なる関係 #quesqa
アジャイル開発と品質保証の密なる関係 #quesqaアジャイル開発と品質保証の密なる関係 #quesqa
アジャイル開発と品質保証の密なる関係 #quesqa
 
SQiP2012 - 質問表の活用によるプロジェクトの早期リスク検出
SQiP2012 - 質問表の活用によるプロジェクトの早期リスク検出SQiP2012 - 質問表の活用によるプロジェクトの早期リスク検出
SQiP2012 - 質問表の活用によるプロジェクトの早期リスク検出
 
TOC/CCPM+アジャイルで不確実性をマネジメントする
TOC/CCPM+アジャイルで不確実性をマネジメントするTOC/CCPM+アジャイルで不確実性をマネジメントする
TOC/CCPM+アジャイルで不確実性をマネジメントする
 

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

タクシー×AIを支えるKubernetesとAIデータパイプラインの信頼性の取り組みについて
タクシー×AIを支えるKubernetesとAIデータパイプラインの信頼性の取り組みについてタクシー×AIを支えるKubernetesとAIデータパイプラインの信頼性の取り組みについて
タクシー×AIを支えるKubernetesとAIデータパイプラインの信頼性の取り組みについてTakashi Suzuki
 
タクシーxAIを支えるKubernetesとAIデータパイプラインの信頼性の取り組みについて [SRE NEXT 2020]
タクシーxAIを支えるKubernetesとAIデータパイプラインの信頼性の取り組みについて [SRE NEXT 2020]タクシーxAIを支えるKubernetesとAIデータパイプラインの信頼性の取り組みについて [SRE NEXT 2020]
タクシーxAIを支えるKubernetesとAIデータパイプラインの信頼性の取り組みについて [SRE NEXT 2020]DeNA
 
【JaSST'18 Tokai】アジャイルとテスト自動化導入の勘所
【JaSST'18 Tokai】アジャイルとテスト自動化導入の勘所【JaSST'18 Tokai】アジャイルとテスト自動化導入の勘所
【JaSST'18 Tokai】アジャイルとテスト自動化導入の勘所Kotaro Ogino
 
DeNA の Slack 導入と活用の事例紹介
DeNA の Slack 導入と活用の事例紹介DeNA の Slack 導入と活用の事例紹介
DeNA の Slack 導入と活用の事例紹介DeNA
 
ソフトウェア開発の現場風景
ソフトウェア開発の現場風景ソフトウェア開発の現場風景
ソフトウェア開発の現場風景Koichi ITO
 
Ci&T Anti-Software Factory Pattern
Ci&T Anti-Software Factory PatternCi&T Anti-Software Factory Pattern
Ci&T Anti-Software Factory PatternYoshiyuki Ueda
 
「効率・品質・統制」の共通課題に着目した現場主導によるITS導入の効果検証
「効率・品質・統制」の共通課題に着目した現場主導によるITS導入の効果検証「効率・品質・統制」の共通課題に着目した現場主導によるITS導入の効果検証
「効率・品質・統制」の共通課題に着目した現場主導によるITS導入の効果検証Kuniharu(州晴) AKAHANE(赤羽根)
 
「最強」のチームを「造る」技術基盤 ディレクターズ・カット
「最強」のチームを「造る」技術基盤 ディレクターズ・カット「最強」のチームを「造る」技術基盤 ディレクターズ・カット
「最強」のチームを「造る」技術基盤 ディレクターズ・カットRakuten Group, Inc.
 
リクルートテクノロジーズが語る 企業における、「AI/ディープラーニング」活用のリアル
リクルートテクノロジーズが語る 企業における、「AI/ディープラーニング」活用のリアルリクルートテクノロジーズが語る 企業における、「AI/ディープラーニング」活用のリアル
リクルートテクノロジーズが語る 企業における、「AI/ディープラーニング」活用のリアルRecruit Technologies
 
AgileTourOsaka2011 関係者に理解してもらえるアジャイル開発にむけて
AgileTourOsaka2011 関係者に理解してもらえるアジャイル開発にむけてAgileTourOsaka2011 関係者に理解してもらえるアジャイル開発にむけて
AgileTourOsaka2011 関係者に理解してもらえるアジャイル開発にむけてShuji Morisaki
 
大規模アジャイル Ibm
大規模アジャイル Ibm大規模アジャイル Ibm
大規模アジャイル IbmSORACOM, INC
 
楽天市場で使われている技術、エンジニアに必要なコアスキルとはTechnology used in Rakuten, core skills neede...
楽天市場で使われている技術、エンジニアに必要なコアスキルとはTechnology used in Rakuten,  core skills  neede...楽天市場で使われている技術、エンジニアに必要なコアスキルとはTechnology used in Rakuten,  core skills  neede...
楽天市場で使われている技術、エンジニアに必要なコアスキルとはTechnology used in Rakuten, core skills neede...Rakuten Group, Inc.
 
JIRA collaboration without walls [JIRAが引き出す現場力] #JiraServiceDesk
JIRA collaboration without walls [JIRAが引き出す現場力] #JiraServiceDesk  JIRA collaboration without walls [JIRAが引き出す現場力] #JiraServiceDesk
JIRA collaboration without walls [JIRAが引き出す現場力] #JiraServiceDesk 智治 長沢
 
リクルートはいかにして、ディープラーニング(深層学習)の導入を成功させたか
リクルートはいかにして、ディープラーニング(深層学習)の導入を成功させたかリクルートはいかにして、ディープラーニング(深層学習)の導入を成功させたか
リクルートはいかにして、ディープラーニング(深層学習)の導入を成功させたかRecruit Technologies
 
博士論文公聴会
博士論文公聴会博士論文公聴会
博士論文公聴会Makoto SAKAI
 
Odstudy 20120225 エンジニアのための提案力向上セミナー
Odstudy 20120225 エンジニアのための提案力向上セミナーOdstudy 20120225 エンジニアのための提案力向上セミナー
Odstudy 20120225 エンジニアのための提案力向上セミナーkumi_shiki
 

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

タクシー×AIを支えるKubernetesとAIデータパイプラインの信頼性の取り組みについて
タクシー×AIを支えるKubernetesとAIデータパイプラインの信頼性の取り組みについてタクシー×AIを支えるKubernetesとAIデータパイプラインの信頼性の取り組みについて
タクシー×AIを支えるKubernetesとAIデータパイプラインの信頼性の取り組みについて
 
To be sn agile enterprise
To be sn agile enterpriseTo be sn agile enterprise
To be sn agile enterprise
 
[Biz reach qa meetup] qa team_build
[Biz reach qa meetup] qa team_build[Biz reach qa meetup] qa team_build
[Biz reach qa meetup] qa team_build
 
DLL製造分科会からの告知
DLL製造分科会からの告知DLL製造分科会からの告知
DLL製造分科会からの告知
 
タクシーxAIを支えるKubernetesとAIデータパイプラインの信頼性の取り組みについて [SRE NEXT 2020]
タクシーxAIを支えるKubernetesとAIデータパイプラインの信頼性の取り組みについて [SRE NEXT 2020]タクシーxAIを支えるKubernetesとAIデータパイプラインの信頼性の取り組みについて [SRE NEXT 2020]
タクシーxAIを支えるKubernetesとAIデータパイプラインの信頼性の取り組みについて [SRE NEXT 2020]
 
【JaSST'18 Tokai】アジャイルとテスト自動化導入の勘所
【JaSST'18 Tokai】アジャイルとテスト自動化導入の勘所【JaSST'18 Tokai】アジャイルとテスト自動化導入の勘所
【JaSST'18 Tokai】アジャイルとテスト自動化導入の勘所
 
DeNA の Slack 導入と活用の事例紹介
DeNA の Slack 導入と活用の事例紹介DeNA の Slack 導入と活用の事例紹介
DeNA の Slack 導入と活用の事例紹介
 
ソフトウェア開発の現場風景
ソフトウェア開発の現場風景ソフトウェア開発の現場風景
ソフトウェア開発の現場風景
 
20130320 agile pm
20130320 agile pm20130320 agile pm
20130320 agile pm
 
Ci&T Anti-Software Factory Pattern
Ci&T Anti-Software Factory PatternCi&T Anti-Software Factory Pattern
Ci&T Anti-Software Factory Pattern
 
「効率・品質・統制」の共通課題に着目した現場主導によるITS導入の効果検証
「効率・品質・統制」の共通課題に着目した現場主導によるITS導入の効果検証「効率・品質・統制」の共通課題に着目した現場主導によるITS導入の効果検証
「効率・品質・統制」の共通課題に着目した現場主導によるITS導入の効果検証
 
「最強」のチームを「造る」技術基盤 ディレクターズ・カット
「最強」のチームを「造る」技術基盤 ディレクターズ・カット「最強」のチームを「造る」技術基盤 ディレクターズ・カット
「最強」のチームを「造る」技術基盤 ディレクターズ・カット
 
リクルートテクノロジーズが語る 企業における、「AI/ディープラーニング」活用のリアル
リクルートテクノロジーズが語る 企業における、「AI/ディープラーニング」活用のリアルリクルートテクノロジーズが語る 企業における、「AI/ディープラーニング」活用のリアル
リクルートテクノロジーズが語る 企業における、「AI/ディープラーニング」活用のリアル
 
AgileTourOsaka2011 関係者に理解してもらえるアジャイル開発にむけて
AgileTourOsaka2011 関係者に理解してもらえるアジャイル開発にむけてAgileTourOsaka2011 関係者に理解してもらえるアジャイル開発にむけて
AgileTourOsaka2011 関係者に理解してもらえるアジャイル開発にむけて
 
大規模アジャイル Ibm
大規模アジャイル Ibm大規模アジャイル Ibm
大規模アジャイル Ibm
 
楽天市場で使われている技術、エンジニアに必要なコアスキルとはTechnology used in Rakuten, core skills neede...
楽天市場で使われている技術、エンジニアに必要なコアスキルとはTechnology used in Rakuten,  core skills  neede...楽天市場で使われている技術、エンジニアに必要なコアスキルとはTechnology used in Rakuten,  core skills  neede...
楽天市場で使われている技術、エンジニアに必要なコアスキルとはTechnology used in Rakuten, core skills neede...
 
JIRA collaboration without walls [JIRAが引き出す現場力] #JiraServiceDesk
JIRA collaboration without walls [JIRAが引き出す現場力] #JiraServiceDesk  JIRA collaboration without walls [JIRAが引き出す現場力] #JiraServiceDesk
JIRA collaboration without walls [JIRAが引き出す現場力] #JiraServiceDesk
 
リクルートはいかにして、ディープラーニング(深層学習)の導入を成功させたか
リクルートはいかにして、ディープラーニング(深層学習)の導入を成功させたかリクルートはいかにして、ディープラーニング(深層学習)の導入を成功させたか
リクルートはいかにして、ディープラーニング(深層学習)の導入を成功させたか
 
博士論文公聴会
博士論文公聴会博士論文公聴会
博士論文公聴会
 
Odstudy 20120225 エンジニアのための提案力向上セミナー
Odstudy 20120225 エンジニアのための提案力向上セミナーOdstudy 20120225 エンジニアのための提案力向上セミナー
Odstudy 20120225 エンジニアのための提案力向上セミナー
 

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

  • 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 品質管理部では一緒に働いてくれる仲間を募集しております