Upgrade to PRO for Only $50/Year—Limited-Time Offer! 🔥
Speaker Deck
Features
Speaker Deck
PRO
Sign in
Sign up for free
Search
Search
ソフトウェアテスト
Search
takato fukui
September 12, 2024
Programming
0
79
ソフトウェアテスト
社内でエンジニア以外にソフトウェアテストについて説明した時の資料
takato fukui
September 12, 2024
Tweet
Share
More Decks by takato fukui
See All by takato fukui
関数の挙動書き換える
takatofukui
4
790
機関室の灯りは消えない
takatofukui
0
30
エンジニアリングの良い塩梅🧂🌸
takatofukui
0
46
dd-trace-goのtrace context propagation実装
takatofukui
0
490
なぜコードを書いてはいけないか
takatofukui
0
120
リファクタリング
takatofukui
0
130
本番分析データベースを丸ごと削除した人の顔
takatofukui
0
120
Other Decks in Programming
See All in Programming
Pythonではじめるオープンデータ分析〜書籍の紹介と書籍で紹介しきれなかった事例の紹介〜
welliving
3
590
AIコーディングエージェント(Gemini)
kondai24
0
280
PC-6001でPSG曲を鳴らすまでを全部NetBSD上の Makefile に押し込んでみた / osc2025hiroshima
tsutsui
0
180
SwiftUIで本格音ゲー実装してみた
hypebeans
0
500
生成AI時代を勝ち抜くエンジニア組織マネジメント
coconala_engineer
0
9.2k
Kotlin Multiplatform Meetup - Compose Multiplatform 외부 의존성 아키텍처 설계부터 운영까지
wisemuji
0
120
AIコーディングエージェント(NotebookLM)
kondai24
0
230
GoLab2025 Recap
kuro_kurorrr
0
780
Combinatorial Interview Problems with Backtracking Solutions - From Imperative Procedural Programming to Declarative Functional Programming - Part 2
philipschwarz
PRO
0
110
【卒業研究】会話ログ分析によるユーザーごとの関心に応じた話題提案手法
momok47
0
120
안드로이드 9년차 개발자, 프론트엔드 주니어로 커리어 리셋하기
maryang
1
140
Jetpack XR SDKから紐解くAndroid XR開発と技術選定のヒント / about-androidxr-and-jetpack-xr-sdk
drumath2237
1
190
Featured
See All Featured
Avoiding the “Bad Training, Faster” Trap in the Age of AI
tmiket
0
38
Ecommerce SEO: The Keys for Success Now & Beyond - #SERPConf2024
aleyda
1
1.7k
GraphQLの誤解/rethinking-graphql
sonatard
73
11k
Connecting the Dots Between Site Speed, User Experience & Your Business [WebExpo 2025]
tammyeverts
10
750
実際に使うSQLの書き方 徹底解説 / pgcon21j-tutorial
soudai
PRO
196
70k
Sharpening the Axe: The Primacy of Toolmaking
bcantrill
46
2.6k
Data-driven link building: lessons from a $708K investment (BrightonSEO talk)
szymonslowik
1
850
Building a Modern Day E-commerce SEO Strategy
aleyda
45
8.4k
From Legacy to Launchpad: Building Startup-Ready Communities
dugsong
0
110
[RailsConf 2023] Rails as a piece of cake
palkan
58
6.2k
Designing for Performance
lara
610
69k
Mozcon NYC 2025: Stop Losing SEO Traffic
samtorres
0
91
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を含むテストはどうやるか • データベースに書き込んだデータをどう検証するか • … •
ここまでのスライドのテストは仕様の話 • ピーク時の大量リクエストに耐えられるかのテスト • ハッカーに狙われても大丈夫かのテスト • サーバーが死んでも動き続けられるかのテスト • …
まとめ • バグのないプログラムはない • テストパターンは色々ある • 自動テストは然るべきタイミングで実行される • 自動テストは費用対効果が高い •
テストは奥が深い