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
91k
新卒1年目QAが リリース基準の"なぜ"をたどってみた
cybozuinsideout
PRO
1
880
kintone リサーチ副部/UXリサーチャー 業務紹介
cybozuinsideout
PRO
0
190
私たちが『JaSST協賛』から『外部コネクト』チームになった理由
cybozuinsideout
PRO
0
590
LLMでもいつものテスト技術〜意外と半分はこれまでのテストでした〜
cybozuinsideout
PRO
1
1.1k
kintone開発のプラットフォームエンジニアの紹介
cybozuinsideout
PRO
1
1.7k
LLMアプリの品質保証
cybozuinsideout
PRO
1
840
技術広報チームに丸投げしない!「一緒につくる」スポンサー活動
cybozuinsideout
PRO
0
310
テクニカルライター (グループウェア) について
cybozuinsideout
PRO
0
300
Other Decks in Technology
See All in Technology
高負荷プロダクション環境におけるAWS Lambdaのリアル 〜スケールとコストを左右する実行ライフサイクルの技術仕様〜
maimyyym
2
840
Lambda MicroVMsは常駐サーバーの代わりに なるか? Kiro Crew を動かして検証してみた / Kiro Crew on Lambda MicroVMs
k_adachi_01
2
340
AI臭い文章とは何なのか
nasuvitz
36
76k
Codex概要
ymiya55
0
130
私の推しは「聞いてから進む」AIです -AI-DLCに一人でアプリを作らせた話
yama3133
0
150
AIに会社の文脈を理解させる技術~上流工程・非エンジニアにも広げるハーネスエンジニアリング実践~
ochtum
0
200
Argo CDとAtlantisで実現するインフラ管理のセルフサービス化──小規模SREチームで支えるプラットフォーム
cassius7
0
260
1万名の社員が使う認証基盤で どう信頼性を担保するか?
kairim0
0
100
Claude Designがめちゃくちゃ便利なので使ってほしい
diggymo
0
170
Harness Engineering on Rails
joelq
0
770
スキルを作る、その前に!複数人で使われるスキルを 作るためのプロセス
junkifurukawa
1
130
AI Native Platform Engineering 〜PlatformとAgileで“作る速さ”を“価値”へ〜
uya116
0
570
Featured
See All Featured
Stewardship and Sustainability of Urban and Community Forests
pwiseman
0
530
The SEO identity crisis: Don't let AI make you average
varn
0
570
The #1 spot is gone: here's how to win anyway
tamaranovitovic
4
1.2k
Accessibility Awareness
sabderemane
1
230
Leo the Paperboy
mayatellez
10
2.3k
How to optimise 3,500 product descriptions for ecommerce in one day using ChatGPT
katarinadahlin
PRO
3
3.8k
Kristin Tynski - Automating Marketing Tasks With AI
techseoconnect
PRO
0
530
Exploring the relationship between traditional SERPs and Gen AI search
raygrieselhuber
PRO
3
4.3k
AI Search: Implications for SEO and How to Move Forward - #ShenzhenSEOConference
aleyda
1
1.4k
Prompt Engineering for Job Search
mfonobong
0
470
Code Review Best Practice
trishagee
74
20k
The AI Revolution Will Not Be Monopolized: How open-source beats economies of scale, even for LLMs
inesmontani
PRO
3
3.7k
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