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
Recruitment Pitch in New Business Division
cybozuinsideout
PRO
0
12
サイボウズ Office/メールワイズチームの改善の取り組み「困りごと共有会」
cybozuinsideout
PRO
1
16
サイボウズのOSPO
cybozuinsideout
PRO
1
91
非エンジニアの私が試行錯誤の末見出したスクラムマスターの道
cybozuinsideout
PRO
2
130
Kubernetes でもJava アプリでTLS 接続を終端したい
cybozuinsideout
PRO
2
150
Google I/O - 2024 What’s new in flutter
cybozuinsideout
PRO
2
260
Waffle Festival2024(斉藤裕希)
cybozuinsideout
PRO
3
560
主体的な活動で巨大な影響範囲のテストを乗りこなしていく話
cybozuinsideout
PRO
2
360
サイボウズ 開発本部採用ピッチ / Cybozu Engineer Recruit
cybozuinsideout
PRO
9
40k
Other Decks in Technology
See All in Technology
Amazon FSx for NetApp ONTAPのパフォーマンスチューニング要素をまとめてみた #cm_odyssey #devio2024
non97
0
220
プレイドにおけるDatadog APMの活用方法
plaidtech
PRO
2
120
[NIKKEI Tech Talk]Bias for Action!! 実践から学ぶための仕組とコミュニティ / Community for Practice and Learning
kanamasa
0
280
可視化プラットフォームGrafanaの基本と活用方法の全て
hamadakoji
0
230
公共領域から学ぶ クラウド移行についてエンジニアが意識していること
kawakawa2222
0
140
20240724_cm_odyssey_hibiyatech
hiashisan
0
110
AWSサービスメニュー開発をしていてAWSを好きだ!と感じた瞬間
toru_kubota
0
130
ここがすごいよ! AWS Systems Manager!
saichan11
0
1.8k
Android研修【MIXI 24新卒技術研修】
mixi_engineers
PRO
0
100
セキュリティ研修 Day1【MIXI 24新卒技術研修】
mixi_engineers
PRO
0
160
楽しくGoを学び合う、LayerXの勉強会文化 / LayerX's study culture of having fun and learning Go together
ar_tama
2
350
AOAI Dev Day LLMシステム開発 Tips集
hirosatogamo
15
3.8k
Featured
See All Featured
The Mythical Team-Month
searls
217
43k
Fontdeck: Realign not Redesign
paulrobertlloyd
79
5.1k
ReactJS: Keep Simple. Everything can be a component!
pedronauck
662
120k
Building Applications with DynamoDB
mza
89
5.8k
Mobile First: as difficult as doing things right
swwweet
219
8.8k
Clear Off the Table
cherdarchuk
89
320k
Fantastic passwords and where to find them - at NoRuKo
philnash
42
2.7k
The Art of Programming - Codeland 2020
erikaheidi
48
13k
4 Signs Your Business is Dying
shpigford
178
21k
Imperfection Machines: The Place of Print at Facebook
scottboms
262
13k
Principles of Awesome APIs and How to Build Them.
keavy
124
16k
Build your cross-platform service in a week with App Engine
jlugia
227
17k
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 テスト設計 テスト実装 テスト実行