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
ソフトウェアテスト
Search
takato fukui
September 12, 2024
Programming
86
0
Share
ソフトウェアテスト
社内でエンジニア以外にソフトウェアテストについて説明した時の資料
takato fukui
September 12, 2024
More Decks by takato fukui
See All by takato fukui
関数の挙動書き換える
takatofukui
4
850
機関室の灯りは消えない
takatofukui
0
43
エンジニアリングの良い塩梅🧂🌸
takatofukui
0
69
dd-trace-goのtrace context propagation実装
takatofukui
0
530
なぜコードを書いてはいけないか
takatofukui
0
150
リファクタリング
takatofukui
0
140
本番分析データベースを丸ごと削除した人の顔
takatofukui
0
130
Other Decks in Programming
See All in Programming
サークル参加から学ぶ、小さな事業の回し方
yuzneri
0
150
検索設計から 推論設計への重心移動と Recall-First Retrieval
po3rin
5
1.6k
ついに来た!本格的なマルチクラウド時代の Google Cloud
maroon1st
0
390
Agentic Elixir
whatyouhide
0
440
実践ハーネスエンジニアリング:ステアリングループを実例から読み解く / Practical Harness Engineering: Understanding Steering Loops Through Real-World Examples
nrslib
5
4.8k
決定論 vs 確率論:Gemini 3 FlashとTF-IDFを組み合わせた「法規判定エンジン」の構築
shukob
0
160
いつか誰かが、と思っていた フロントエンド刷新5年間の実践知
kiichisugihara
1
260
20260514_its_the_context_window_stupid.pdf
heita
0
810
認証統合から始めるフロントエンドの機能単位開発 — マイクロサービス思想の適用
koukimiura
0
100
20年以上続くプロダクトでも使い続けられる静的解析ツールを求めて
matsuo_atsushi
0
140
【26新卒研修資料】TDD実装演習
dip_tech
PRO
0
180
2026-04-15 Spring IO - I Can See Clearly Now
jonatan_ivanov
1
190
Featured
See All Featured
Fantastic passwords and where to find them - at NoRuKo
philnash
52
3.7k
The Pragmatic Product Professional
lauravandoore
37
7.3k
Thoughts on Productivity
jonyablonski
76
5.1k
Product Roadmaps are Hard
iamctodd
PRO
55
12k
Rails Girls Zürich Keynote
gr2m
96
14k
Introduction to Domain-Driven Design and Collaborative software design
baasie
1
780
How to Grow Your eCommerce with AI & Automation
katarinadahlin
PRO
1
180
sira's awesome portfolio website redesign presentation
elsirapls
0
230
Faster Mobile Websites
deanohume
310
31k
Joys of Absence: A Defence of Solitary Play
codingconduct
1
360
Have SEOs Ruined the Internet? - User Awareness of SEO in 2025
akashhashmi
0
340
Are puppies a ranking factor?
jonoalderson
1
3.4k
Transcript
ソフトウェアテスト 福井 崇人
ソフトウェアテスト • 「コンピュータのプログラムから仕様にない振舞または欠陥(バグ)を見つけ出す作 業のこと」 (出典: Wikipedia「ソフトウェアテスト」) • ただ「プログラムテストは、バグの存在を示すことはできても、バグの不在を示すこ とはできない!」Edsger W.
Dijkstra プログラム バグ バグ テスト バグ テスト テスト バグ発見 バグ発見 バグなし
テストパターン • 例えば「振込金額が¥30,000以上の場合は手数料が¥500かかる」振込手数料計 算の場合 • 「¥40,000振り込むと振込手数料が¥500かかる」は普通のテスト • 他にも考慮するテストパターンがある ◦ 境界値
▪ 「¥30,000振り込むと振込手数料が ¥500かかる」 ▪ 「¥29,999振り込むと振込手数料がかからない」 ◦ 最大値 ▪ 「¥999,999,999振り込むと振込手数料が ¥500かかる」 ◦ ゼロ件 ▪ 「¥0振り込むと振込手数料がかからない」 ◦ イレギュラー ▪ (場合によっては小数点やマイナスの入力値も考慮する )
テストは手動/自動の2種類に分けられる 自動テストのこと エンジニアが こう言ったら... 手動テストのこと テスト流す 検証する 打鍵する 疎通確認する テスト通す
テスト落ちる テスト失敗する 目視確認する テスト走らせる テスト実行する テスト回す NG出る
自動テストは何をやってるか • ソフトウェアは本質的には入力を加工して出力する • 例えば「振込金額が¥30,000以上の場合は手数料が¥500かかる」振込手数料計 算の場合 振込手数料計算 ¥30,000 ¥500 ¥10,000
¥0 加工 入力 出力 入力に対して期待する出力が得られるかを コードで確認するのがテストコード
話は逸れ... • ソフトウェアは本質的には入力を加工して出力する • -> 大きな目で見ればWebサイトもそう 振込サイト ユーザー情報 (ユーザー残高含む) 振込サイトトップページ
データ(HTML) パスワード 振込サイトトップページ のURLパス
自動テストは何をやってるか • 具体的なテストコードを見てみると... • このテストコードを自動で実行するのが自動テスト • エンタープライズアプリケーションでは通常のコードの1~3倍のテストコードが書か れる
自動テストの実行タイミング • 基本的にコードをGitHubにアップロードする度に実行される ✅ ✅ ❌ 自動テストを入れていれば、「 ¥30,000->40,000 以上の場合は手数料が ¥500かかる」と手が滑っ
ても気付ける
テストコード/自動テストの良いところ • 中長期的に見てテストにかける時間が減る • デグレに気づきやすい • イレギュラーな入力値を簡単に用意できる ◦ 「商品画像0枚」を簡単に用意できる ◦
手動だと商品画像0枚の商品を探したりしないといけない • …
テストで考慮することは多い • ログインの自動テストはどうやるか • 現在為替を取得する外部APIを含むテストはどうやるか • データベースに書き込んだデータをどう検証するか • … •
ここまでのスライドのテストは仕様の話 • ピーク時の大量リクエストに耐えられるかのテスト • ハッカーに狙われても大丈夫かのテスト • サーバーが死んでも動き続けられるかのテスト • …
まとめ • バグのないプログラムはない • テストパターンは色々ある • 自動テストは然るべきタイミングで実行される • 自動テストは費用対効果が高い •
テストは奥が深い