SlideShare a Scribd company logo
1 of 24
ブラックボックステストの技法
自己紹介
• 名前
• 橘田 隼一
• TwitterID
• hayabusa333
• 興味があること
• カーネルとかGCとか
• 現在のお仕事
• ウェッブプログラマー
• 信仰
• Joel教 翔鶴瑞鶴仲良し姉妹同盟
テストとはなにか
• IEEE 標準規格 620.12-1990 の定義
「ある特定の条件化でシステムまたはコンポーネ
ントを操作するプロセスであり、その結果を観察
または記録して、システムまたはコンポーネント
のある側面を評価すること」
テストケースの三元素
• 入力
• キーボード、インターフェース、ファイル、DB
• 出力
• 画面、外部機器、ファイル、DB
• 実行の順番
• 順次実行のケース、独立なテストケース
ブラックボックステストの定義
• ブラックボックステストは、要件と仕様書だけをもと
にテストの作成を行う
• ホワイトボックステストとは違い、ソフトウェアの内部
パスや構造や実装に関する知識を必要としない
技法の種類
• 同値クラステスト
• 境界値テスト
• デシジョンテーブルテスト
• ペア構成テスト
• 状態遷移テスト
• ドメイン分析テスト
同値クラステスト
• 同値テストは入力に対して、有効値と無効値の最低
1つを選出してテストを行う
• 同値テストにて組み合わせテストを行う場合には、1
つの入力項目のエラーが別の項目のエラーを覆い
隠さないように、1つのテストケースに対して無効値
は1つとする
同値クラステスト
有効値と無効値の最低1つを選出するため、下記では
有効値として5 無効値として10を選出する
同値クラステスト
3~8以外の数値や文字入力が無効値であるが、何
の入力があるかはわからない
境界値テスト
• 境界値テストは入力の境界の値に注目するテスト
• 境界の周辺には欠陥が潜んでいる可能性が高いため
• テストは境界上の値、境界のすぐ下の値、境界のすぐ上
の値を1点ずつ選んでテストケースを作成する
境界値テスト
境界値テストでは、境界値のすぐ近くのテストを行うた
め、下記の図では2・3・8・9のテストを行う
デシジョンテーブルテスト
• 複雑なビジネスルールを記載し、テストケースを作
成する指針となる
• 条件、アクション、ルールによって期待される結果を
テーブルとして表したものである
• 各ルールに対してテストケースを少なくとも1つ作成
する必要がある
デシジョンテーブルテスト
ルール1 ルール2 ルール3 ルール4
条件
条件1 Yes Yes No No
条件2 Yes NO Yes No
アクション
アクション1 Xをする Yをする Xをする Zをする
アクション2 Aをする Bをする Bをする Bをする
デシジョンテーブルテスト
ルール1 ルール2 ルール3 ルール4
条件
18歳か? Yes Yes No No
普通免許を持っている
か?
Yes NO Yes No
アクション
運転 可能 不可能 不可能 不可能
ペア構成テスト
• 直行表を作成し、直行表に各変数を記載しテスト
ケースを作成する。
• テストケースの変数はペアを構成し、変数の数が足
りない場合でも、何かしらの値を記載しペアを作成
することによってテストケースを作成を行う
ペア構成テスト
OS ブラウザ サーバ
Windows 7 IE10 Linux
Windows 7 IE11 Linux
Windows 7 Chrome Linux
Windows 8 IE10 Linux
Windows 8 IE11 Linux
Windows 8 Chrome Linux
状態遷移テスト
• 状態遷移図は、テストすべき状態、イベント、アク
ション、遷移を明確にしてくれる
• 状態遷移図は理解しやすいが体系的な分析はでき
ないため状態遷移表の作成などを行うべきである
• 状態遷移図をテストとして使う場合は、すべての遷
移を少なくとも1回は通るようにテストを作成する
状態遷移表
現在の状態 イベント アクション 次の状態
なし 入力 買い物 確認
なし 確認 ー なし
なし タイムアウト ー タイムアウト
確認 入力 ー 確認
確認 確認 ー 確認
確認 タイムアウト ー タイムアウト
タイムアウト 入力 ー タイムアウト
タイムアウト 確認 ー タイムアウト
タイムアウト タイムアウト ー タイムアウト
状態遷移表
現在の状態 イベント アクション 次の状態
なし 入力 買い物 確認
なし 確認 ー なし
なし タイムアウト ー タイムアウト
確認 入力 ー 確認
確認 確認 ー 確認
確認 タイムアウト ー タイムアウト
タイムアウト 入力 ー タイムアウト
タイムアウト 確認 ー タイムアウト
タイムアウト タイムアウト ー タイムアウト
全ての遷移を1回は
通るテストを行う
ドメイン分析テスト
• ドメイン分析は、同値クラステストや境界値テストを
多次元に拡張して一般化したものである
• ドメイン分析では各種の用語を使いケースを分類す
る
• Onポイント:境界上の値
• Offポイント:境界に隣接する値
• Inポイント:全ての境界条件を満たすが境界上ではない
• Outポイント:いずれの境界条件ではない値
ドメイン分析テスト
ドメイン分析テスト条件 テストケース
結果
まとめ
• 技法は、ただの道具である
• 道具を知ることによってより良いテストを行
えるようになる
• 道具を使って良きプロセスを育てよう
参考文献
• はじめて学ぶソフトウェアテスト技法

More Related Content

Viewers also liked

Cbで解るjojo up
Cbで解るjojo upCbで解るjojo up
Cbで解るjojo uphayabusa333
 
漏れのある抽象化の法則
漏れのある抽象化の法則漏れのある抽象化の法則
漏れのある抽象化の法則hayabusa333
 
Jenkinsとidobataで幸せな生活
Jenkinsとidobataで幸せな生活Jenkinsとidobataで幸せな生活
Jenkinsとidobataで幸せな生活hayabusa333
 
Cowboyとphoenixの速度比較
Cowboyとphoenixの速度比較Cowboyとphoenixの速度比較
Cowboyとphoenixの速度比較hayabusa333
 
現場にsahaginを取り入れた話
現場にsahaginを取り入れた話現場にsahaginを取り入れた話
現場にsahaginを取り入れた話hayabusa333
 
Elixirのhoundを使ってみて
Elixirのhoundを使ってみてElixirのhoundを使ってみて
Elixirのhoundを使ってみてhayabusa333
 
Getting test world
Getting test worldGetting test world
Getting test worldhayabusa333
 
E言語スタック
E言語スタックE言語スタック
E言語スタックhayabusa333
 
Erlang and Elixir
Erlang and ElixirErlang and Elixir
Erlang and Elixirhayabusa333
 
派遣社員が現場にRubyを取り入れるまで
派遣社員が現場にRubyを取り入れるまで派遣社員が現場にRubyを取り入れるまで
派遣社員が現場にRubyを取り入れるまでhayabusa333
 
最近の単体テスト
最近の単体テスト最近の単体テスト
最近の単体テストKen Morishita
 
Elixir v1.3 で入るかもしれない機能
Elixir v1.3 で入るかもしれない機能Elixir v1.3 で入るかもしれない機能
Elixir v1.3 で入るかもしれない機能hayabusa333
 
Serverspecの本気をみるのです
Serverspecの本気をみるのですServerspecの本気をみるのです
Serverspecの本気をみるのですhayabusa333
 
脆弱性検査ツールってどうよ
脆弱性検査ツールってどうよ脆弱性検査ツールってどうよ
脆弱性検査ツールってどうよMasakazu Ikeda
 

Viewers also liked (16)

Cbで解るjojo up
Cbで解るjojo upCbで解るjojo up
Cbで解るjojo up
 
漏れのある抽象化の法則
漏れのある抽象化の法則漏れのある抽象化の法則
漏れのある抽象化の法則
 
Jenkinsとidobataで幸せな生活
Jenkinsとidobataで幸せな生活Jenkinsとidobataで幸せな生活
Jenkinsとidobataで幸せな生活
 
Cowboyとelixir
CowboyとelixirCowboyとelixir
Cowboyとelixir
 
Cowboyとphoenixの速度比較
Cowboyとphoenixの速度比較Cowboyとphoenixの速度比較
Cowboyとphoenixの速度比較
 
現場にsahaginを取り入れた話
現場にsahaginを取り入れた話現場にsahaginを取り入れた話
現場にsahaginを取り入れた話
 
IEXを学ぶ
IEXを学ぶIEXを学ぶ
IEXを学ぶ
 
Elixirのhoundを使ってみて
Elixirのhoundを使ってみてElixirのhoundを使ってみて
Elixirのhoundを使ってみて
 
Getting test world
Getting test worldGetting test world
Getting test world
 
E言語スタック
E言語スタックE言語スタック
E言語スタック
 
Erlang and Elixir
Erlang and ElixirErlang and Elixir
Erlang and Elixir
 
派遣社員が現場にRubyを取り入れるまで
派遣社員が現場にRubyを取り入れるまで派遣社員が現場にRubyを取り入れるまで
派遣社員が現場にRubyを取り入れるまで
 
最近の単体テスト
最近の単体テスト最近の単体テスト
最近の単体テスト
 
Elixir v1.3 で入るかもしれない機能
Elixir v1.3 で入るかもしれない機能Elixir v1.3 で入るかもしれない機能
Elixir v1.3 で入るかもしれない機能
 
Serverspecの本気をみるのです
Serverspecの本気をみるのですServerspecの本気をみるのです
Serverspecの本気をみるのです
 
脆弱性検査ツールってどうよ
脆弱性検査ツールってどうよ脆弱性検査ツールってどうよ
脆弱性検査ツールってどうよ
 

Similar to ブラックボックステスト技法

20180922 jazug8 cosmosdb_search
20180922 jazug8 cosmosdb_search20180922 jazug8 cosmosdb_search
20180922 jazug8 cosmosdb_searchKazuhiro Wada
 
サーバーフレームワークに潜んでる脆弱性検知ツール紹介
サーバーフレームワークに潜んでる脆弱性検知ツール紹介サーバーフレームワークに潜んでる脆弱性検知ツール紹介
サーバーフレームワークに潜んでる脆弱性検知ツール紹介gree_tech
 
Jubatusでマルウェア分類
Jubatusでマルウェア分類Jubatusでマルウェア分類
Jubatusでマルウェア分類Shuzo Kashihara
 
テストを分類してみよう!
テストを分類してみよう!テストを分類してみよう!
テストを分類してみよう!Kenji Okumura
 
MySQLメインの人がPostgreSQLのベンチマークをしてみた話
MySQLメインの人がPostgreSQLのベンチマークをしてみた話MySQLメインの人がPostgreSQLのベンチマークをしてみた話
MySQLメインの人がPostgreSQLのベンチマークをしてみた話hiroi10
 
オンプレでもクラウドでも データベースサーバの運用
オンプレでもクラウドでも データベースサーバの運用オンプレでもクラウドでも データベースサーバの運用
オンプレでもクラウドでも データベースサーバの運用elanlilac
 
ソフトウェア工学2023 02 上流工程
ソフトウェア工学2023 02 上流工程ソフトウェア工学2023 02 上流工程
ソフトウェア工学2023 02 上流工程Toru Tamaki
 
プログラムの大海に溺れないために
プログラムの大海に溺れないためにプログラムの大海に溺れないために
プログラムの大海に溺れないためにZenji Kanzaki
 
TDDBC osaka 2012/06/02
TDDBC osaka 2012/06/02TDDBC osaka 2012/06/02
TDDBC osaka 2012/06/02Hiro Yoshioka
 

Similar to ブラックボックステスト技法 (12)

MySQL 監査システムを作った話 #mysqlcasual
MySQL 監査システムを作った話 #mysqlcasualMySQL 監査システムを作った話 #mysqlcasual
MySQL 監査システムを作った話 #mysqlcasual
 
20180922 jazug8 cosmosdb_search
20180922 jazug8 cosmosdb_search20180922 jazug8 cosmosdb_search
20180922 jazug8 cosmosdb_search
 
サーバーフレームワークに潜んでる脆弱性検知ツール紹介
サーバーフレームワークに潜んでる脆弱性検知ツール紹介サーバーフレームワークに潜んでる脆弱性検知ツール紹介
サーバーフレームワークに潜んでる脆弱性検知ツール紹介
 
Gamedevenvstudy1
Gamedevenvstudy1Gamedevenvstudy1
Gamedevenvstudy1
 
Jubatusでマルウェア分類
Jubatusでマルウェア分類Jubatusでマルウェア分類
Jubatusでマルウェア分類
 
テストを分類してみよう!
テストを分類してみよう!テストを分類してみよう!
テストを分類してみよう!
 
hbstudy#06
hbstudy#06hbstudy#06
hbstudy#06
 
MySQLメインの人がPostgreSQLのベンチマークをしてみた話
MySQLメインの人がPostgreSQLのベンチマークをしてみた話MySQLメインの人がPostgreSQLのベンチマークをしてみた話
MySQLメインの人がPostgreSQLのベンチマークをしてみた話
 
オンプレでもクラウドでも データベースサーバの運用
オンプレでもクラウドでも データベースサーバの運用オンプレでもクラウドでも データベースサーバの運用
オンプレでもクラウドでも データベースサーバの運用
 
ソフトウェア工学2023 02 上流工程
ソフトウェア工学2023 02 上流工程ソフトウェア工学2023 02 上流工程
ソフトウェア工学2023 02 上流工程
 
プログラムの大海に溺れないために
プログラムの大海に溺れないためにプログラムの大海に溺れないために
プログラムの大海に溺れないために
 
TDDBC osaka 2012/06/02
TDDBC osaka 2012/06/02TDDBC osaka 2012/06/02
TDDBC osaka 2012/06/02
 

Recently uploaded

CTO, VPoE, テックリードなどリーダーポジションに登用したくなるのはどんな人材か?
CTO, VPoE, テックリードなどリーダーポジションに登用したくなるのはどんな人材か?CTO, VPoE, テックリードなどリーダーポジションに登用したくなるのはどんな人材か?
CTO, VPoE, テックリードなどリーダーポジションに登用したくなるのはどんな人材か?akihisamiyanaga1
 
AWS の OpenShift サービス (ROSA) を使った OpenShift Virtualizationの始め方.pdf
AWS の OpenShift サービス (ROSA) を使った OpenShift Virtualizationの始め方.pdfAWS の OpenShift サービス (ROSA) を使った OpenShift Virtualizationの始め方.pdf
AWS の OpenShift サービス (ROSA) を使った OpenShift Virtualizationの始め方.pdfFumieNakayama
 
NewSQLの可用性構成パターン(OCHaCafe Season 8 #4 発表資料)
NewSQLの可用性構成パターン(OCHaCafe Season 8 #4 発表資料)NewSQLの可用性構成パターン(OCHaCafe Season 8 #4 発表資料)
NewSQLの可用性構成パターン(OCHaCafe Season 8 #4 発表資料)NTT DATA Technology & Innovation
 
モーダル間の変換後の一致性とジャンル表を用いた解釈可能性の考察 ~Text-to-MusicとText-To-ImageかつImage-to-Music...
モーダル間の変換後の一致性とジャンル表を用いた解釈可能性の考察  ~Text-to-MusicとText-To-ImageかつImage-to-Music...モーダル間の変換後の一致性とジャンル表を用いた解釈可能性の考察  ~Text-to-MusicとText-To-ImageかつImage-to-Music...
モーダル間の変換後の一致性とジャンル表を用いた解釈可能性の考察 ~Text-to-MusicとText-To-ImageかつImage-to-Music...博三 太田
 
デジタル・フォレンジックの最新動向(2024年4月27日情洛会総会特別講演スライド)
デジタル・フォレンジックの最新動向(2024年4月27日情洛会総会特別講演スライド)デジタル・フォレンジックの最新動向(2024年4月27日情洛会総会特別講演スライド)
デジタル・フォレンジックの最新動向(2024年4月27日情洛会総会特別講演スライド)UEHARA, Tetsutaro
 
業務で生成AIを活用したい人のための生成AI入門講座(社外公開版:キンドリルジャパン社内勉強会:2024年4月発表)
業務で生成AIを活用したい人のための生成AI入門講座(社外公開版:キンドリルジャパン社内勉強会:2024年4月発表)業務で生成AIを活用したい人のための生成AI入門講座(社外公開版:キンドリルジャパン社内勉強会:2024年4月発表)
業務で生成AIを活用したい人のための生成AI入門講座(社外公開版:キンドリルジャパン社内勉強会:2024年4月発表)Hiroshi Tomioka
 
自分史上一番早い2024振り返り〜コロナ後、仕事は通常ペースに戻ったか〜 by IoT fullstack engineer
自分史上一番早い2024振り返り〜コロナ後、仕事は通常ペースに戻ったか〜 by IoT fullstack engineer自分史上一番早い2024振り返り〜コロナ後、仕事は通常ペースに戻ったか〜 by IoT fullstack engineer
自分史上一番早い2024振り返り〜コロナ後、仕事は通常ペースに戻ったか〜 by IoT fullstack engineerYuki Kikuchi
 
クラウドネイティブなサーバー仮想化基盤 - OpenShift Virtualization.pdf
クラウドネイティブなサーバー仮想化基盤 - OpenShift Virtualization.pdfクラウドネイティブなサーバー仮想化基盤 - OpenShift Virtualization.pdf
クラウドネイティブなサーバー仮想化基盤 - OpenShift Virtualization.pdfFumieNakayama
 

Recently uploaded (8)

CTO, VPoE, テックリードなどリーダーポジションに登用したくなるのはどんな人材か?
CTO, VPoE, テックリードなどリーダーポジションに登用したくなるのはどんな人材か?CTO, VPoE, テックリードなどリーダーポジションに登用したくなるのはどんな人材か?
CTO, VPoE, テックリードなどリーダーポジションに登用したくなるのはどんな人材か?
 
AWS の OpenShift サービス (ROSA) を使った OpenShift Virtualizationの始め方.pdf
AWS の OpenShift サービス (ROSA) を使った OpenShift Virtualizationの始め方.pdfAWS の OpenShift サービス (ROSA) を使った OpenShift Virtualizationの始め方.pdf
AWS の OpenShift サービス (ROSA) を使った OpenShift Virtualizationの始め方.pdf
 
NewSQLの可用性構成パターン(OCHaCafe Season 8 #4 発表資料)
NewSQLの可用性構成パターン(OCHaCafe Season 8 #4 発表資料)NewSQLの可用性構成パターン(OCHaCafe Season 8 #4 発表資料)
NewSQLの可用性構成パターン(OCHaCafe Season 8 #4 発表資料)
 
モーダル間の変換後の一致性とジャンル表を用いた解釈可能性の考察 ~Text-to-MusicとText-To-ImageかつImage-to-Music...
モーダル間の変換後の一致性とジャンル表を用いた解釈可能性の考察  ~Text-to-MusicとText-To-ImageかつImage-to-Music...モーダル間の変換後の一致性とジャンル表を用いた解釈可能性の考察  ~Text-to-MusicとText-To-ImageかつImage-to-Music...
モーダル間の変換後の一致性とジャンル表を用いた解釈可能性の考察 ~Text-to-MusicとText-To-ImageかつImage-to-Music...
 
デジタル・フォレンジックの最新動向(2024年4月27日情洛会総会特別講演スライド)
デジタル・フォレンジックの最新動向(2024年4月27日情洛会総会特別講演スライド)デジタル・フォレンジックの最新動向(2024年4月27日情洛会総会特別講演スライド)
デジタル・フォレンジックの最新動向(2024年4月27日情洛会総会特別講演スライド)
 
業務で生成AIを活用したい人のための生成AI入門講座(社外公開版:キンドリルジャパン社内勉強会:2024年4月発表)
業務で生成AIを活用したい人のための生成AI入門講座(社外公開版:キンドリルジャパン社内勉強会:2024年4月発表)業務で生成AIを活用したい人のための生成AI入門講座(社外公開版:キンドリルジャパン社内勉強会:2024年4月発表)
業務で生成AIを活用したい人のための生成AI入門講座(社外公開版:キンドリルジャパン社内勉強会:2024年4月発表)
 
自分史上一番早い2024振り返り〜コロナ後、仕事は通常ペースに戻ったか〜 by IoT fullstack engineer
自分史上一番早い2024振り返り〜コロナ後、仕事は通常ペースに戻ったか〜 by IoT fullstack engineer自分史上一番早い2024振り返り〜コロナ後、仕事は通常ペースに戻ったか〜 by IoT fullstack engineer
自分史上一番早い2024振り返り〜コロナ後、仕事は通常ペースに戻ったか〜 by IoT fullstack engineer
 
クラウドネイティブなサーバー仮想化基盤 - OpenShift Virtualization.pdf
クラウドネイティブなサーバー仮想化基盤 - OpenShift Virtualization.pdfクラウドネイティブなサーバー仮想化基盤 - OpenShift Virtualization.pdf
クラウドネイティブなサーバー仮想化基盤 - OpenShift Virtualization.pdf
 

ブラックボックステスト技法