• ベストアンサー
※ ChatGPTを利用し、要約された質問です(原文:ソフトウェアのテスト手法について質問させていただきます。)

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

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

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

  • ベストアンサー
回答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