ソフトウェアのテスト手法についての質問

このQ&Aのポイント
  • ソフトウェアのテスト手法についての調査中。結合テストの一つである「動作確認テスト」について詳しく知りたい。他のテスト手法にも関心あり。
  • ITProの記事で紹介されたテスト手法について詳細な情報が少なく、インターネットや書籍でも情報が見つからない。図書館などで情報を探しているが、アドバイスがあれば助かる。
  • テスト手法に関する情報不足に困っており、ITProの解説記事や具体例などで助けを求めている。図書館での調査や情報提供も歓迎。
回答を見る
  • ベストアンサー

ソフトウェアのテスト手法について質問させていただきます。

ソフトウェアのテスト手法について質問させていただきます。 現在、テスト手法について調べなけらばならない状況にあります。 調査対象となっているテスト手法は結合テストの中でも「動作確認テスト」とというもので 細かくは以下のものになります。 ・操作確認テスト ・インタフェース確認テスト ・状態遷移テスト ・データ・バリエーション・テスト ・外部リンク動作確認テスト ・業務シミュレーション・テスト 上記のテストは、ITProというサイト http://itpro.nikkeibp.co.jp/article/COLUMN/20060425/236271/?ST=slfsys を参考にピックアップされたものらしいのですが、一部概要が載っているのみで、まるで情報不足です。 そのため、ネット上で調べたのですが、ほとんど情報がありません。 書店で書籍を探してみても上記のテストが載っている本が見つかりませんでした。 (かろうじて、状態遷移テストのみ載っている本がありましたが・・・) ここまで情報がないと、本当にこんなテストあるのか? と、疑問にすら思えてきます。 今度、図書館に行ってさらに調査しようと考えているのですが、 もし上記テストについて情報が載っている書籍、またはサイトなど ご存じの方がいらっしゃいましたら、ご教示いただけないでしょうか。 もしくは、ITProを見て、より詳しく説明していただけると大変助かります。 私自信が具体例など思いつき、詳しく考えられれば一番いいのですが、 私の知識不足ゆえ、考えつきませんでした。 以上。どんな情報でも構いません。 本当に困っています。 ご回答の程、よろしくお願い致します。

noname#108194
noname#108194

質問者が選んだベストアンサー

  • ベストアンサー
回答No.2

No.1です。 とりあえず、大抵の開発に共通する試験手順をおおざっぱに記載すると 単体テスト(ホワイトボックステスト)→結合テスト(ブラックボックステスト)→連続(組み合わせ)動作テスト(ブラックボックステスト) となります。 単純に「単体」→「結合」でよさそうにも思いますが、実際にはそれだけでは終わりではありません(後述)。 (ちなみに、業種や会社によって用語はコロコロ変わりますので、同じ単語でも意味が違う場合も多々あるので注意) >説明を読んでも具体的にイメージできないのです。 とりあえずURLの内容にそって簡潔に書きます。 ○操作確認テスト UI関連のテスト全般。 「n文字まで入力可」の場合に入力文字数を超えた場合に「入力できないようにする」「エラーメッセージを表示する」等の処置が「仕様通り」となっているか、ボタンを連打した場合に誤動作しないか等の試験。 ○データ・バリエーション・テスト ホワイトボックスの網羅性やブラックボックスの境界値よりも広範囲の確認。 例えば、データベースで「氏名」「電話番号」「住所」を入力する必要があるとします。 それぞれ単体での入力の整合性確認は行われていたとしても、 「氏名」→「電話番号」→「住所」と入力するところを「住所」→「氏名」→「電話番号」と入力してみたり、 電話番号だけを不正としてみる等、「単一の機能」としてみるのではなく「船体的な機能」としてデータを与え場合の試験。 ○インタフェース確認テスト AというモジュールからBというモジュールに対して送られてくるデータが正しいかを確認する試験。 ホワイトボックスで、モジュールA、モジュールBそれぞれのIN/OUTが正しくても、仕様の理解不足などにより、Aが出力する「正しい」結果をBが「正しいデータ」として入力できない場合も存在するために行う。 (「モジュール」の単位は「関数」から、ある程度の大きさの「プログラム」まで多様。I/Fがあれば全部該当する) ○業務シミュレーション・テスト 前述の「連続動作テスト」に当たるテスト。 「機能」自体は仕様を網羅していても、「実使用」では問題となる場合が発生するため、実際の「使用」手順で動作を行った場合に問題が発生しないか確認を行う。 例えば、カメラをUSBでPCに接続してデータ(写真)を転送すると仮定した場合、 ・カメラの電池がなくなり電源が落ちた ・USBケーブルに手(足)をひっかけてケーブルが抜けた といったことも「実使用」でおこりえるシチュエーションです。 >ITProにも載っていないので本当にお手上げという感じです。。 ○外部リンク動作確認テスト ある意味「インターフェース試験」と同様と推測(想定している範囲が確定できないので推測)。 「外部」なので、ネットワークでの多元利用時の試験? ○状態遷移テスト 文字通り「状態」が「遷移」するかどうかの試験。 ある操作(イベント)を行った場合には、行われたものの状態は変化(遷移)する。イベントに対して正しく状態が遷移するかを確認する。 例えば、データベースへのアクセスなら、 ・何もしていなければ「未アクセス」状態 ・アクセスのイベントが発生すれば「アクセス中」状態 と状態は変化している。同じ「アクセス」でも ・読み込みなら「読み込み」状態 ・書き込みなら「書き込み」状態 と区別することができる。 上記のように「状態が正しいか」そして状態によってイベントに対して適切な処理(状態の遷移等)が行われているか確認する。

noname#108194
質問者

お礼

ご回答ありがとうございます。 まさかここまで的確な回答が得られるとは思っていませんでした!! 具体的なイメージがつかめ、大変理解しやすかったです。 外部リンク動作確認テストについては、もう少し自分で調べてみたいと思います。 本当に助かりました。 ありがとうございました。

その他の回答 (4)

回答No.5

no4.通りすがるです。 >ということは、例えばサーバーと通信したり、デバイスと情報をやり取りするシステムがあった場合、 >そのサーバー間、デバイス間とやり取りするデータや情報は、外部リンク動作確認テストに当てはまるも>のなのでしょうか?  結合試験の捉え方として、おそらくハード構成上の試験として捉えているのではないでしょうか?  結合試験としての捉え方基本的に、各機能若しくは、モジュール間の試験を指します。  ですから、サーバー間とか、デバイス間の試験はどちらかというと、試験開始前の受け入れ試験  に分類されるかと思います。受け入れ試験レベルで試験が通らない場合には、当然、それ以降の  試験ができないことになります。  たとえば、一つの画面を表示(web系)するだけでも、以下の構成が考えられます。   クライアント(vbs/js/css/html/flashなど)サーバー(web:php、parl、javaなど)との  情報のやり取りについてのレベルから、クライアント内、またはサーバー内で、ある一つの機能  でも、複数のモジュールから構成されている場合には、そのモジュール間の試験も結合試験と  なります。  サーバーについては、サーバーで作成したものが、さらにメールサーバーを経由しメール送信  させる機能があればこれも結合試験項目となります。  ただ、同じような試験でもその内容により・インタフェース確認テスト  に分類される場合もあるかと思います。  どちらかというと、インタフェース確認テストのほうが細かい確認となりますね。  また、複数のホストにてそれぞれ処理を分散しその連動試験も、外部リンクというように分類する  かもしれません。   上記内容は、ハード寄りの試験に近いかもしれませんが、業務的な外部リンクという考え方もある  と思います。たとえば、A社で商品購買業務を作成したとします。B社では経理業務を作成したと  します。商品購買業務にて投入したデータが、経理業務に連動して情報のやり取りがなされたかと  いう項目は、外部リンク動作確認テストになり、その過程で正しくデータのやり取り(項目単位に  属性、桁落ち等)がができたかは、インタフェース確認テストになると思います。  C/S系の例として、サーバーでdbから情報を読み込み、その情報をクライアント側のミドル  ウェアへ情報を渡す。ミドルウェアではクライアントにインストールしているアクセスへデータ  を書き込む。ミドルウェアはアクセスにデータを書き込み後、あるクライアントで起動している   アプリケーションへ何らかのイベントを渡す。アプリケーションは、アクセスからデータを読み  込みクライアントへデータを加工し画面へ表示する。このような構成の場合、一見利用者からは  、アプリケーションを起動しデータを表示するだけの機能で結合ではなく単体レベルと認識して  しますかもしれないが、実際は、外部リンクの試験に当てはまることになると思います。  同じようなシステムで、スタンドアロンのシステムでは結合ではなく単体試験で吸収されること  になりあす。  このように、そのシステムの構成によりその条件は変わってくると思います。  ご質問にあった分類について、実際そのような分類は行ってない場合もあります。  少なくとも私が行ってきた環境では、そのような分類はしませんでした。  ただ、項目は全て洗い出しますので分類することは可能です。  たとえば、分類として、モジュール間結合(ここも結合1、結合2)、業務間結合、システム  間結合などに分けて結合試験を記述する場合もあるかと思います。  試験確認方法も、ただあたかも正常に画面遷移とか画面、帳票に表示されている内容を確認する  だけでなく、メモリーダンプ、ファイルダンプを採取若しくは、専用のツールを作成し確認しな  がら試験を実施します。その場合にもその試験確認方法なども結合試験項目に明記しますので  開発経験がない場合にはイメージ抱くのは難しいと思います。  最近、Windows環境においてのideの発展は著しく進化してきましたので生産と同時にある   程度の単体試験は製造と同時に消化されていきます。単体試験をあらたに作成する考えも省く  考えもあるかもしれません。場合によってドキュメントとして試験項目に挙げるのは結合試験  から記述してもいいと思います。(これは個人的にですけど)  このように、そのシステム構成より試験のレベルが変動してきますので一概にこうだという説  明できるものではないのですが、このような説明でご納得されたでしょうか?        

noname#108194
質問者

お礼

ご回答ありがとうございます。 >結合試験の捉え方として、おそらくハード構成上の試験として捉えているのではないでしょうか? 確かに、外部リンク動作確認テストに関して言えば、ハード寄りの考えをしていました。 また、非常に詳細な説明ありがとうございました。 もちろん、全てを理解できたわけではありませんが、十分納得できる内容でした。 これから徐々に理解できるようになればと思います。

回答No.4

はじめまして、通りすがると申します。 下記質問内容について、お答えいたします。 >ソフトウェアのテスト手法について質問させていただきます。 >現在、テスト手法について調べなけらばならない状況にあります。 >調査対象となっているテスト手法は結合テストの中でも「動作確認テスト」とというもので >細かくは以下のものになります。 >・操作確認テスト >・インタフェース確認テスト >・状態遷移テスト >・データ・バリエーション・テスト >・外部リンク動作確認テスト >・業務シミュレーション・テスト >上記のテストは、ITProというサイト >http://itpro.nikkeibp.co.jp/article/COLUMN/20060425/236271/?ST=slfsys >を参考にピックアップされたものらしいのですが、一部概要が載っているのみで、まるで情報不足です。 >そのため、ネット上で調べたのですが、ほとんど情報がありません。    この手のものって、ないですね。 >書店で書籍を探してみても上記のテストが載っている本が見つかりませんでした。 >(かろうじて、状態遷移テストのみ載っている本がありましたが・・・)    多分、お探しになったのは、コンピュータ関連の言語についてまとめて置いてあるところで  ないでしょうか?    試験とか、設計になると分類としてコンピュータサイエンス当たりになるのではと思うのですが  そちらの方はお探しになられたのでしょうか?  この手の書物は小さい本屋ではないと思います。 >ここまで情報がないと、本当にこんなテストあるのか? >と、疑問にすら思えてきます。  あります。 >今度、図書館に行ってさらに調査しようと考えているのですが、 >もし上記テストについて情報が載っている書籍、またはサイトなど >ご存じの方がいらっしゃいましたら、ご教示いただけないでしょうか。     >もしくは、ITProを見て、より詳しく説明していただけると大変助かります。 >私自信が具体例など思いつき、詳しく考えられれば一番いいのですが、 >私の知識不足ゆえ、考えつきませんでした。  試験方法は、そのシステムに依存してきますので具体的にはこのlvでお答えできない  と思います。  もう少し、質問内容を掘り下げてご質問をされたほうがより具体的にお答えできるかと  思います。  上記分類も、あくまでも例だと思います。たとえば、・外部リンク動作確認テスト  なんてものは、小規模で他システムとの関連がなければ存在しない試験となります。  私も、最初はその記述方法に随分と苦労しました。    ところで、Rupan02 さんはこのシステムについてどのような立場でかかわっているの  でしょうか?(設計をしたとか、製造をした とか) >以上。どんな情報でも構いません。 >本当に困っています。 >ご回答の程、よろしくお願い致します。  

noname#108194
質問者

お礼

いろいろと情報ありがとうございます。 >ところで、Rupan02 さんはこのシステムについてどのような立場でかかわっているの >でしょうか?(設計をしたとか、製造をした とか) いえ。関わっているというわけではないです。 おそらく、どういうテストなのか調べろということなのだと思っています。 ちなみに、 >上記分類も、あくまでも例だと思います。たとえば、・外部リンク動作確認テスト >なんてものは、小規模で他システムとの関連がなければ存在しない試験となります。 ということは、例えばサーバーと通信したり、デバイスと情報をやり取りするシステムがあった場合、 そのサーバー間、デバイス間とやり取りするデータや情報は、外部リンク動作確認テストに当てはまるものなのでしょうか? よろしくお願い致します。

回答No.3

No.1です。 補足程度に追記。 No.2でも書きましたが、用語の意味は使う場所によって変わりますのであくまでも「一例」であるということは注意してください。 例えば「操作確認テスト」でも、URLに合わせて「UI」と書いていますが、私のイメージでは「画面を操作した→その結果として何か動作した」というのも「操作」はしていますから「操作確認テスト」です。 この「何か」が「画面表示」なのか「モータが動く」なのかはモノによりますが。 そういう意味では「操作」という「インプット」があり、「アウトプット」として「画面表示」等があるわけですから、広義では「インターフェーステスト」とも言えますし、「業務シュミレーションテスト」と言えなくもないです。

noname#108194
質問者

お礼

>SnowShowerさん 補足情報ありがとうございます。 なるほど。どのテストも一概には言えないわけですね。 なかなか難しいですよね。 大変勉強になりました。

回答No.1

>一部概要が載っているのみで、まるで情報不足です。 どのような情報が不足していると考えているのでしょうか? やらなければいけないことはキッチリと書いてありますよ?

noname#108194
質問者

お礼

ご回答ありがとうございます。 また返事が遅くなってしまい申し訳ありません。 >>一部概要が載っているのみで、まるで情報不足です。 >どのような情報が不足していると考えているのでしょうか? >やらなければいけないことはキッチリと書いてありますよ? 失礼いたしました。まるでサイトが悪いかのような記載になっておりました。 情報不足というよりも、私のように知識の浅い者には上記サイト(ITPro)の説明を 読んだだけでは、「実際にどのようにテストをするのか具体的にイメージできない」のです。 この点が最も知りたいところです。 例えば、上記サイトの同ページにブラックボックス・テストの説明があります。 ブラックボックス・テストの同値分析の場合、 1月~12月の月の値を入力するもの(整数) 有効同値クラス:1,2,3,4・・・12 無効同値クラス1:1より小さい整数 無効同値クラス2:12より大きい整数 それぞれの中から代表的な値(-2、5、100)を入力値として与え、出力結果を確認する というように具体例をイメージすることができます。 (大雑把ですが、例ですのでご容赦下さい。) しかし、 操作確認テスト データ・バリエーション・テスト インタフェース確認テスト 業務シミュレーション・テスト については、説明を読んでも具体的にイメージできないのです。 例えば、データ・バリエーション・テストは、 仕様から想定される様々な入力データを与えて,出力結果を確認する という旨の説明がありますが、正直私にはブラックボックス・テストとの違いが分からないのです。 これは、ブラックボックス・テストと動作確認テストの違いをそもそも理解できていないのが原因かもしれません。 (言葉の説明としては理解できますが、やはり具体的なイメージとして分かりません) また、外部リンク動作確認テスト、状態遷移テストに至っては、 ITProにも載っていないので本当にお手上げという感じです。。 長々と書いてしまいましたが、要は具体例のイメージを持ちたいのです。 SnowShowerさんはご理解されているようですが、 私の質問内容にあるテストについて大雑把でもいいですので、実際にどういったテストをするのか 例をお教えいただけないでしょうか? どうかよろしくお願いいたします。

関連するQ&A

  • 【お笑い】ツッコミ手法の分類ってありますか?

    お笑いやユーモアの本の中には笑いの技術の 分類をしているものがたくさんあり、 例えば最近では「ウケる技術」などの書籍があります。 しかし、多くの笑いやユーモアの本はボケの技術の 分類が多く、ツッコミ手法の分類を体系的に まとめたものを私は見たことがありません。 ボケと違ってツッコミは ”現象(=ボケ)を受けて初めて発生する” という性質上、受動的な印象で ”現象(=ボケ)が先にありき”と思われているかもしれません。 しかし、ツッコミの中にも手法のような ものがあるようで ノリツッコミ 一人ツッコミ ホメツッコミ(おちまさと) フェイクツッコミ(ウケる技術) などツッコミにもいくつか手法に名前がついたものは見かけます。 芸人の方はそういった分類を持っていると思いますし、 普通の方でもツッコミするときに手法を 使い分けている方もいらっしゃると思います。 そういったツッコミの手法や分類についてご存知の方、 もしくはそのようなサイトや書籍をご存知の方がいらっしゃいましたら 教えていただけると助かります。 また、「私はこういうツッコミがあると思ってて、○○ツッコミと名付けてます」 といった情報も聞かせてください。 よろしくお願いします。

  • テストフェーズで何をするか

    SI企業で勤めております。 恥ずかしい話ですが、開発の経験が少なく、 各テストフェーズでどういった観点のテストをするのか、 あまりわかっていません。 単体テストは、モジュール内の分岐やエラーハンドリングなど 網羅的に確認するとしてイメージがあります。 これ以外にも、 1.結合テスト 2.機能テスト 3.システムテスト など今まで耳にしました。 それぞれのテストでは、一般的にはこれをする、など 考え方や手法はあるのでしょうか?。 例えば以下のようなテストは、 どのテストでやれば良いのでしょうか?。 ・Webアプリでの画面遷移(ログインして一覧画面から、選択し更新~完了画面の表示) ・夜間バッチの正常終了(バッチは、ジョブスケジューラから起動) (ざっくりですみません、、) 「画面遷移」というのは、システム側(開発者側)から見た用語ですが、その画面遷移の 提供機能である、例えば「在庫参照」、「受注登録」は、ユーザから見た「機能」だと思います。 テストとしては、両方の観点でテストフェーズを設けるものでしょうか・・?。 アドバイスを頂ければ幸いです。

  • ソフトウェア全般の学習

    ソフトウェア関係の勉強をしているものです。 ネットワークの知識では下記サイトが断然わかりやすかったです。 【3分間ネットワーキング http://www5e.biglobe.ne.jp/~aji/3min/】 上記サイトのようなわかりやすい表現でデータベースやプログラミング、構造アルゴリズムやセキュリティといった内容をわかりやすく解説しているサイトや書籍を教えていただきたく質問しました。 Webサイト「ITPro」のデータベースの基礎的な内容(と銘打ってある記事) を読んでみたのですがいまいち理解に至らなかった程度の私ですので学習に苦戦しています。 何卒、よろしくお願いいたします。

  • マイクロプロセッサの高速化手法

    動作周波数が100MHzのマイクロプロセッサPが、50,000,000命令を実行するベンチマークテストを行ったところ、これらの命令を0.25秒で実行することができた。 マイクロプロセッサPがこのようなCPI値になるのは、どのような高速化手法が適用されているからか、その手法名を述べ、どのような手法が説明せよ。 という問題ですが (1)パイプライン (2)スーパーパイプライン (3)スーパースカラ (4)VLIW (5)マルチプロセッサ のどれかかと考えているのですがどれが答えとして最適かわかりません。 ご教示お願い致します。 またMIP値が200MIP CPI値が0.5 と計算してなりましたが合っていますでしょうか?加えてご確認お願い致します。

  • テスト、試験の方法について

    私は新人の社内SEです。主にCOBOLを使った設計、開発をしています。 プログラミングのテスト、試験の方法について、お伺いします。 私の会社は、試験の際のルールは特に決まっておらず、 そのプログラムが通るロジックが正常に動作するか、を網羅するくらいで、 あとはバグの条件を経験と勘で探ることをしています。 テスト不足で迷惑をかけることが多く、なんとかしたいと思い方方調べてみました。 すると、テストにはいろいろな手法があるらしい、ということがわかりました。 制御パステスト、境界値テスト、ホワイトボックステスト 、ブラックボックステスト ・・・分類と内容はまだよくわかりませんが、 世間一般ではこういった手法にのっとり行われるようだ、ということがわかりました。 Q1.私の会社のようなことをしているのは珍しいのでしょうか。 それともやはり経験と勘が頼りなのでしょうか。 Q2.ある手順にのっとって進めることで、ミスは減るのでしょうか。 外注、社内問いません。みなさんの状況と経験をお聞かせください。

  • ■Seleniumを知っている方・・・ テスト自動化プログラムの選定。困りました。。■

    困っています。。どなたかご教授下さい。 JavaでWebアプリケーションを会社でつくっておりまして、 初めてのテスト自動化を試みております。 チェック対象としては、フォーム入力値のデータチェック、遷移先画面チェックです。 さらにチェック結果としてブラウザ画面のエビデンスを自動取得してくれるフレームワーク?を探しております。(無料) 今現在は Selenium で何ができるか色々情報収集中なのですが、なんだか難しいです・・・・ 初心者技術者でもサッサッっとテストプログラムを作れる便利なものご存知ないでしょうか? また、Selenium を使った事のあるかたの参考にしたサイト、書籍などの情報も頂けると非常に助かります。 どうかお願い致します。

  • oracle ログオントリガー負荷テストについて

    OracleDBに作成・設定したログオントリガーが、 どの程度データベースのパフォーマンスに対して影響があるかを調査したいです。 テストの手法としては、 フリーの負荷テストツールを使用する事を考えていますが、おすすめのツールを教えていただけないでしょうか。 非同期で、1秒間に10~20接続程度を想定しています。 また、OEMでパフォーマンス監視を行っているのですが、テストの際に確認すべき必須項目などもあわせて教えていただけるとうれしいです。 よろしくお願い致します。

  • 開発後のテスト方法の勉強について

    Web系の開発を個人で行っているのですが、開発後のテストが甘くお客様から不具合の指摘が多く発生しています。 自分では良いと思っても、結果的には確認項目が甘いのが原因なのですが、何か開発後のテスト方法について勉強できる書籍、サイトなどはありますでしょうか? Webサイトの場合はできるだけ詳しく明記してあるほうが好ましいです。

  • 自分を知るテストは?

    カテゴリーがはっきりしないのでこちらに質問しました。 最近人と話しててごく基本的な知識が結構欠けていることを改めて感じました。 そこで、最近すっかり縁遠くなってしまった「一般常識」のテストで、自分がどの程度ものを知らないのかを知りたくなりました。 その手の書籍は無数にありますが、とりあえずインターネットで診断できるようなサイトは無いでしょうか? もしご存知なら教えて頂ければ幸いです。 それから、性格診断や適正など、上記に近い「自己を客観的に知る」のに役に立ちそうなサイトもご存知でしたら教えて頂きたく質問致します。 お礼など遅れ勝ちになるかもしれませんがご了承の上よろしくお願いします。

  • 納品後、テストを してもらえず請求ができない

    弊社側でテスト作業をしてクライアントにWebアプリケーションを構築しました。 クライアントにはテスト確認をお願いしているのですが、どうも忙しいらくし、テスト結果をいただけません。 契約書には「十分な動作検証をし、乙(クライアント)がサービスを開始できる状況にする。これを納品とする。」 かつ「今案件の納品期限は、2007年10月10日とする。但し、法令上の制限又は手続き上の事由により必要があるときは、甲乙協議の上変更することができる。」 となっているのですが、9月末にとりあえず弊社側としての作業は終了し相手に完了したことを連絡し、クライアントは数日以内に動作確認しますという連絡はいただきました。 しかしいっこうに連絡がないものですからこちらからメールをしたところクライアントの都合で検収できていないということなのです。そこからまた「数日まってほしい」ということなのですが今現在11/21に至っております。 何度も会社には電話をしてるのですが担当者が不在で、メールで連絡しても返信も来ない状態です。 着手金として半金いただいており、納品/正常動作確認後に半金を入金と契約書には記しております。 ただ、このままの状態では不安です。 請求書を郵送することはもちろん勝手だとは思いますが、みなさんはこの状況をどう解釈されますか? ご意見お聞かせください。 情報が不足している箇所がございましたら追記いたします。

専門家に質問してみよう