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
ここが変だよ。このテスト〜テストケース爆発と戦う〜
Search
はない
February 11, 2017
Technology
1.6k
1
Share
Embed
Copy iframe code
Copy JS code
Copy link
Start on current slide
ここが変だよ。このテスト〜テストケース爆発と戦う〜
Laravelもくもく会#4
はない
February 11, 2017
More Decks by はない
See All by はない
2018年目標を達成できなかった私が 今年こそ達成するためにしていること
hanahiroaze
3
540
組み合わせテストを簡単にするgemを作った話
hanahiroaze
0
270
MySQLとデッドロックの話
hanahiroaze
1
1.4k
Symfony Best Practiceを読もう!(ついでに翻訳した話)
hanahiroaze
2
950
E2E Test Tips
hanahiroaze
0
180
テストことはじめ
hanahiroaze
0
510
Symfony2のi18n対応
hanahiroaze
0
850
開発合宿に行ってきました
hanahiroaze
0
160
GitHubよちよち会#3
hanahiroaze
0
180
Other Decks in Technology
See All in Technology
AI 駆動 Terraform 開発/SRE_BizReach_MIXI_2
visional_engineering_and_design
3
2k
OpenTelemetry eBPF Instrumentationの舞台裏 / Behind the Scenes of OpenTelemetry eBPF Instrumentation
ymotongpoo
3
980
コーディングエージェントでM5Stack系の開発を少し試した時の話 / M5 Japan Tour 2026 Autumn 東京
you
PRO
0
150
Oracle Cloud Infrastructure IaaS 新機能アップデート 2026/6 - 2026/8
oracle4engineer
PRO
0
150
TinyGo 開発サイクルを高速化する:Go で作るエミュレータ入門
zozotech
PRO
1
600
AIオーケストレーションを活用した 開発ワークフローの設計と実践
bqnq
0
130
Claude Code本って、 読む必要あるの?
oikon48
2
380
『止めない』を設計する — 制約の中で、事業の根幹を支える判断
hiroyaterui
0
260
コスト最適化の「めんどくさい」を AWS FinOps Agent でチョット楽にする
classmethod_kaz
0
300
Deploying a Full-Stack Bun-Native Framework on Cloudflare Workers
7nohe
0
130
作り直せるコードは迅速に 作り直せないDBは慎重に - AI時代のプロダクトエンジニアが「判断の不可逆性」で開発速度を変える話
kinosuke01
0
300
When Does a Local Qwen Start to Break
morshoto
0
200
Featured
See All Featured
The Language of Interfaces
destraynor
162
27k
Lessons Learnt from Crawling 1000+ Websites
charlesmeaden
PRO
1
1.6k
Ten Tips & Tricks for a 🌱 transition
stuffmc
0
210
Information Architects: The Missing Link in Design Systems
soysaucechin
1
1.1k
AI Search: Implications for SEO and How to Move Forward - #ShenzhenSEOConference
aleyda
1
1.4k
How to train your dragon (web standard)
notwaldorf
97
6.8k
Producing Creativity
orderedlist
PRO
348
41k
DevOps and Value Stream Thinking: Enabling flow, efficiency and business value
helenjbeal
1
380
Everyday Curiosity
cassininazir
0
310
Ethics towards AI in product and experience design
skipperchong
2
370
Building an army of robots
kneath
306
46k
Faster Mobile Websites
deanohume
310
32k
Transcript
͕͜͜มͩΑɻ͜ͷςετ ʙςετέʔεരൃͱઓ͏ʙ !IBOBIJSP@B[F
ͳ·͑ɿՖҪɹߦ UXJUUFSɿ!IBOBIJSP@B[F ॴଐɿIJUPNFEJB
継続的デリバリー p129 技術視点 ビジネス視点 支 援 評 価 機能の受け入れ テスト ユニットテスト
インテグレーションテスト システムテスト ショーケース(デモなど) ユーザビリティテスト 探索的テスト 非機能の受け入れテスト (キャパシティ/セキュリティなど) リグレッション テスト
継続的デリバリー p129 技術視点 ビジネス視点 支 援 評 価 機能の受け入れ テスト ユニットテスト
インテグレーションテスト システムテスト ショーケース(デモなど) ユーザビリティテスト 探索的テスト 非機能の受け入れテスト (キャパシティ/セキュリティなど) リグレッション テスト
こんな光景 このパターン全部テストします。 お客さん いっぱいあるじゃないですか。 どうやってやるんですか? 画面から入力してください。 手伝いますから頑張りましょう!!! お客さん ・・・はい。。
こんな光景~次の日~ 新しいバグが見つかりました!! お客さん ごめんなさい直します。 テストやり直しです。今回のバグのパターンが漏れて ました。さらに30パターン追加です。頑張りましょう! お客さん ひぇ!?
http://bit.ly/2ebuOOi
ここが変だよ。このテスト ・ 最初からデータのパターン網羅が考えられていない。 ->パターン漏れによるバグ発生。 ・ テストするパターンの数が多すぎる? ->自動化できる範囲と、実際に動かして確認したい部分の 切り分けがない。 ・
仕様変更のたびにテストが増え続ける可能性がある。
ここが変だよ。このテスト ~対策~ ・ データのパターン網羅を考える。 例) user_id : メールアドレス(必須) password :
半角英数字(必須) agreement : ラジオボタン(必須)
ここが変だよ。このテスト ~対策~ user_id password agreement 入力なし 入力なし 入力なし 正しい 正しい
同意する メールアドレスっぽく ない 正しくない 同意しない 存在しない - - 入力されるデータの種類を考えると、こんな感じ
ここが変だよ。このテスト ~対策~ user_id password agreement 入力なし 入力なし 入力なし 正しい 正しい
同意する メールアドレスっぽく ない 正しくない 同意しない 存在しない - - 4 3 3 ✖ ✖ これだけのパターンでも網羅するために必要なテスト回数は36回
ここが変だよ。このテスト ~対策~ 実際にはもっとデータの種類も、 フォームの数も多いということは・・・
ここが変だよ。このテスト ~対策~ ・先人の知恵に頼る。 http://csrc.nist.gov/acts/kuhn-reilly-02.pdf
ここが変だよ。このテスト ~対策~ user_id password agreement 入力なし 入力なし 入力なし 正しい 正しい
同意する メールアドレスっぽく ない 正しくない 同意しない 存在しない - - 因子 水 準
ここが変だよ。このテスト ~対策~ 2因子間網羅率100パーセントを実現する! ・直交表 ・All-Pair(ペアワイズ)法 - Pairwiser ・カバリングアレイ - Microsoft
pict
ここが変だよ。このテスト ~対策~ デモ
ここが変だよ。このテスト ~注意~ ・ ビジネスルールの考慮(ありえない選択など) ・ ユニットテストのデータパターンとして 活用するのが良い? ・ テストパターンの自動生成というよりは、
テストパターンの参考にする頼り過ぎない。
参考資料 - PICTでテストケースの組み合わせ爆発にさよならを http://yoshiko.hatenablog.jp/entry/pict - テストの数を減らそう!プリキュアで学ぶPICT http://qiita.com/greymd/items/ad18aa44d4159067a627#fnref18 - Pairwise Testing
in the Real World: Practical Extensions to Test-Case Scenarios https://msdn.microsoft.com/en-us/library/cc150619.aspx - Microsoft/pict https://github.com/Microsoft/pict - Pairwiser https://inductive.no/pairwiser/ - 直交表とオールペア法の平行運用によるソフトウェアテスト http://jasst.jp/symposium/jasst14tokyo/pdf/C4-1-1.pdf - テストことはじめ https://speakerdeck.com/hanahiroaze/tesutokotohazime