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
テストのテ / software test
Search
fortkle
May 21, 2014
Programming
120
0
Share
Embed
Copy iframe code
Copy JS code
Copy link
Start on current slide
テストのテ / software test
fortkle
May 21, 2014
More Decks by fortkle
See All by fortkle
無駄な物をなるべく作らないリプレイス戦略 / replace-strategy-phperkaigi2021
fortkle
1
2.8k
フルリモート時代のカンバン運用 / kanban-operation-in-remote
fortkle
0
800
GitHub Actionsで始めるPHPアプリケーションのCI実践入門 / ga-phperkaigi2020
fortkle
3
7.3k
余裕を生み出すコードレビュー 〜レビュイー編〜 / code-review-phpcon-2019
fortkle
8
7.6k
「設計振り返り」を始めてみようと思っている話 / architecture reflection
fortkle
3
650
「ママ向けNo.1アプリ」の 更なる成長を支える仕組み / startup-engineer-night-connehito
fortkle
2
370
良いテストデータ、悪いテストデータ / testdata-antipattern
fortkle
4
7k
BackstopJSで始める CSSリグレッションテスト / backstopjs-css-test
fortkle
0
1.6k
PhpStorm導入アンチパターン / phpstorm-anti-pattern
fortkle
0
2.2k
Other Decks in Programming
See All in Programming
JIS keyboard support in Omarchy
lef237
0
180
AIが生成したコードは読むべきか?抽象化設計とコードの品質保証 / abstraction-design-and-quality
minodriven
14
8k
全ての永続トークンを、生まれる前に消し去りたい!
sylph01
2
1.6k
Optunaを作ったときにやりたかったこと、その後 (2026/10/16, Optuna Meetup #3)
iwiwi
4
1.4k
S3 TablesのIcebergデータに、AIエージェントからアクセスしてみた / 20261016developersio2026joetsu-accessing-iceberg-in-s3tables-via-agent
kasacchiful
PRO
0
250
PyConTW 2026 - AI Coding 不只是工具升級, 區域醫院醫療資訊系統協作開發與資訊團隊轉型實踐
cclai999
0
220
SFCで実現する病院・医療システムの動的組み立て式UI
koukimiura
1
150
[DroidKnights 2026] Workflow AX: From Auto-Documented Policies to E2E Testing
raeminkang
0
200
Kotlinize Is Not Just Converting to Kotlin
chigichan24
1
210
dotNET_vulnclicker_intro.pdf
deka_morita
0
160
sbt 2.0: takeoff
eed3si9n
0
180
オーケストレーション記述言語 Katari
yukikurage
0
210
Featured
See All Featured
Game over? The fight for quality and originality in the time of robots
wayneb77
1
320
Tips & Tricks on How to Get Your First Job In Tech
honzajavorek
1
820
Documentation Writing (for coders)
carmenintech
77
5.6k
Exploring the relationship between traditional SERPs and Gen AI search
raygrieselhuber
PRO
4
4.4k
We Analyzed 250 Million AI Search Results: Here's What I Found
joshbly
2
2.1k
Introduction to Domain-Driven Design and Collaborative software design
baasie
1
1.1k
The Art of Delivering Value - GDevCon NA Keynote
reverentgeek
16
2.2k
Designing Dashboards & Data Visualisations in Web Apps
destraynor
232
55k
Being A Developer After 40
akosma
PRO
92
590k
The Psychology of Web Performance [Beyond Tellerrand 2023]
tammyeverts
49
3.6k
Unsuck your backbone
ammeep
672
58k
Design of three-dimensional binary manipulators for pick-and-place task avoiding obstacles (IECON2024)
konakalab
0
640
Transcript
テストのテ テストのテ - テスト初心者の僕がテストについて調べて分かったこと -
テストのテ 今日の発表で目指すところ • テストの流流れを理理解する • 基本的なテスト⽤用語についてはわかるよ うになる
テストのテ なぜテストについて調べたのか • テストが超重要なのは知っている • →ほとんどテストを書いたことがない • →なぜ書けないのか • →SIerに⽐比べてあまりテストをかかない
• →そもそもテストについてよくしらない • 調べた!!←イマココ
テストのテ やったこと • 本を読む – 『知識識ゼロから学ぶ ソフトウェアテスト』 – 『ソフトウェアエンジニアリングの新⼈人研修』 • WEBの記事を読み漁る – @IT連載
– @kyon_̲mm さんのブログ記事 – slideshare, SpeakerDeck • 上司に質問する
テストのテ 今日話すこと • テストの⽬目的について • テストの順序について – 開発の流流れ – テストの流流れ • テストの種類について
• テストの技法について • おわりに
テストのテ 何のためにテストをするのか(目的) • ソフトウェアテストの⽬目的は 1. エラー(バグ、⽋欠陥)を⾒見見つけ出す。 2. ソフトウェアの 品質 を保証する。
テストのテ 何のためにテストをするのか(目的) • ソフトウェアテストの⽬目的は 1. エラー(バグ、⽋欠陥)を⾒見見つけ出す。 2. ソフトウェアの 品質 を保証する。
テストのテ 何のためにテストをするのか(目的) • 1.エラー(バグ、⽋欠陥)を⾒見見つけ出す。 – プログラムを正しく動かすために。 – バグの早期発⾒見見により修正コストを減らす。 • 2.ソフトウェアの品質を保証する。 – 「プログラム品質」→ 仕様書通りか
– 「設計品質」→機能の改修や追加が簡単か
テストのテ 何のためにテストをするのか(目的) • 1.エラー(バグ、⽋欠陥)を⾒見見つけ出す。 • 2.ソフトウェアの品質を保証する。
テストのテ 何のためにテストをするのか(目的) • 1.エラー(バグ、⽋欠陥)を⾒見見つけ出す。 • 2.ソフトウェアの品質を保証する。 • 儲かる
テストのテ 何のためにテストをするのか(目的) • 1.エラー(バグ、⽋欠陥)を⾒見見つけ出す。 • 2.ソフトウェアの品質を保証する。 • 儲かる (→⾚赤字になるならテストは書かない)
テストのテ どのような流れでテストは行われるか (順序) • ソフトウェアテストの順序は 1. 単体テスト 2. 結合テスト 3.
システムテスト 4. 受け⼊入れテスト [選択肢] A. 受け⼊入れテスト B. 単体テスト C. システムテスト D. 結合テスト
テストのテ どのような流れでテストは行われるか (順序) • ソフトウェアテストの順序は 1. 単体テスト
B 2. 結合テスト D 3. システムテスト C 4. 受け⼊入れテスト A [選択肢] A. 受け⼊入れテスト B. 単体テスト C. システムテスト D. 結合テスト
テストのテ どのような流れでテストは行われるか (順序)
テストのテ どのような流れでテストは行われるか (順序) 顧客のやりたいことを 明確化する
テストのテ どのような流れでテストは行われるか (順序) 操作や画⾯面などの 基本的な部分の設計
テストのテ どのような流れでテストは行われるか (順序) 実装に必要な 細かい部分の設計
テストのテ どのような流れでテストは行われるか (順序) コードを書く
テストのテ どのような流れでテストは行われるか (順序) 実装が終わると 対象を⼤大きくしながら テストを進める。
テストのテ どのような流れでテストは行われるか (順序) • 各テストの段階のテスト対象は 単体テスト
→ 結合テスト → システムテスト → 受け⼊入れテスト → [選択肢] A. メソッド(関数) B. 複数モジュール C. 複合システム D. 納品物
テストのテ どのような流れでテストは行われるか (順序) • 各テストの段階のテスト対象は 単体テスト
→ A 結合テスト → B システムテスト → C 受け⼊入れテスト → D [選択肢] A. メソッド(関数) B. 複数モジュール C. 複合システム D. 納品物
テストのテ どのような流れでテストは行われるか (順序) • 単体テスト → メソッド(関数) – 実際の開発では、xUnit系ツールを使う。 – メソッド単位で⾏行行うテスト – メソッドに値を渡し、期待した結果が
返ってくるか確かめる function getMemberAge($id) { $age = $service->getAge($id) return $age; }
テストのテ どのような流れでテストは行われるか (順序) • 結合テスト → 複数のモジュール(メソッド) – 実際の開発では、rspec等のツールを使う。 – 正しくメソッドが結合されているか確かめる
テストのテ どのような流れでテストは行われるか (順序) • システムテスト → 複合システム – 仕様通りに正しく動くかどうか確かめる – 機能だけでなく、パフォーマンスやセキュリ ティなども確かめる
システム
テストのテ どのような流れでテストは行われるか (順序) • 受け⼊入れテスト → 納品物(システム) – テストをするのが発注者(客) – 要望通りの物が納品されたかどうか確認する 納品物
テストのテ どのようなテストがあるのか (種類) • テストの種類は⼤大きく分けて2つある – 機能テスト • ソフトウェアの機能や振る舞いを確かめる – ⾮非機能テスト •
機能以外にも性能や特性などを確かめる
テストのテ • 右の中で⾮非機能 テストに⼊入るのは 単体 [選択肢] A. 負荷テスト B.
ユニットテスト C. インテグレー ションテスト D. パフォーマンス テスト E. セキュリティテ スト どのようなテストがあるのか (種類)
テストのテ • 右の中で⾮非機能 テストに⼊入るのは A.負荷テスト D.パフォーマンステスト E.セキュリティテスト [選択肢] A.
負荷テスト B. ユニットテスト C. インテグレー ションテスト D. パフォーマンス テスト E. セキュリティテ スト どのようなテストがあるのか (種類)
テストのテ どのようなテストがあるのか (種類) • 負荷テスト – 短時間に⾼高い負荷をかけても正常に動作するか テストする • パフォーマンステスト
– 処理理能⼒力力や応答時間などが仕様通りかテストす る • セキュリティテスト – 「悪意のある攻撃」に対し対処できるかテスト する。(この分野は未だテスト⼿手法がない)
テストのテ どうやってテストケースを考えるか(技法) • 演習問題 – 次のプログラムについて、テストケースを 考えて下さい。 • 内容:⼊入⼒力力した三⾓角形の種類を答えるプログラム • 答えるパターン:正三⾓角形、⼆二等辺三⾓角形、普
通の三⾓角形 • 条件:1〜~10の整数のみ受け付ける。 – ※書いていない部分は勝⼿手に想像してOK
テストのテ どうやってテストケースを考えるか(技法) • 答え合わせ lv.1 – 正常系:表⽰示結果確認 • 3辺が同じ⻑⾧長さで「正三⾓角形」と表⽰示 • 2辺のみが同じ⻑⾧長さで「⼆二等辺三⾓角形」と表⽰示
– 3通り実施(5-‐‑‒5-‐‑‒3, 5-‐‑‒3-‐‑‒5, 3-‐‑‒5-‐‑‒5) • 3辺とも違う⻑⾧長さで「普通の三⾓角形」と表⽰示
テストのテ どうやってテストケースを考えるか(技法) • 答え合わせ lv.2 – 異異常系:⼊入⼒力力形式の異異常 • 数値以外の⼊入⼒力力 • 2辺のみ⼊入⼒力力(4辺のみ⼊入⼒力力)
– 異異常系:⼊入⼒力力値の異異常 • それぞれに0を⼊入⼒力力 • それぞれに負の数を⼊入⼒力力 • それぞれに条件より⼤大きい数を⼊入⼒力力
テストのテ どうやってテストケースを考えるか(技法) • 答え合わせ lv.3 – 異異常系:三⾓角形にならない • 2辺の和=残りの1辺 – Ex.)
2,3,5 → 平⾏行行線になる • 2辺の和<残りの1辺 – Ex.) 2,4,8 → 届かない
テストのテ どうやってテストケースを考えるか(技法) • 全部を⼊入⼒力力するわけにはいかない – 10×10×10=1000通り は無理理... • バグのありそうな所を漏漏れなくダブり無 くテストするのがベター。 •
テスト技法について知っておくと便便利利。
テストのテ どうやってテストケースを考えるか(技法) • 同値分割 – 「仕様からデータを“意味のあるグルー プ”(同値クラス)に分類し,各グループか ら代表値を選ぶ⼿手法」
テストのテ どうやってテストケースを考えるか(技法) • 境界値分析 – 「同値クラスの間の境界の値(境界値)を テストデータとして選択する⼿手法」
テストのテ どうやってテストケースを考えるか(技法) • 他にもいろいろ – デシジョンテーブル – 原因結果グラフ →
詳しくは
テストのテ おわりに • まだ調べきれていないこと – アジャイル開発における品質を担保した最 適なテストプランの作り⽅方 – アジャイルテストにおけるTDD,BDDの実践 ⽅方法 • 狩⾕谷さんのwiki読む(『継続的デリバリー』)
• 『実践テスト駆動開発』を読む • 『ドメイン駆動設計』を読む • アプリケーション設計(OOP,デザインパターン)
テストのテ おわり