Upgrade to Pro
— share decks privately, control downloads, hide ads and more …
Speaker Deck
Features
Speaker Deck
PRO
Sign in
Sign up for free
Search
Search
2019-06 ソフトウェアテスト/2019-06 Software testing
Search
Cybozu
PRO
May 31, 2019
Technology
4
170k
2019-06 ソフトウェアテスト/2019-06 Software testing
Cybozu
PRO
May 31, 2019
Tweet
Share
More Decks by Cybozu
See All by Cybozu
AIツール開発ワークショップ(Dify)
cybozuinsideout
PRO
1
31
モバイル
cybozuinsideout
PRO
0
14
Git/GitHub を使う上で知っておくと嬉しいかも Tips
cybozuinsideout
PRO
0
26
GitHub Copilot活用
cybozuinsideout
PRO
0
20
ソフトウェアライセンス
cybozuinsideout
PRO
0
11
エンジニアのためのアウトプット講座 〜知識をシェアするはじめの一歩〜
cybozuinsideout
PRO
0
23
Docker入門
cybozuinsideout
PRO
0
12
セキュリティ
cybozuinsideout
PRO
0
10
暗号
cybozuinsideout
PRO
0
6
Other Decks in Technology
See All in Technology
2025-07-06 QGIS初級ハンズオン「はじめてのQGIS」
kou_kita
0
150
Delegating the chores of authenticating users to Keycloak
ahus1
0
130
AIの全社活用を推進するための安全なレールを敷いた話
shoheimitani
2
320
Witchcraft for Memory
pocke
1
750
2025-06-26_Lightning_Talk_for_Lightning_Talks
_hashimo2
2
120
AWS Organizations 新機能!マルチパーティ承認の紹介
yhana
1
260
PO初心者が考えた ”POらしさ”
nb_rady
0
190
CursorによるPMO業務の代替 / Automating PMO Tasks with Cursor
motoyoshi_kakaku
2
910
Understanding_Thread_Tuning_for_Inference_Servers_of_Deep_Models.pdf
lycorptech_jp
PRO
0
160
CI/CD/IaC 久々に0から環境を作ったらこうなりました
kaz29
1
230
さくらのIaaS基盤のモニタリングとOpenTelemetry/OSC Hokkaido 2025
fujiwara3
2
310
改めてAWS WAFを振り返る~業務で使うためのポイント~
masakiokuda
2
230
Featured
See All Featured
The Web Performance Landscape in 2024 [PerfNow 2024]
tammyeverts
8
680
Designing for humans not robots
tammielis
253
25k
It's Worth the Effort
3n
185
28k
Typedesign – Prime Four
hannesfritz
42
2.7k
Imperfection Machines: The Place of Print at Facebook
scottboms
267
13k
The Art of Delivering Value - GDevCon NA Keynote
reverentgeek
15
1.5k
GraphQLとの向き合い方2022年版
quramy
49
14k
Unsuck your backbone
ammeep
671
58k
No one is an island. Learnings from fostering a developers community.
thoeni
21
3.4k
Improving Core Web Vitals using Speculation Rules API
sergeychernyshev
18
960
Building a Modern Day E-commerce SEO Strategy
aleyda
42
7.4k
Cheating the UX When There Is Nothing More to Optimize - PixelPioneers
stephaniewalter
281
13k
Transcript
ソフトウェアテスト 2019-05-31 Cybozu 1
目次 ▌テストの必要性 ▌テストに対するよくある誤解 ⚫ (1) テスト = 仕様の検証? ⚫ (2)
テスト = テスト実行? ▌スクラムチームの中でのテスト 2
テストの必要性 3
テストの必要性 ▌BtoB から BtoC まで、社会を構成する要素として必須 ▌ソフトウェアが期待通りに動かないと? ⚫ 経済的な損失 ⚫ 時間の浪費
⚫ 信用の失墜 ⚫ 傷害や死亡事故 ▌ソフトウェアテストは、ソフトウェアの品質を評価し、運用環境でのソフト ウェアの故障が発生するリスクを低減する1つの手段 4 JSTQB FL 1.1 ISTQB 著、JSTQB 訳 「テスト技術者資格制度 Foundation Level シラバス (2018年度版)」、2019年 http://jstqb.jp/dl/JSTQB-SyllabusFoundation_Version2018.J03.pdf [JSTQB FL]
テストに対するよくある誤解 5
テストに対するよくある誤解 ▌(1) テスト = 仕様の検証 ▌(2) テスト = テスト実行 6
(1) テスト = 仕様の検証? 7
(1) テストとは仕様の検証のこと? ▌テストは指定されている要件をシステムが満たすかどうかを確認することに 加えて、妥当性確認も行う ⚫ 正しく作っているか?(検証) ⚫ 正しいものを作っているか?(妥当性確認) ▌さらに、これらを通じてステークホルダーへの情報提供も行う 8
JSTQB FL 1.1
テストと品質 ▌Gerald M. Weinberg ⚫ 「品質は誰かにとっての価値である」 ⚫ ソフトウェアを1日8時間使うユーザーにとっては使い勝手の良さが高品質 ⚫ 故障のたびに批判されるシステム管理者にとってはゼロ故障が高品質
⚫ 厳しい予算の制約下にあるプロジェクト管理者にとっては、開発費用が少ない ことが高品質 9 G. M. ワインバーグ著、大野徇郎訳『ワインバーグのシステム思考法』共立、1994年
(参考)Testing と Checking ▌Checking ⚫ 「プロダクトのある側面に対して、アルゴリズムに基づく決定ルールを適 用することで、評価を行うプロセスのこと。」 ▌Testing ⚫ 「プロダクトの探索と実験を通じてプロダクトを学習することによってプロ
ダクトを評価するプロセスのこと。問いを立てたり、研究したり、モデル化 したり、観察したり、推論したりすることが含まれる。」 10 James Bach “Testing and Checking Refined”, 2013 https://www.satisfice.com/blog/archives/856
(2) テスト = テスト実行? 11
(2) テストとはテスト実行のこと? ▌テストはさまざまな活動を含む ⚫ 計画、モニタリングとコントロール、分析、設計、実装、実行、完了 ▌実装前に行うテストもある(欠陥の作り込みの防止) ▌順番に行うこともあれば、同時に行ったり組み合わせて行ったりすることも ある ⚫ プロダクトやプロジェクトの状況に合わせる
12 JSTQB FL 1.1, 1.4
テストに関する活動 ▌テストに関する活動を分けると次ページ以降のようになる ▌これらの活動は組み合わせられたり同時に行われたりする(必ずしも シーケンシャルに行われるわけではない) 13
テスト計画 ▌テストの目的と、アプローチを決める 14 JSTQB FL 1.4.2
テストのモニタリングとコントロール ▌テスト計画の内容と実際の進捗を継続的に比較する 15 JSTQB FL 1.4.2
テスト分析 ▌テストベースを分析し、「何をテストするか」を決定する ▌テストベース(例) ⚫ 要件、仕様、ユーザーストーリー、ユースケース…… ⚫ 設計の情報、実装の情報、アーキテクチャ、…… ⚫ 想定されるリスク ▌テスト設計技法を使い見落としを防ぐ
16 JSTQB FL 1.4.2
テスト設計 ▌テスト分析の結果を、ハイレベルのテストケースに落とし込む ▌この際にさまざまなテスト設計技法を使用する ▌ここでも不具合を検出できることも 17 JSTQB FL 1.4.2
(参考)テスト設計技法 ▌振る舞いベースの技法(ブラックボックステスト) ⚫ 同値分割、境界値分析、デシジョンテーブル…… ▌内部構造ベースの技法(ホワイトボックステスト) ⚫ 制御フローテスト、データフローテスト…… ▌経験ベースの技法 ⚫ エラー推測、探索的テスト……
18 JSTQB FL 4.1, 4.2, 4.3, 4.4
テスト実装 ▌テストを実行可能にする ⚫ テスト手順の作成(テストケースの具体化) ⚫ テスト環境の用意 ⚫ テストデータの用意 19 JSTQB
FL 1.4.2
テスト実行 ▌スケジュールにしたがってテスト(スイート)を実行 ⚫ 不具合があれば BTS(Bug Tracking System)に登録 20 JSTQB FL
1.4.2
テスト完了 ▌完了したテスト活動のデータを集め、まとめる ▌テストケースやテスト環境の整理・保管 21 JSTQB FL 1.4.2
スクラムチームの中でのテスト 22
サイボウズでのスクラム導入前後 ▌スクラム導入前 ⚫ 開発フェーズとテストフェーズが明確に分かれている ▌スクラム導入後 ⚫ リリース可能な部分(インクリメント)を作る小さなサイクル(スプリン ト)を繰り返す ⚫ スプリント内で設計からテストまでやる(チームもある)
23
スクラムイベントとテスト ▌スクラムはいくつかのミーティングを定義している ⚫ これを「スクラムイベント」と呼ぶ ▌スクラムイベントの中でどのようにテスト活動を行っていくか? ▌以下で紹介するのは一例です 24 スクラムについてはこちらを参照。Ken Schwaber &
Jeff Sutherland 著、角征典訳 「スクラムガイド 日本語版」、2017年 https://www.scrumguides.org/docs/scrumguide/v2017/2017-Scrum-Guide-Japanese.pdf
リファインメント ▌テストに関する観点からバックログを見る ⚫ ユーザーが実際に行う操作は? ⚫ テストしやすい? ⚫ 異常系や例外は? 25 テスト分析
スプリントプランニング ▌何を作るかの認識を合わせつつ、テスト設計を簡単に行う ⚫ 実装に関する議論を聞きながら、テストすべき箇所やテストしなくてよ い箇所を考える/聞く ⚫ テストの観点を出してみる(何をテストするか) ⚫ テストケースの型を考える(どうテストするか) 26
テスト分析 テスト設計
スプリント内 ▌実装の状況に応じてテスト設計をアップデート ▌テスト設計に基づきテストケースを作成 ▌実装が完了したらテスト開始 ⚫ 不具合が出たらすぐにフィードバック 27 テスト設計 テスト実装 テスト実行