Upgrade to Pro
— share decks privately, control downloads, hide ads and more …
Speaker Deck
Sign up for free
Menu
Search
Features
All features
Private URLs
Password Protection
Custom URLS
Scheduled publishing
Remove Branding
Restrict embedding
Deck Collections
Notes
Features
All features
Private URLs
Password Protection
Custom URLS
Scheduled publishing
Remove Branding
Restrict embedding
Deck Collections
Notes
Explore
Featured decks
Featured speakers
Programming
Technology
Storyboards
Explore
Featured decks
Featured speakers
Programming
Technology
Storyboards
Pricing
Search
Sign in
Sign up for free
ソフトウェアテスト2020 / Software_Test_2020
Search
Cybozu
PRO
August 19, 2020
Technology
62k
0
Share
Embed
Copy iframe code
Copy JS code
Copy link
Start on current slide
ソフトウェアテスト2020 / Software_Test_2020
Cybozu
PRO
August 19, 2020
More Decks by Cybozu
See All by Cybozu
サイボウズ 開発本部採用ピッチ / Cybozu Engineer Recruit
cybozuinsideout
PRO
12
94k
新卒1年目QAが リリース基準の"なぜ"をたどってみた
cybozuinsideout
PRO
1
950
kintone リサーチ副部/UXリサーチャー 業務紹介
cybozuinsideout
PRO
0
200
私たちが『JaSST協賛』から『外部コネクト』チームになった理由
cybozuinsideout
PRO
0
620
LLMでもいつものテスト技術〜意外と半分はこれまでのテストでした〜
cybozuinsideout
PRO
1
1.2k
kintone開発のプラットフォームエンジニアの紹介
cybozuinsideout
PRO
1
1.8k
LLMアプリの品質保証
cybozuinsideout
PRO
1
900
技術広報チームに丸投げしない!「一緒につくる」スポンサー活動
cybozuinsideout
PRO
0
320
テクニカルライター (グループウェア) について
cybozuinsideout
PRO
0
320
Other Decks in Technology
See All in Technology
macOS Golden Gate 時代のMac管理
tategami
0
110
野蛮なアジャイル [サイボウズ発!]組織の常識を覆した反骨のスクラム実践記 / Barbaric Agile - Enterprise Agile Study Group
ama_ch
0
120
スプシの手作業からの解脱 ~更新はClaude Codeに、見せ方と使い方はGASアプリに任せる~
kentarofujii
0
170
dbt Semantic Layerで進めるenechainのデータ民主化
akizhou
1
190
国際カードブランドルール変更に伴うクレジットカード決済取引仕様変更について
k1style
0
130
ソフトウェア ファクトリー - 再現性のあるソフトウェアの工場づくり / Software factory
iktakahiro
7
5.2k
その Valkey 使いこなしていますか?
onk
PRO
5
1.8k
ストレスなくAIと付き合いたい!こんなときどうしてる?
namiki64
4
660
Tofu-Controller lightning talk @ Containerday 2026
gionn
0
170
古い指輪から広がった JAVA コミュニティ とのつながり
yamad
0
140
こんにちは!SORACOM です & IoT とは【SORACOM UG 東北 in 八戸】
soracom
PRO
0
160
PHPカンファレンス関西の招待状 / Invitation to PHP Conference Kansai
ykanoh
0
220
Featured
See All Featured
SEOcharity - Dark patterns in SEO and UX: How to avoid them and build a more ethical web
sarafernandez
0
310
The Success of Rails: Ensuring Growth for the Next 100 Years
eileencodes
47
8.4k
DevOps and Value Stream Thinking: Enabling flow, efficiency and business value
helenjbeal
2
410
We Have a Design System, Now What?
morganepeng
55
8.4k
Introduction to Domain-Driven Design and Collaborative software design
baasie
1
1k
BBQ
matthewcrist
90
10k
Ethics towards AI in product and experience design
skipperchong
2
440
[Rails World 2023 - Day 1 Closing Keynote] - The Magic of Rails
eileencodes
38
3.1k
Evolving SEO for Evolving Search Engines
ryanjones
0
330
It's Worth the Effort
3n
188
29k
Information Architects: The Missing Link in Design Systems
soysaucechin
1
1.2k
Winning Ecommerce Organic Search in an AI Era - #searchnstuff2025
aleyda
2
2.2k
Transcript
ソフトウェアテスト 2020-05-08 ⼩⼭ 晃久(Garoon・⽣産性向上) 1
⽬次 ▌テストの必要性 ▌テストに対するよくある誤解 l (1) テスト = 仕様の検証︖ l (2)
テスト = テスト実⾏︖ ▌スクラムチームの中でのテスト 2
テストの必要性 3
テストの必要性(JSTQB FL 1.1) ▌BtoB から BtoC まで、社会を構成する要素として必須 ▌ソフトウェアが期待通りに動かないと︖ l 経済的な損失
l 時間の浪費 l 信⽤の失墜 l 傷害や死亡事故 ▌ソフトウェアテストは、ソフトウェアの品質を評価し、運⽤環境でのソフト ウェアの故障が発⽣するリスクを低減する1つの⼿段 ISTQB 著、JSTQB 訳 「テスト技術者資格制度 Foundation Level シラバス (2018年度版)」、2019年 http://jstqb.jp/dl/JSTQB-SyllabusFoundation_Version2018.J03.pdf [JSTQB FL] 4
テストに対するよくある誤解 5
テストに対するよくある誤解(⼀部) ▌(1) テスト = 仕様の検証 ▌(2) テスト = テスト実⾏ 6
(1) テスト = 仕様の検証? 7
(1) テストとは仕様の検証のこと︖(JSTQB FL 1.1) ▌テストは指定されている要件をシステムが満たすかどうかを確認することに 加えて、妥当性確認も⾏う l 正しく作っているか︖(検証) l 正しいものを作っているか︖(妥当性確認)
▌さらに、これらを通じてステークホルダーへの情報提供も⾏う 8
テストと品質 ▌Gerald M. Weinberg l 「品質は誰かにとっての価値である」 l ソフトウェアを1⽇8時間使うユーザーにとっては使い勝⼿の良さが⾼品質 l 故障のたびに批判されるシステム管理者にとってはゼロ故障が⾼品質
l 厳しい予算の制約下にあるプロジェクト管理者にとっては、開発費⽤が少ない ことが⾼品質 G. M. ワインバーグ著、⼤野徇郎訳『ワインバーグのシステム思考法』共⽴、1994年、p.7 9
(参考)Testing と Checking ▌Checking l 「プロダクトのある側⾯に対して、アルゴリズムに基づく決定ルールを適 ⽤することで、評価を⾏うプロセスのこと。」 ▌Testing l 「プロダクトの探索と実験を通じてプロダクトを学習することによってプロ
ダクトを評価するプロセスのこと。問いを⽴てたり、研究したり、モデル化 したり、観察したり、推論したりすることが含まれる。」 James Bach “Testing and Checking Refined”, 2013 https://www.satisfice.com/blog/archives/856 10
(2) テスト = テスト実⾏? 11
(2) テストとはテスト実⾏のこと︖(JSTQB FL 1.1, 1.4) ▌テストはさまざまな活動を含む l 計画、モニタリングとコントロール、分析、設計、実装、実⾏、完了 ▌実装前に⾏うテストもある(⽋陥の作り込みの防⽌) ▌順番に⾏うこともあれば、同時に⾏ったり組み合わせて⾏ったりすることも
ある l プロダクトやプロジェクトの状況に合わせる 12
テストに関する活動 ▌テストに関する活動を分けると次ページ以降のようになる ▌これらの活動は組み合わせられたり同時に⾏われたりする(必ずしも シーケンシャルに⾏われるわけではない) 13
テスト計画(JSTQB FL 1.4.2) ▌テストの⽬的と、アプローチを決める 14
テストのモニタリングとコントロール(JSTQB FL 1.4.2) ▌テスト計画の内容と実際の進捗を継続的に⽐較する 15
テスト分析(JSTQB FL 1.4.2) ▌テストベースを分析し、「何をテストするか」を決定する ▌テストベース(例) l 要件、仕様、ユーザーストーリー、ユースケース…… l 設計の情報、実装の情報、アーキテクチャ、…… l
想定されるリスク ▌テスト設計技法を使い⾒落としを防ぐ 16
テスト設計(JSTQB FL 1.4.2) ▌テスト分析の結果を、ハイレベルのテストケースに落とし込む ▌この際にさまざまなテスト設計技法を使⽤する ▌ここでも不具合を検出できることも 17
(参考)マイヤーズの三⾓形問題 ▌以下のプログラムをテストするのに⼗分なテストケースを考えてく ださい。 lこのプログラムは、⼊⼒ダイアログから3つの整数を読む。 lこれらの3つの値は、三⾓形の3つの辺を表す。 lこのプログラムは、⼊⼒された三⾓形が正三⾓形か、⼆等辺 三⾓形か、不等辺三⾓形かを⽰すメッセージを表⽰する。 Glenford J. Myers、Tom
Dadgett、Todd M. Thomas、Corey Sandler 著、⻑尾真、松尾正信訳 『ソフトウェア・テストの技法 第2版』近代科学社、2006、p.2 ソフトウェアテスト技術振興協会(ASTER)著、「テスト設計チュートリアル U-30クラス向け 2020年度版」、 2020 http://aster.or.jp/business/contest/doc/2020_U-30_V1.0.0.pdf 18
(参考)マイヤーズの三⾓形問題(図) 19 正三⾓形 ⼆等辺三⾓形 不等辺三⾓形
(参考)マイヤーズの三⾓形問題(元ネタ本の回答) 1. 有効な不等辺三⾓形 2. 有効な正三⾓形 3. 有効な⼆等辺三⾓形 4. 有効な⼆等辺三⾓形の辺の組み合わせ (e.g.
(5, 5, 6), (5, 6, 5), (6, 5, 5) ) 5. ⼀辺がゼロ 6. ⼀辺が負の数 7. ⼆辺の合計が、もう⼀辺と同じ (e.g. (1, 2 ,3) 8. ケース7の組み合わせ (e.g. (1, 2, 3), (1, 3, 2), (3, 1, 2) ) 9. ⼆辺の合計が、もう⼀辺より⼩さい (e.g. (1, 2, 4) ) 10. ケース9の組み合わせ (e.g. (1, 2, 4), (1, 4, 2), (4, 1, 2) ) 11. 全ての辺がゼロ 12. 整数以外の値 20 前掲 Glenford J. Myers ほか『ソフトウェア・テストの技法 第2版』、p.3
(参考)マイヤーズの三⾓形問題(その他の回答例) ▌OS・ブラウザの組み合わせ ▌レスポンス秒数 ▌ダイアログのアクセシビリティ ▌ログの形式 ▌不正な⼊⼒値 ▌エラーハンドリング ▌エラーの表⽰⽅法 ▌API 経由での⼊⼒
▌XSS ▌認証・アクセス権 ▌ローカライズ ▌など…… 21 前掲 ソフトウェアテスト技術振興協会(ASTER)著、 「テスト設計チュートリアル U-30クラス向け 2020年度版」 p.8 と、サイボウズでのテストの実例を参考にした。
(参考)テスト設計技法(JSTQB FL 4.1, 4.2, 4.3, 4.4) ▌振る舞いベースの技法(ブラックボックステスト) l 同値分割、境界値分析、デシジョンテーブル…… ▌内部構造ベースの技法(ホワイトボックステスト)
l 制御フローテスト、データフローテスト…… ▌経験ベースの技法 l エラー推測、探索的テスト…… 22
テスト実装(JSTQB FL 1.4.2) ▌テストを実⾏可能にする l テスト⼿順の作成(テストケースの具体化) l テスト環境の⽤意 l テストデータの⽤意
23
テスト実⾏(JSTQB FL 1.4.2) ▌スケジュールにしたがってテスト(スイート)を実⾏ l 不具合があれば BTS(Bug Tracking System)に登録 24
テスト完了(JSTQB FL 1.4.2) ▌完了したテスト活動のデータを集め、まとめる ▌テストケースやテスト環境の整理・保管 25
スクラムチームの中でのテスト 26
サイボウズでのスクラム導⼊前後 ▌スクラム導⼊前 l 開発フェーズとテストフェーズが明確に分かれている ▌スクラム導⼊後 l リリース可能な部分(インクリメント)を作る⼩さなサイクル(スプリン ト)を繰り返す l スプリント内で設計からテストまでやる(チームもある)
27
スクラムイベントとテスト ▌スクラムはいくつかのミーティングを定義している l これを「スクラムイベント」と呼ぶ ▌スクラムイベントの中でどのようにテスト活動を⾏っていくか︖ ▌以下で紹介するのは⼀例です スクラム⾃体についてはこちらを参照。Ken Schwaber & Jeff
Sutherland 著、⾓征典訳 「スクラムガイド ⽇本語版」、2017年 https://www.scrumguides.org/docs/scrumguide/v2017/2017-Scrum-Guide-Japanese.pdf 28
リファインメント ▌テストに関する観点からバックログを⾒る(テスト分析) l ユーザーが実際に⾏う操作は︖ l テストしやすい︖ l 異常系や例外は︖ 29
スプリントプランニング ▌何を作るかの認識を合わせつつ、テスト設計を簡単に⾏う(テスト分析、 テスト設計) l 実装に関する議論を聞きながら、テストすべき箇所やテストしなくてよ い箇所を考える/聞く l テストの観点を出してみる(何をテストするか) l テストケースの型を考える(どうテストするか)
30
スプリント内 ▌実装の状況に応じてテスト設計をアップデート(テスト設計) ▌テスト設計に基づきテストケースを作成(テスト実装) ▌実装が完了したらテスト開始(テスト実⾏) l 不具合が出たらすぐにフィードバック 31