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
97
0
Share
Embed
Copy iframe code
Copy JS code
Copy link
Start on current slide
ソフトウェアテスト
社内でエンジニア以外にソフトウェアテストについて説明した時の資料
takato fukui
September 12, 2024
More Decks by takato fukui
See All by takato fukui
関数の挙動書き換える
takatofukui
4
890
機関室の灯りは消えない
takatofukui
0
58
エンジニアリングの良い塩梅🧂🌸
takatofukui
0
83
dd-trace-goのtrace context propagation実装
takatofukui
0
580
なぜコードを書いてはいけないか
takatofukui
0
160
リファクタリング
takatofukui
0
150
本番分析データベースを丸ごと削除した人の顔
takatofukui
0
130
Other Decks in Programming
See All in Programming
AWS Transform Customによる Spring Boot 2.xから4.xへのVerUp
satoshi256kbyte
2
110
いまどきの Codex で開発する visionOS アプリの開発スタイルについて
karad
0
170
ソフトウェアラスタライザ
fadis
1
730
まずはプロンプトガイドを読もう、話はそれからだ
kiakiraki
1
230
DynamoDBの基礎を振り返りながらベクトル検索機能を理解する
musan
3
250
仕様書を書く前にハーネスを作る - Agent Native開発は「探索を速く、判定を固く」
gotalab555
5
1.8k
まだ間に合う!今年の夏こそSchemeのマクロ展開器を完全理解!
omasanori
0
570
書籍「プロフェッショナルAI駆動開発」紹介スライド
juntaromatsumoto
0
800
実装をデザインガイドラインに追従させるための取り組み / 260731-dip-mosh-design-system
dachi023
0
7.9k
Claude Code全社展開のためにやったことn選~プラグイン302個・コミッター271人を支えるために~
kenchan
5
1.8k
「寝てても仕事が進む」Claude Codeで組む第二の脳
tomoyafujita2016
0
370
tsc.rip を支える技術 / Kyoto.なんか #8
susisu
0
3.9k
Featured
See All Featured
Why Mistakes Are the Best Teachers: Turning Failure into a Pathway for Growth
auna
0
220
More Than Pixels: Becoming A User Experience Designer
marktimemedia
3
510
Test your architecture with Archunit
thirion
2
2.4k
Conquering PDFs: document understanding beyond plain text
inesmontani
PRO
4
3k
Building the Perfect Custom Keyboard
takai
2
850
The Impact of AI in SEO - AI Overviews June 2024 Edition
aleyda
6
1.2k
The B2B funnel & how to create a winning content strategy
katarinadahlin
PRO
1
490
BBQ
matthewcrist
89
10k
Raft: Consensus for Rubyists
vanstee
141
7.7k
Abbi's Birthday
coloredviolet
3
9.6k
How to audit for AI Accessibility on your Front & Back End
davetheseo
0
520
Bridging the Design Gap: How Collaborative Modelling removes blockers to flow between stakeholders and teams @FastFlow conf
baasie
0
670
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を含むテストはどうやるか • データベースに書き込んだデータをどう検証するか • … •
ここまでのスライドのテストは仕様の話 • ピーク時の大量リクエストに耐えられるかのテスト • ハッカーに狙われても大丈夫かのテスト • サーバーが死んでも動き続けられるかのテスト • …
まとめ • バグのないプログラムはない • テストパターンは色々ある • 自動テストは然るべきタイミングで実行される • 自動テストは費用対効果が高い •
テストは奥が深い